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


Фотография

Удаление объектов заданного типа в зоне


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

#1 OFFLINE   Ave_Ursus

Ave_Ursus

    Мл.сержант

  • Пользователи
  • 125 сообщений
  • Откуда:spb
  • Отряд:ex AS

Отправлено 22 March 2015 - 18:44

Котаны, бьюсь с такой проблемой:

Делаю тренировочный полигон для стрельбы. Поставил мишеньку, при попадании в неё в точке рисую гильзу FxCartridge_slug.

(Если кому либо оно надо - инитом объекта поделюсь). После того как боец отстрелялся приходится рестартить сервер, иначе вся мишень загажена гильзами.

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

Вопрос номер 2:

Есть вот такая мишень TargetP_Inf3_Acc2_F (Pop-Up Target 3 (Accuracy)) можно ли с неё снимать результаты стрельб или секторная мишень просто декоративная? Условно отстрелялись, выполнили скрипт опросивший попадания и выдали результат по набитым очкам - ближе к центру - больше очков. 

В ролике Солида про базу ВДВ видел нечто подобное, но под арму 2.

Начало на 09.01


Сообщение отредактировал Ave_Ursus: 22 March 2015 - 18:47

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 22 March 2015 - 19:42

Если создаешь скриптом (createVehicle) то это команда возвращает ссылку на этот объект: mishen = "TargetP_Inf3_Acc2_F" createVehicle [...], вот эту переменную mishen передай в нужный скрипт (Который должен удалять мишень) и пишешь deleteVehicle mishen 


  • 0

#3 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 March 2015 - 18:19

1:

// Удаление гильз в радиусе 10 метров вокруг мишени

_mishen = // объект мишень;

{
	deleteVehicle _x;
} foreach (nearestObjects [_mishen, ["FxCartridge_slug"], 10]);

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


По поводу второго вопроса.

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

Это не факт а моё предположение.


Сообщение отредактировал SteelRat: 23 March 2015 - 18:16

  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 23 March 2015 - 18:32

SteelRat, мое предложение: нужно сделать трасировку пули до того момента пока пуля не врежится - в этот момент она грубо говоря будет "мертава" и запомнить ее последнее местоположение, после чего начинается чистая геометрия: нужно лишь еще узнать абсолютную позицию центральной точки на мишени

 

PS Этот сособ поможет делать полигоны без каких-либо доп. конфигов и аддонов, достаточно будет написть этот скрипт и запихнуть его в миссию (Ну или же если дело дошло до аддонов, то в него). Так же это позволит выяснить точное место попадания 

PSS На эту идею навела бисовская функция BIS_fnc_bulletTracer - которая визуализирует траекторию пули от места вылета, до места попадания


Сообщение отредактировал vlad333000: 23 March 2015 - 18:33

  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 March 2015 - 18:43

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

 

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


Сообщение отредактировал SteelRat: 23 March 2015 - 18:44

  • 0

#6 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 March 2015 - 18:50

	class TargetBootcamp_base_F : TargetP_Inf_F {
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "TargetBootcamp_base_F";
		scope = protected;
		scopeCurator = 0;
		displayName = "$STR_A3_CfgVehicles_TargetBootcamp_base_F0";
		faction = "Interactive_F";
		side = TCivilian;
		animatedSelection = "Terc";
		
		class EventHandlers {
			init = "";
			hit = "";		// Эти строки из конфига говорят, что я не очень далёк от истины
			hitPart = "";
		};
	};
	
	class TargetBootcampHumanSimple_F : TargetBootcamp_base_F {
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "TargetBootcampHumanSimple_F";
		scope = public;
		scopeCurator = 2;
		displayName = "$STR_A3_CfgVehicles_TargetBootcampHumanSimple_F0";
	};

  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 23 March 2015 - 18:57

Вот пожалуйста, то что я имел ввиду

	class TargetP_Inf_F : TargetBase {
		mapSize = 0.72;
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "TargetP_Inf_F";
		scope = public;
		displayName = $STR_A3_CFGVEHICLES_TARGETP_INF_A_F0;
		model = "\A3\Structures_F\Training\Target_PopUp_F.p3d";
		icon = "iconObject_5x4";
		destrType = "DestructEngine";
		accuracy = 1000;	// accuracy needed to recognize type of this target
		
		class DestructionEffects {};
		
		class AnimationSources {
			class Terc {
				animPeriod = 0.35;
			};
		};
		hiddenSelections[] = {"camo", "target2", "target3"};
		hiddenSelectionsTextures[] = {"a3\structures_f\training\data\target_inf_co", "#(argb,8,8,3)color(0,0,0,0,ca)", "#(argb,8,8,3)color(0,0,0,0,ca)"};
		
		class EventHandlers {
                        // здесь инициализируется событие когда мишень получает хит 
			hitPart = "[(_this select 0)] execVM '\A3\Structures_F\Training\data\scripts\TargetP_Inf_F_hitPart.sqf';";
		};
	};

Сообщение отредактировал SteelRat: 23 March 2015 - 18:58

  • 0




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