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


Фотография

BIS_fnc_spawnGroup.


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

#21 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 21 August 2014 - 00:23

Товарищу SteelRat - проверьте пожалуйста, все работает и тима бегом бежит в свой виекл и не поверите, садиться и едет на своем виекле к своему вэйпоинту! 8)  

 

_APCGrp = [getMarkerPos "MrkGrp", EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> ("OIA_InfTeam"), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;

_APC = "O_APC_Wheeled_02_rcws_F" createVehicle (getMarkerPos "MrkVeh");

createvehiclecrew _APC;

_crewAPC = crew _APC;

_crewAPC joinsilent _APCGrp;

_APCGrp addVehicle _APC;

_wp = _APCGrp addWaypoint [position leader _APCGrp, 3000];

_wp setWaypointLoiterType "CIRCLE";

_wp setWaypointSpeed "LIMITED";

_wp setWaypointBehaviour "SAFE";

_wp = _APCGrp addWaypoint [waypointPosition [position leader _APCGrp, 1], 0];

_wp setWaypointType "CYCLE";


  • 0

#22 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 21 August 2014 - 03:31

Ну таки, я вас поздравляю, с удачно проведённой операцией!

Что проверить? 


  • 1

#23 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 21 August 2014 - 18:32

Ну таки, я вас поздравляю, с удачно проведённой операцией!

Что проверить? 

В принципе да, именно тут проверять нечего. Чирякну сейчас весь код и буду надеяться на вашу рецензию!)

А пока возник еще вопрос, если вы не против?! :pardon:

Есть ли возможность реализовать данный спавн на дороге - т.е.:

Ставлю триггер 500 х 500 - и если в зоне триггера есть дорога (любая) - то на дороге спавнится мой виекл. Если дороги нету в зоне триггера то виекл и группа не спавнится. 

Или есть другой вариант спавнить виекл с группой не в лесу меж сосен, а на дороге ну или на каком либо другом подходящем рэндомном месте. (Во загнул). 


  • 0

#24 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 21 August 2014 - 19:10

 

Ну таки, я вас поздравляю, с удачно проведённой операцией!

Что проверить? 

В принципе да, именно тут проверять нечего. Чирякну сейчас весь код и буду надеяться на вашу рецензию!)

А пока возник еще вопрос, если вы не против?! :pardon:

Есть ли возможность реализовать данный спавн на дороге - т.е.:

Ставлю триггер 500 х 500 - и если в зоне триггера есть дорога (любая) - то на дороге спавнится мой виекл. Если дороги нету в зоне триггера то виекл и группа не спавнится. 

Или есть другой вариант спавнить виекл с группой не в лесу меж сосен, а на дороге ну или на каком либо другом подходящем рэндомном месте. (Во загнул). 

 

Попробуйте сначала сами, ну типа практическое занятие, ну а я помогу, если понадобится)

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


  • 1

#25 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 22 August 2014 - 22:50

 

 

Ну таки, я вас поздравляю, с удачно проведённой операцией!

Что проверить? 

В принципе да, именно тут проверять нечего. Чирякну сейчас весь код и буду надеяться на вашу рецензию!)

А пока возник еще вопрос, если вы не против?! :pardon:

Есть ли возможность реализовать данный спавн на дороге - т.е.:

Ставлю триггер 500 х 500 - и если в зоне триггера есть дорога (любая) - то на дороге спавнится мой виекл. Если дороги нету в зоне триггера то виекл и группа не спавнится. 

Или есть другой вариант спавнить виекл с группой не в лесу меж сосен, а на дороге ну или на каком либо другом подходящем рэндомном месте. (Во загнул). 

 

Попробуйте сначала сами, ну типа практическое занятие, ну а я помогу, если понадобится)

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

 

Блин сдаюсь.

У меня присутствует несколько "ПОСОВ":

