Автор Тема: ModLoader для Vice City  (Прочитано 2884 раз)

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 174
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
ModLoader для Vice City
« : Апрель 02, 2014, 06:01:47 pm »
Предлагаю обсудить тут проект загрузчика модов, на подобии для San Andreas. Т.е. через плагин asi мы в отдельной папке собираем любые моды, с своими приоритетами, которые будут заменять оригинальные файлы игры через память. Особенно это касается файлов которые добавляются в gta3.img архив, а также паки текстур txd из папки models и txd. Что это даст: 1) во-первых игра будет абсолютно оригинальна без изменений, все изменения будет через asi загрузщик. 2) это позволит легко удалить непонравившийся мод, либо приоритет загрузки поставить 0, т.е. мод не будет загружаться. 3) в третьих согласитесь это будет уникально.
I know everything and nothing...

Оффлайн xanser

  • Главный Модератор
  • Опытный
  • *****
  • Сообщений: 498
  • Репутация: +43/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: ModLoader для Vice City
« Ответ #1 : Апрель 02, 2014, 06:58:01 pm »
Так-то идея хорошая, если создавать подборку модов на оригинале. Подмену путей стандартных файлов сделать будет просто, вот как сделать подмену внутри img-архивов, надо где-то перехватывать его загрузку и пропускать ненужные модели, меняя на свои. Еще момент, если мод использует новые файлы, то их пути, заложенные разработчиками относительно корневой папки переопределить уже не получится, я так понимаю, моды будут аккуратно храниться по своим папкам.

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 174
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: ModLoader для Vice City
« Ответ #2 : Апрель 02, 2014, 07:08:09 pm »
Насчет новых файлов я не совсем понял, приведи пример.
I know everything and nothing...

Оффлайн xanser

  • Главный Модератор
  • Опытный
  • *****
  • Сообщений: 498
  • Репутация: +43/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: ModLoader для Vice City
« Ответ #3 : Апрель 02, 2014, 07:13:48 pm »
Например, самодельные конфиг-файлы для мода, автор заложил в asi путь для своих настроек data\trololo.dat, а мы подразумеваем, что мод будет храниться в папке \Mods\Trololo\data\trololo.dat

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 174
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: ModLoader для Vice City
« Ответ #4 : Апрель 02, 2014, 07:18:18 pm »
ну для новых файлов проблем нет, так как они не заменяют ничего, пусть они будут лежать, где их автор прописал. Эти файлы без asi работать не будут и при удалении мода на игру никак не повлияют.
I know everything and nothing...

Оффлайн xanser

  • Главный Модератор
  • Опытный
  • *****
  • Сообщений: 498
  • Репутация: +43/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: ModLoader для Vice City
« Ответ #5 : Апрель 02, 2014, 07:29:48 pm »
Могут возникнуть ситуации, которые сразу не просчитаешь, например, два мода - каждый использует свой дополнительный img-архив, подключение архивов (или необязательно архивов, а тех же IDE, IPL) прописано у каждого в gta_vc.dat, придется формировать объединенный gta_vc.dat.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 512
  • Репутация: +33/-0
    • Просмотр профиля
Re: ModLoader для Vice City
« Ответ #6 : Апрель 02, 2014, 07:50:53 pm »
Еще будет, одна не хорошая ситуация. Когда оба разных плагина от разных авторов, будут обращаться к тому-же самому участку кода в памяти игре. Например один рисует что-то на экране и цепляться за эту функцию путем инжекта и второй в ту же самому функцию. Результат будет такой, что 1 только плагин будет работать, т.е тот кто последний сделает инжект. Но выход один есть, но там уже будет встроенная система, типа менеджера-контейнера, который будет предоставлять SDK, т.е заголовочные файлы своего функционала, для различных вещей. Я раньше уже думал об это всем. Пример типа такой:

Код: C++
  1. void myDraw() {
  2. //тут наш код для ВС
  3. }
  4.  
а ниже вызываем функцию из менеджера-контейнера к примеру:

Код: C++
  1. addDrawFunc(myDraw, CONST_PARAM);

Это был как пример, и таким образом отдельный программист будет юзать общий этот контейнер, тогда не будет уже не каких конфликтов между другими плагинами.


« Последнее редактирование: Апрель 02, 2014, 07:55:55 pm от Sektor »

Оффлайн Shagg_E

  • Постоялец
  • ***
  • Сообщений: 510
  • Репутация: +14/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: ModLoader для Vice City
« Ответ #7 : Апрель 02, 2014, 09:41:32 pm »
Если кому поможет - вот способ от DimZet13, который позволяет делать практически любые моды, изменяя лишь default.dat.
Этот файл(вернее его название) я, помнится, заменял на defaul2.dat посредством патчинга exe. Соответственно, вы(те, кто смыслят в программировании) сможете просто пропатчить память.

Итого - лучший способ, что я вижу:

