Current time: 23.06.2017, 20:20 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
StasPV Offline

Posts: 90
Post: #421

Возможно вопрос глупый, но я не сильно в программировании разбираюсь.

Суть в следующем, Igrik помог мне с редактированием окна таунхола, помог убрать из окна построек одну спец постройку (вместо 18 позиций зданий осталось 17), поэтому пришлось заменять задний фон. Для СОД-а задников 9 штук - по одному на город (здесь все просто заменить), в ВОГ-е их заменили на 3 штуки (так как некоторые повторяются), в HD mod-е их тоже три штуки.

Для ВОГ-а я поступил следующим образом - сделал ЕРМ скрипт, который проверяет тип города, и если он совпадает с нужным, через UN:C подменяет один из трех фонов на другой, потом заменяет обратно.

А вот с HD для меня сложнее - IDA не подгружает HD_WOG.dll к екзешнику, даже если сгенерировать в лаунчере ХД готовый екзешник, поэтому не могу найти адрес, по которому он загружает свои ресурсы. Пробовал открыть длл отдельно - там адреса вида h1006385e , к которым не могу обратится через UN:C. Каким образом грузится длл ХД мода при старте, и как её можно загрузить в ИДЕ вместе с exe-файлом ВОГ-а?
17.04.2016 15:14
Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1112
Post: #422

Я придумал как это обойти 96.
Этот скрипт работает во всех случаях (с HD и без него) и применим только для Темницы


Скачать HoMM3 ERA 2.461
И пара мелочей для ERA
(This post was last modified: 17.04.2016 22:48 by igrik.)
17.04.2016 19:11
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 3108
Post: #423

идея не нова, но и не 100% проверка, ибо есть процент людей, у кого под этим модом будет классич.разрешение в силу определённых причин


17.04.2016 20:52
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1112
Post: #424

проверка 100% 118 посмотри на код в HD_WOG.dll
Code:
if ( dword_1006A1F0 >= 808 )
    {
      if ( dword_1006A2FC >= 608 )
      {
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6072621,
          "hd_thbCs.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6073203,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6073787,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6074365,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6074949,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6075533,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6076445,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6078589,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6080733,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081276,
          "hd_tstat.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081293,
          578);
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081377,
          578);
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6088537,
          578);
      }
    }


Скачать HoMM3 ERA 2.461
И пара мелочей для ERA
17.04.2016 22:20
Visit this user's website Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #425

igrik, огромное спасибо!
18.04.2016 23:13
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #426

Даже не знаю куда лучше вопрос запостить, сюда или в вопросы по скриптингу.
В ЕРМ хелпе номера флагов существ, номера игроков и еще много чего представлены в виде степени двойки. Вот я например добавил существу 5 первых флагов 1+2+4+8+16=31 . Как с точки зрения математики можно по этой сумме определить, установлен ли флаг номер 3 (два в кубе=8) существу или нет? Если кто расскажет, буду благодарен.
24.04.2016 17:18
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7094
Post: #427

Есть битовая операция & (логическое "и"). Для того, чтобы проверить установлены ли флаги, выполняют &флаги. Например:


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
24.04.2016 17:57
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #428

gamecreator, спасибо за разъяснение, с помощью битовых операций получилось сделать аналог повышения первичного навыка от спецпостройки в городе (можно посещать одним героем один раз в одном городе), может кому пригодится:

(This post was last modified: 25.04.2016 23:47 by StasPV.)
25.04.2016 23:34
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #429

Люди, кто-нибудь знает как изменить стартовые армии героев? Редактирование hotraits.txt ничего не дало, а ресейвер НЕ H$1/$2/$3/$4 изменяет армии только нанимаемых в таверне героев.
03.05.2016 17:07
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1205
Post: #430

679DD0h - массив стартовых параметров героев. 5Ch байт на структуру героя. Данные структуры:
1. Пол
2. ?
3. Класс
4. Первый стартовый навык
5. Уровень первого стартового навыка
6. Второй стартовый навык
7. Уровень второго стартового навыка
8. Наличие Книги Заклинаний: да/нет
9. Стартовое заклинание
10. Стартовая армия, тип существа, слот №1
11. Стартовая армия, тип существа, слот №2
12. Стартовая армия, тип существа, слот №3
13. Ссылка на название малого портрета
14. Ссылка на название большого портрета
15. ? (напоминает запрет/доступность для найма, но при изменении эффекта не замечено)
Остальные данные - ссылки на строковые описания.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery

Сайт
Группа vk
03.05.2016 17:33
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #431

MOP, спасибо!
03.05.2016 17:37
Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1112
Post: #432

Когда то для себя создавал файл экселя по адресам, которые нашел MoP


Скачать HoMM3 ERA 2.461
И пара мелочей для ERA
03.05.2016 18:02
Visit this user's website Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 90
Post: #433

Блин, уже свою таблицу сделал) Почему-то через UN:C у меня не менялись стартовые существа, пришлось изменять значения в екзешнике с адресами -400000
03.05.2016 20:28
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1205
Post: #434

Потому что WoG при загрузке копирует эти данные в свою таблицу, если не ошибаюсь. И дальше используется уже она.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery

Сайт
Группа vk
04.05.2016 07:53
Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1112
Post: #435

.... или не меняя адресов просто положить бинарник в "EraPlugins\BeforeWoG"


Скачать HoMM3 ERA 2.461
И пара мелочей для ERA
(This post was last modified: 04.05.2016 09:57 by igrik.)
04.05.2016 09:56
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2017 MyBB Group