if (triggerText _x == "GEN_infantry") then {

_x spawn {

_basePos = position _this;

_rad = (triggerArea _this) select 0;

deleteVehicle _this;

_oldFPSStep = BIS_fps_simulSteps;

while {TRUE} do { // no need to test every frame, use Simulation Manager test loops instead

waitUntil {BIS_fps_simulSteps > _oldFPSStep};

if ({(_x distance _basePos) < (2000 + _rad) && (_x distance _basePos) >= (1000 + _rad) && !(vehicle _x isKindOf "Air")} count units BIS_grpMain > 0) exitWith {};

_oldFPSStep = BIS_fps_simulSteps;

};

for [{_x = 1}, {_x <= (_rad / 125)}, {_x = _x + 1}] do {

_pos = [_basePos, random _rad, random 360] call BIS_fnc_relPos;

Или же надо это куда то к спавну приписать?

Если честно - я совсем не понял как это использовать:

_list =

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

nearRoads 50; - Про писал это в инит плееру и что то не понял что должно произойти?

Я предпологаю, что нужно сделать как то так:

_pos = nearRoads 0;

или

_basePos = nearRoads 0;

В бщем нужна консультация. :sorry: 

Как сделать спойлер что бы отправить вам код на проверку? А то снова замечание отпишут! :nea: 

А чуть не забыл, еще вопрос :pardon: :

Как сделать условие типа:

Если у юнита есть рация; (Рация лежит в инвентаре на месте для рации).

Спасибо заранее :hi:


Сообщение отредактировал D_Donskoy: 22 August 2014 - 22:58

  • 0

#26 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 23 August 2014 - 09:44

_list = player nearRoads 50; - Про писал это в инит плееру и что то не понял что должно произойти?

в _list теперь будут храниться инфа о дорогах в радиусе 50 м от места игрока

 

Я предпологаю, что нужно сделать как то так:

_pos = nearRoads 0;
или
_basePos = nearRoads 0;

Неправильно! Должно быть начальная позиция отсчета

переменная = позиция nearRoads радиус;

 

Как сделать условие типа:

Если у юнита есть рация; (Рация лежит в инвентаре на месте для рации).

Если нужно, что бы именно рация стояла в спец. слоте то

_items = assignedItems _unit;
_radio = _items find "itemRadio";
if (_radio > -1) then {...

Сообщение отредактировал vlad333000: 23 August 2014 - 09:45

  • 1

#27 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 August 2014 - 18:07

 

 

 

Ну таки, я вас поздравляю, с удачно проведённой операцией!

Что проверить? 

В принципе да, именно тут проверять нечего. Чирякну сейчас весь код и буду надеяться на вашу рецензию!)

А пока возник еще вопрос, если вы не против?! :pardon:

Есть ли возможность реализовать данный спавн на дороге - т.е.:

Ставлю триггер 500 х 500 - и если в зоне триггера есть дорога (любая) - то на дороге спавнится мой виекл. Если дороги нету в зоне триггера то виекл и группа не спавнится. 

Или есть другой вариант спавнить виекл с группой не в лесу меж сосен, а на дороге ну или на каком либо другом подходящем рэндомном месте. (Во загнул). 

 

Попробуйте сначала сами, ну типа практическое занятие, ну а я помогу, если понадобится)

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

 

Блин сдаюсь.

У меня присутствует несколько "ПОСОВ":

if (triggerText _x == "GEN_infantry") then {

_x spawn {

_basePos = position _this;

_rad = (triggerArea _this) select 0;

deleteVehicle _this;

_oldFPSStep = BIS_fps_simulSteps;

while {TRUE} do { // no need to test every frame, use Simulation Manager test loops instead

waitUntil {BIS_fps_simulSteps > _oldFPSStep};

if ({(_x distance _basePos) < (2000 + _rad) && (_x distance _basePos) >= (1000 + _rad) && !(vehicle _x isKindOf "Air")} count units BIS_grpMain > 0) exitWith {};

_oldFPSStep = BIS_fps_simulSteps;

};

for [{_x = 1}, {_x <= (_rad / 125)}, {_x = _x + 1}] do {

_pos = [_basePos, random _rad, random 360] call BIS_fnc_relPos;

Или же надо это куда то к спавну приписать?

Если честно - я совсем не понял как это использовать:

_list =

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

nearRoads 50; - Про писал это в инит плееру и что то не понял что должно произойти?

Я предпологаю, что нужно сделать как то так:

_pos = nearRoads 0;

или

_basePos = nearRoads 0;

В бщем нужна консультация. :sorry: 

Как сделать спойлер что бы отправить вам код на проверку? А то снова замечание отпишут! :nea: 

А чуть не забыл, еще вопрос :pardon: :

Как сделать условие типа:

Если у юнита есть рация; (Рация лежит в инвентаре на месте для рации).

Спасибо заранее :hi:

 

_roads			= [];							// эта переменная будет содержать в себе все найденные сигменты дороги
_road			= objNull;						// сигмент дороги с которым будем иметь дело
_centerPos		= getMarkerPos "MrkVeh";		// позиция, триггера или маркера, или ещё чего там
_nearRadius		= 100;							// радиус поиска, например радиус триггера или маркера, или ещё чего там, или просто цифра
_isSpawnVeh		= false;						// эта переменная будет давать добро на спавн

_roads = _centerPos nearRoads _nearRadius;

if (count _roads > 0) then {
	_road		= _roads call BIS_fnc_selectRandom;
	_isSpawnVeh	= true;
};


_APCGrp = [getMarkerPos "MrkGrp", EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> ("OIA_InfTeam"), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;
	
if (_isSpawnVeh) then {
	_APC = "O_APC_Wheeled_02_rcws_F" createVehicle (getPos _road);
	_APC setDir (getDir _road);
	_APC setVectorUp (surfaceNormal position _APC);	// в принципе, не обязательно к применению в данном случае, так как на модель действует физика, решайте сами
	createvehiclecrew _APC;
	_crewAPC = crew _APC;
	_crewAPC joinsilent _APCGrp;
	_APCGrp addVehicle _APC;
};

_wp = _APCGrp addWaypoint [position leader _APCGrp, 3000];
_wp setWaypointLoiterType "CIRCLE";
_wp setWaypointSpeed "LIMITED";
_wp setWaypointBehaviour "SAFE";
_wp = _APCGrp addWaypoint [waypointPosition [position leader _APCGrp, 1], 0];
_wp setWaypointType "CYCLE";

// Если ни чего не забыл, то приблизительно так

  • 1

#28 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 23 August 2014 - 20:53

Товарищи куда нажать, что бы вылез "спойлер"?

В спойлере хочу выкинуть код который у меня получился и заодно обсудить в нем позицию на дороге.

SteelRat - РЕСПЕКТ ВАМ за помощь и терпение :)
  • 0

#29 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 August 2014 - 23:37

 

Товарищи куда нажать, что бы вылез "спойлер"?

В спойлере хочу выкинуть код который у меня получился и заодно обсудить в нем позицию на дороге.

SteelRat - РЕСПЕКТ ВАМ за помощь и терпение :)

 

 

1 - открою вам страшную тайну, то только вам, больше ни кому, не надо выкладывать всё ваше творчество сюда в тему, упакуйте миссию, там где кнопочка "отправить", есть кнопочка "Расширенная форма", клац по ней, на открывшейся странице, ведёте взглядом влево ниже, и обалдеть), там кнопочка "присоединить файл", рассказывать дальше?)

 

2 - За добрые слова, спасибо, и поверьте, вы оказались на много сообразительнее некоторых граждан, и оказать вам помощь не составило большого труда)


  • 1

#30 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 August 2014 - 23:45

И вот, что бы выложить код, там где отвечаете, в тулбаре нажмите "<>"


  • 1

#31 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 25 August 2014 - 19:32

И вот, что бы выложить код, там где отвечаете, в тулбаре нажмите "<>"

1.Код про спавн на дорогах - СУПЕР!!! Спасибо. Возможности Arma иногда поражают.

2.Тайна - это вообще ОГОНЬ - я так и знал что я чего то "не знаю" :rofl:  Видимо просто не хотел усложнять процесс помощи.

3.Про спойлер отдельно спасибо - реально не знал и не умел. :pardon:

4.Только получил похвалу от знающего человека и сразу запутался в своем коде в который попробовал вписать то что вы любезно разжевали для меня. (я про спавн на дорогах). 

Вывод:

Вы правы товарищ - скидываю тест миссию. Скидываю потому что не получилось реализовать задуманное самому.

 

Прикрепленные файлы


Сообщение отредактировал D_Donskoy: 25 August 2014 - 19:39

  • 0

#32 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 25 August 2014 - 20:12

 

И вот, что бы выложить код, там где отвечаете, в тулбаре нажмите "<>"

1.Код про спавн на дорогах - СУПЕР!!! Спасибо. Возможности Arma иногда поражают.

2.Тайна - это вообще ОГОНЬ - я так и знал что я чего то "не знаю" :rofl:  Видимо просто не хотел усложнять процесс помощи.

3.Про спойлер отдельно спасибо - реально не знал и не умел. :pardon:

4.Только получил похвалу от знающего человека и сразу запутался в своем коде в который попробовал вписать то что вы любезно разжевали для меня. (я про спавн на дорогах). 

Вывод:

Вы правы товарищ - скидываю тест миссию. Скидываю потому что не получилось реализовать задуманное самому.

 

Блин - все получилос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Сейчас скину на проверку.


  • 0

#33 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 25 August 2014 - 20:25

 

 

И вот, что бы выложить код, там где отвечаете, в тулбаре нажмите "<>"

1.Код про спавн на дорогах - СУПЕР!!! Спасибо. Возможности Arma иногда поражают.

2.Тайна - это вообще ОГОНЬ - я так и знал что я чего то "не знаю" :rofl:  Видимо просто не хотел усложнять процесс помощи.

3.Про спойлер отдельно спасибо - реально не знал и не умел. :pardon:

4.Только получил похвалу от знающего человека и сразу запутался в своем коде в который попробовал вписать то что вы любезно разжевали для меня. (я про спавн на дорогах). 

Вывод:

Вы правы товарищ - скидываю тест миссию. Скидываю потому что не получилось реализовать задуманное самому.

 

Блин - все получилос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Сейчас скину на проверку.

 

Вот пока - самый конечный вариант. 

Прошу проверить:

1.На оптимизацию.

2.Предмет лишних - не нужных строк.

3.Заранее благодарен.

Прикрепленные файлы


  • 0

#34 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 25 August 2014 - 20:58

 

 

 

И вот, что бы выложить код, там где отвечаете, в тулбаре нажмите "<>"

1.Код про спавн на дорогах - СУПЕР!!! Спасибо. Возможности Arma иногда поражают.

2.Тайна - это вообще ОГОНЬ - я так и знал что я чего то "не знаю" :rofl:  Видимо просто не хотел усложнять процесс помощи.

3.Про спойлер отдельно спасибо - реально не знал и не умел. :pardon:

4.Только получил похвалу от знающего человека и сразу запутался в своем коде в который попробовал вписать то что вы любезно разжевали для меня. (я про спавн на дорогах). 

Вывод:

Вы правы товарищ - скидываю тест миссию. Скидываю потому что не получилось реализовать задуманное самому.

 

Блин - все получилос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Сейчас скину на проверку.

 

Вот пока - самый конечный вариант. 

Прошу проверить:

1.На оптимизацию.

2.Предмет лишних - не нужных строк.

3.Заранее благодарен.

 

Ну вы прям как на экзамене!)

 

1 - На это вам ответит только, сама игра!

2 - Лишние не нужные строки вызывают ошибки, ошибки есть?

3 - Пожалуйста


  • 1

#35 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 August 2014 - 21:03


2 - Лишние не нужные строки вызывают ошибки, ошибки есть?

Лишнее могут быть и не ошибочными, но могут тормозить и загружать ЦП ненужностями


  • 1

#36 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 25 August 2014 - 21:50

Нет, ошибок нет. В общем простите скидываю код сюда:

if (triggerText _x == "GEN_infantry") then {
		            _x spawn {
				                _basePos = position _this;
				                _rad = (triggerArea _this) select 0;
				                deleteVehicle _this;
				                _oldFPSStep = BIS_fps_simulSteps;
	                while {TRUE} do {
					            waitUntil {BIS_fps_simulSteps > _oldFPSStep};
	                            if ({(_x distance _basePos) < (2000 + _rad) && (_x distance _basePos) >= (1000 + _rad) && !(vehicle _x isKindOf "Air")} count units BIS_grpMain > 0) exitWith {};
	                            _oldFPSStep = BIS_fps_simulSteps;
	                };
	                for [{_x = 1}, {_x <= (_rad / 125)}, {_x = _x + 1}] do {
					            _pos = [_basePos, random _rad, random 360] call BIS_fnc_relPos;
					            _newGrp = grpNull;
	                if (random 1 > 0.55) then {
				               _rndTypeGroup = [ "Infantry", "Support", "UInfantry"] call BIS_fnc_selectRandom;
				               _rndGroup = switch (_rndTypeGroup) do {
					                    case "Support": {BIS_SupportPatrolsCSAT};
					                    case "UInfantry": {BIS_UInfantryPatrolsCSAT};					
					                    default {BIS_InfantryPatrolsCSAT};
	                };
                    _roads = [];
                    _road = objNull;
                    _centerPos = _basePos;
                    _nearRadius = _rad;
                    _isSpawnVeh = false;
                    _roads = _centerPos nearRoads _nearRadius;
                    if (count _roads > 0) then {
	                _road = _roads call BIS_fnc_selectRandom;
	                _isSpawnVeh	= true;
                    };
				                _newGrp = [getPos _road, EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> _rndTypeGroup >> (_rndGroup select floor random count _rndGroup), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;
                    if (_isSpawnVeh) then {
                                _newVeh = (BIS_militaryPatrolingCarsCSAT select floor random count BIS_militaryPatrolingCarsCSAT) createVehicle (getPos _road);
									    _newVeh setDir (getDir _road);
                                        createvehiclecrew _newVeh;
                                        _newCrew = crew _newVeh;
                                        _newCrew joinsilent _newGrp;
                                        _newGrp addVehicle _newVeh;
     				};					
	                } else {
				                _rndTypeGroup = [ "Infantry", "Armored", "Mechanized", "Motorized_MTP", "SpecOps", "Support", "UInfantry"] call BIS_fnc_selectRandom;
				                _rndGroup = switch (_rndTypeGroup) do {
				                        case "Armored": {BIS_ArmoredPatrolsCSAT};
					                    case "Mechanized": {BIS_MechanizedPatrolsCSAT};
					                    case "Motorized_MTP": {BIS_Motorized_MTPPatrolsCSAT};
					                    case "SpecOps": {BIS_SpecOpsPatrolsCSAT};					
					                    case "Support": {BIS_SupportPatrolsCSAT};
					                    case "UInfantry": {BIS_UInfantryPatrolsCSAT};					
					                    default {BIS_InfantryPatrolsCSAT};
	                };				
				                _newGrp = [_pos, EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> _rndTypeGroup >> (_rndGroup select floor random count _rndGroup), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;
	                };
					{_x call BIS_corpseRemoval} forEach units _newGrp;
					            [_newGrp, _rad] spawn {
						        _oldFPSStep = BIS_fps_simulSteps;
						        while {TRUE} do {
							    waitUntil {BIS_fps_simulSteps > _oldFPSStep};
							    if ({(_x distance leader (_this select 0)) < (4000 + (_this select 1))} count units BIS_grpMain == 0) exitWith {};
							    _oldFPSStep = BIS_fps_simulSteps;
					};
					            {deleteVehicle _x} forEach units (_this select 0);
					            deleteGroup (_this select 0);
					            BIS_fps_rescanNewObjects = TRUE;
					};
                    if ((random 1) > 0.55) then {
					            _wp = _newGrp addWaypoint [position leader _newGrp, 1000];
					                _wp setWaypointLoiterType "CIRCLE";
						            _wp setWaypointSpeed "LIMITED";
						            _wp setWaypointBehaviour "SAFE";
					} else {
					{
					            _wp = _newGrp addWaypoint [position leader _newGrp, 1000];
					                _wp setWaypointLoiterType "CIRCLE";
							        _wp setWaypointSpeed "LIMITED";
							        _wp setWaypointBehaviour "SAFE";
					} forEach [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
					        	_wp = _newGrp addWaypoint [waypointPosition [_newGrp, 10], 0];
						            _wp setWaypointType "CYCLE";
					};
				    };
				    BIS_fps_rescanNewObjects = TRUE;
			        };
		            };
	                } forEach (allMissionObjects "EmptyDetector");			

Сообщение отредактировал D_Donskoy: 25 August 2014 - 22:15

  • 0

#37 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 25 August 2014 - 23:02

Да не парьтесь, БИСы за вас там всё оптимизировали, вы лишь добавили не много своего, чему там грузить.

Этот код отработает один раз на старте, и только, но если не хочется закругляться, работа всегда найдётся).

 

Вот теперь попробуйте реализовать спавн техники, не тупо на рандомный сигмент дороги, а на самый ближний к тиме.


Сообщение отредактировал SteelRat: 25 August 2014 - 23:06

  • 1

#38 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 25 August 2014 - 23:23

И самое главное, приведите код в файле к более удобо варимому варианту, табуляция должна быть логичной, у вас там чёрт ногу сломает, пока поймёшь от чьей команды ковычка, понимаете о чём я?

Такое оформление кода можете быстро понять только вы, потомучто в нём копаетесь постоянно, а мне как постороннему человеку, очень трудно воспринимать такое, и уж расставлять отступы, например мне, согласитесь, ну уж совсем не в кайф)


  • 1

#39 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 26 August 2014 - 22:33

Да не парьтесь, БИСы за вас там всё оптимизировали, вы лишь добавили не много своего, чему там грузить.

Этот код отработает один раз на старте, и только, но если не хочется закругляться, работа всегда найдётся).

 

Вот теперь попробуйте реализовать спавн техники, не тупо на рандомный сигмент дороги, а на самый ближний к тиме.

Дак я ведь и так спавню тиму с виеклом на одной позиции - "getPos _road". Я думал что это наиболее удобный и самый близкий вариант для тимы добраться до своего виекла. 

  

Тут вырос другой вопрос, сам собой :pardon: .

Вот эта часть кода отвечает за спавн вот этих классов: "Infantry", "Armored", "Mechanized", "Motorized_MTP", "SpecOps", "Support", "UInfantry". Снова спасибо товарищу SteelRat'у.

 

_rndTypeGroup = [ "Infantry", "Armored", "Mechanized", "Motorized_MTP", "SpecOps", "Support", "UInfantry"] call BIS_fnc_selectRandom;

_rndGroup = switch (_rndTypeGroup) do {

                                                case "Armored": {BIS_ArmoredPatrolsCSAT};

                                case "Mechanized": {BIS_MechanizedPatrolsCSAT};

                                case "Motorized_MTP": {BIS_Motorized_MTPPatrolsCSAT};

                                case "SpecOps": {BIS_SpecOpsPatrolsCSAT};

                                case "Support": {BIS_SupportPatrolsCSAT};

                                case "UInfantry": {BIS_UInfantryPatrolsCSAT};

                                default {BIS_InfantryPatrolsCSAT};

                                                         };

