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


Фотография

Пару вопросов по скриптам


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

#41 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 21:25

 

Итак, функция для определения доли текущего боекомплекта магазина турели относительно полного боекомплекта:

private ["_fullMagazineAmmoNumber", "_magazine", "_magazineAmmoNumber"];

params ["_vehicle", "_turretPath"];

_magazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _vehicle magazineTurretAmmo [_magazine, _turretPath];

_fullMagazineAmmoNumber = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count");

if (_fullMagazineAmmoNumber != 0) then {_magazineAmmoNumber / _fullMagazineAmmoNumber} else {0};

Использование:

vehicleAmmo = compileFinal (preprocessFileLineNumbers "vehicleAmmo.sqf");

_helicopter setVehicleAmmoDef (([_helicopter, (assignedVehicleRole player) select 1] call vehicleAmmo) + 0.1);

Однако в данном случае, поскольку путь к турели не меняется, можно функцию вызывать так:

[_helicopter, [-1]] call vehicleAmmo;

Только вернулся с копания картошки и тут такой сюрприз :)
PS: выдает ошибку  

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 0

#42 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 21:36

А из RPT-файла фрагмент можно?


  • 0

#43 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 21:40

А из RPT-файла фрагмент можно?

можно

20:39:38 Error in expression <gazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _veh>
20:39:38   Error position: <_turretPath;

_magazineAmmoNumber = _veh>
20:39:38   Error Неопределенная переменная в выражении: _turretpath
20:39:38 File C:\Users\admin\Documents\Arma 3 - Other Profiles\dimaS1k\missions\_DM20_Angry_Birds.VR\scripts\vehicleAmmo.sqf, line 5
20:39:39 Error in expression <gazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _veh>
20:39:39   Error position: <_turretPath;

_magazineAmmoNumber = _veh>
20:39:39   Error Неопределенная переменная в выражении: _turretpath
20:39:39 File C:\Users\admin\Documents\Arma 3 - Other Profiles\dimaS1k\missions\_DM20_Angry_Birds.VR\scripts\vehicleAmmo.sqf, line 5
20:39:40 Error in expression <gazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _veh>
20:39:40   Error position: <_turretPath;

_magazineAmmoNumber = _veh>
20:39:40   Error Неопределенная переменная в выражении: _turretpath
20:39:40 File C:\Users\admin\Documents\Arma 3 - Other Profiles\dimaS1k\missions\_DM20_Angry_Birds.VR\scripts\vehicleAmmo.sqf, line 5
20:39:41 Error in expression <gazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _veh>
20:39:41   Error position: <_turretPath;

_magazineAmmoNumber = _veh>
20:39:41   Error Неопределенная переменная в выражении: _turretpath
20:39:41 File C:\Users\admin\Documents\Arma 3 - Other Profiles\dimaS1k\missions\_DM20_Angry_Birds.VR\scripts\vehicleAmmo.sqf, line 5
20:39:42 Error in expression <gazine = _vehicle currentMagazineTurret _turretPath;

_magazineAmmoNumber = _veh>
20:39:42   Error position: <_turretPath;

_magazineAmmoNumber = _veh>
20:39:42   Error Неопределенная переменная в выражении: _turretpath
20:39:42 File C:\Users\admin\Documents\Arma 3 - Other Profiles\dimaS1k\missions\_DM20_Angry_Birds.VR\scripts\vehicleAmmo.sqf, line 5
20:39:44 "dimaS1k/BIS_fnc_log: [BIS_fnc_advHintArg] ["For %1. argument (action) in class %2 isn't defined key!",1,"#d09b43"]"
20:39:44 "dimaS1k/BIS_fnc_log: [BIS_fnc_advHintArg] ["For %1. argument (action) in class %2 isn't defined key!",2,"#d09b43"]"

  • 0

#44 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 21:44

Внеси изменения в вызов функции в соответствии с моими изменениями, но лучше всё-таки воспользуйся упрощённым вариантом вызова функции.


Сообщение отредактировал Schatten: 16 August 2015 - 21:45

  • 0

#45 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 21:53

Внеси изменения в вызов функции в соответствии с моими изменениями, но лучше всё-таки воспользуйся упрощённым вариантом вызова функции.

и изменениями длинный вариант работает, а вот при коротком ничего не происходит


  • 0

#46 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 22:08

и изменениями длинный вариант работает, а вот при коротком ничего не происходит

А у меня работает :) .

Как вызываешь функцию?


Сообщение отредактировал Schatten: 16 August 2015 - 22:09

  • 0

#47 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 22:12

helicopterRepair = {
	["DMSK_REPAIR_VEH", [localize "STR_DMSK_NTF_REPAIR"]] call BIS_fnc_showNotification;
	playsound "Repair";
	
	while {true} do {
		sleep 1;

		_helicopter = vehicle player;

		player setDamage ((damage player) - 0.2);
		_helicopter setDamage ((damage _helicopter) - 0.2);
		_helicopter setFuel ((fuel _helicopter) + 0.1);	
		//_helicopter setVehicleAmmoDef (([_helicopter, if (((assignedVehicleRole player) select 0) == "Driver") then {[-1]} else {(assignedVehicleRole player) select 1}] call vehicleAmmo) + 0.1);	
		[_helicopter, [-1]] call vehicleAmmo;
	};
};

вот так :)


  • 0

#48 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 22:18

Код

[_helicopter, [-1]] call vehicleAmmo;

возвращает число и... ничего с ним дальше не делается. А нужно к этому числу прибавить 0.1 и полученный результат использовать в качестве аргумента команды setVehicleAmmoDef, как это сделано в закоментированной выше строчке. Я надеюсь, понятно, к чему я клоню?


Сообщение отредактировал Schatten: 16 August 2015 - 23:04

  • 0

#49 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 22:25

Код

[_helicopter, [-1]] call vehicleAmmo;

возвращает число и... ничего с ним дальше не делается. А нужно к этому числу прибавить 0.1 и полученную сумму использовать в качестве аргумента функции setVehicleAmmoDef, как это сделано в закоментированной выше строчке. Я надеюсь, понятно, к чему я клоню?

к замене -1 на 0.1 ?


  • 0

#50 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 22:33

 

Код

[_helicopter, [-1]] call vehicleAmmo;

возвращает число и... ничего с ним дальше не делается. А нужно к этому числу прибавить 0.1 и полученную сумму использовать в качестве аргумента функции setVehicleAmmoDef, как это сделано в закоментированной выше строчке. Я надеюсь, понятно, к чему я клоню?

к замене -1 на 0.1 ?

 

Где смайл facepalm?!

_helicopter setVehicleAmmoDef (([_helicopter, [-1]] call vehicleAmmo) + 0.1);

Разбираем эту строчку: сначала вызывается функция vehicleAmmo, которая возвращает число; далее к этому числу прибавляется 0.1; и, наконец, результат суммы подаётся в качестве второго аргумента команде setVehicleAmmoDef, которая вертолёту _helicopter устанавливает нужное количество боекомплекта.


Сообщение отредактировал Schatten: 16 August 2015 - 23:04

  • 0

#51 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 16 August 2015 - 23:06

 

 

Код

[_helicopter, [-1]] call vehicleAmmo;

возвращает число и... ничего с ним дальше не делается. А нужно к этому числу прибавить 0.1 и полученную сумму использовать в качестве аргумента функции setVehicleAmmoDef, как это сделано в закоментированной выше строчке. Я надеюсь, понятно, к чему я клоню?

к замене -1 на 0.1 ?

 

Где смайл facepalm?!

_helicopter setVehicleAmmoDef (([_helicopter, [-1]] call vehicleAmmo) + 0.1);

Разбираем эту строчку: сначала вызывается функция vehicleAmmo, которая возвращает число; далее к этому числу прибавляется 0.1; и, наконец, эта сумма подаётся в качестве второго аргумента команде setVehicleAmmoDef, которая вертолёту _helicopter устанавливает нужное количество боекомплекта.

 

действительно стыд :)
а можешь подсказать, как мне реализовать выбор вертолета перед запуском миссии? 

в дискрипшене допустим я прописал так:

class Params {
    class TimeofDayHour { 
	    // paramsArray[0] 
        title = $STR_DMSK_TIME_TEXT; 
        values[] = {2,13}; 
        texts[] = {$STR_DMSK_TIME_NIGHT, $STR_DMSK_TIME_DAY}; 
        default = 13; 
     }; 
	class Timer {
		// paramsArray[1]
		title = $STR_DMSK_TIMER_TEXT;
		values[] = {900, 1800, 2700, 3600};
		texts[] = {$STR_DMSK_TIMER_15, $STR_DMSK_TIMER_30, $STR_DMSK_TIMER_45, $STR_DMSK_TIMER_60};
		default = 1800;
	};
    class VehicleType { 
	    // paramsArray[2] 
        title = $STR_DMSK_VEHTYPE_TEXT; 
        values[] = {0,1}; 
        texts[] = {$STR_DMSK_VEHTYPE_1, $STR_DMSK_VEHTYPE_2}; 
        default = 0; 
     }; 	 
};

в onPlayerRespawn.sqf добавил это:

_vehicleColor = ["#(argb,8,8,3)color(1,0.1,0,0.3)","#(argb,8,8,3)color(1,0.5,0,0.4)","#(argb,8,8,3)color(1,0.8,0,0.4)","#(argb,8,8,3)color(0,1,0,0.15)","#(argb,8,8,3)color(0,1,1,0.15)","#(argb,8,8,3)color(0,0.2,1,0.75)","#(argb,8,8,3)color(0.8,0,1,0.1)"] call BIS_fnc_selectRandom; // Выбираем рандомный цвет
_vehicle = createVehicle [vehicleType, _markerPosition, [], DIST, "FLY"]; // Транспорт будет создан где-то в зоне с центром _markerPosition и радиусом DIST

