НЕТ ВОЗМОЖНОСТИ РЕАЛИЗОВАТЬ НА ТЕКУЩЕЙ ВЕРСИИ CoC! По причине отсутствия нужных каллбеков из движка. Тему оставлю, на случай если авторы мода реализуют, а пока что заморожено.
Модуль динамического лечения !ТЕСТОВАЯ ВЕРСИЯ!
About : Модуль динамического лечения Autor : FonSwong Version : 0.3 Достало кликать мышкой для лечения? Тогда тебе сюда! Вызывается зажатием клавиши "T". После открытия, Вам нужно навести на нужный пункт и отпустить клавишу. Вся настройка модуля производится в файле med_options.script
Изначально была просто попытка создания окна, в котором не надо было бы кликать мышкой по кнопкам, т.к. неоднократно слышал что игроков достало это. Затем подумал- почему бы не повесить на это окно использование бинтов и аптечек? После я понял что этого мало, и появилась идея реализовать более подробную медицину где мы бы могли оценивать состояние тела, повреждение разными типами такими как: -пулевые ранения -осколочные -ожог(химические и термальные) -кровотечение каждой части тела -переломы костей рук и ног -возможно даже заражение от мутантов Соответственно имея определённое повреждение какой-то части тела, мы должны произвести ряд действий с лекарствами. Вдохновил меня на это проект ACE3 для ARMA 3, где у них существует подобная система.
Если говорить о системе в целом, то уже сейчас, на стадии бета, это полностью автоматизированный комлекс, позволяющий составлять сколь угодно многовложенные ответвления окон, заполняемые минимальными данными. Использовать данную систему можно не только как модуль лечения, но и для любых других целей, используя динамические окна с выбором нужного пункта взглядом.
Полностью(на 95%) переписал скрипт Модуль стал полностью динамическим, теперь для настройки не нужно переписывать ничего кроме параметров, в начале скрипта Теперь расчёты идут не в 3д а в плоскости, в 2д. Доп. окна открываются в радиальном виде Сделан трассер открытых окон, для динамического открытия/закрытия Вынесены в начало скрипта основные параметры для лёгкой настройки Создана таблица с параметрами каждого окна с соблюдением наследственности окон. Для создания доп. ответвлений окон(или изменения существующих) редактируется именно эта таблица, важно соблюдать наследственность.
Появился файл, который может пересекаться с файлом мода, будьте внимательны при копировании! В этой версии немного непричёсанный код, нет комментариев к некоторым настройкам. Чуть позже дополню и выложу. Не перезагружайте игру пока активно окно с информацией о состоянии! Добавлена анимация камеры при выборе. Добавлено окно прогресса, с заполняющейся полосой прогресса Запрещено движение после выбора, на время движения полосы прогресса. Так же при движении происходит реинициализая координат на дефолтные, пока не остановишься. Вынесены в отдельный файл утилитарные функции Вынесены в отдельный файл все настройки Разделы на 2 файла всё что связано с окнами и всё что связано с действиями Составлено окно вывода инфы о состоянии каждой части тела(вызывается осмотром себя) Составлена схема запоминания всех хитов актору: по каким костям(частям тела) и сколько здоровья отнял хит(определения типа ранения ещё не готово) Добавлены действия при выборе(в виде заготовок)
В планах:
Уже сделано:
В процессе:
1. ДО СИХ ПОР НЕТ ГОДНЫХ ИКОНОК! Кто готов помочь с иконками, обращайтесь в лс. 2. Добавлены действия при выборе(в виде заготовок)- т.е. в дальнейшем аптечки и бинты будут заменены на аналогичные предметы, но поднятие ХП с помощью них будет возможно только через систему модуля. 3. Определения типа ранения(В зависимости от типа ранения каждой части тела, нужно будет произвести опред. действия с каждой частью тела) 4. Возможно будет принудительное кровотечение при превышении n-го порога состояния кости(части тела)
Знал бы что ютуб будет противиться закачке, да ещё и качество настолько сил но пожмёт- даже не пытался бы. Тем более что показывать особо нечего пока что. На видео можно увидеть оценку здоровья каждой части тела, применения перебинтовки и "вкалывание" аптчеки в пострадавшую часть тела. ВИДЕО
Старые:
Использована функция проекции векторов от Malandrinus и иконки от ACE 3 Добавлено (05.04.2016, 00:00) --------------------------------------------- Заморозка разработки
Сообщение отредактировал FonSwong - Вторник, 05.04.2016, 20:38
Раз помощь с иконками не подъезжает, сделаю наверное всё текстом, что-то вроде: Когда выбираешь взглядом, особенно если играешь без прицела, непонятно куда целишься. Конечно дело привычки, но всё же. Вот думаю, может в то время, когда иконка не захвачена, может по центру экрана что-то вроде прицела показывать?(кружок допустим) А при захвате иконки, убирать прицел и анимку цеплять к захваченной иконке?
Добавлено (26.03.2016, 08:27) --------------------------------------------- Проблемка возникла, в CoC нету пред хитового каллбека. Это усложняет всё :-/
Сообщение отредактировал FonSwong - Среда, 30.03.2016, 12:59
Знал бы что ютуб будет противиться закачке- даже не пытался бы.
Это из-за музыки в ролике. Ютуб очень болезненно реагирует на звуки, а на музыку в особенности. Что за надпись "Не ранен" ? Хотя у тебя кровотечение и полоска здоровья 2\3.
verty_n00b, возможность использования любых медикаментов не в системе- будет отключена в релизе(если дойду до конца )
Суть в том, чтобы состояние здоровья было разбито на части тела, а так же что бы каждую часть тела в зависимости от типа ранения нужно было обрабатывать по разному. Медикаменты общего типа- антирад, таблетки- будут улучшать общее состояние организма. Травмы носящие местный характер(удары, пулевые ранения)- будут наносить повреждения только той части тела по которой был хит. С такими травмами как ожоги(в том числе химические), электро- пока не определился влиять будут на общее состояние или же на часть тела
Добавлено (30.03.2016, 13:05) --------------------------------------------- Sikorskyi, На надпись "Не ранен"- не обращай внимания, это я тестил неписей на раненость, при наведении на любой объект высвечивало, не убрал просто Жесть как сильно качество пожал ютуб!оО
Сообщение отредактировал FonSwong - Среда, 30.03.2016, 15:13
self.object:set_callback(callback_ex.on_key_press, self.on_key, self) -- нажатие клавиши self.object:set_callback(callback_ex.on_key_release, self.on_key_free, self) -- отпускание клавиши self.object:set_callback(callback_ex.on_key_hold, self.on_key_hold, self) -- удержание клавиши self.object:set_callback(callback_ex.on_mouse_wheel, self.on_wheel_rotation, self) -- вращение колесика мыши self.object:set_callback(callback_ex.on_mouse_move, self.on_mouse_move, self) -- движение мыши self.object:set_callback(callback_ex.on_belt, self.item_to_belt, self) -- перемещение предмета на пояс self.object:set_callback(callback_ex.on_ruck, self.item_to_backpack, self) -- перемещение предмета в рюкзак self.object:set_callback(callback_ex.on_slot, self.item_to_slot, self) -- перемещение предмета в слот self.object:set_callback(callback_ex.on_hud_animation_end, self.hud_animation_end, self) -- вызывается в конце проигрывания анимации худа (только если используем play_hud_animation) self.object:set_callback(callback_ex.on_goodwill_change, self.on_goodwill_change, self) -- изменение отношений -- self.object:set_callback(callback_ex.on_release_npc, self.on_release_npc, self) -- удаление серверного объекта непися или монстра -- self.object:set_callback(callback_ex.entity_alive_before_hit, self.before_hit_callback, self) self.object:set_callback(callback_ex.on_before_use_item, self.before_use, self)
Interested in These callbacks:(Интересуют вот эти коллбэки:) Called to the use of the object - allowing you to change the parameters used by the object and allow / deny further treatment of this subject(Вызывается до использования предмета - позволяя изменить параметры используемого предмета и разрешить/отказать в дальнейшей обработке этого предмета)
Код
self.object:set_callback(callback_ex.on_before_use_item, self.before_use, self) function actor_binder:before_use(item) self.am:call("on_actor_before_use", item, sim:object(item:id())) end
Called before the application hits - allowing you to change the parameters of a hit on the project and allow / deny further processing of the hits(Вызывается до нанесения хита - позволяя изменить параметры хита по объекту и разрешить/отказать в дальнейшей обработке этого хита)
Код
self.object:set_callback(callback_ex.entity_alive_before_hit, self.before_hit_callback, self) function actor_binder:before_hit_callback(p_s_hit, p_ignore_flags) local hit_data = read_hit_data(p_s_hit) self.am:call("on_actor_before_hit", hit_data, p_s_hit, p_ignore_flags) end