Files
DayZ-Epoch/SQF/dayz_code/compile/object_speak.sqf
icomrade b96cd2d971 Update compiles - 2 more files to do
fn_selfActions.sqf
player_updateGui.sqf
2016-02-29 00:26:12 -05:00

67 lines
1.7 KiB
Plaintext

private ["_unit","_type","_chance","_rnd","_sound","_local","_dis","_num","_isWoman"];
_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;
};
_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 "flysound": {1};
case "open_backpack": {4};
case "open_inventory": {4};
};
if (count _this > 4) then {
_dis = _this select 4;
_local = ({isPlayer _x} count (_unit nearEntities ["AllVehicles",_dis]) < 2);
} else {
_local = _this select 3;
if (_type in ["shout","hit","attack","scream","breath","spotted"]) then {
_dis = 100;
} else {
_dis = 40;
};
};
_isWoman = getText(configFile >> "cfgVehicles" >> (typeOf _unit) >> "TextPlural") == "Women";
if (_isWoman and (_type in ["scream","panic"])) then {
_type = _type + "_w";
};
if ((round(random _chance) == _chance) || (_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;
};
};