Vis Опубликовано 16 августа, 2022 Поделиться Опубликовано 16 августа, 2022 есть идея. писать моды, прилепляемые к игре независимо от родных master.dat и critter.dat и НЕперезаписывая родные PIDы. то есть мы читаем последние зарегистрированные PIDы в родных dat'ах и каким-то образом передаем движку регистрацию своих PID'ов с нумерацией последний родной PID + n в зависимости от того чего мы хотим впихнуть и прилепить. возможно ли такое реализовать в текущих реалиях sfall'a? алгоритмически я вижу это так:1. перед запуском клиента читаем родную дату, узнаем крайние PIDы2. пишем в data/proto/critters, data/proto/items и т.д. родные critters.lst, items.lst и т.д. с дописанием в конец файла своих пидов.3. дописываем так же свои pro-файлы в эти папки с именами взятыми из предыдущего пункта в своих модовских pro-файлах мы как арты указываем имена файлов из папки art, и по идее новые про-файлы должны нормально зарегистрироваться и нормально подцепить свои арты и флаги. или такое лучше творить в "инсталяторе"? безусловно всё это выглядит как сферический конь в вакууме, да еще и без проверки существующих patch000 или любой другой даты, которые могут родные дополнять своими прошками. или вобще не стоит так заморачиваться и таки писать по старинке? берем дату, вот что есть от нее и пляшем самостоятельно ручками прописывая все и везде как нужно. Ссылка на комментарий
Mr.Sталин Опубликовано 17 августа, 2022 Поделиться Опубликовано 17 августа, 2022 Думаешь ты это первый предложил?))Пока отложено.Слишком непонятно как это будет взаимодействовать с другими модами, например два куя хотят зарегать свои ваучеры, кто из них какой номер получит? - отсюда вывод только динамическая рега (никаких доп.lst файликов с дописыванием)+ докуя времени надо будет убить на тесты при реализации. 1 Ссылка на комментарий
Vis Опубликовано 17 августа, 2022 Поделиться Опубликовано 17 августа, 2022 Думаешь ты это первый предложил?))конечно нет, учитывая сколько десятилетий игре и комьюнити))я вобще как бы сейчас уже понял что все вопросы, которые пытаюсь разрулить, до меня уже кто-то их разрулил или пытался разрулить. Ссылка на комментарий
Jordan Опубликовано 17 августа, 2022 Поделиться Опубликовано 17 августа, 2022 есть идея. писать моды, прилепляемые к игре независимо от родных master.dat и critter.dat и НЕперезаписывая родные PIDы. то есть мы читаем последние зарегистрированные PIDы в родных dat'ах и каким-то образом передаем движку регистрацию своих PID'ов с нумерацией последний родной PID + n в зависимости от того чего мы хотим впихнуть и прилепить. возможно ли такое реализовать в текущих реалиях sfall'a? алгоритмически я вижу это так:1. перед запуском клиента читаем родную дату, узнаем крайние PIDы2. пишем в data/proto/critters, data/proto/items и т.д. родные critters.lst, items.lst и т.д. с дописанием в конец файла своих пидов.3. дописываем так же свои pro-файлы в эти папки с именами взятыми из предыдущего пункта в своих модовских pro-файлах мы как арты указываем имена файлов из папки art, и по идее новые про-файлы должны нормально зарегистрироваться и нормально подцепить свои арты и флаги. или такое лучше творить в "инсталяторе"? безусловно всё это выглядит как сферический конь в вакууме, да еще и без проверки существующих patch000 или любой другой даты, которые могут родные дополнять своими прошками. или вобще не стоит так заморачиваться и таки писать по старинке? берем дату, вот что есть от нее и пляшем самостоятельно ручками прописывая все и везде как нужно. Добавить некий вариант версионирования изменений. Что то похожее есть в morrowind, skyrim. Просто подключаем свои плагины и играем. Без потери совместимости, получится кособоко и через раз работающее.добавлено позжеКак пример можно взять игру arcanum. Разработчики заложили написание модулей к игре. Это просто dat архив с ресурсами игры. Но лучше сделать тоньше, для каждого модуля ввести некий namespace. Где бы в ресурсах фигурировало название модуля для всех ресурсов.добавлено позжеЕще один пункт, карты жестко завязаны на наличие этих PID идентификаторов. PID есть у всех объектов, если только написать особо умный патчер, который бы патчил и каким то образом объединял моды. Короче не реально. 1 Ссылка на комментарий
Vis Опубликовано 17 августа, 2022 Поделиться Опубликовано 17 августа, 2022 Mr.Сталин, не мог бы глянуть?на всех версиях игры проявляется такой интересный баг при первом посещении Сан-Франциско.Лопен и Дракон не исчезают из ринга, Лопен ничего Дракону не отвечает. и все, стоят они как два дурака. сначала я грешил на скрипты, но я проверил это уже на 4х разных сборках и версиях игры (RP, MM, оригинал ГоГ, оригинал 1с). если запускать клиент БЕЗ sfall 5.0.1 то бага нет. как только ты запускаешь клиент со sfall 5.0.1 баг себя проявляет. вот сейв с чистого оригинального клиента 1с (3й слот стоя рядом с СФ).https://disk.yandex.ru/d/0ixm9JgnBI3TZA сейв чистого ГоГ(4й слот)https://disk.yandex.ru/d/HaqzgPNJUlTK0A я понимаю что это мелочь.... но.... я обратил внимание только сейчас. и еще, на версии sfall 4.3.0.2(встроен в ММ последнеее что в открытом виде MM 2.47t2), 4.3.3.1 этого бага НЕТ. Дракон бьет Лопена, Лопен ему отвечает и они исчезают с ринга. так должно быть и все оке. опять же проверил на нескольких версиях игры (чистый ГоГ, чистый 1с). очень странно, но такая дичь почему-то только на 5.0.1/5.0.1.1 (даже при параметрах по умолчанию, никакого ускорения и тд и тп) Ссылка на комментарий
Foxx Опубликовано 17 августа, 2022 Поделиться Опубликовано 17 августа, 2022 На версии v5.0.0.1 тоже бага нет, что-то поломалось с версии 5.0.1 Ссылка на комментарий
Mr.Sталин Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 На версии v5.0.0.1 тоже бага нет, что-то поломалось с версии 5.0.1а которая 5.0.1.1 - проверили? Ссылка на комментарий
Vis Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 а которая 5.0.1.1 - проверили? очень странно, но такая дичь почему-то только на 5.0.1/5.0.1.1 (даже при параметрах по умолчанию, никакого ускорения и тд и тп) Ссылка на комментарий
Mr.Sталин Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 от какой игры эти сохранения - не грузятся на RP Ссылка на комментарий
Vis Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 от какой игры эти сохранения - не грузятся на RPчистый клиент 1с и ГоГ без каких либо модов Ссылка на комментарий
Mr.Sталин Опубликовано 20 августа, 2022 Поделиться Опубликовано 20 августа, 2022 исправил. потом опубликую исправление. 2 Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Я тут сидел думал. Про.Динамическая регистрация прототипов кажется что это не реаллизуемо, потомучто прототипы их номер сохраняются в карте, а карта загружается до запуска скриптов. Так например, если мы создаем свой про с новам файлом “трусы.pro" и регистрируем его в скрипте потом помещаем на карту... Все хорошо до момента пока не выключим игру, так как загрузится из сохраненной игры уже не получится. Для такой фичи нужен другой движок основанный на других принципах.добавлено позжеХотя вроде проблема загрузки решается. Думаю дальше...добавлено позжеОбращаться к такому про чтобы получить его актуальный номер, нужно будет по имени "Трусы" при регистрации.Пока все гладко. 1 Ссылка на комментарий
Vis Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 да я имел ввиду не то чтобы динамическую регистрацию прошек. это же по сути должна быть единоразовая операция при подключении мода. один раз сделать проверку на пиды и переопределить пиды мода, если это возможно. а вобще товарищ Jordan более мудрую мысль высказал. разделять прошки и пиды родного фолла и модовских. как-то запараллелить этот процесс регистрации. чтобы у каждого была своя отдельная нумерация. но это опять же все упирается в порядок загрузки.1. то есть каким-то образом определять сурсы мода уже после загрузки клиента игры (чтобы избежать сразу танцы с бубном с дат-файлами патчей и тп)? но я так понимаю если клиент загружен новые прошки зарегать уже невозможно.2. творить сие действие до запуска клиента? но тогда надо грузить все дат-файлы какие есть в наличии как бы эмулируя действия самого клиента. и уже от них отталкиваться при регистрации сурсов мода тут емое на уровне абстракций проблема. логически тяжеловато все это увязать. а код это уже следствие Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Мудрые мысли модно или можно высказывать налево и направо, а вот привести рабочий вариант это уже совсем другая история. Ссылка на комментарий
Jordan Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 а вобще товарищ Jordan более мудрую мысль высказал. разделять прошки и пиды родного фолла и модовских. как-то запараллелить этот процесс регистрации. чтобы у каждого была своя отдельная нумерация. В этом и огромная проблема. Есть оригинальный ф2, нумерация для криттеров заканчивается на 2000, и есть два мода, которые добавляют еще по 10 прошников. И у каждого мода нумерация от 2001=2010. Данные файлы конфликтуют и могут распалагаться на разных картах. Как правильно все это перепатчить?Один из вариантов ввести namespace где бы был не просто номер, имя мода\номер и тогда моды будут корректно работать(опять же если моды перетирают оригинальные файлы, здесь будут проблемы, так как два мода изменяют один и тот же объект).Как такое проделать без нарушения совместимости мне не понятно.добавлено позжеМудрые мысли модно или можно высказывать налево и направо, а вот привести рабочий вариант это уже совсем другая история. Рабочий вариант, введение namespace, но это сломает совместимость с другими модами и нужно будет изменять все файлы игры + менять код и добавлять функциональность по поддержке всего этього непотребства. Я не вижу простых решений из коробки. Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 да я имел ввиду не то чтобы динамическую регистрацию прошек. это же по сути должна быть единоразовая операция при подключении мода. один раз сделать проверку на пиды и переопределить пиды мода, если это возможно.Невозможно, только динамическая регистрация.(почему невозможно расписывать не буду). Ссылка на комментарий
Jordan Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 2. творить сие действие до запуска клиента? но тогда надо грузить все дат-файлы какие есть в наличии как бы эмулируя действия самого клиента. и уже от них отталкиваться при регистрации сурсов мода Дело в том, что если и получится каким то образом пропатчить карты и прошки, могут быть проблемы с глобальными переменными. Так как моды могут использовать одинаковые номера переменных.добавлено позжеЕсли еще и скрипты патчить. Будет какой то люто сложный патчер, сбоящий на простых модахдобавлено позжеНевозможно, только динамическая регистрация.(почему невозможно расписывать не буду). Мр. Сталин, у тебя есть мысли насколько это реализуемо? Я сколько не размышлял, понимаю, что с текущим взаимодействие с ресурсами построенному на идентификаторах, что то путное сделать невозможно. Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Рабочий вариант, введение namespaceпод namespace я подразумеваю разделение диапазонов, для про?т.е. например ванильный вариант от 0 до 4000для мода №1 от 4000 до 4999для мода №2 5000-5999итд (в движке возможно иметь до 65к про)добавлено позжеМр. Сталин, у тебя есть мысли насколько это реализуемо? Я сколько не размышлял, понимаю, что с текущим взаимодействие с ресурсами построенному на идентификаторах, что то путное сделать невозможно.первый вариант с динамической регой я привел.второй с разделением диапазона - аля твой namespaces (сложнее в реализации чем первый, но вроде как менее конфликтный). Ссылка на комментарий
Jordan Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 под namespace я подразумеваю разделение диапазонов, для про? т.е. например ванильный вариант от 0 до 4000 для мода №1 от 4000 до 4999 для мода №2 5000-5999 итд (в движке возможно иметь до 65к про) Не совсем, но в варианте движка ф2, данный вариант будет работать. Получается нужо во время загрузки патчить моды, и заменяя старые pid, новыми уже из диапазона. Это патчить все файлы, pro, map, файлы где регаются города и файлы случайных встреч, скрипты что бы разрулить номера гвар и новых PID, если они юзаются в коде. Это как ходить по минному полю, и на каждом шагу наступать на мину добавлено позжепервый вариант с динамической регой я привел. Как конкретно оно будет работать? Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Да ты чето все усложняешь.Только новые моды должны будут работать с таким подходом (которые будут иметь например спец файл отличный от lst), остальные по старинке в диапазоне 0-4к. 1 Ссылка на комментарий
Jordan Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Да ты чето все усложняешь.Только новые моды должны будут работать с таким подходом (которые будут иметь например спец файл отличный от lst), остальные по старинке в диапазоне 0-4к. Я чёт думал, о старых. Если делать новый, то можно многое учесть. Ссылка на комментарий
Pyran Опубликовано 30 августа, 2022 Поделиться Опубликовано 30 августа, 2022 Еще один баян, но что-то не помню как делать:1. Сменил характеристики предмета в proto manager, теперь он не key а drug. Ок, но bis mapper теперь не может открыть карту. Что делаю не так?2. Как из внешний вид убитого critter-a, чтоб он был в виде лужи или сломанный пополам, а не только упавшим на брюхо? -!!- Технический перерыв. Не помогаю. Починяю компухтер! Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Mr.Sталин Опубликовано 30 августа, 2022 Поделиться Опубликовано 30 августа, 2022 Нельзя так просто взять и поменять тип прототипа, меняй обратно, удаляй их совсех карт включая интентари. И после этого можно менять.добавлено позжеПо второму чет походу у тебя клавиатура сломалась, в чем вопрос какойто набор слов))добавлено позжеПредпологаю ctrl+k или читай мануал по управлению маппера. 1 Ссылка на комментарий
Pyran Опубликовано 30 августа, 2022 Поделиться Опубликовано 30 августа, 2022 1. Так и думал, но не хотелось, таким макаром и новую прошку можно скреэйтить)2. Не, не сломалась, я ее уже заменил, теперь подсветка неравномерная и без русской раскладки)3. Логика, а то на k жму, а оно то встает, то падает. -!!- Технический перерыв. Не помогаю. Починяю компухтер! Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Pyran Опубликовано 30 августа, 2022 Поделиться Опубликовано 30 августа, 2022 ctrl+kнефигаK - делает из живого неживого, но как это тело перевернуть (чтоб приняло иную позу), в мануале не сказано.Только это:K - Убивает или «воскрешает» существо -!!- Технический перерыв. Не помогаю. Починяю компухтер! Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти