Files
DayZ-Epoch/SQF/dayz_code/compile/object_speak.sqf
oiad 0391fef4ff Update private tags
This was breaking scripts that use a variable called `_chance`

_chance = 30;
[player,"repair",0,false,50] call dayz_zombieSpeak;

_chance would get changed to 0
2019-01-05 11:12:29 +13:00

57 lines
1.6 KiB
Plaintext

private ["_chance","_dis","_isWoman","_local","_num","_rnd","_sound","_type","_unit"];
_unit = _this select 0;
_type = _this select 1;
_chance = _this select 2;
_dis = switch true do {
case (count _this > 4): {_this select 4};
case (_type in ["shout","hit","attack","scream","breath"]): {100};
default {40};
};
_local = false;
if (count _this > 3) then { _local = _this select 3; };
if (!_local) then {
// we override _local according to number of players inside _dis radius
_local = { _unit distance _x < _dis; } count playableUnits <= 1;
};
//diag_log(format["%1 dis:%2 local:%3", __FILE__, _dis, _local]);
_num = switch (_type) do {
default {0};
case "cough": {2};
case "chase": {14};
case "spotted": {13};
case "hit": {6};
case "attack": {13};
case "idle": {35};
case "scream": {4};
case "fracture": {1};
case "eat": {3};
case "cook": {2};
case "panic": {1};
case "dog_bark": {4};
case "dog_growl": {3};
case "dog_qq": {2};
case "keypad_tick": {2};
case "open_backpack": {4};
case "open_inventory": {4};
};
_isWoman = getText(configFile >> "cfgVehicles" >> (typeOf _unit) >> "TextPlural") == "Women";
if (_isWoman and (_type in ["scream","panic"])) then {
_type = _type + "_w";
};
if ((round(random _chance) == _chance) or (_chance == 0)) then {
_rnd = round(random _num);
_sound = "z_" + _type + "_" + str(_rnd);
if (_local) then {
_unit say [_sound, _dis];
} else {
[nil,_unit,rSAY,[_sound, _dis]] call RE;
};
};