Перейти к содержимому


Фотография

Защита от радиации в скрипте.


Лучший Ответ vlad333000 , 18 February 2016 - 11:03

после:

...
} foreach _rad_obj;
вставляем:
if ((uniform player) in ["U_C_Scientist",<униформа_2>,...,<униформа_N>]) then
{
   _Dr_h = 0;
};
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 OFFLINE   Targon

Targon

    Ефрейтор

  • Пользователи
  • 36 сообщений

Отправлено 18 February 2016 - 10:45

Доброго времени суток товарищи.

 

Имеется данный код скрипта радиации.

private ["_rad_obj","_lasts","_Dr_h","_Dr_hx","_zr"];
_rad_obj = [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b30,b31,b32,b33,b34,b35,b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46]; /// объекты излучающие радиацию
b4 setvariable ["rad",400]; /// мощность излучения 400 ед. - если не присваивать мощность, то она будет 100 ед.
_lasts = 0;
dr_r = 0; /// полученная доза заражение игрока, 
/** мощность излучения объекта, расстояние излучения 100 ед = 100 м **/
#define dr (if (isnil {_x getvariable "rad"}) then {100} else {(_x getvariable "rad")})
for "" from 0 to 1 step 0 do {
	_Dr_h = 0; 
	{
		_Dr_hx = 0; 
		_zr = player distance _x;   
		if (_zr < dr) then {
			_DR_hx = (floor (dr - _zr) / 10); /// уровень радиации объекта
			_DR_h = _DR_h + _DR_hx - (if (vehicle player != player) then {_DR_hx / 10} else {0}); /// общий уровень радиации, -10% если игрок в транспорте
			if (_DR_hx > dr_r) then {
				dr_r = dr_r + (_DR_hx / 1000)
			}
		};
	} foreach _rad_obj;
	if (_Dr_h > 0) then { hintSilent parseText format ["<t color='#FFD500' shadow='1'>Радиация - %1 мкР<br/><t color='#61B35E'>Здоровье - %2%3<br/><t color='#FB3600'>Заражение - %4 мкР</t>", _DR_h, (1 - getDammage player) * 100, "%", dr_r];};
	if (_Dr_h > 0) then {
		playsound "geiger"
	};
	player setDammage ((getDammage player) + (dr_r / 1000));
	sleep 1;
};

Как сделать так, что если на игроке одета униформа ученого например, то доза полученой радиации будем меньше.

 

В данном куске кода прописано что если игрок в транспорте то получение дозы уменьшается на 10% иначе 0.

_DR_h = _DR_h + _DR_hx - (if (vehicle player != player) then {_DR_hx / 10} else {0}); /// общий уровень радиации, -10% если игрок в транспорте

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 18 February 2016 - 11:03   Лучший Ответ

после:
...
} foreach _rad_obj;
вставляем:
if ((uniform player) in ["U_C_Scientist",<униформа_2>,...,<униформа_N>]) then
{
   _Dr_h = 0;
};

Сообщение отредактировал vlad333000: 18 February 2016 - 11:03

  • 0




Яндекс.Метрика