_newGrp = [_pos, EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> _rndTypeGroup >> (_rndGroup select floor random count _rndGroup), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;

 

Все супер, все работает. НО! :nea: Классы: "Armored", "Mechanized", "Motorized_MTP" - это то же виеклы! и они попадают в лес в моем варианте, от чего я избавился в первой части кода.

Не смогу сегодня опробовать, но предпологаю вопрос должен решиться так:

 

if (_isSpawnVeh) then {

                                    _newGrp = [getPos _road, EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> _rndTypeGroup >> (_rndGroup select floor random count _rndGroup), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;

} else {

                                    _newGrp = [_pos, EAST, configFile >> "CfgGroups" >> "East" >> "OPF_F" >> _rndTypeGroup >> (_rndGroup select floor random count _rndGroup), [], [], [0.2, 0.5]] call BIS_fnc_spawnGroup;

};

if (Условие) then { Правда } else { Неправда };

Или необходимо создавать отдельные списки для выбора РЭНДОМА?

 

Плюс вопрос:

_wp = _newGrp addWaypoint [position leader _newGrp, 1000];

          _wp setWaypointLoiterType "CIRCLE";

          _wp setWaypointSpeed "LIMITED";

          _wp setWaypointBehaviour "SAFE";

_wp = _newGrp addWaypoint [waypointPosition [_newGrp, 10], 0];

          _wp setWaypointType "CYCLE";

Вэйпоинт зациклен? Я все правильно написал? 8)

Заранее спасибо.


  • 0

#40 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 26 August 2014 - 23:17

 

 

Дак я ведь и так спавню тиму с виеклом на одной позиции - "getPos _road"

 

Угу, а если окажется

_road = objNull;

словите ошибку.

 

PS

Хотя может и нет, но пытаться понять ваш код, я имею ввиду то, как он оформлен, я умываю руки пока не сделаете более удобо читаемо)

 

И самое главное, приведите код в файле к более удобо варимому варианту, табуляция должна быть логичной, у вас там чёрт ногу сломает, пока поймёшь от чьей команды ковычка, понимаете о чём я?

Такое оформление кода можете быстро понять только вы, потомучто в нём копаетесь постоянно, а мне как постороннему человеку, очень трудно воспринимать такое, и уж расставлять отступы, например мне, согласитесь, ну уж совсем не в кайф)


Сообщение отредактировал SteelRat: 26 August 2014 - 23:26

  • 1




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