1) Гуглим и вспоминаем старенький "GTA Mod Installer".
2) Создаем в папке с игрой папку MODS, в которую закидываем defaul2.dat - копию оригинала. Также туда же кидаем пустой MODS.img(с MODS.dir).
3) Создаем exe-загрузчик, при старте которого в папке MODS ищутся подпапки(папки модов), в которых есть, помимо всяких dff, txd и прочей лабуды файл custommod.cfg, в котором прописано, куда закидывать какие dff, куда - какие txd и т.д.
И здесь по-подробнее:
В exe-загрузчике таким образом будут отображаться имеющиеся кастом-моды, напротив каждого - галочка.
Когда отмечаем нужные галочки-моды и нажимаем заветное "Ok", происходит "компиляция" - все отмеченные моды ставятся и прописываются в наших defaul2.dat и img. Убранная галочка - мод, наоборот, удаляется.
После "компиляции" запускается игра, одновременно идет подмена в памяти игры пути "ИГРА/data/default.dat" на "ИГРА/MODS/defaul2.dat"
4) Делаем "ModBuilder" - прогу для мододелов, которая будет генерировать код для конфигов custommod.cfg, которые будут распространяться с их модами.
5) У exe-загрузчика будет ini, в котором прописано, какие моды сейчас активны(установлены), а у каких - "галочка снята", т.е. существуют лишь в виде папок в папке MODS. Если с момента последнего запуска "отмеченность" галочек не изменилась - загрузчик заного не "компилируется".

Плюсы:
*Реальность исполнения:ковыряние img еще ALEXANDER делал - мб подскажет, но он делал для img 2.0 - SA , хотя принцип ковыряния всех img одинаков. А всякие текстовые файлы для вас изменять - не проблема.
*Простота использования - для простого игрока нужно просто закинуть папки с модами в папку ИГРА/MODS/ и при старте игры через загрузчик отметить нужные галочки, и нажать "OK".

Минусы:
*Геморрой: реальность исполнения еще не означает его легкость.
*конфликты - если двое мододелов добавляют своими модами объекты на карту с одинаковым именем "dom01.dff".
Но знаете-ли, от этого при любой реализации modloader-а не упастись.
*Если за раз при запуске игрок наотмечает кучу галочек - установка-компиляция будет долгой.
« Последнее редактирование: Апрель 02, 2014, 09:58:27 pm от Shaggy »

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 174
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: ModLoader для Vice City
« Ответ #8 : Апрель 03, 2014, 09:47:35 am »
все продумано дорогие коллеги.
как я уже сказал у модов есть приоритеты, мод с высшим приоритетом загружается раньше. Что касается img архивов, объясняю тому кто еще не знает в трешке и вайс сити существует возможность одновременного присутствия дублирующих файлов, они загружаются по очереди, тот кто последний и будет в финале на карте. По сути: можно тупо добавить свой img архив с новым оружием прописать его в gta_vc.dat и все новое оружие готово. Это кстати является отличительной особенностью этих двух частей, так как в San Andreas дублирующие файлы исключены. Но для обоих случаев свои плюсы. в случае с дублирующими файлами не надо париться поиском этого файла а просто внедрить его в gta3.img разумеется после загрузки всех остальных файлов, т.е. последним. в случае с сан андреас плюс в том что дублирующие файлы уже исключены и нам достаточно найти конкретный файл и заменить его, ну если не найдет то добавить. поэтому преимущество будет у файлов которые будут добавляться виртуально. В случаях со своими ide ipl могут возникнуть проблемы, это да. Зато в случаях своих img файлов можно поступить так распаковать все файлы и просто поместить в папку для дальнейшего их виртуального добавления.
I know everything and nothing...

Оффлайн xanser

  • Главный Модератор
  • Опытный
  • *****
  • Сообщений: 498
  • Репутация: +43/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: ModLoader для Vice City
« Ответ #9 : Апрель 03, 2014, 11:33:54 am »
Оптимальнее всего генерировать default.dat и gta_vc.dat при запуске игры в зависимости от приоритетов добавляемых туда моделей, текстур и img-архивов, тогда даже придумывать ничего не придется, все средствами самой игры.

Оффлайн Shagg_E

  • Постоялец
  • ***
  • Сообщений: 510
  • Репутация: +14/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: ModLoader для Vice City
« Ответ #10 : Апрель 03, 2014, 02:01:58 pm »
вы одно не учли - есть лимит на кол-во дополнительных img.
Поэтому то я и предложил способ с одним дополнительным img.

Про конфликты - они всё равно будут. ДА - вылетов не будет, но если два модмейкера добавят на карту разные объекты под одним именем - то в конце концов на карте в двух местах будет один и тот же объект, а не два разных, как задумано авторами.
Это никак не учесть и не исправить. Просто будут несовместимые друг с другом моды

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 174
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: ModLoader для Vice City
« Ответ #11 : Апрель 03, 2014, 02:51:42 pm »
есть лимит аджастер который увеличивает кол-во img архивов.
человек который ставит не совсем дурак в конце концов если он заметит не точность он просто поставит приоритет моду 0 и все он будет оключен. да и потом когда копируешь файлы то ты уже знаешь какие файлы модов ты используешь
I know everything and nothing...

Оффлайн Shagg_E

  • Постоялец
  • ***
  • Сообщений: 510
  • Репутация: +14/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: ModLoader для Vice City
« Ответ #12 : Апрель 03, 2014, 06:03:50 pm »
нет, в том варианте, что я расписал - всё это будет делать автоматика, и тот, кто ставит - не будет ничго знать о содержимом модов - ведь в облегчении установки смысл ModLoader-а, не так ли?
Если окажется, что какие-то моды несовместимы - можно убрать галочку, и мод деинсталлируется, и никаких приоритетов выставлять не нужно будет

P.S. Как вы себе представляете работу ModLoader-а? С технической точки зрения. Я расписал, как это представляю я, и пока здесь других рабочих концептов не увидел
« Последнее редактирование: Апрель 03, 2014, 06:12:55 pm от Shaggy »