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


Фотография

BIS_fnc_spawnGroup.


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

#41 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 31 August 2014 - 15:16

 

 

 

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

 

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

_road = objNull;

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

 

PS

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

 

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

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

 

1.Код в порядок привел.

2._road = ObjNull; - это имеется ввиду, что в зоне триггера нет дороги, так? Если я правильно предположил, то ошибки не вылетает.

3.Вопрос по коду, есть такая строчка в начале (напишу условно):

if (random 1 > 0.50) then {создается моя тима с виеклом на одной позиции getPos _road (на дороге) - все как и задумано, еще раз благодарю за помощь т.SteelRat}

else

{создается группа из рэндомного списка групп и рэндомных классов уже на рэндомной позиции _pos - то же как и задумано, кроме одного, в рэндомном списке присутствуют классы групп ("Armored", "Mechanized", "Motorized_MTP", "SpecOps") - вот тут то снова тупик для меня};

Как сделать так, что если рэндом выпал на класс ("Armored", "Mechanized", "Motorized_MTP", "SpecOps") - то эту группу код будет спавнить на позиции getPos _road (на дороге), а остальные пешие классы в лесу на позиции _pos

Во завернул)

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

   _rndGroup = switch (_rndTypeGroup) do {

case "Air": {BIS_militaryPatrolingAirCSAT};

                                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;

Добавил вот такой класс и список, это будет работать? Или групп класса "Air" нет и такой код не будет спавнить вертолет в зоне триггера и давать ему вайпоинт группы _newGrp?

Снова завернул)))

Заранее спасибо, надеюсь все спросил понятно.

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


  • 0

#42 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 31 August 2014 - 17:57

 

 

2._road = ObjNull; - это имеется ввиду, что в зоне триггера нет дороги, так? Если я правильно предположил, то ошибки не вылетает.

 

Это значит, что объявляется переменная _road, и ей присваивается начальное значение Null, то есть ни чего.

 

Прикрепленный файл  RandomPatrolCSAT.rar   2.12К   14 Количество загрузок:


Сообщение отредактировал SteelRat: 31 August 2014 - 18:30

  • 1

#43 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 31 August 2014 - 19:15

 

 

 

2._road = ObjNull; - это имеется ввиду, что в зоне триггера нет дороги, так? Если я правильно предположил, то ошибки не вылетает.

 

Это значит, что объявляется переменная _road, и ей присваивается начальное значение Null, то есть ни чего.

 

attachicon.gifRandomPatrolCSAT.rar

 

:hi: Снимаю шляпу, в очередной раз!!!Благодарю Вас товарищ!

Не сочтите за наглость - а вертолет "Air" появиться?)))


  • 0

#44 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 September 2014 - 01:30

 

 

 

 

2._road = ObjNull; - это имеется ввиду, что в зоне триггера нет дороги, так? Если я правильно предположил, то ошибки не вылетает.

 

Это значит, что объявляется переменная _road, и ей присваивается начальное значение Null, то есть ни чего.

 

attachicon.gifRandomPatrolCSAT.rar

 

:hi: Снимаю шляпу, в очередной раз!!!Благодарю Вас товарищ!

Не сочтите за наглость - а вертолет "Air" появиться?)))

 

Тест драйв ответит)


  • 1

#45 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 08 September 2014 - 16:13

Приветствую снова.

Только я подумал что все желания воплотились - как не тут то было.)

В игре есть "Менеджер симуляции", его назначение всем известно и миссия над которой я по прежнему ставлю эксперименты в некотором роде основана и на нем.

Вопрос:

Как исключить действие "Менеджера симуляции" на конкретный объект?

Например на САУ, которая находиться на удалении от игрока в 10 000 м., когда на "Менеджере симуляции" выставлена дистанция в 2000 м. и САУ перестает отвечать после превышения дистанции "Менеджера симуляции". 


  • 0

#46 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 September 2014 - 18:16

Приветствую снова.

Только я подумал что все желания воплотились - как не тут то было.)

В игре есть "Менеджер симуляции", его назначение всем известно и миссия над которой я по прежнему ставлю эксперименты в некотором роде основана и на нем.

Вопрос:

Как исключить действие "Менеджера симуляции" на конкретный объект?

Например на САУ, которая находиться на удалении от игрока в 10 000 м., когда на "Менеджере симуляции" выставлена дистанция в 2000 м. и САУ перестает отвечать после превышения дистанции "Менеджера симуляции". 

Найти в коде то место где этот объект добавляется в массив, с которым и работает менеджер симуляции.


  • 1

#47 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 September 2014 - 18:28

Только сейчас заметил.

В оригинале файла RandomPatrolCSAT.sqf, тоже так написано, или это вообще ваше?

BIS_corpseRemoval = {
		_x addEventHandler ["Killed", { // Здесь вместо _x должно быть _this
			(_this select 0) spawn {
				waitUntil {{_x distance _this < 2000} count units BIS_grpMain == 0};
				_grp = group _this;
				deleteVehicle _this;
				if (count units _grp == 0) then {deleteGroup _grp};
			};
		}]
	};


Сообщение отредактировал SteelRat: 08 September 2014 - 18:32

  • 1

#48 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

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

 

Только сейчас заметил.

В оригинале файла RandomPatrolCSAT.sqf, тоже так написано, или это вообще ваше?

BIS_corpseRemoval = {
		_x addEventHandler ["Killed", { // Здесь вместо _x должно быть _this
			(_this select 0) spawn {
				waitUntil {{_x distance _this < 2000} count units BIS_grpMain == 0};
				_grp = group _this;
				deleteVehicle _this;
				if (count units _grp == 0) then {deleteGroup _grp};
			};
		}]
	};

Это Бисы! А что?


  • 0

#49 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 08 September 2014 - 20:30

 

Приветствую снова.

Только я подумал что все желания воплотились - как не тут то было.)

В игре есть "Менеджер симуляции", его назначение всем известно и миссия над которой я по прежнему ставлю эксперименты в некотором роде основана и на нем.

Вопрос:

Как исключить действие "Менеджера симуляции" на конкретный объект?

Например на САУ, которая находиться на удалении от игрока в 10 000 м., когда на "Менеджере симуляции" выставлена дистанция в 2000 м. и САУ перестает отвечать после превышения дистанции "Менеджера симуляции". 

Найти в коде то место где этот объект добавляется в массив, с которым и работает менеджер симуляции.

 

А вот этого не понял.


  • 0

#50 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 September 2014 - 20:35

 

 

Приветствую снова.

Только я подумал что все желания воплотились - как не тут то было.)

В игре есть "Менеджер симуляции", его назначение всем известно и миссия над которой я по прежнему ставлю эксперименты в некотором роде основана и на нем.

Вопрос:

Как исключить действие "Менеджера симуляции" на конкретный объект?

Например на САУ, которая находиться на удалении от игрока в 10 000 м., когда на "Менеджере симуляции" выставлена дистанция в 2000 м. и САУ перестает отвечать после превышения дистанции "Менеджера симуляции". 

Найти в коде то место где этот объект добавляется в массив, с которым и работает менеджер симуляции.

 

А вот этого не понял.

Да в принципе не важно, на то он и менеджер симуляции, я так понимаю, он просто работает со всеми объектами миссии, и исключить какой то объект просто так не получится, только модифицировать сам менеджер симуляции.


  • 1

#51 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 September 2014 - 21:14

Вроде как что то нарыл.

Суть такова, когда нужно будет задействовать объект которому отключена симуляция, менеджером симуляции, попробуйте сделать так, перед тем как дать команды объекту сделайте это

BIS_persistent set [count BIS_persistent, object_arta];

// Вполне вероятно понадобится ещё такая команда, а может и не понадобится.
BIS_fps_rescanNewObjects = TRUE;

// Вполне вероятно понадобится задержка

// Далее постановка и выполнение задачи

// После выполнения поставленной задачи
BIS_persistent = BIS_persistent - [object_arta];

// И опять же вполне вероятно понадобится это
BIS_fps_rescanNewObjects = TRUE;




  • 1

#52 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 09 September 2014 - 02:11

BIS_persistent set [count BIS_persistent, ИМЯ_ОБЪЕКТА];

BIS_fps_rescanNewObjects = true;

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


  • 0

#53 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 09 September 2014 - 02:52

Если нужно с самого начала миссии определить конкретные объекты которым не должна отключаться симуляция

BIS_persistent = [object_1, object_2, object_3]; // и так далее, перечисляете
BIS_fps_rescanNewObjects = TRUE;

  • 1

#54 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 09 September 2014 - 11:54

уху...

Сегодня опробую.

 

Еще интересный момент:

Прописал данный код САУ  -  BIS_persistent set [count BIS_persistent, САУ];

                                                  BIS_fps_rescanNewObjects = true;

Все заработало.

Думаю проверю, как, точно работает или нет. Удаляю код из поля инициализации САУ - и... САУ остается на месте без кода!!!?

Сохранил миссию, повторил эксперимент, все также, как будто код остался в буфере у САУ.

P.S. просто наблюдение.  


Сообщение отредактировал D_Donskoy: 09 September 2014 - 11:55

  • 0

#55 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 09 September 2014 - 16:08

уху...

Сегодня опробую.

 

Еще интересный момент:

Прописал данный код САУ  -  BIS_persistent set [count BIS_persistent, САУ];

                                                  BIS_fps_rescanNewObjects = true;

Все заработало.

Думаю проверю, как, точно работает или нет. Удаляю код из поля инициализации САУ - и... САУ остается на месте без кода!!!?

Сохранил миссию, повторил эксперимент, все также, как будто код остался в буфере у САУ.

P.S. просто наблюдение.  

Это не код остался в буфере у САУ, а САУ осталась в глобальной переменной  BIS_persistent

...

// После выполнения поставленной задачи, удаляем САУ из глобальной переменной BIS_persistent
BIS_persistent = BIS_persistent - [object_arta];

// И опять же вполне вероятно понадобится это
BIS_fps_rescanNewObjects = TRUE;

  • 0

#56 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 09 September 2014 - 16:27

/*
	Можно в принципе и не парится прописывая в инит каждого нужного объекта, а определить именно классы объектов которые должен игнорировать менеджер
	Добавить в самый конец файла RandomPatrolCSAT.sqf
*/

_persistent = ["class_object_1", "class_object_2"]; //	итд, перечисление КЛАССОВ объектов, которые должен игнорировать менеджер
_replace	= [];
{
	_replace set [count _replace, toLower (_x)];
} foreach _persistent;
_persistent = _replace;

//	Производим перебор всех объектов миссии, если класс объекта пресутствует в массиве _persistent, добавляем объект в массив BIS_persistent
{
	if (toLower (typeOf _x) in _persistent) then {
		BIS_persistent set [count BIS_persistent, _x];
	};
} foreach (allMissionObjects "All");

//	Если есть кого игнорить, инициализируем обновление данных в менеджере
if (count BIS_persistent > 0) then {
	BIS_fps_rescanNewObjects = TRUE;
};

Сообщение отредактировал SteelRat: 09 September 2014 - 16:30

  • 0

#57 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 27 October 2014 - 16:05

Приветствую всех.

Снова одолел вопрос на который сам не нашел ответа.

Недавно обнаружил новые модули в игре (редакторе) называются они:

1.Порождение ИИ.

2.Порождение ИИ: опции.

3.Порождение ИИ: тактика в секторе.

4.Порождение ИИ: точка порождения.

В принципе все ясно и понятно, все работает. Не получается реализовать только (3.Порождение ИИ: тактика в секторе.).

Если я правильно понял то модуль ищет сектор и не находит его. Самому разобраться не удалось :pardon: - прошу помощи у однополчан по форуму :) .

В общем помогите кто знает, как это дело работает.

 

Вопрос разместил в этой теме потому что, тема как и модуль в принципе про спавн юнитов. Надеюсь сделал правильно.


  • 0

#58 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 27 October 2014 - 20:20

Приветствую всех.

Снова одолел вопрос на который сам не нашел ответа.

Недавно обнаружил новые модули в игре (редакторе) называются они:

1.Порождение ИИ.

2.Порождение ИИ: опции.

3.Порождение ИИ: тактика в секторе.

4.Порождение ИИ: точка порождения.

В принципе все ясно и понятно, все работает. Не получается реализовать только (3.Порождение ИИ: тактика в секторе.).

Если я правильно понял то модуль ищет сектор и не находит его. Самому разобраться не удалось :pardon: - прошу помощи у однополчан по форуму :) .

В общем помогите кто знает, как это дело работает.

 

Вопрос разместил в этой теме потому что, тема как и модуль в принципе про спавн юнитов. Надеюсь сделал правильно.

 

Странно, я у себя не вижу таких модулей, в какой категории модулей они лежат?

И ещё вопрос, у вас DEV версия армы?


  • 0

#59 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

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

Отправлено 27 October 2014 - 21:54

У меня DEV версия да. Модуль у меня находится в категории "разное".


  • 0

#60 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 02:42

У меня DEV версия да. Модуль у меня находится в категории "разное".

ясно, пока я вам тут не помошник)


  • 0




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