![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#781
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Так! Мой патч вообще-то до последнего момента был универсален, таким и будет оставаться дальше. Поэтому когда я спрашивал про кнопки, я имел ввиду кнопки, которые необходимы героям вообще, любым героям, т.е. тут надо ориентироваться на SoD, а не на какие-то специфические функции специфических модов.
Цитата Сделать единый интерфейс добавления кнопок и всё. Далее сами реализуют. про это мне можно не говорить, ибо планируется давно. Однако на разработку нужно прилично времени. Прежде всего надо найти и идентифицировать все оконные процедуры, затем внедрить добавление кнопок в каждую функцию создания окна, и внедрить обработку добавленых кнопок в каждую оконную процедуру. Далее надо придумать простой механизм наделения функционалом кнопок общий для героев (одинаковый как для СоД, так и для основанных на нем модов). Работы - огого! А я сам уже могу добавлять кнопки прямо сейчас! И то на это нужно время, которого у меня будет все меньше и меньше ближе к лету (сезонная работа, спорт). *** Вопрос. Нужно нарисовать кнопки из меню адвенча опшнз (посмотреть мир, карта загадка, копать, информация о сценарии, посмотреть ход противника) в стиле кнопок на панели адвенча менеджера. Только надо это сделать так, чтобы стиль и исполнение были на уровне. Как будто эти кнопки рисовали создатели оформления героев. Кто может? Тут в теме были примеры, но эти примеры меня не впечатлили. В связи с тем, что кнопки должны быть меньше по размеру, необходимо пересмотреть их содержание. Например вместо ямы, кучи и лопаты на кнопке 'копать' нужно оставить только лопату. Вынос этих кнопок на адвенча менеджер был в планах давно. Так же в ближайших планах увеличение списка городов и героев. У величеием списка я хотел заняться в первую очередь, однако решение этой задачи оказалось в разы сложнее чем вынос кнопок. -------------------- |
|
|
![]()
Сообщение
#782
|
|
![]() Immortal Сообщений: 6 278 Спасибо сказали: 12700 раз ![]() |
Цитата(baratorch @ 13 Mar 2010, 01:25) Вопрос. Нужно нарисовать кнопки из меню адвенча опшнз (посмотреть мир, карта загадка, копать, информация о сценарии, посмотреть ход противника) в стиле кнопок на панели адвенча менеджера. Только надо это сделать так, чтобы стиль и исполнение были на уровне. Как будто эти кнопки рисовали создатели оформления героев. Кто может? Могу попробовать. А как называется деф кнопок, кто-нибудь подскажет? -------------------- |
|
|
![]()
Сообщение
#783
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Кнопки опций: advdig, advinfo, advpuz, advturn, advview
Кнопки менеджера: iam000 - iam011 -------------------- |
|
|
![]()
Сообщение
#784
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Цитата нет в соде возможностей по обработке реакции на кнопки есть ![]() если человек освоил страшный и ужасный ерм, то асм и с++ освоить не составит труда )) После одного вечера работы наспех конечный высокоуровневый код выглядит так: Код void AddAdvmanButton(DWORD ID, char* def_name, int x, int y, int width, int height) // ... void AddAdvmanButtons() { // ... AddAdvmanButton(330, "iam004.def", screen_Width - 178 , 600, 32, 32); AddAdvmanButton(331, "iam008.def", screen_Width - 178 + 32 , 600, 32, 32); AddAdvmanButton(332, "iam007.def", screen_Width - 178 + 32*2, 600, 32, 32); AddAdvmanButton(333, "iam002.def", screen_Width - 178 + 32*3, 600, 32, 32); AddAdvmanButton(334, "iam005.def", screen_Width - 178 + 32*4, 600, 32, 32); // ... } void Advman_Click() { // ... switch (ID) { case 330: Heroes::ViewWorld(ecx_arg); break; case 331: Heroes::ShowPuzzleMap(ecx_arg); break; case 332: if (Heroes::CanDig()) Heroes::Dig(ecx_arg); break; case 333: Heroes::ShowScenarioInfo(); break; case 334: Heroes::ReplayOpponentTurn(); break; } // ... } разве не прелесть ![]() Причем на реакцию все что угодно можно повесить, хоть блэкджэк, хоть шлюх, при должных знаниях и навыках конечно. -------------------- |
|
|
![]()
Сообщение
#785
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20596 раз ![]() |
Отлично.
Только, емнип, просмотр карты принимает три аргумента в стеке (регистры не смотрел). Или это обертка? |
|
|
![]()
Сообщение
#786
|
|
![]() Etoslozhnostatus Сообщений: 8 574 Спасибо сказали: 15965 раз ![]() |
В ECX, как указатель на класс, можно что угодно запихнуть.
-------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#787
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Цитата(feanor @ 13 Mar 2010, 20:59) Отлично. Только, емнип, просмотр карты принимает три аргумента в стеке (регистры не смотрел). Или это обертка? Обертка конечно. Принимает 2 аргумента в стеке + объект в ecx. Ща разбираюсь со свойством кнопки Enabled. вроде бы нашел, как менять значение,однако в результате картинка на кнопке меняется, но кнопка продолжает нажиматься и реагировать на клики. Неужели кнопку в оконной процедуре надо вручную тормозить.... Код void Heroes::Button_Enabled_Set(DWORD Window, DWORD Button_ID, BOOL value)
{ __asm { push Button_ID mov ecx, Window mov eax, 0x5FF5B0 call eax test eax, eax jz lbl mov edx,dword ptr ds:[eax] push Value mov ecx,eax call dword ptr ds:[edx+0x24] lbl: } } -------------------- |
|
|
![]()
Сообщение
#788
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20596 раз ![]() |
Вроде бы ручками, свойство только для отображения
![]() |
|
|
![]()
Сообщение
#789
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
-------------------- |
|
|
![]()
Сообщение
#790
|
|
![]() Immortal Сообщений: 6 278 Спасибо сказали: 12700 раз ![]() |
Цитата(baratorch @ 13 Mar 2010, 17:03) Кнопки опций: advdig, advinfo, advpuz, advturn, advview Кнопки менеджера: iam000 - iam011 Первые результаты ![]() ![]() -------------------- |
|
|
![]()
Сообщение
#791
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
итак, уже 1.0
http://sites.google.com/site/heroes3hd изменения: - исправил глюк с мощными заклинаниями в Фениксе - сделал попытку отцентровать окно с синей колбой при загрузке карты, поскольку я работал вслепую, проверьте пожалуйста и отпишитесь о результате. - другие незначительные исправления. *** Iv, неплохо. 1я кнопка, я так понимаю, - посмотреть мир. Мне кажется компас не очень подходящая идея для этой кнопки. Лучше всего конечно - карта, но если не она, то какие-нибудь хрустальный шар или подзорная труба. Еще можно глобус - шар с ободком на подставке. Вобщем я думаю нужно найти подходящие 3д иконки, и их спользовать при создании. Компас лучше оставить на будущее для какой-нибудь кнопки 'проложить маршрут' или типа того. 2-я кнопка в принципе хороша, но ей нехватает объема. я тоже все-таки попробую порисовать кнопки... лучше чтобы еще кто-нибудь попробовал, потом бы выбрали самое подходящее все вместе. -------------------- |
|
|
![]()
Сообщение
#792
|
|
Immortal Сообщений: 798 Спасибо сказали: 555 раз ![]() |
У меня такая ошибка. SoD 3.2 EN. При попытке начать битву (тестил на кампании Йога) игра вылетает. Инструкция по адресу 0х2100D528 обратилась к памяти 0x01F2C3C8. Разрешение 1280x1024.
|
|
|
![]()
Сообщение
#793
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20596 раз ![]() |
Эра 1.6, 1280*1024, начинаю игру, захожу в замок, покупаю существ, кликаю на стек в гарнизоне - эксепшн по 0x74F4E4.
Аналогично падает Вог. |
|
|
![]()
Сообщение
#794
|
|
![]() Power Member Сообщений: 151 Спасибо сказали: 29 раз ![]() |
Цитата(baratorch @ 15 Mar 2010, 02:36) изменения: - исправил глюк с мощными заклинаниями в Фениксе Отлично! ![]() ![]() С выходом новой версии Феникса появилась еще работенка для baratorch'a Нужно отцентрировать новое меню выбора способностей во время боя: http://xmages.net/upload/9a0515e7.jpg И еще происходит наложение новых кнопок друг на друга в панели действий: В оригинале выглядит так http://xmages.net/upload/f8598e80.jpg А в хайрезе так http://xmages.net/upload/697db8f2.jpg Добавлено ([mergetime]1268650999[/mergetime]): Цитата(baratorch @ 15 Mar 2010, 02:36) - сделал попытку отцентровать окно с синей колбой при загрузке карты, поскольку я работал вслепую, проверьте пожалуйста и отпишитесь о результате. Теперь это выглядит вот так: http://xmages.net/upload/e0c83415.jpg Добавлено ([mergetime]1268651654[/mergetime]): Цитата(feanor @ 15 Mar 2010, 15:46) Эра 1.6, 1280*1024, начинаю игру, захожу в замок, покупаю существ, кликаю на стек в гарнизоне - эксепшн по 0x74F4E4. Аналогично падает Вог. У меня все отлично работает. И в 1024х768 и в 1280х1024 ![]() -------------------- ![]() |
|
|
![]()
Сообщение
#795
|
||||
![]() Hota Crew Сообщений: 11 597 Спасибо сказали: 9892 раза ![]() |
Все, у Бараторча есть 1.0. Так что пусть Феникцы сами берут и адаптируют свою версию под хайрез. Бараторч больше никому не обязан.
-------------------- |
|||
|
||||
![]()
Сообщение
#796
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Лентяй, не пори ерунду.
Бараторч, у тебя в последнем варианте dll? Экспортируй пару функций, которые бы возвращали структуру и записывали её по переданному адресу. Структура в виде int x,y - текущее разрешение экрана. Как Бес может центрировать диалоге в Фениксе, не зная про хайрез? Да и другие моды тоже. -------------------- |
|
|
![]()
Сообщение
#797
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20596 раз ![]() |
Цитата Нужно отцентрировать новое меню выбора способностей во время боя поправь координаты в Data/cmenu.txt |
|
|
![]()
Сообщение
#798
|
|
![]() Etoslozhnostatus Сообщений: 8 574 Спасибо сказали: 15965 раз ![]() |
По-моему, для окон, не изменяющих размеров в ХайРезе, изначально надо было делать так, чтобы координаты кнопок и всего прочего интерактивного были завязаны на активное окно в игре, а не экран игры. То есть для всех окон, кроме карты приключений (которая тоже окно, если кто не знает, а фон там заставка).
-------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#799
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Угу. Это сразу бы решило все проблемы.
-------------------- |
|
|
![]()
Сообщение
#800
|
|
![]() Etoslozhnostatus Сообщений: 8 574 Спасибо сказали: 15965 раз ![]() |
Да, опосля мы все умны.
![]() -------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 9 August 2025 - 04:27 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|