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 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 enableCollisionWith
7 hideObject !="_dogHolder hideobject true;" !="_dogHolder hideobject false;" !="player hideobject true;" !="_ship hideobject true;\n_ship hideobjectglobal true;" 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 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 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;" 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 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 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 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 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };"
7 removeAllMissionEventHandlers 7 removeAllMissionEventHandlers
7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'" 7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'"

View File

@ -684,7 +684,7 @@ class FSM
to="instinct"; to="instinct";
precondition = ""; precondition = "";
condition="diag_tickTime - _t > 0.6;"; 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 // check for access of a locked container
if (_container getVariable['EPOCH_Locked', false]) then { 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]; EPOCH_kicked = format ["%1 attempted to access a locked %2 with %3",_unit,_container,_item];
publicVariableServer "EPOCH_kicked"; publicVariableServer "EPOCH_kicked";
}; };

View File

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

View File

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

View File

@ -16,14 +16,20 @@
_dog call EPOCH_client_bitePlayer; _dog call EPOCH_client_bitePlayer;
Parameter(s): Parameter(s):
_this: OBJECT - attacker _unit: OBJECT - attacker
Returns: Returns:
NOTHING NOTHING
*/ */
private ["_distance","_toxicChance","_bloodpChance","_fatigueChance","_bleedAmount","_bloodpAmount","_soundEffect","_canSee","_ppEffect","_bleedChance","_soundEffectIndex","_soundEffectGlobal","_animationEffect","_animationEffectGlobal","_cfgObjectInteraction"]; 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 {
if !(isNull _unit && alive _unit) then {
_distance = 5; _distance = 5;
_toxicChance = 0.1; _toxicChance = 0.1;
_bleedChance = 1; _bleedChance = 1;
@ -38,7 +44,7 @@ if !(isNull _this && alive _this) then {
_canSee = false; _canSee = false;
_ppEffect = 0; _ppEffect = 0;
_cfgObjectInteraction = (('CfgObjectInteractions' call EPOCH_returnConfig) >> (typeOf _this)); _cfgObjectInteraction = (('CfgObjectInteractions' call EPOCH_returnConfig) >> (typeOf _unit));
if (isClass _cfgObjectInteraction) then { if (isClass _cfgObjectInteraction) then {
_distance = getNumber (_cfgObjectInteraction >> "distance"); _distance = getNumber (_cfgObjectInteraction >> "distance");
_toxicChance = getNumber (_cfgObjectInteraction >> "toxicChance"); _toxicChance = getNumber (_cfgObjectInteraction >> "toxicChance");
@ -60,20 +66,25 @@ if !(isNull _this && alive _this) then {
_ppEffect = getNumber (_cfgObjectInteraction >> "ppEffect"); _ppEffect = getNumber (_cfgObjectInteraction >> "ppEffect");
}; };
if ((_this distance player) < _distance && _canSee) then { 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; _soundEffectIndex = EPOCH_sounds find _soundEffect;
if (_soundEffectIndex != -1) then { if (_soundEffectIndex != -1) then {
_this say3D _soundEffect; _unit say3D _soundEffect;
if (_soundEffectGlobal != -1) then { if (_soundEffectGlobal != -1) then {
[player, _this, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",2]; [player, _unit, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",2];
};
}; };
}; };
if (_animationEffect != "") then { if (_animationEffect != "") then {
_this switchMove _animationEffect; _unit switchMove _animationEffect;
if (_animationEffectGlobal != -1) then { if (_animationEffectGlobal != -1) then {
[[_this,player], _animationEffectGlobal, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2]; [[_unit,player], _animationEffectGlobal, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
}; };
}; };
@ -119,4 +130,5 @@ if !(isNull _this && alive _this) then {
player setFatigue 1; player setFatigue 1;
}; };
}; };
};
}; };

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 { if !(_attackers isEqualTo[]) then {
(_attackers select 0) call EPOCH_client_bitePlayer; (_attackers select 0) call EPOCH_client_bitePlayer;
_panic = true; _panic = true;

View File

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

View File

@ -63,7 +63,7 @@ _antagonistSpawnDefaults = [
["I_UAV_01_F",2], ["I_UAV_01_F",2],
["PHANTOM",1], ["PHANTOM",1],
["B_Heli_Transport_01_F",1], ["B_Heli_Transport_01_F",1],
["EPOCH_RyanZombie_1",10] ["EPOCH_RyanZombie_1",12]
]; ];
_spawnLimits = ["CfgEpochClient", "antagonistSpawnIndex", _antagonistSpawnDefaults] call EPOCH_fnc_returnConfigEntryV2; _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_droneRndChance = 100;
EPOCH_sapperRndChance = 100; EPOCH_sapperRndChance = 100;
EPOCH_zombieRndChance = 100; EPOCH_zombieRndChance = 30;
// Custom Keys // Custom Keys
EPOCH_keysActionPressed = false; //prevents EH spam EPOCH_keysActionPressed = false; //prevents EH spam

View File

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

View File

@ -44,7 +44,7 @@ class CfgObjectInteractions {
bleedAmount = 30; bleedAmount = 30;
bloodpAmount = 3; bloodpAmount = 3;
soundEffect[] = {"snake_bite0"}; soundEffect[] = {"snake_bite0"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])"; canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0; ppEffect = 0;
}; };
class Snake2_random_EPOCH : Default { class Snake2_random_EPOCH : Default {
@ -55,7 +55,7 @@ class CfgObjectInteractions {
bleedAmount = 30; bleedAmount = 30;
bloodpAmount = 3; bloodpAmount = 3;
soundEffect[] = {"snake_bite0"}; soundEffect[] = {"snake_bite0"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])"; canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0; ppEffect = 0;
}; };
class GreatWhite_F : Default { class GreatWhite_F : Default {
@ -88,21 +88,21 @@ class CfgObjectInteractions {
bleedAmount = 66; bleedAmount = 66;
bloodpAmount = 3; bloodpAmount = 3;
soundEffect[] = {"cultist_nearby"}; soundEffect[] = {"cultist_nearby"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])"; canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 1; ppEffect = 1;
}; };
class EPOCH_RyanZombie_1 : Default { class EPOCH_RyanZombie_1 : Default {
distance = 3; distance = 3;
toxicChance = 0.2; toxicChance = 0.1;
bloodpChance = 1; bloodpChance = 0.9;
fatigueChance = 0.5; fatigueChance = 0.4;
bleedAmount = 30; bleedAmount = 30;
bloodpAmount = 3; 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; soundEffectGlobal = 1;
animationEffect[] = {"AwopPercMstpSgthWnonDnon_throw"}; animationEffect[] = {"AwopPercMstpSgthWnonDnon_throw"};
animationEffectGlobal = 3; animationEffectGlobal = 3;
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])"; canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0; ppEffect = 0;
}; };
class EPOCH_RyanZombie_2 : EPOCH_RyanZombie_1 {}; class EPOCH_RyanZombie_2 : EPOCH_RyanZombie_1 {};