а вот что в init.sqf прописать, никак не соображу.
пытаюсь делать по примеру изменения времени, но пока ничего не получается :(
 

curTimeHour = (paramsArray select 0);
setDate [2035, 7, 1, curTimeHour, 0];

  • 0

#52 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 August 2015 - 23:10

а можешь подсказать, как мне реализовать выбор вертолета перед запуском миссии?

Не могу - не работал, не знаю, к сожалению.
  • 0

#53 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 17 August 2015 - 02:40

Почитал немного...
Твои параметры можно извлечь так:

timeofDayHour = "TimeofDayHour" call BIS_fnc_getParamValue;
timer = "Timer" call BIS_fnc_getParamValue;
vehicleType = "VehicleType" call BIS_fnc_getParamValue;

Раскидаешь эти строчки в зависимости от стороны, где они нужны (сервер или игрок).
 
Немного улучшений в onPlayerRespawn.sqf:

_vehicleColor = [
	"(1,0.1,0,0.3)",
	"(1,0.5,0,0.4)",
	"(1,0.8,0,0.4)",
	"(0,1,0,0.15)",
	"(0,1,1,0.15)",
	"(0,0.2,1,0.75)",
	"(0.8,0,1,0.1)"
] call BIS_fnc_selectRandom;

_vehicleTexture = "#(argb,8,8,3)color" + _vehicleColor;

_vehicle = createVehicle [vehicleType, _markerPosition, [], DIST, "FLY"];

...

Однако объект _vehicle не будет создан, поскольку vehicleType число, а не название класса.
 

пытаюсь делать по примеру изменения времени, но пока ничего не получается :(
 

curTimeHour = (paramsArray select 0);
setDate [2035, 7, 1, curTimeHour, 0];

Что происходит? Откуда запускается код? Код нужно запустить только на сервере.


Сообщение отредактировал Schatten: 17 August 2015 - 02:41

  • 0

#54 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 17 August 2015 - 08:58

Это все у меня в init.sqf прописано.
Вот его полное содержимое:
 

// Прозрачность маркеров
"respawn_east" setMarkerAlpha 0;

// DM mode epta (FFA mode)
east setFriend [east, 0.1];

// Брифинг
call compile preprocessfilelinenumbers "briefing.sqf";
// Настройка TFAR
call compile preprocessfilelinenumbers "scripts\tfar_config.sqf";

// Disable BIS Conversations
{_x setvariable ["BIS_noCoreConversations", true, true]} foreach allunits;
enableRadio false;
enableSentences false;

// ===	Disable playableUnits chatter
{_x setSpeaker "NoVoice";} forEach playableUnits;

// Настройка времени
curTimeHour = (paramsArray select 0);
setDate [2035, 7, 1, curTimeHour, 0];

// Настройка таймера
timerTime = paramsArray select 1;
if (isServer) then {[] spawn Timer_fnc_timerServer} else {[] spawn Timer_fnc_timerClient};

// Интро
_DMSK_intro = [] spawn {
					["video\ARMA_3.ogv"] spawn BIS_fnc_titlecard;	
					waitUntil {!(isNil "BIS_fnc_titlecard_finished")};				
};
WaitUntil{scriptDone _DMSK_intro};  // Ожидание концовки интро

// Отключение сохранения
enableSaving [ false, false ];

Так же в initPlayerLocal.sqf прописано:

//DM (FFA)
player addRating -100000;

я так понимаю, из за этого не показываются на радаре игроки?


  • 0

#55 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 17 August 2015 - 09:26

В миссии для "вдохновления", сделано так:
 

description.ext

class CLY_rage_vehicleTypeIndex
	{
	title = "Aircraft:";
	values[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	texts[] = {"A-143 Buzzard", "A-10 Thunderbolt II (Arma 2)", "A-10 Thunderbolt II (Operation Arrowhead)", "AV-8B Harrier II (Arma 2)", "F-35B Lightning II (Arma 2)", "L-39ZA Albatros (Operation Arrowhead)", "Su-25K Frogfoot (Operation Arrowhead)", "Su-25TM Frogfoot (Arma 2)", "Su-34 Fullback (Arma 2)", "F/A-18E Super Hornet (addon)"};
	default = 0;
	};

init.sqf

CLY_rage_vehicleTypes = ["I_Plane_Fighter_03_AA_F", "A10", "A10_US_EP1", "AV8B2", "F35B", "L39_TK_EP1", "Su25_TK_EP1", "Su39", "Su34", "JS_JC_FA18E"];

jrRoutines.sqf

waitUntil {{isNil _x} count ["CLY_DM_end", "CLY_rage_vehicleTypeIndex", "CLY_rage_damageMultiplier"] == 0};
waitUntil {!isNull player};

CLY_rage_vehicleType = CLY_rage_vehicleTypes select CLY_rage_vehicleTypeIndex;
if (!isClass (configFile / "CfgVehicles" / CLY_rage_vehicleType)) then
{
	CLY_rage_vehicleType = CLY_rage_vehicleTypes select 0;
	29 cutText ["\n\nThe plane selected in the mission parameters does not exist in your game!\n\nReverting to A-143 Buzzard.", "PLAIN", 1];
};

//--- Spawn jet
CLY_rage_vehicle = objNull;
[] spawn
{
	while {!CLY_DM_end} do
	{
		waitUntil {alive player};
		sleep 0.001;
		removeBackpack player;
		player addWeapon "NVGoggles";
		player setDir ([player, markerPos "respawn_independent"] call BIS_fnc_dirTo);
		_dir = vectorDir player;
		_vehicle = createVehicle [CLY_rage_vehicleType, [0, 0, 100 + random 5000], [], 0, "FLY"];
		_vehicle setPosASL [getPosASL player select 0, getPosASL player select 1, 400 + random 50];
		_vehicle setVectorDir _dir;
		_vehicle setVectorUp [0, 0, 1];
		_landingSpeed = getNumber (configFile / "CfgVehicles" / CLY_rage_vehicleType / "landingSpeed");
		_maxSpeed = getNumber (configFile / "CfgVehicles" / CLY_rage_vehicleType / "maxSpeed");
		_velocity = (_landingSpeed + _maxSpeed) / 2 / 3.6;
		_vehicle setVelocity [_velocity * (_dir select 0), _velocity * (_dir select 1), 0];
		_vehicle setFuel 0.5;
		if (CLY_rage_vehicleType in ["JS_JC_FA18E", "JS_JC_FA18F"]) then
		{
			[_vehicle, "js_m_fa18_aim9x_x1", "js_m_fa18_aim9x_x1","js_m_fa18_aim9x_x1","js_m_fa18_aim9x_x1","js_m_fa18_aim120c_x1","js_m_fa18_aim120c_x1", "js_m_fa18_aim120c_x1", "js_m_fa18_aim120c_x1", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty", "js_m_fa18_empty","js_m_fa18_empty"] call fa18_dynamic_loadoutscript;
			_vehicle removeWeapon "js_w_master_arms_safe";
		};
		CLY_rage_missileWeapons = [];
		CLY_rage_rocketWeapons = [];
		_removeMagazines = [];
		{
			_weapon = _x;
			_magazines = getArray (configFile / "CfgWeapons" / _weapon / "magazines");
			_magazine = if (count _magazines > 0) then {_magazines select 0} else {""};
			_ammo = getText (configFile / "CfgMagazines" / _magazine / "ammo");
			if (getText (configFile / "CfgAmmo" / _ammo / "simulation") == "shotMissile") then
			{
				while {_vehicle ammo _weapon > 0} do
				{
					_vehicle setAmmo [_weapon, 0];
					reload _vehicle;
				};
				if (getNumber (configFile / "CfgAmmo" / _ammo / "airLock") > 0) then
				{
					CLY_rage_missileWeapons set [count CLY_rage_missileWeapons, _weapon];
				}
				else
				{
					_vehicle removeWeapon _weapon;
					{_removeMagazines set [count _removeMagazines, _x];} forEach _magazines;
				};
			};
			if (getText (configFile / "CfgAmmo" / _ammo / "simulation") == "shotRocket") then
			{
				if (getNumber (configFile / "CfgAmmo" / _ammo / "thrust") == 0) then
				{
					while {_vehicle ammo _weapon > 0} do
					{
						_vehicle setAmmo [_weapon, 0];
						reload _vehicle;
					};
					_vehicle removeWeapon _weapon;
					{_removeMagazines set [count _removeMagazines, _x];} forEach _magazines;
				}
				else
				{
					CLY_rage_rocketWeapons set [count CLY_rage_rocketWeapons, _weapon];
				};
			};
		} forEach weapons _vehicle;
		{
			_vehicle removeMagazines _x;
		} forEach _removeMagazines;
		//--- Runway touching EH
		CLY_rage_runwayTouched = time - CLY_rage_runwayCooldown;
		_vehicle addEventHandler
		[
			"LandedTouchDown",
			{
				_unit = _this select 0;
				if (time > CLY_rage_runwayTouched + CLY_rage_runwayCooldown) then
				{
					if (_unit in list CLY_rage_runway) then
					{
						_unit setVehicleAmmo 1;
						_unit setFuel 1;
						_unit setDamage 0;
						CLY_rage_runwayTouched = time;
						_text = if (count CLY_rage_missileWeapons > 0) then
						{
							"You now have air-to-air missiles."
						}
						else
						{
							"Your plane is fully resupplied."
						};
						["Resupplied", [_text]] call BIS_fnc_showNotification;
					};
				};
			}
		];
		//--- Cannon damage amplifier
		_vehicle addEventHandler
		[
			"HandleDamage",
			{
				_unit = _this select 0;
				_damage = _this select 2;
				_ammo = _this select 4;
				if (_this select 1 == "") then
				{
					if (getText (configFile / "CfgAmmo" / _ammo / "simulation") == "shotBullet") then
					{
						_oldDamage = damage _unit;
						_damage = _damage - _oldDamage;
						_damage = _damage * CLY_rage_damageMultiplier;
						_damage = _oldDamage + _damage;
					};
					_unit setHitPointDamage ["HitHull", _damage];
					if (_damage > 0.99) then
					{
						_damage = 1;
					};
				};
				_damage;
			}
		];
		//--- Remove EHs when dead
		_vehicle addEventHandler
		[
			"Killed",
			{
				_unit = _this select 0;
				{
					_unit removeAllEventHandlers _x;
				} forEach ["LandedTouchDown", "HandleDamage", "Killed"];
			}
		];
		//--- Sensor jammer
		_vehicle addAction
		[
			"<t font='EtelkaMonoSpacePro' size='1' color='#00ffff'>Activate sensor jammer</t> <img image='\A3\ui_f\data\map\Diary\signal_ca.paa'>",
			{
				_vehicle = _this select 0;
				_vehicle setVariable ["CLY_rage_jamming", true, true];
				["JammerOn", ["You are now invisible on your enemies' displays."]] call BIS_fnc_showNotification;
			},
			nil,
			10,
			false,
			true,
			"",
			"alive _this && _this == driver _target && !(_target getVariable ['CLY_rage_jamming', false]) && fuel _target > 0.02"
		];
		_vehicle addAction
		[
			"<t font='EtelkaMonoSpacePro' size='1' color='#ffff00'>Deactivate sensor jammer</t> <img image='\A3\ui_f\data\map\Diary\signal_ca.paa'>",
			{
				_vehicle = _this select 0;
				_vehicle setVariable ["CLY_rage_jamming", false, true];
				["JammerOff", ["Your enemies can see you on their displays again."]] call BIS_fnc_showNotification;
			},
			nil,
			10,
			false,
			true,
			"",
			"alive _this && _this == driver _target && (_target getVariable ['CLY_rage_jamming', false])"
		];
		//--- New plane
		/*if (CLY_rage_respawn) then
		{
			deleteVehicle CLY_rage_vehicle;
		}
		else
		{
			_vehicle addAction
			[
				"<t font='EtelkaMonoSpacePro' size='1' color='#ff0000'>Get new plane</t>",
				{
					player setPosASL [getPosASL player select 0, getPosASL player select 1, 10000];
					CLY_rage_respawn = true;
				},
				nil,
				11,
				true,
				true,
				"",
				"alive _this && _this == driver _target && getPos _target select 2 < 5 && abs speed _target < 3"
			];
		};*/
		//--- Final adjustments
		player moveInDriver _vehicle;
		player action ["MANUALFIRE", _vehicle];
		_vehicle lock true;
		CLY_rage_vehicle = _vehicle;
		CLY_rage_respawn = false;
		26 cutText ["", "BLACK IN", 3];
		waitUntil {sleep 0.2;(!alive player || CLY_rage_respawn)};
		if (!alive player) then
		{
			CLY_rage_vehicle = objNull;
		};
	};
};

//--- Player routines
_wait = 0.1;
_lastLoop = time;
_deltaInStore = 0;
while {!CLY_DM_end} do
{
	_lastLoop = time;
	sleep _wait;
	_delta = time - _lastLoop;
	_deltaInStore = _deltaInStore + _delta;
	_deltaModifier = _delta / _wait;
	_vehicle = vehicle player;
	if (alive _vehicle && _vehicle != player) then
	{
		if (_vehicle getVariable ["CLY_rage_jamming", false]) then
		{
			if (isEngineOn _vehicle) then
			{
				if (fuel _vehicle > 0.02) then
				{
					_vehicle setFuel (fuel _vehicle - (0.05 * _wait) * _deltaModifier) max 0.02;
				}
				else
				{
					_vehicle setVariable ["CLY_rage_jamming", false, true];
					["FuelLow", ["The sensor jammer is now offline."]] call BIS_fnc_showNotification;
				};
			};
		};
		_inValley = false;
		if (getPos _vehicle select 2 > 0) then
		{
			if (abs speed _vehicle > 1) then
			{
				if (terrainIntersectASL [getPosASL _vehicle, [getPosASL _vehicle, 500, getDir _vehicle + 90] call BIS_fnc_relPos]) then
				{
					if (terrainIntersectASL [getPosASL _vehicle, [getPosASL _vehicle, 500, getDir _vehicle - 90] call BIS_fnc_relPos]) then
					{
						_inValley = true;
					};
				};
			};
		};
		if (_inValley) then
		{
			_vehicle setFuel (fuel _vehicle + (0.1 * _wait) * _deltaModifier);
			_vehicle setDamage (damage _vehicle - (0.1 * _wait) * _deltaModifier);
			{
				if !(_x in CLY_rage_missileWeapons) then
				{
					if !(_x in CLY_rage_rocketWeapons) then
					{
						_vehicle setAmmo [_x, (_vehicle ammo _x) + 2];
					}
					else
					{
						_vehicle setAmmo [_x, (_vehicle ammo _x) + 1];
					};
				};
			} forEach ((_vehicle weaponsTurret [-1]) + (_vehicle weaponsTurret [0]));
		};
	};
};

На всякий случай, прикрепляю саму миссию: Прикрепленный файл  dm20_jet-rage.stratis.rar   57.95К   1 Количество загрузок:

ЗЫ: а можно еще от туда как то выдрать генератор помех(ECM)? Если конечно можно как то заставить работать радар.

 


  • 0

#56 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 18 August 2015 - 01:49

Это все у меня в init.sqf прописано.

Надо распределить код с помощью isServer, isDedicated, или раскидать по определённым файлам.
 

Так же в initPlayerLocal.sqf прописано:

//DM (FFA)
player addRating -100000;
я так понимаю, из за этого не показываются на радаре игроки?

 

Должны показываться, в виде оранжевых маркеров, но не сразу, поскольку это враги.

По-моему, лучше воспользоваться стороной Independent - включить недружественность всем. И не надо будет работать с рейтингом.


  • 0

#57 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 18 August 2015 - 09:09

 

Это все у меня в init.sqf прописано.

Надо распределить код с помощью isServer, isDedicated, или раскидать по определённым файлам.
 

Так же в initPlayerLocal.sqf прописано:

//DM (FFA)
player addRating -100000;
я так понимаю, из за этого не показываются на радаре игроки?

 

Должны показываться, в виде оранжевых маркеров, но не сразу, поскольку это враги.

По-моему, лучше воспользоваться стороной Independent - включить недружественность всем. И не надо будет работать с рейтингом.

 

у меня все враги на одной стороне на одной стороне.


  • 0

#58 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 20 August 2015 - 09:30

Вопрос с выбором техники я решил, с ним так же и отпал вопрос про радар. На всех вертолетах, кроме AH-9 он работает.


  • 0

#59 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 20 August 2015 - 15:53

а можно еще от туда как то выдрать генератор помех(ECM)?

Конечно можно. Нужно выдрать код, работающий с переменной CLY_rage_jamming.
 

Вопрос с выбором техники я решил, с ним так же и отпал вопрос про радар. На всех вертолетах, кроме AH-9 он работает.

Можно фото работающего и неработающего радара?


  • 0

#60 OFFLINE   dimaS1k

dimaS1k

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Moscow

Отправлено 20 August 2015 - 16:09

 

а можно еще от туда как то выдрать генератор помех(ECM)?

Конечно можно. Нужно выдрать код, работающий с переменной CLY_rage_jamming.
 

Вопрос с выбором техники я решил, с ним так же и отпал вопрос про радар. На всех вертолетах, кроме AH-9 он работает.

Можно фото работающего и неработающего радара?

 

На AH-9 он просто для красоты получается, а например на AH-99 он показывает на нем метки (треугольники) фрагов. Сейчас никого нет, что бы протестить в сетевой игре, так бы заскринил.
Кстати на двухместных вертолетах функция перезарядки оружия не работает, например на AH-99 он перезаряжает 1 птур из 4, так же и с патронами к пушке до 300.

PS: выдрать у меня получилось только addaction, а вот как примудрить код связанный с CLY_rage_jamming я не разобрался :( Хотя он не настолько и нужен на дм для вертолетов :)


Сообщение отредактировал dimaS1k: 20 August 2015 - 16:11

  • 0




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