Здравствуйте, нужно заполнить объект инициализации так чтобы стена не прошивалась любым калибром. Заранее спасибо
Непробиваемость стен
#1
OFFLINE
Отправлено 25 April 2018 - 13:54
#2
OFFLINE
Отправлено 25 April 2018 - 15:33
#3
OFFLINE
Отправлено 25 April 2018 - 16:20
За пробиваемость отвечает материал, который вешается на компоненты в лоде FireGeometry самой модели, так что без модификации самой модели ни как.
Как вариант, в обжектбилдере делаете объект, размером со стену, не видимый, то есть прикрутить в визуальный лод прозрачную текстуру, столько объектов, сколько нужно, конкретных размеров, создаёте супер-пупер не пробиваемый материал физики, и вешаете на эти объекты в лоде FireGeometry, в редакторе армы лепите на стены эти объекты.
Получаете удовольствие.
Примеры материалов здесь
\a3\data_f\Penetration
Сообщение отредактировал SteelRat: 25 April 2018 - 16:24
#4
OFFLINE
Отправлено 25 April 2018 - 16:32
Arma 3Arma 3Arma 3, скриптами невозможно обеспечить 100% непробитие для объекта, который можно пробить, для 100% гарантии придется переделывать сам объект
Можно попытаться поиграться с этими хандлерами прикрученными к целевому объекту
EpeContact EpeContactStart EpeContactEnd
на предмет отследить момент столкновения двух физических геометрий, и при контакте, удалить пулю-снаряд-термоядерный заряд.
Сообщение отредактировал SteelRat: 25 April 2018 - 16:36
#5
OFFLINE
Отправлено 25 April 2018 - 17:50
Перепробовал все обработчики (Эти не пробовал, но думаю эффект будет такой же) и столкнулся с такой проблемой:на предмет отследить момент столкновения двух физических геометрий, и при контакте, удалить пулю-снаряд-термоядерный заряд.
Все команды, который я использовал, (Изменения позиции и удаления) имеют эффект только на следующем кадре, следовательно, если объект стоит близко к этой стене (На расстоянии, которое пуля пролетит за один кадр), то он получает урон, если дальше - нет, т. к. пуля исчезает к этому кадру.
По идее можно решить при помощи каких-нибудь переменных и комбинацией обработчиков на стене и объекте, но тут я не знаю гарантирует ли движок последовательность вызовов обработчиков: обработчик попадания в стену >> обработчик попадания в объект
#6
OFFLINE
Отправлено 25 April 2018 - 20:14
Ну это как бы весьма важный процесс на уровне движка, то есть физика столкновений, так что с кадрами там я думаю лады будут.
Тут вопрос в другом, поймает ли стена дома контакт от пули, например когда я развлекался с этими хандлерами, они не определяли столкновение объектов с персом.
#8
OFFLINE
Отправлено 26 April 2018 - 02:20
// Массив "плохих" пуль
badBullets = [];
// Для каждой требуемой стенки добавляем в глобальный массив badBullets все пули, от которых будет спасаться
wall addEventHandler [
"HitPart",
{
badBullets append (_this apply {
private _projectile = _x select 2;
deleteVehicle _projectile;
[_x select 1, (_x select 6) select 4, _projectile];
});
}
];
// Для каждого объекта, который в обязательном порядке должен быть защищен от этого прострела,
// переопределяем урон если данные источника урона совпали с хотя бы одной пулей в массиве badBullets
target addEventHandler [
"HandleDamage",
{
private _toFind = [_this select 3, _this select 4];
if ((badBullets findIf { (_x select [0, 2]) isEqualTo _toFind; }) != -1) then {
0.0;
};
}
];
// Чистим устаревшие пули
addMissionEventHandler [
"EachFrame",
{
badBullets = badBullets select { !isNull (_x select 2); };
}
];
Ну и конечно если не нужна такая гарантия (Если стоять близко к стене, то урон будет наноситься), то:
wall addEventHandler [
"HitPart",
{
{
deleteVehicle (_x select 2);
} forEach _this;
}
];
Сообщение отредактировал vlad333000: 26 April 2018 - 02:30












