Zander_driver 10 343 Опубликовано 18 Марта 2020 только что, mortan сказал: бой идёт в основном не дальше 15-20 метров и поэтому всё заточено под такую дистанцию. Даже если бы так оно и было, все равно непонятно зачем "затачивать" такими странными средствами. Это не затачивание, это урезание. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 19 Марта 2020 только что, Shennondoah сказал: а можно-ли Можно. Но надо движок ковырнуть. И шейдеры подрихтовать. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 2 Апреля 2020 @Eragorn, у вас переменная s_obj не инициализована. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 4 Июня 2020 13 часов назад, Max_Raf сказал: npc:add_restrictions(se_anom:name(), "") (к онлайновому объекту нпс закидываю через метод добавления рестриктора по имени вида СекцияИд) но им чёт фиолетово - всё так же лезут в аномалию и дохнут. Что я делаю не так? Емнип, туда id объектов (аномалий) пихать надо. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 1 Декабря 2020 10 часов назад, Romann сказал: ЛЦУ, есть пара способов в движке, при первом не получается нормально проецировать партикл точки на геометрии, сейчас буду пробовать второй. Так это по идее просто. Берем вектор дирекции ствола в руках, запускаем по нему трассировку луча. И нам вернет координаты столкновения этого луча с геометрией, какой-нибудь. Если столкновение есть. Дальше просто лепим партикл в полученные координаты, и вуаля, дело в шляпе. Но правда я на практике этим пока не занялся - другие заботы в движке правлю... Там нашлись подводные камни какие-то на пути этого метода? 10 часов назад, Romann сказал: И помочь же никто не хочет. Вполне можно и по-сотрудничать, если у нас обоих найдется что-то интересное друг для друга. Почему нет? 9 минут назад, Biblia сказал: 3д прицел В OGSR уже реализовано. Код открыт. Любой желающий может просто скопировать оттуда. @Romann, если у тебя нету к моей персоне предубеждения негативного - можно продолжить в личке. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 27 Февраля 2021 @Jek@n в xr_motivator.script function motivator_binder:hit_callback(obj, amount, local_direction, who, bone_index) --В самом начале хит-колбека, добавь такую проверку: if (amount < 0.0001) then return end Просто некоторые звуки (те же выстрелы), могут вызывать самопроизвольное срабатывание хит-колбека, с нулевым уроном. Это известный баг X-Ray, случается и на ТЧ и на ЗП, насколько я понимаю. Проверка позволяет такие хиты отсеять, и скрипты не будут обрабатывать их как хиты. 1 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 3 Марта 2021 @ARTLantist Замысловатую вещь ты затеял) Это надо каждой иконке, помнить сколько предметов под ней объединено, и помнить ну например, ID предметов, которые под нее записаны. Надо написать под это дело некую запоминающую структуру, т.к. изначально такой нет в движке. Иконки ничего не помнят, и при каждом открытии инвентаря, формируются заново. Т.е. тебе мало будет сделать объединение двух итемов по перетаскиванию - надо будет, где-нибудь это запоминать, чтобы не приходилось при следующем открывании инвентаря, перетаскивать опять. Мороки много, а выхлоп сомнительный, на мой взгляд. У себя я сделал проще - объединение итемов под одной иконкой, до некоторого их количества. А размер стека указывается в конфиге итема. Выглядит примерно так: /*** UICellItems.h ***/ u8 max_stack; virtual void SetMaxStack(u8 x) { max_stack = x; }; virtual u8 GetMaxStack() const { return max_stack; } virtual u8 GetStack() const { return 1 + m_childs.size(); } /*** UICellItems.cpp ***/ bool CUICellItem::EqualTo(CUICellItem* itm) { if ((itm->GetStack() + GetStack()) > GetMaxStack()) return false; return (m_grid_size.x==itm->GetGridSize().x) && (m_grid_size.y==itm->GetGridSize().y); } Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 3 Марта 2021 Ну да) При инициализации иконки, она читает этот параметр из секции конфига того предмета, на который создается. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 30 Марта 2021 @ARTLantist У серверных объектов НПС, есть свой биндер, расположен в файле se_stalker.script И там среди прочего, есть такой метод function se_stalker:on_spawn() Который как раз и вызывается после появления в игре, нового серверного объекта нпс. 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 31 Марта 2021 Только что, ARTLantist сказал(а): С чем это может быть связано? Предлагаешь форумчанам по-гадать на кофейной гуще? Или шар стеклянный поискать... Мой тебе совет, как искать причины вообще любых каких угодно багов, уже был у тебя в личке. Ставь вызовы Msg во всех подозреваемых местах, и смотри что там творится. По цепочке начиная от обработки нажатия кнопок в Actor OnKeyboard, и до открытия окна CUICarBodyWnd его методом Show. Проследи по порядку, кто откуда кого вызывает, если твой движок не прикладывает время к каждой строчке лога автоматически, значит добавь в каждый Msg вывод Device.dwTimeGlobal. Логи в руки, и вперед) Другого совета тут быть не может, полагаю. Тебе же для отладки нужен точный ответ, а не какие-то догадки. Он получается только так. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 22 Мая 2021 3 часа назад, Max_Raf сказал(а): Как эту дрянь поймать? profile_timer вставленный в нетспавн неписей, чем не устраивает? функционально аналогичен performance.now из javaScript... Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 26 Октября 2021 7 минут назад, otani-san сказал: невозможность это исправить без "пердоленья" движка Движок давным давно можно редактировать, если кто-то не в курсе. 1 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 14 Июля 2022 7 часов назад, egorkaufman1 сказал: scripts\_g.script:480: bad argument #2 to 'format' (string expected, got nil) Для устранения таких вылетов неплохо было бы привести в порядок _g.script, заменив в нем древние и убогие функции вывода лога, на более логически адекватные. Ведь есть же уже куча примеров как это сделать. А так, вам _g.script буквально сообщает, что "вылет произошел потому, что не получилось сообщить причину вылета в логе". Это практически анекдот "вскрытие показало, что пациент умер от вскрытия" - ну неужели вас это не смущает в вашем моде? Не приводит к мысли, что может быть, этот скрипт должен работать не так? Скрытый текст Чтобы не быть голословным. --============================================================================================== local tostring_all_tbl = { ["table"] = function(table, ind) --Распечатка таблиц local res = "{" --Начало local end_res = ind and "\n"..ind.."}" or "\n}" --Конец local def_ind = " " --Отступ от начала строки ind = ind and ind..def_ind or def_ind --Для каждой "таблицы внутри таблицы" отступ увеличивается в 2 раза for k, v in pairs(table) do res = res.."\n"..ind.."["..tostring_all(k, ind).."] = "..tostring_all(v, ind).."," end return res..end_res end, ["string"] = function(v) return "'"..v.."'" end, --Строки берём в кавычки. Это нужно, чтобы можно было отличить строку "123" от числа 123, "nil" от nil и тд... ["number"] = function(v) return tostring(v) end, ["boolean"] = function(v) return tostring(v) end, ["nil"] = function(v) return tostring(v) end, ["function"] = function() return "[[FUNCTION]]" end, --Function, Userdata и Thread распечатать нельзя, просто заменим на строки ["userdata"] = function() return "[[USERDATA]]" end, ["thread"] = function() return "[[THREAD]]" end, } --Конвертирование чего угодно в строку. Использовать только для вывода в лог! function tostring_all(obj, ind) --ind - служебный аргумент для распечатки "таблиц в таблицах". return tostring_all_tbl[type(obj)](obj, ind) end --Функциональная обёртка для log1. --Делает дополнительную работу по конвертации параметров, которые не воспринимаются родной функцией string.format. --Параметры можно передавать ЛЮБОГО ТИПА! В строке формата они должны стоять как %s (потому, что будут сконвертированы в строки). function log3(fmt, ...) local args = {...} for i=1, #args do args[i] = tostring_all(args[i]) end local res, msg = pcall(string.format, fmt, unpack(args)) if not res then --Если произошла ошибка msg = "!!log3 failed: "..msg.."\n"..debug.traceback() end log1(msg) end --============================================================================================== function abort(fmt, ...) log1("!!****************************[ABORT]*********************************") log1(debug.traceback()) log3(fmt, ...) log1("!!********************************************************************") error(tostring(fmt)) end Вот из OGSR для примера. Тоже старый, не лучший (имхо) вариант, но хорош тем что не подтягивает функций из других файлов - тут все перед глазами, наглядно. Он не пишет сообщений в духе "вскрытие показало, что пациент умер от вскрытия" - а пишет по делу. 1 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 8 Июля 2023 21 час назад, Norman Eisenherz сказал: скриптовый способ добавить в инвентарь кнопку Оригинальные версии X-Ray в принципе такого функционала не дают скриптам нигде. Ни в инвентаре, ни в торговле, ни в каких-либо других интерфейсах. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 5 Августа 2023 10 часов назад, Norman Eisenherz сказал: В движке перечисленные эффекты для артефактов закомментированы Это описания эффектов, а не эффекты. Поэтому и 10 часов назад, Norman Eisenherz сказал: в описании самого арта ничего xrGame\ui\ui_af_params.cpp отвечает только за отображение описания эффектов. Больше он ничего не делает и ни на что не влияет. (Что явно следует и из самого файла и его расположения). 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 26 Сентября 2023 12.09.2023 в 19:21, ziper сказал: бывший скриптер много плохого в скриптах сделал Насколько я помню сообщения, зашитые при неправильных действиях в движке. То что у вас в логе пишется, скрипты сделать не могут. Вообще никак. Это косяки в движке, соответственно "плохой скриптер" что-то с ним делал, нехорошее. 23.09.2023 в 14:10, nktbuba сказал: scripts\hf_obj_manager.script:50: attempt to call global 'game_objects_iter' (a nil value) Криво собрали сборку, скрипт хочет вызвать глобальную функцию game_objects_iter, а такой нет. Скорее всего файлик с ней просто забыли в сборку добавить (в оригинале такой нет). Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 28 Мая 2024 @bsanek628 Ну очевидно надо добавить секцию патрона в список боеприпасов соответствующих конфигов оружия. Подсветку оттуда же из этих списков сам подтянет движок. А по торговцам и тайникам надо спецов по ЗП дождаться, я им не являюсь. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 343 Опубликовано 31 Мая 2024 3 часа назад, SWEAW сказал: Только это, как я слышал, чревато проблемами с производительностью? Формально да, на слабых ПК могут быть проблемы. Но у нас тестили вариант, когда алайф задается таким чтобы заведомо любая локация была в онлайне полностью вся. И на современных производительных ПК, (И я сейчас не про свой. Скромнее), сталкер в таком режиме работает даже лучше, т.к. нет лагов на загрузке объектов в онлайн, они все всегда в онлайне. Для торговцев можно отдельным флагом серверного объекта дописать, что они должны быть в онлайне всегда, и это в любом случае проблем с производительностью не вызовет никаких, для игры это просто 1 npc. 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Поделиться этим сообщением Ссылка на сообщение