mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
87c23b106f
* first build for 0.3.8 * 0.3.8.0190 * 0.3.8.0202 * 0.3.8.0213 * 0.3.7.0214 * 0.3.8.0222 * 0.3.8.0246 * 0.3.8.0247 fixed typo * 0.3.8.0249 more fixes for server compiler * 0.3.8.0256 * add build number and simple batch file for packing * match build number with internal * add build numbers to server pbo's and mission files also reworked build script for more options * 0.3.8.0261 * 0.3.8.0261 * 0.3.8.0283 * 0.3.8.0284 * changelog * 0.3.8.0307 * 0.3.8.0311 * remove old BEC plugin * update redis-server.exe to latest build and full config * 0.3.8.0314 * 0.3.8.0315 * inverse logic This should correctly prevent spawning these units nearby jammer or protection zones * use pushbackUnique here * optimized loot function by using selectRandom instead of slower sqf logic * 0.3.8.0316 * make use of new getDir functionality instead of BIS fnc * add lower disconnect value to server.cfg * use new getpos functionality * 0.3.8.0317 * 0.3.8.0319 * 0.3.8.0327 * 0.3.8.0338 changelog update tba * changelog * 0.3.8.0341 * BE update * 0.3.8.0353 * changelog * removed duplicates * 0.3.8.0355 fixed error in getIDC * 0.3.8.0356 revert to BIS_fnc_param as params threw errors * 0.3.8.0357 fixes for #496 #497 * 0.3.8.0359 fixed #497 fixed #496 * 0.3.8.0365 * 0.3.8.0371 * 0.3.8.0373 * 0.3.8.0379 * 0.3.8.0381 * 0.3.8.0386 * 0.3.8.0393 * 0.3.8.0395 * 0.3.8.0396 * 0.3.8.0397 * 0.3.8.0406 * 0.3.8.0409 * 0.3.8.0410 loot balance suppress error in spawnloot make near object check based on building size * 0.3.8.0412 * 0.3.8.0414 removed classes with scope 0 test remove loot trash on gear for #498 fixed #501 * 0.3.8.0415 * same
150 lines
4.2 KiB
Plaintext
150 lines
4.2 KiB
Plaintext
/*
|
|
Author: Aaron Clark - EpochMod.com
|
|
|
|
Contributors:
|
|
|
|
Description:
|
|
Performs damage related effects
|
|
|
|
Licence:
|
|
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
|
|
|
Github:
|
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf
|
|
|
|
Example:
|
|
[cursorTarget,_index] call EPOCH_upgradeBUILD;
|
|
|
|
Parameter(s):
|
|
_this: OBJECT - Player
|
|
|
|
Returns:
|
|
NOTHING
|
|
*/
|
|
private ["_distance","_toxicChance","_bloodpChance","_fatigueChance","_bleedAmount","_bloodpAmount","_soundEffect","_canSee","_ppEffect","_bleedChance","_soundEffectIndex","_soundEffectGlobal"];
|
|
if !(isNull _this && alive _this) then {
|
|
|
|
_distance = 5;
|
|
_toxicChance = 0.1;
|
|
_bleedChance = 1;
|
|
_bloodpChance = 0;
|
|
_fatigueChance = 0.1;
|
|
|
|
_bleedAmount = 30;
|
|
_bloodpAmount = 2;
|
|
|
|
_soundEffect = -1;
|
|
_soundEffectGlobal = false;
|
|
_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;
|
|
};
|
|
};
|
|
|
|
if ((_this distance player) < _distance && _canSee) then {
|
|
_soundEffectIndex = EPOCH_sounds find _soundEffect;
|
|
if (_soundEffectIndex != -1) then {
|
|
_this say3D _soundEffect;
|
|
if (_soundEffectGlobal) then {
|
|
[player, _this, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",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;
|
|
};
|
|
};
|
|
};
|