GTA Vice City > Моды

Сцена Главного Меню

(1/4) > >>

Shagg_E:
Бывает - делаешь что-то важное(диплом, например) - а какая-нибудь безумная идея заполняет разум, не давая ничего сделать(прав был Лёнчик). Пару дней назад такой стала для меня идея мини-сценки в главном меню игры, по типу многих современных(и не очень) игр.
Выглядит это примерно так:
! No longer available

Выложил на сайт тестовую версию, там же - сурсы.
В принципе - поскольку делалось это изначально для своей мини-глобалки - я добился желаемого результата, однако идея сделать версию "для всех" стала следующей на очереди безумных идей, а тут возникает несколько проблем(все они прописаны в ридми, но я продублирую с комментариями):
- Меню выбора скина игрока вызывает краш игры. Это происходит потому, что меню использует другой img архив, нежели игра.
Игра подгружает модель игрока до того, как я подменяю img-архив. А после подмены, какие-то оффсеты не совпадают и у игры возникает конфликт на ровном месте. Но тут можно заблочить это меню путем временной переделки кнопки вызова этого меню: чтобы кнопка "Player Skin Setup" вела не в соответствующее меню, а обратно в опции. Но я не знаю нужного адреса памяти.
- "Main Menu Scene" не совместим с плагином "GInput". GInput просто блокирует всё это.
Тут фигня какая-то - не знаю, почему так происходит.
- "Тяжелые" модели коллизии для "Main Menu Scene" вызывают краш при загрузке новой игры. Так что, пожалуйста, не используйте их.
Одна и та же col-модель(даже "тяжелая") может спокойно позволять загружать новую игру снова и снова(простейший пример - та недавняя сборка с каньоном - ссылка в конце сообщения), однако если сунуть таковую в кол меню - новая игра потом не загрузится. Но это мелочь - всё равно в меню желательно использовать максимально простую и "легкую" сцену для быстрой первоначальной загрузки.
Ну, и - на десерт:
- Загрузка сохранений вызывает краш. Это потому, что игра уже "загружена"(для "Main Menu Scene") и новый scm скрипт "Main Menu Scene" не совместим с сохранением. По этой причине, меню загрузки сохранений заблокировано, так что вам придется запускать новую игру, чтобы загрузить сохранение после этого.
Это большая проблема для почти для всех. Не для меня - поскольку в моей мини-глобалке не будет сохранений, но для всех остальных вариант "запускать новую игру, чтобы загрузить сохранение после этого" может оказаться крайне геморройным. Да и мне самому играть в оригинальный Вайс из-за этого становится неудобно.
Это - основная причина создания темы. Можно сделать рандомные сцены, экспериментировать со звуками, пунктами меню и прочими фантазиями, но без решения этой проблемы дальнейшее развитие проекта бесполезно, ибо любые прикольные менюшки не стоят такого геморроя при загрузки сохранений.

Нужно как-то убедить игру, что игра не начата и чтобы при загрузке сохранения игра загружала всё заного, как в случае старта новой игры. Но я понятия не имею, как это сделать(хоть подозреваю, что это возможно).

Есть второй вариант - остановить выполнение scm путем выставления 0x44FEDD на 0(вернуть - 1), и создавать сценки, к примеру, на Lua, НО! Это половина решения, ибо остается аналогичная проблема с картой! Т.е. нужно всё равно найти способ заставить игру перезагрузить всё.
Есть еще вариант - взять предыдущий вариант и просто не использовать новую карту. Но это уныло, и глупо, ибо меню будет загружаться также долго, как и сама игра(скорость загрузки и была изначальной причиной создания своей карты).

Короче - не знаю, что делать... Во вложении дубликат исходника, что идет в комплекте с модом(если кому понадобится глянуть по-быстрому)

P.S. Также - подозреваю, что весь плагин написан через одно место, поэтому буду не против, если кто-нибудь переделает всё основательно. Вообще - это типа "open-source", так что, кто захочет - может сделать и опубликовать новую версию самостоятельно. Надеюсь - в финале мы получим что-то стоящее.

xanser:

--- Цитата: Shaggy от Май 16, 2016, 01:47:59 am ---- Меню выбора скина игрока вызывает краш игры. Это происходит потому, что меню использует другой img архив, нежели игра.
Игра подгружает модель игрока до того, как я подменяю img-архив. А после подмены, какие-то оффсеты не совпадают и у игры возникает конфликт на ровном месте.
--- Конец цитаты ---

Может быть эту проблему получится решить не заменой img-архива, а подключением его как дополнительного в gta_vc.dat в самом верху через строку CDIMAGE data\maps\menu\menu.img, туда же перенести содержимое menu.dat.
А вообще для чего выделять второй img, разве в сцене используется карта не из gta3.img?

Видимо так не получится, тут дважды игра начинается и надо сократить время на загрузку "первой" игры.


--- Цитата: Shaggy от Май 16, 2016, 01:47:59 am ---Игра подгружает модель игрока до того, как я подменяю img-архив.
--- Конец цитаты ---
Ты же можешь менять адреса еще до вызова SetTimer(0,0, 0, (TIMERPROC)MainMenuScene), добавь перед ним все, что нужно сразу подменить.

Shagg_E:

--- Цитата: xanser от Май 27, 2016, 08:02:37 am ---
--- Цитата: Shaggy от Май 16, 2016, 01:47:59 am ---Игра подгружает модель игрока до того, как я подменяю img-архив.
--- Конец цитаты ---
Ты же можешь менять адреса еще до вызова SetTimer(0,0, 0, (TIMERPROC)MainMenuScene), добавь перед ним все, что нужно сразу подменить.

--- Конец цитаты ---
Действительно(протупил чет): это решит проблему со скином, но всё же главная проблема - с сейвами...

UPD: Ах, да - тут проблема: в этом случае уже в "нормальной" игре выбор скина будет вызывать краш, т.к. в меню выбора скина будет загружаться моделька по старому оффсету из img меню, т.е. - несуществующая в "нормальной" игре моделька.
Но в любом случае, скин - это фигня, нужно решить сейвы, т.е. - полную перезагрузку ресурсов при загрузке сейва, как при начале новой игры.

GeniusZ:
Радар и худ можно было убрать в menu.scm, а не в исходнике плагина

Shagg_E:
Худ в scm не убирается в Вайсе(стандартными опкодами) - только через память. Поэтому делал сразу через плагин.
Но вообще - это тестовая версия, в сейчас уже всё с этим ок. Вообще - программная часть закончена, сейчас пилю тестовые менюшки, заодно корректирую по-немногу плагин. Скоро выложу финалку.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии