Это популярное сообщение. Zander_driver 10 334 Опубликовано 21 Августа 2015 Это популярное сообщение. Поделиться Опубликовано 21 Августа 2015 (изменено) Раньше в этой теме находились всякие полезности. Соответствующие определенным правилам и требованиям, которые были указаны в шапке. Но т.к. со временем в тему стали постить материалы не соответствующие этим требованиям - шапка более не имеет смысла. В старых постах еще может быть что-то полезное, в новых по всей видимости - вряд ли. Изменено 1 Декабря 2021 пользователем Zander_driver Привел в соответствие современным реалиям. 2 4 4 12 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Поскольку артосомодули долго обсуждали и что-то с ними делали именно здесь, вопрос: может кто-то опознать версию, и сказать что-нибудь об ее требованиях к движку ? Оно вообще работоспособно на оригинальном ТЧ1.0006 ? https://www.dropbox.com/s/1h3mme4sz1spe3e/m_net_utils.script?dl=0 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Kirgudu 1 217 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Ишь, какую версию ты откопал. Мультиплатформа отсутствует и, скорее всего, предназначено только для ТЧ. Но вот насколько сие творение работоспособно и лишено ошибок - сказать не могу. У Артоса 2 версии модулей нетпакетов: более старый m_net_utils и более новый m_netpk. Но даже более старый m_net_utils, наличествующий у меня, имеет дату редактирования 27.10.2011 (у тебя же - 22.05.2009, на 2 с половиной года раньше) и предназначен уже для всех трёх платформ игры. Инструмент Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Это "омега". Там идет какой-то правленный движок, требующийся для "фриплэя". То есть, основной сюжет - прекрасно работает на чистом 1.0006, далее подключаются "компаньоны", обращающиеся к вот этому m_net_utils, и намертво виснет dialog_manager при попытке разговора с любым неписем. Пытаюсь найти, где ему надо что оторвать для продолжения игры. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
buffy 4 Опубликовано 5 Октября 2018 Поделиться Опубликовано 5 Октября 2018 Не могу найти модуль "Сканирование конфигов". Остался у кого? Ссылка на комментарий
Это популярное сообщение. НаноБот 742 Опубликовано 20 Ноября 2021 Это популярное сообщение. Поделиться Опубликовано 20 Ноября 2021 (изменено) Опять монкикод, про ООП не слышали? Не? Нафига тут bind_stalker.script? Если нужен скрипт отлова выстрелов, смотрите мою ракетницу. А если мне надо отследить выстрел НПС! Тут это работает? А вообще, лезем в исходники и добавляем колбек на выстрел. - Ту куда полез? - Смотри WeaponFire.cpp метод CWeapon::FireTrace - Или ShootingObject.cpp метод CShootingObject::FireBullet - В первом колбек будет приходить в классы от CWeaponMagazined, во втором на всё что стреляет. - Э что ты делаешь? Нафига ты актору колбек кидаешь! Причём тут актор? - Кидай в сам объект, так проще обеспечить совместимость. Код колбека. callback(GameObject::eWeaponOnShoot)(l_cartridge.m_ammoSect); Возвращает имя патрона, т.е. секцию. Изменено 20 Ноября 2021 пользователем НаноБот 1 5 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий
av661194 50 Опубликовано 20 Ноября 2021 Поделиться Опубликовано 20 Ноября 2021 Есть модуль отлова выстрелов из оружия от Shoker - https://stalker-mods.su/load/stalker_cop/stalker_zov_pripjati/s_t_a_l_k_e_r_modul_otlov_vystrela_iz_oruzhija/1-1-0-830 1 1 3 Ссылка на комментарий
Это популярное сообщение. НаноБот 742 Опубликовано 21 Ноября 2021 Это популярное сообщение. Поделиться Опубликовано 21 Ноября 2021 (изменено) Скрытый текст --[[------------------------------------------------------------------------------ Ракетница Для СТАЛКЕР Тень Чернобыля Отслеживаем выстрелы, расчитано только на один выстрел за фрейм. Ракету запускает отдельный скрипт. Создано: 10.02.2017 (c) NanoBot Версия 1.03 Край. изменения: 20.03.2017 --]]------------------------------------------------------------------------------ local actor_id = 0 local con = get_console() local function log(str) if log1 then -- XE log1(str) else -- original con:execute("load ~ "..str) end end function init_wpn(obj) obj:bind_object(CWeapon(obj)) end --------------------------------------------------------------------------------------------- class "CWeapon" (object_binder) function CWeapon:__init(obj) super(obj) self.id = obj:id() end function CWeapon:net_spawn(data) if not object_binder.net_spawn(self, data) then return false end local wpn = self.object wpn:set_fastcall(self.UpdateCL, self) return true end function CWeapon:UpdateCL() local wpn = self.object local ammo_elapsed = wpn:get_ammo_in_magazine() local ammo_total = wpn:get_ammo_total() if self.last_ammo_elapsed then local npc = wpn:parent() if npc then local active_wpn = npc:active_item() if active_wpn and active_wpn:id() == self.id then -- Определяем выстрел if self.last_ammo_elapsed - ammo_elapsed == 1 and self.last_ammo_total - ammo_total == 1 and not on_open_hud(npc) then local ammo_name = _unb.get_ammo_name(wpn) bind_flares.shot_callback(wpn, ammo_name) -- log("SHOOT:["..wpn:name().."], ammo_elapsed["..ammo_elapsed.."], ammo["..ammo_name.."], alive["..tostring(npc:alive()).."]") end end end end self.last_ammo_elapsed = ammo_elapsed self.last_ammo_total = ammo_total end function CWeapon:update(delta) end function CWeapon:net_destroy() end ---------------------------------------------------------------------------------------------------- -- утилиты -- открыт ли ХУД у актора function on_open_hud(obj) return obj:id() == actor_id and level.main_input_receiver() end Работает как для актора, так и для НПС. Правда тут на одиночный огонь, для автоогня скрипт надо доработать. Как видно, ещё 4 года назад скрипт написал. Изменено 21 Ноября 2021 пользователем НаноБот чертов таб на 8 3 3 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий
Murarius 10 533 Опубликовано 21 Ноября 2021 Поделиться Опубликовано 21 Ноября 2021 45 минут назад, Labadal сказал: А в целом идея такая, что это можно провернуть в оригинальном ТЧ, безо всяких ОГСРов и так далее. Да, но вряд ли кто-то сейчас что-то разумное проворачивает на оригинальном движке... В любом случае: учишься - молодец. 1 1 2 Литературка (избранное): "Координаты избушки" (2023) --- "Колобок времени" (2019) --- "Пиво и жлоб" (2018) --- "Лекарство против морщин" (2013) --- "Когда все пройдет" (2013) Креатив (бесперспективное): Dominanta --- Сон на земле Досвиданьице (слезное): Смена администратора (2024) Ссылка на комментарий
Zander_driver 10 334 Опубликовано 1 Декабря 2021 Автор Поделиться Опубликовано 1 Декабря 2021 (изменено) Оффтоп и свинарник частично почистил. Тема на реконструкции - потихоньку буду приводить ее в порядок, в том числе добавляя актуальный контент. P.S. @Murarius спасибо за восстановление кураторства здесь. Изменено 3 Декабря 2021 пользователем Zander_driver 1 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. Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 217 Опубликовано 26 Ноября 2023 Это популярное сообщение. Поделиться Опубликовано 26 Ноября 2023 (изменено) Скриптовый парсер XML https://disk.yandex.ru/d/1ecmI-oPY5b11A Может пригодиться тем, кто, во-первых, хочет иметь возможность читать и понимать в игре файлы xml формата, а во-вторых, по ряду причин не хочет или не может пользоваться другими механизмами, в том числе модифицированными движками. Скрытый текст Парсинг всех xml с игровыми инфопорциями. Предусловие в данном случае: псевдоним $gameplay$ для доступа к соотв. папке заранее добавлен в fsgame.ltx ($gameplay$ = true| false| $game_config$| gameplay\) -- получение таблицы инфопорций из соотв. файлов xml local tInfos = parseInfos() function parseInfos() local tResult = {} local f = getFS() local flist = f:file_list_open_ex("$gameplay$", FS.FS_ListFiles, "info_*.xml") local fcnt = flist:Size() local xml2lua = xml_utils.get_xml2lua() local handler_tree = xml_utils.get_tree_handler() if fcnt > 0 then for i = 0, fcnt - 1 do local filepath = f:update_path("$gameplay$", flist:GetAt(i):NameFull()) if xml2lua.fileExists(filepath) then local handler = handler_tree:new() local parser = xml2lua.parser(handler) parser:parse(xml2lua.loadFile(filepath)) local infos = handler.root.game_information_portions if type(infos.info_portion) == "table" and #infos.info_portion > 1 then infos = infos.info_portion end if infos then if #infos > 1 then for _,v in ipairs(infos) do table.insert(tResult, { info = v._attr.id, has_article = v.article ~= nil, has_action = v.action ~= nil }) end else table.insert(tResult, { info = infos._attr.id, has_article = infos.article ~= nil, has_action = infos.action ~= nil }) end end end end end return tResult end Результат после вышеописанного парсинга будет примерно таким: tInfos = { [1] = { info = "esc_kill_gunslinger", has_article = true, has_action = false }, [2] = { info = "mil_cook_map_spot", has_article = false, has_action = true }, -- и т. д. } Скрытый текст Парсеру необходимо скармливать готовую xml строку. Её можно подготовить самому, либо использовать встроенную в модуль функцию чтения из файла, см. строку: parser:parse(xml2lua.loadFile(filepath)) Но как я ни старался, прочесть xml из игрового архива мне так и не удалось. Теоретически можно было бы использовать что-то типа такого: local f, filename = getFS(), "filename.xml" local fsfile = f:exist("$gameplay$", filename) if fsfile and fsfile.size_real > 0 then local reader = f:r_open("$gameplay$", flist:GetAt(i):NameFull()) local xml_string = string.sub(reader:r_stringZ(), 1, fsfile.size_real) parser:parse(xml_string) -- и т. д. Однако на ванильном движке ЧН (как и у malandrinus-а в своё время в ТЧ) это приводит к вылетам при первом же чтении файла, содержащегося в архиве, да и рабочего метода закрытия потока нет. Скрытый текст Все благодарности сюда:https://github.com/manoelcampos/xml2lua (с) Manoel Campos da Silva Filho & Paul Chakravarti Ваш покорный слуга лишь доработал парсер так, чтобы его можно было использовать в игре. @Zander_driver, если думаешь, что тема мертва и реанимировать её не стоит, попросим модераторов перенести пост куда-нибудь ещё. Изменено 27 Ноября 2023 пользователем Kirgudu Добавлено Zander_driver, 26 Ноября 2023 Моддинг в принципе полу-мертв, но тем не менее инструмент интересный и для кого-то наверняка полезный. Так что, пусть будет конечно. 2 5 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти