Проверка инициализации функции
|
|
DrSl1m
|
Понедельник, 23.03.2015, 20:50
|
|
Есть ли возможность проверять инициализацию функции, вроде isNil/isNull? Чтобы, например, завязать условие на вызове какой-либо функции? Что-то вроде:Код waitUntil {вызвана функция}
|
|
Автор темы
|
|
|
|
|
Zealot
|
Понедельник, 23.03.2015, 21:35
|
|
Цитата DrSl1m ( ) Чтобы, например, завязать условие на вызове какой-либо функции? Вообще такой возможности нет, если нет доступа к этой функции. Если такой доступ есть, то задача тривиальна, просто добавить вызов своей функции оттуда. А для чего это требуется?
|
|
|
|
DrSl1m
|
Понедельник, 23.03.2015, 21:50
|
|
Цитата Zealot ( ) А для чего это требуется? Я вчера искал способ свести эффективность работы ТРК "Точка-У" до 100%. Для этих целей ковырял функции и конфиги связанные с ней, чтобы найти за что ухватиться. Хотел активировать уничтожение всего в триггере при условии срабатывания того или иного элемента "Точки-У". Например, при вызове функции ядерного взрыва или срабатывании на пуск ракеты с задержкой. Словом, пытался обойти ошибки РХС, чтобы оружие работало как и должно, хотя бы в случае с указанными зонами.
|
|
Автор темы
|
|
|
|
|
Zealot
|
Вторник, 24.03.2015, 09:55
|
|
Цитата DrSl1m ( ) Словом, пытался обойти ошибки РХС, чтобы оружие работало как и должно, хотя бы в случае с указанными зонами. Можно попытаться переопределить функцию взрыва в рхс, но делать это нужно осторожно, "уничтожение всего в триггере" может вызвать лаг сервера.
|
|
|
|
DrSl1m
|
Вторник, 24.03.2015, 13:24
|
|
Цитата Zealot ( ) Можно попытаться переопределить функцию взрыва в рхс, но делать это нужно осторожно, "уничтожение всего в триггере" может вызвать лаг сервера. Ну, я думаю, что даже если поставить уничтожение какого-то объекта, то это уже будет успех. Хотя бы можно будет миссию завершать по модулю Destroy.
Как я понял, вот строчки отвечающие за запуск ракеты, находящиеся в РХСе, в файле dialog_control.sqf: Код if ((_tochka ammo _weapon) > 0) then { _fired_EH = _tochka addEventHandler ["fired",{_this call rhs_fnc_ss21_missile_control}]; if (local _tochka) then { _tochka selectWeapon _weapon; sleep 0.1; _tochka fire _weapon; vehset(target_designated,false); }; Может можно создать sqf с глобальной переменной, которая будет проверять boolean локальной переменной _fired_EH, если это возможно? Затем останется только примерно высчитать время до попадания в цель и сделать триггер на нанесение урона объекту.
Сообщение отредактировал DrSl1m - Вторник, 24.03.2015, 13:54
|
|
Автор темы
|
|
|
|
|
Zealot
|
Четверг, 26.03.2015, 08:35
|
|
Цитата DrSl1m ( ) Может можно создать sqf с глобальной переменной, которая будет проверять boolean локальной переменной _fired_EH, если это возможно? Может тоже подписаться на евент Fired, и действии по запуску ракеты выполнять в нем? _fired_EH обрабатывать не получится, это локальная переменная.
|
|
|
|