View File

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

View File

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

View File

@ -57,7 +57,9 @@ disableRandomization[] = {"All"};
#include "Configs\CfgMissionsTasks.hpp" #include "Configs\CfgMissionsTasks.hpp"
#include "Configs\cfgCrafting.hpp" #include "Configs\cfgCrafting.hpp"
#include "Configs\cfgPricing.hpp" #include "Configs\cfgPricing.hpp"
#include "Configs\CfgEpochClient.hpp" #include "Configs\CfgEpochClient.hpp"
#include "Configs\CfgMasterLoop.hpp" #include "Configs\CfgMasterLoop.hpp"
#include "Configs\CfgBaseBuilding.hpp" #include "Configs\CfgBaseBuilding.hpp"
#include "Configs\CfgSnapChecks.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"; _move = "epoch_unarmed_jump";
}; };
case 3: { case 3: {
_range = 400; _range = 1000;
_move = "AwopPercMstpSgthWnonDnon_throw"; _move = "AwopPercMstpSgthWnonDnon_throw";
} }
case 4: {
_range = 1000;
_move = "AmovPercMstpSnonWnonDnon_SaluteOut";
}
}; };
if (_range > 0 && _move != "") then { if (_range > 0 && _move != "") then {

View File

@ -43,3 +43,4 @@ if !(_this isEqualType []) then {
}]; }];
}; };
}forEach _this; }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