Это популярное сообщение. Zander_driver 10 358 Опубликовано 21 Августа 2015 Это популярное сообщение. Поделиться Опубликовано 21 Августа 2015 (изменено) Раньше в этой теме находились всякие полезности. Соответствующие определенным правилам и требованиям, которые были указаны в шапке. Но т.к. со временем в тему стали постить материалы не соответствующие этим требованиям - шапка более не имеет смысла. В старых постах еще может быть что-то полезное, в новых по всей видимости - вряд ли. Изменено 1 Декабря 2021 пользователем Zander_driver Привел в соответствие современным реалиям. 2 4 4 12 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/
Dennis_Chikin 3 665 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Поскольку артосомодули долго обсуждали и что-то с ними делали именно здесь, вопрос: может кто-то опознать версию, и сказать что-нибудь об ее требованиях к движку ? Оно вообще работоспособно на оригинальном ТЧ1.0006 ? https://www.dropbox.com/s/1h3mme4sz1spe3e/m_net_utils.script?dl=0 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1185612
Kirgudu 1 370 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Ишь, какую версию ты откопал. Мультиплатформа отсутствует и, скорее всего, предназначено только для ТЧ. Но вот насколько сие творение работоспособно и лишено ошибок - сказать не могу. У Артоса 2 версии модулей нетпакетов: более старый m_net_utils и более новый m_netpk. Но даже более старый m_net_utils, наличествующий у меня, имеет дату редактирования 27.10.2011 (у тебя же - 22.05.2009, на 2 с половиной года раньше) и предназначен уже для всех трёх платформ игры. Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1185655
Dennis_Chikin 3 665 Опубликовано 23 Июня 2018 Поделиться Опубликовано 23 Июня 2018 Это "омега". Там идет какой-то правленный движок, требующийся для "фриплэя". То есть, основной сюжет - прекрасно работает на чистом 1.0006, далее подключаются "компаньоны", обращающиеся к вот этому m_net_utils, и намертво виснет dialog_manager при попытке разговора с любым неписем. Пытаюсь найти, где ему надо что оторвать для продолжения игры. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1185663
buffy 4 Опубликовано 5 Октября 2018 Поделиться Опубликовано 5 Октября 2018 Не могу найти модуль "Сканирование конфигов". Остался у кого? Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1204088
Это популярное сообщение. НаноБот 762 Опубликовано 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 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1402931
av661194 51 Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1402942
Это популярное сообщение. НаноБот 762 Опубликовано 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 2 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1403074
Murarius 10 579 Опубликовано 21 Ноября 2021 Поделиться Опубликовано 21 Ноября 2021 45 минут назад, Labadal сказал: А в целом идея такая, что это можно провернуть в оригинальном ТЧ, безо всяких ОГСРов и так далее. Да, но вряд ли кто-то сейчас что-то разумное проворачивает на оригинальном движке... В любом случае: учишься - молодец. 1 1 2 Литературка (избранное): "Мяу навсегда" (2025) --- "Координаты избушки" (2023) --- "Колобок времени" (2019) --- "Пиво и жлоб" (2018) --- "Лекарство против морщин" (2013) --- "Когда все пройдет" (2013) Креатив (бесперспективное): Dominanta --- Сон на земле Досвиданьице (слезное): Смена администратора (2024) Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1403104
Zander_driver 10 358 Опубликовано 1 Декабря 2021 Автор Поделиться Опубликовано 1 Декабря 2021 (изменено) Оффтоп и свинарник частично почистил. Тема на реконструкции - потихоньку буду приводить ее в порядок, в том числе добавляя актуальный контент. P.S. @Murarius спасибо за восстановление кураторства здесь. Изменено 3 Декабря 2021 пользователем Zander_driver 1 1 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1404236
Это популярное сообщение. Kirgudu 1 370 Опубликовано 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 2 5 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/13216-sborochnyj-ceh/page/7/#findComment-1473022
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти