Народ, только сильно не пинайте, ну реально не знаю как редактировать.
Я через gommostudio пытался найти нужный интерфейс, я все подряд растягивал, много раз методом тыка растягивал все, что примерно похоже, так и не понял, как растянуть всю колонку или сместить весь текст.
Я через ИИ прогонял интерфейс, тоже ни чего не нашел... Ну подскажите пожалуйста. Можно под хайд или в ПМ.
Народ, только сильно не пинайте, ну реально не знаю как редактировать.
Я через gommostudio пытался найти нужный интерфейс, я все подряд растягивал, много раз методом тыка растягивал все, что примерно похоже, так и не понял, как растянуть всю колонку или сместить весь текст.
Я через ИИ прогонял интерфейс, тоже ни чего не нашел... Ну подскажите пожалуйста. Можно под хайд или в ПМ.
Тоже интересен был данный вопрос. Где и что (какой параметр) пытался растягивать?
В common.spr похожие колонки растягивал.
В main.spr похожие колонки растягивал, как в простой папке Spiritimage-common, так и в ru-ru, да и в spiritimage.
Даже unit растягивал
Ну дайте дельный совет
В common.spr похожие колонки растягивал.
В main.spr похожие колонки растягивал, как в простой папке Spiritimage-common, так и в ru-ru, да и в spiritimage.
Даже unit растягивал
Ну дайте дельный совет
Вряд ли это делается только в SPT. Это всего лишь спрайт (картинка), которая натягивается на блок. Картинки подгоняют по размеру блока. Если блок будет другого размера, картинка всё равно натянется, просто будет кривой.
Поэтому основная геометрия, скорее всего, где-то в .bin в виде констант. После их изменения нужно будет подправить спрайт.
Думаю, что начальной точкой следует искать в бинарнике монтирование спрайта и смотреть, кем он используется.
Вряд ли это делается только в SPT. Это всего лишь спрайт (картинка), которая натягивается на блок. Картинки подгоняют по размеру блока. Если блок будет другого размера, картинка всё равно натянется, просто будет кривой.
Поэтому основная геометрия, скорее всего, где-то в .bin в виде констант. После их изменения нужно будет подправить спрайт.
Думаю, что начальной точкой следует искать в бинарнике монтирование спрайта и смотреть, кем он используется.
Ты прав, в ИИ я прогонял и .bin, там есть кое какие параметры, но толку не дало, либо я уже обленился и не стал досконально терроризировать ИИ.
Может просто есть у кого правильный запрос
Просто я сейчас с 10ток акков GPT атакую, что бы проект довести до нормального состояния. Я же халявщик, не хочу платить
Последний раз редактировалось KarabasS; 12.11.2026 в 12:33.
В common.spr похожие колонки растягивал.
В main.spr похожие колонки растягивал, как в простой папке Spiritimage-common, так и в ru-ru, да и в spiritimage.
Даже unit растягивал
Ну дайте дельный совет
даю дельный совет: декомпилируй бинарник ищи там классы создания окон интерфейса, потом по коду ищи где методы нужные вызываются и смотри с какими параметрами они вызываются, там должны быть размеры окна. рулез правильно подметил окно создается в коде игры там же натягивается текстура, ну изменишь ты текстуру она так же натянется под заданный в коде размер окна. и да это не на пять минут делов придется покопаться основательно если хочешь в этом разобраться.
даю дельный совет: декомпилируй бинарник ищи там классы создания окон интерфейса, потом по коду ищи где методы нужные вызываются и смотри с какими параметрами они вызываются, там должны быть размеры окна. рулез правильно подметил окно создается в коде игры там же натягивается текстура, ну изменишь ты текстуру она так же натянется под заданный в коде размер окна. и да это не на пять минут делов придется покопаться основательно если хочешь в этом разобраться.
оО @Тигрь это ужс... Естественно через ИКСрефс мы фиг че найдем...
далее идем через виртуалку, тут находим avcguicharinfowindow (я вообще думал, что это с полноценным окном что то связанно)
ищем адресс, у меня он 00BB42B8
И естественно ищем тайп. Я тайпы искал через ИИ, уж простите.
Но бл... Тут оказывается не все так просто.
Я "БОГотворю" того, кто это нашел еще в дааалеких временах, когда об ИИ не было и речи.
Система такая, через RTTI находим то, что нам надо, а это ни где ни зуя не написано, щелкаем на CGUICharInfoWindow::`RTTI Class Hierarchy Descriptor' - видим диз и хекс
Код:
.rdata:00B62BC4 ; CGUICharInfoWindow::`RTTI Class Hierarchy Descriptor'
.rdata:00B62BC4 ??_R3CGUICharInfoWindow@@8 dd 0 ; DATA XREF: .rdata:00B62BC0***8593;o
.rdata:00B62BC4 ; .rdata:00B62C10***8595;o ...
.rdata:00B62BC4 ; signature
.rdata:00B62BC8 dd 1 ; attributes
.rdata:00B62BCC dd 8 ; # of items in the array of base classes
.rdata:00B62BD0 dd offset ??_R2CGUICharInfoWindow@@8 ; reference to the array of base classes
.rdata:00B62BD4 ; CGUICharInfoWindow::`RTTI Base Class Array'
.rdata:00B62BD4 ??_R2CGUICharInfoWindow@@8 dd offset ??_R1A@?0A@EA@CGUICharInfoWindow@@8
.rdata:00B62BD4 ; DATA XREF:
Жмем на выделенном ??_R3CGUICharInfoWindow@@8 англ X
??_R3CGUICharInfoWindow@@8 но вам будет 6 офсетов, их отсеять легко.
c14, c28, c3c, c50 - т.е 00B62C14.
CGUICharInfoWindow ищем это.
CGUIScrollbar ищем это.
CGUICharInfoBoard ищем это. Все!
А потом я тупо плюнул и пошел в гпт бухать, потому как я задолбался. Мир грез, слез и (ну есть кайф, разбирать неизведанное).
Вот вам ширнуть 0x23A3DD окно, вот вам было e4 00 - 228, вот стало 04 01 - 260, было 228х119, стало 260х119, да и ху с ним, делаем дальше.
Смещение всего текста влево 0x236398 - Было 0A 00 00 00, поставил 00 00 00 00 и пойдет. Но хочу понять другое, как растягивается.
Не нашел я, как правильно растянуть окно, точнее нашел, но видать это не только его тянуть надо.
Последний раз редактировалось KarabasS; Вчера в 13:48.
оО @Тигрь это ужс... Естественно через ИКСрефс мы фиг че найдем...
далее идем через виртуалку, тут находим avcguicharinfowindow (я вообще думал, что это с полноценным окном что то связанно)
ищем адресс, у меня он 00BB42B8
И естественно ищем тайп. Я тайпы искал через ИИ, уж простите.
Но бл... Тут оказывается не все так просто.
Я "БОГотворю" того, кто это нашел еще в дааалеких временах, когда об ИИ не было и речи.
Система такая, через RTTI находим то, что нам надо, а это ни где ни зуя не написано, щелкаем на CGUICharInfoWindow::`RTTI Class Hierarchy Descriptor' - видим диз и хекс
Код:
.rdata:00B62BC4 ; CGUICharInfoWindow::`RTTI Class Hierarchy Descriptor'
.rdata:00B62BC4 ??_R3CGUICharInfoWindow@@8 dd 0 ; DATA XREF: .rdata:00B62BC0***8593;o
.rdata:00B62BC4 ; .rdata:00B62C10***8595;o ...
.rdata:00B62BC4 ; signature
.rdata:00B62BC8 dd 1 ; attributes
.rdata:00B62BCC dd 8 ; # of items in the array of base classes
.rdata:00B62BD0 dd offset ??_R2CGUICharInfoWindow@@8 ; reference to the array of base classes
.rdata:00B62BD4 ; CGUICharInfoWindow::`RTTI Base Class Array'
.rdata:00B62BD4 ??_R2CGUICharInfoWindow@@8 dd offset ??_R1A@?0A@EA@CGUICharInfoWindow@@8
.rdata:00B62BD4 ; DATA XREF:
Жмем на выделенном ??_R3CGUICharInfoWindow@@8 англ X
??_R3CGUICharInfoWindow@@8 но вам будет 6 офсетов, их отсеять легко.
c14, c28, c3c, c50 - т.е 00B62C14.
CGUICharInfoWindow ищем это.
CGUIScrollbar ищем это.
CGUICharInfoBoard ищем это. Все!
А потом я тупо плюнул и пошел в гпт бухать, потому как я задолбался. Мир грез, слез и (ну есть кайф, разбирать неизведанное).
Вот вам ширнуть 0x23A3DD окно, вот вам было e4 00 - 228, вот стало 04 01 - 260, было 228х119, стало 260х119, да и ху с ним, делаем дальше.
Ищу дальше смещение ползунка.
ПОКА НЕ ГОТОВО!
Посмотри мою тему с руссификатором. Там модули на инвентарь и на расширение этого интерфейса и ещё пару фиксов.
Вообще были же очень древние сурсы клиента и сервера GIGA3 вроде. я оттуда много почерпнул в свое время на сколько я помню там и все взаимодействие с интерфейсом было, да тот клиент от современной версии отличается, даже от пятого апа отличался, но сама основа там заложена та же самая. от исходников отталкиваться проще чем в декомпиле искать. я обычно смотрел что-то в тех сурсах а потом уже пытался найти похожее в декомпиле бинарника. правда где эти сурсы щас достать я хз, у меня под рукой сейчас нет их.
Добавлено через 16 минут
для тех кто не в курсе: еще из примечательного все эти окна внутри так же обрабатывают SendMessage с собственными задекларированными WM_USER и через отправку главному окну извне SendMessage с нужными WM_USER можно управлять внутренними окнами, кликать там кнопки перетаскивать предметы, юзать их. но по моему размер окон так поменять нельзя. некоторые на этом принципе ботов писали, видимо потому что не могли/не хотели дергать игровые классы. Можете запустить Spy++ и потаскать окна внутри рфки и потыкать там на кнопки, будет очень интересно. =)
Последний раз редактировалось Тигрь; Вчера в 04:48.
Причина: Добавлено сообщение