Wake of Gods Forum | Форум Во Имя Богов

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(02.02.2016 19:30)igrik Wrote: [ -> ][quote]
При типе действия "движение" в BG:E ничего нет, кроме ненужного для тебя хлама (-1)
Спасибо, эта особенность помогла. Из-за этого хлама игра вылетала, когда монстр начинал движение.
Обошёлся без !!BG:A!
Подскажите, SOD хоть какие-то лоды подгружает кроме h3bitmap и h3sprite?
Если да - то какие, и до или после? (я в экзешнике все заменил на один и тот же - и он всё равно не загружался).
Или это как-то включить надо?
Подскажите пожалуйста, как вернуть нормального вида кузницы с одним видом товара в города вместо нынешних воговских фабрик военной техники, где есть всё, кроме хотовской пушки?
А как ты его включил?
Переименуй Mods\WoG\EraPlugins\all war machines in blacksmith.dll в all war machines in blacksmith.dll.off
(03.03.2016 22:37)Berserker Wrote: [ -> ]А как ты его включил?
Переименуй Mods\WoG\EraPlugins\all war machines in blacksmith.dll в all war machines in blacksmith.dll.off
Не, никак не включал. Я с H3LORD играюсь - там включено было. Причём, all war machines in blacksmith.dll.off у меня было, но вот в аналогичной папке самого данного мода arsenal.dll было не отключено. Смысл по названию угадал. Теперь другой вопрос - как вернуть доступность строительства двора баллист в цитадель? На сколько я вижу, сейчас с военной техникой всё нормально, но вот двор баллист запрещен всё равно всегда.
Это уже скриптом, видимо.
(04.03.2016 15:01)Berserker Wrote: [ -> ]Это уже скриптом, видимо.
Ага, я тоже так подозревал. Тогда мне лучше найти строчку, которая за это отвечает и выпилить её, чем писать противоположную ей, отменяющую её в другом скрипте. Вот что-то найти её не могу. Поищу ещё. Пока вижу, что это на уровне H3LORD мода, так, если его выключаю - мод баллист строить становится можно. Там ведь что-то такого типа должно быть !!CA-1:B5/22?
Да, что-то схожее.
(04.03.2016 18:44)Berserker Wrote: [ -> ]Да, что-то схожее.
Нашел. Было вот так !#CD:B0/6/22/0;
Кстати, такой вопрос, чем глобально отличается !# от !! в начале строки?
!# выполняется при старте карты, !! - в триггере. Это же основы ЕРМ, Heromant!
почему в существующих при определении почти всех вторичных навыков никак не учитывается соответствующая специализация героя? У кого-то возникал такой вопрос уже?
И если по дополнительным бонусам - по коду видно, что специализация не добавляет, то в случае изменения процентовок вопрос в слудущем.
Вот у меня есть волшебство эксперта +30% вместо +15%. Герой специалист по нему. У него бонусы специализации будут считаться по +5% за уровень от старых +15% (0,75% за уровень) или по +5% от новых 30%, то есть по 1,5% за уровень?
Возможно вопрос глупый, но я не сильно в программировании разбираюсь.

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

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

А вот с HD для меня сложнее - IDA не подгружает HD_WOG.dll к екзешнику, даже если сгенерировать в лаунчере ХД готовый екзешник, поэтому не могу найти адрес, по которому он загружает свои ресурсы. Пробовал открыть длл отдельно - там адреса вида h1006385e , к которым не могу обратится через UN:C. Каким образом грузится длл ХД мода при старте, и как её можно загрузить в ИДЕ вместе с exe-файлом ВОГ-а?
Я придумал как это обойти :D.
Этот скрипт работает во всех случаях (с HD и без него) и применим только для Темницы
идея не нова, но и не 100% проверка, ибо есть процент людей, у кого под этим модом будет классич.разрешение в силу определённых причин
проверка 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);
      }
    }
Reference URL's