mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
05bbb9a14e
add loot class override variable epochLootClass, to allow all zed classes to return BE filter updates for extra zombie classes added loot table for zombies. added looting of Dogs for meat with negative karma. cooking of dog meat. loot configs for shark interactAttributes format changed to an array ["Hunger",100,1] // CustomVarName, value, make value randomized. BE updates and fixes new function EPOCH_giveAttributes
157 lines
4.8 KiB
Plaintext
157 lines
4.8 KiB
Plaintext
_currentTarget = objNull;
|
|
_currentTargetMode = 0;
|
|
_cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
|
|
if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then {
|
|
_interactType = typeOf _cursorTarget;
|
|
_interaction = (_cfgObjectInteractions >> _interactType);
|
|
if (isClass(_interaction)) then {
|
|
_currentTargetMode = getNumber (_interaction >> "interactMode");
|
|
_allowTarget = switch (getNumber (_interaction >> "aliveState")) do {
|
|
case 1: {!(alive _cursorTarget)};
|
|
case 2: {(alive _cursorTarget)};
|
|
default {true};
|
|
};
|
|
if (_allowTarget) then {
|
|
_currentTarget = _cursorTarget;
|
|
};
|
|
} else {
|
|
// AllVehicles = vehicles=0, bases=1
|
|
if (_cursorTarget isKindOf "AllVehicles") then {
|
|
_currentTarget = _cursorTarget;
|
|
} else {
|
|
if (_cursorTarget isKindOf "Constructions_modular_F" || _cursorTarget isKindOf "Constructions_static_F") then {
|
|
_currentTargetMode = 1;
|
|
_currentTarget = _cursorTarget;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
EPOCH_currentTarget = _currentTarget;
|
|
EPOCH_currentTargetMode = _currentTargetMode;
|
|
|
|
_increaseStamina = false;
|
|
_vehicle = vehicle player;
|
|
if (_vehicle == player) then {
|
|
_val = log(abs(speed player));
|
|
_staminaThreshold = 0.7;
|
|
if (EPOCH_playerIsSwimming) then {_staminaThreshold = 0.3};
|
|
if (_val>_staminaThreshold) then {
|
|
EPOCH_playerStamina = (EPOCH_playerStamina - (_val/4)) max 0;
|
|
} else {
|
|
_increaseStamina = true;
|
|
};
|
|
} else {
|
|
if (EPOCH_buildMode > 0) then {
|
|
EPOCH_buildMode = 0;
|
|
EPOCH_snapDirection = 0;
|
|
["BUILD MODE: DISABLED", 5] call Epoch_message;
|
|
EPOCH_Target = objNull;
|
|
};
|
|
_increaseStamina = true;
|
|
|
|
// TODO: move back to vehicle configs
|
|
switch (typeOf _vehicle) do {
|
|
case "jetski_epoch": {
|
|
_clock_hour10 = floor ((date select 3)/10);
|
|
_clock_minute10 = floor ((date select 4)/10);
|
|
{
|
|
_vehicle setObjectTexture [_forEachIndex,_x];
|
|
}forEach[
|
|
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_hour10],
|
|
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 3)-(_clock_hour10*10)],
|
|
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_minute10],
|
|
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 4)-(_clock_minute10*10)],
|
|
format["\x\addons\a3_epoch_vehicles\data\fuel%1_ca.paa",floor(fuel _vehicle*10)]
|
|
];
|
|
};
|
|
case "ebike_epoch": {
|
|
{
|
|
_vehicle setObjectTexture [_forEachIndex,_x];
|
|
}forEach[
|
|
format["\x\addons\a3_epoch_vehicles\data\speed%1_ca.paa",floor(speed _vehicle/9) max 0],
|
|
format["\x\addons\a3_epoch_vehicles\data\energ%1_ca.paa",floor(fuel _vehicle*14)]
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
_envCold = EPOCH_playerTemp <= 95.0;
|
|
_envHot = EPOCH_playerTemp >= 106.7;
|
|
_hungry = EPOCH_playerHunger <= 0;
|
|
_thirsty = EPOCH_playerThirst <= 0;
|
|
_warnbloodPressure = EPOCH_playerBloodP > 120;
|
|
|
|
_thirst ctrlShow (EPOCH_playerThirst <= 625);
|
|
if (ctrlShown _thirst) then {
|
|
[_thirst,_thirsty] call _fadeUI;
|
|
_color = [2500,0,EPOCH_playerThirst,1] call EPOCH_colorRange;
|
|
_thirst ctrlSetTextColor _color;
|
|
};
|
|
|
|
_hunger ctrlShow (EPOCH_playerHunger <= 1250);
|
|
if (ctrlShown _hunger) then {
|
|
[_hunger,_hungry] call _fadeUI;
|
|
_color = [5000,0,EPOCH_playerHunger,1] call EPOCH_colorRange;
|
|
_hunger ctrlSetTextColor _color;
|
|
};
|
|
|
|
_playerOxygen = getOxygenRemaining player;
|
|
_oxygen ctrlShow (_playerOxygen < 1);
|
|
if (ctrlShown _oxygen) then {
|
|
[_oxygen,(_playerOxygen <= 0.55)] call _fadeUI;
|
|
_color = [0,1,_playerOxygen,1] call EPOCH_colorRange;
|
|
_oxygen ctrlSetTextColor _color;
|
|
};
|
|
|
|
_hazzard ctrlShow (EPOCH_playerToxicity > 35);
|
|
if (ctrlShown _hazzard) then {
|
|
[_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI;
|
|
_color = [0,100,EPOCH_playerToxicity,1] call EPOCH_colorRange;
|
|
_hazzard ctrlSetTextColor _color;
|
|
};
|
|
|
|
_legDamage = player getHitPointDamage "HitLegs";
|
|
_broken ctrlShow (_legDamage >= 0.5);
|
|
if (ctrlShown _broken) then {
|
|
[_broken,true] call _fadeUI;
|
|
_color = [1,0,_legDamage,1] call EPOCH_colorRange;
|
|
_broken ctrlSetTextColor _color;
|
|
};
|
|
|
|
if (_envCold || _envHot || _hungry || _thirsty) then {
|
|
if (_envHot || _envCold) then {
|
|
player setFatigue 1;
|
|
};
|
|
EPOCH_playerBloodP = (EPOCH_playerBloodP + 0.05) min 190;
|
|
_increaseStamina = false;
|
|
} else {
|
|
if (EPOCH_playerStamina > 0) then {
|
|
if !(_panic) then {
|
|
if (!_warnbloodPressure) then {
|
|
player setFatigue 0;
|
|
};
|
|
EPOCH_playerBloodP = EPOCH_playerBloodP - 1 max 100;
|
|
};
|
|
};
|
|
};
|
|
|
|
_critical = (damage player >= 0.7 || _warnbloodPressure);
|
|
_emergency ctrlShow _critical;
|
|
if (ctrlShown _emergency) then {
|
|
[_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI;
|
|
_color = [180,100,EPOCH_playerBloodP,1] call EPOCH_colorRange;
|
|
_emergency ctrlSetTextColor _color;
|
|
};
|
|
|
|
if (EPOCH_playerBloodP >= 180) then {
|
|
true call EPOCH_pushCustomVar;
|
|
};
|
|
if (_increaseStamina && (getFatigue player) == 0) then {
|
|
EPOCH_playerStamina = (EPOCH_playerStamina + 0.5) min EPOCH_playerStaminaMax;
|
|
};
|
|
if (EPOCH_debugMode) then {
|
|
call EPOCH_debugMonitor;
|
|
};
|
|
|
|
call EPOCH_TradeLoop;
|