Current time: 24.11.2024, 22:27 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
baratorch Offline

Posts: 197
Post: #721

насчет загрузки и отрисовки полноцветных изображений.
и проблемы c этим в 32-bit True режимах ХД.

Почему не использовать оригинальный геройский _Pcx24_ ???

А если уж так надо получить именно _Pcx16_ (_Pcx32_), то можно воспользоваться оригинальной геройской функцией

рисующей _Pcx24_ на _Pcx16_ (_Pcx32_)

при этом не надо запариваться какая там битность и что там внутри _Pcx16_ (_Pcx32_) при каком режиме.

Конструктор новой _Pcx24_: 44EA20
- этот конструктор заполняет буфер из указанного источника, поэтому лучше написать свой конструктор пустой _Pcx24_
(сканлайн = ширина * 3, размер буфера = сканлайн * высота. пиксель в формате RGB888)
Конструктор новой _Pcx16_: 0x44DD20
Функция рисующая _Pcx24_ на _Pcx16_: 0x44ECA0

Именно так, через загрузку _Pcx24_ и его отрисовку на _Pcx16_
загружаются в менеджере ресурсов полноцветные pcx в оригинале.
(This post was last modified: 29.12.2017 05:27 by baratorch.)
29.12.2017 05:26
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #722

baratorch, спасибо за ценную информацию!


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.12.2017 15:54
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #723

Изучение некромантии в университете героями любых классов:
http://wforum.heroes35.net/showthread.ph...8#pid99678


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
09.04.2018 02:17
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #724

Наконец, то я разобрался с этой хренью
скрин (Click to View)

Всё для того, чтобы полноценно и нормально запилить кастующих монстров (link UN:C)


game bug fixes extended.dll || My Plugins || My GitHub
12.07.2018 18:30
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #725

Интересная недокументированная особенность.

Все мы прекрасно знаем, что описания Джедита и Нагаша в Воге всегда были на английском языке.
На самом деле, русский язык для описания специальностей тоже предусмотрен. В коде WOG'a даже есть переменная, отвечающая за русскую или английскую локализацию.
Code:
// тип игры 0-английская, 1-русская
int WoGType=0; // для ERA 0x80321C

0x703F28 void FileLoader(void) - это функция, которая инициализирует некоторые воговские параметры и заодно устанавливает английский или русский язык в переменную WoGType.
Вот выдержка кода, отвечающая за установку типа локализации:
Code:
if(LoadTXT("ZMESS00.TXT",&Strings)) Exit(); // не может загрузить TXT
  // выносим внутренние сообщения в файл наружу
  TxtOutOfExe();
  // тип локализации
  switch(ITxt(0,0,&Strings)[0]){ // считываем первый символ ZMESS00.TXT
    case 'R': WoGType=1; break;  // русский язык
    default : WoGType=0;         // иначе английский язык
  }
Суммарно русских строк в коде немного: менее десяти наберется. В том числе и описания специализаций героев Джедита и Нагаша
Так вот, видимо при переводе на русский язык о данной особенности не знали. А всё что нужно было сделать для инициализации русских строк и описания специальностей, это в файле "ZMESS00.TXT" первый символ в моде "WoG Rus" изменить с E на R

ENG Wrote:E All New Messages are to be placed below.
RUS Wrote:R All New Messages are to be placed below.



game bug fixes extended.dll || My Plugins || My GitHub
08.11.2018 17:25
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #726

Berserker'у в ЛС продублируй, чтоб не забылось до подготовки следующего русификатора.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
09.11.2018 13:13
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #727

Как вытащить гильдии 4- и 5-ого уровней для городов, где они заблокированы изначально:
Для вытаскивания ГМ4-5 вообще никаких особенных хитростей не надо, но делать это реально удобнее плагинами: слишком много всего происходит до старта ERM.

https://pastebin.com/1cNdDE7Q buildups
https://pastebin.com/Cx9T9wGT towns

1. Нам надо сделать ГМ4-5 как строение на экране.
Для этого надо добавить его в таблицу приоритетов зданий; задать ему координаты, имя дефа, имя маски. Это делается в плагине, который towns. У нас - в конфиге, который я когда-нибудь обязательно преобразую в геройскую текстовую таблицу, конфиг в моде, прикладывать поленился, впрочем, там и так понятно.
2. Надо сделать ГМ4-5 как отстраиваемое строение.
Для этого нужно тем или иным способом задать ему требования отстройки. Я делал это вот в этой замечательной таблице, которая Dependencies. Её правка работает _только_ до реального старта игры, ерм - поздно, по-моему, даже OnAfterWoG поздно. Если надо править после старта, то либо ERM (какой-то из ресиверов в СА, уже не помню, CA:B вроде), либо надо найти структуру, в которую эти списки преобразуются. Там битовое поле, ищется несложно, но зачем, если есть такой замечательный гибрид между человеко- и машино- читаемым видом. Сразу говорю, копировать из приведенного кода не надо, там все деревья тсвшные. Лучше из экзешника.
Не помню, надо ли править текстовики для цен и описаний. Наверное, надо.
2.5. Надо сделать ГМ отстраиваемым в таунхолле.
Это, соответственно, одна из трех строк.
Code:
*(unsigned short*)4591590 = 37008; //cstl skip

    *(char*)0x460FAA = 0x40; //barb id
    *(char*)0x460FAE = 0x40; //wtch id
замок, барб, фортресс, соответственно.
Да, это разные методы, в одном патчится условный переход, в другом правится индекс. Не помню.
3. Надо додать заклинаний в ГМ.
А вот это делается чисто текстовиками. В sptraits или как там его прописана нулевая вероятность выпадения спеллов соответствующего уровня у недомагических замков: если додать какую надо - будут прекрасно генерироваться.
4. ИИ править не надо, он ГМ строить будет и так.
5. Редактор карт - надо, забыл приложить быстрофикс.
https://pastebin.com/ctahgjTh
23.11.2018 20:07
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #728

Указатель на таблицу заклинаний лежит по 0х687FA8, формат записи -
Code:
struct _Spell_{ // size:88h
  int   FRposNOzerENneg; // +0 -1=enemy, 0=square/global/area, 1=friend
  char *SoundFileName;   // +4
  int   DefIndex;        // +8 used to get DefName
  int   Flags;            // +C
//0x00000001 - BF spell
//0x00000002 - MAP spell
//0x00000004 - Has a time scale (3 rounds or so)
//0x00000008 - Creature Spell
//0x00000010 - target - single stack
//0x00000020 - target - single shooting stack (???)
//0x00000040 - has a mass version at expert level
//0x00000080 - target - any location
//0x00000100 -
//0x00000200 -
//0x00000400 - Mind spell
//0x00000800 - friendly and has mass version
//0x00001000 - cannot be cast on SIEGE_WEAPON
//0x00002000 - Spell from Artifact
//0x00004000 -
//0x00008000 - AI
//0x00010000 - AI area effect
//0x00020000 - AI
//0x00040000 - AI
//0x00080000 - AI number/ownership of stacks may be changed
//0x00100000 - AI
  char  *Name;            // +10h
  char  *AbbrName;        // +14h
  int    Level;           // +18h
  int    SchoolBits;      // +1Ch Air=1,Fire=2,Water=4,Earth=8
  int    Cost[4];         // +20h cost mana per skill level
  int    Eff_Power;       // +30h
  int    Effect[4];       // +34h effect per skill level
  int    Chance2GetVar[9];// +44h chance per class
  int    AIValue[4];      // +68h
  char  *Descript[4];     // +78h
};
26.03.2019 16:41
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #729

Quote:можно ли выдернуть готовый скрипт с игры на артефакт "топор свирепости лорда варваров". Если можно, то как это сделать?

1. В функции BuildUpNewComboArts:

Code:
    int Arts[10]={10,16,22,28};
    BuildUpCombo(158,12,4,Arts);

2. Ассемблерный код на сам артефакт:

13.05.2019 00:58
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #730

Так. Как я понимаю - для некоторых - о давно наболевшем.

Отключение ТЮРЕМ (скачать)
Файл класть в папку "EraPlugins\AfterWoG" любого активного мода.
Вообще, наверное, нужно включить в официальную эру эту заплатку в отключенном состоянии. ИМХО

Это bin файл, позволяющий отключать генерацию тюрем на случайных картах.
Одно уточнение: я оставил генерацию тюрем только с героями 1 уровня. Тюрьмы с героями 5, 15, 30 уровней вырезаны.
Еще раз: данная фича работает только для случайных карт, поэтому за авторские карты можно не беспокоиться.

Code:
// вырезаем генерацию тюрем
JMP отсюда         0x53A317    (5481239)        тюрьмы все
... или ...
JMP отсюда         0x53A363    (5481315)        тюрьмы с опытом >= 5000
... и ...
JMP сюда           0x53A48E    (5481614)        создание объекта с №63

ИТОГО КОД ЗАПЛАТКИ: 0053A363 E926010000  (0x53A363 JMP 0053A48E)


game bug fixes extended.dll || My Plugins || My GitHub
06.06.2019 23:15
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #731

Решение проблемы отображения некоторых строк (в русской локализации) в диалоге экспы монстров.
Суть в подмене типа копирования символов со знакового на беззнаковое ( MOVSX -> MOVZX )

Image: 111.jpg


Полный код для заплатки: (скачать)
Code:
0071F3FC B6
0071F5BA B6
0071F5D3 B6
00723657 B6
00723219 B6
007238D8 B6
007217BB B6
00723CBD B6
00721B03 B6
00722792 B6
00723ACB B6
00723F1C B6


Сравнение отображения линий в диалоге:

Image: Dlg_Expo.gif

На сколько я знаю, MoP уже давно решил эту проблему, но как он это сделал я нигде не встречал.


game bug fixes extended.dll || My Plugins || My GitHub
02.07.2019 11:51
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #732

igrik, отличная заплатка, спасибо!


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
02.07.2019 12:36
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #733

(02.07.2019 11:51)igrik Wrote:  MoP уже давно решил эту проблему, но как он это сделал я нигде не встречал.

Если интересно, то вот код из исходников:

Code:
; настраиваем тексты и подсказки способностей:
        xor ebx, ebx
      .repeat
        mov eax, [ebx*4+840E40h]
       .if eax
        ChangeDlgItem esi, addr ebx + 1100, 3, eax
        fn Настройка_подсказки_к_элементу_игрового_диалога, esi, addr ebx + 1100, dword [ebx*4+85D308h]
        mov edi, ebx
        imul edi, 100h
        fn Настройка_подсказки_к_элементу_игрового_диалога, esi, addr ebx + 1300, addr edi + 845B00h
        add edi, 85DB48h
        mov dword [ebp-8], 0
         .repeat
        imul eax, ebx, 11
        add eax, [ebp-8]
        add eax, 1116
        xchg byte [edi+8], bh; обнуляем конец строки
        ChangeDlgItem esi, eax, 3, edi
        xchg byte [edi+8], bh; возвращаем исходный символ
        add edi, 8
        inc dword [ebp-8]
         .until signed dword [ebp-8] > 10
       .endif
        inc ebx
      .until signed ebx > 15

Соответственно, сам воговский код этого дела в MoP заглушен и, скорее всего, затёрт.
02.07.2019 13:34
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #734

Не знаю, как часто поднималась данная тема, потому спрошу с опаской:
были ли попытки научить ИИ пользоваться рюкзаком? А то все эти попытки его усилить скриптами упростились, научись он просто грамотно подбирать арты к бою и на ночь.166


Image: widget.png?style=banner2

Новейший Heroes Launcher
18.07.2019 04:59
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #735

(18.07.2019 04:59)daemon_n Wrote:  научись он просто грамотно подбирать арты к бою и на ночь.166

Возьми да сделай скрипт, переодевающий куклу героев ИИ перед боем и на ночь. Самое сложное там - решить какие артефакты должен одевать ИИ, а какие снимать (т.е. для каждого артефакта нужно будет как-то высчитывать AI value, по которому они все будут приоритетны для ИИ в той или иной степени, но такой готовой таблицы для Третьих Героев никто никогда не делал, хотя сделать её может любой опытный игрок - желания нет ни у кого, увы 105).
18.07.2019 11:20
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-2024 MyBB Group