baratorch
Posts: 197
|
(26.11.2020 09:47)Berserker Wrote: Мне часто нужно, если вне тегов, использовать цвет по умолчанию. То есть не менять его. Цвет по умолчанию — тот, что задан для элемента в диалоге, может быть не белый. Что посоветуешь здесь? HD-мод сам устанавливает HotA.FontColor динамически?
HD-мод устанавливает HotA.FontColor != 0 , когда нужно что-то нарисовать особым цветом и равным нулю, когда нужно использовать цвет по-умолчанию (тот что зависит от аргумента color в N_font_DrawCharacter_4B4F00(font* this_, _dword_ edx, int c, _Pcx16_* bmp, int x, int y, int color).
|
|
26.11.2020 15:45 |
|
Berserker
Posts: 16637
|
|
26.11.2020 16:40 |
|
XEPOMAHT
Posts: 2348
|
(26.11.2020 16:40)Berserker Wrote: Воint *MonInTownBase(int Town){ #include "templ.h" RETURN((int *)(0x6747B4+Town*14*4))
}
Это не будет работать.
В Тифоне 1-2 вместо 6747B4 используется своя самопальная таблица - TownCreatures, к которой через простыню хуков привязан диалог города с наймом. HD-мод читает только содовскую и не умеет читать тифоновскую, увы (там и адрес таблицы не получишь просто так) в найме будут только то, что прописано в 6747B4.
В Тифоне 3 таблица монстров городов уже перенесена полностью, без использования хуков, соотвественно, для Тифона 3 получение адреса - только по условному базовому адресу (который HD-мод возможно и понимает, но... для новых фракций HD-мод считывает только задний план, на саму структуру монстров новых фракций он перейти не может, увы - итог вылет).
(This post was last modified: 26.11.2020 17:42 by XEPOMAHT.)
|
|
26.11.2020 17:32 |
|
igrik
Posts: 2819
|
HD читает таблицу городских монстров через двойной указатель (*(_int_**)0x47AA82). Он то меняется в Тифоне? А в Аметисте?
Положите туда указатель на таблицу, и всё будет работать.
Насколько я понимаю, HD в Хоте читает именно так. И у них всё работает.
Code:
#define o_CastleCreatures (*(_int_**)0x47AA82)
o_CastleCreatures[dwelling_type + 14 * town->type];
game bug fixes extended.dll || My Plugins || My GitHub
|
|
26.11.2020 18:10 |
|
XEPOMAHT
Posts: 2348
|
(26.11.2020 18:10)igrik Wrote: Насколько я понимаю HD читает таблицу городских монстров через двойной указатель (*(_int_**)0x47AA82). Он то меняется в Тифоне?
Конечно меняется и в Тифоне (без этого ничего работать не будет).
(26.11.2020 18:10)igrik Wrote: А в Аметисте?
Нет, в Аметисте только увеличено количество монстров. Новых фракций там нет.
(26.11.2020 18:10)igrik Wrote: HD в Хоте читает именно так.
Знаю, что советую и Берсеркеру так же делать в ЭРЕ. Для совместимости.
(26.11.2020 18:10)igrik Wrote:
Code:
#define o_CastleCreatures (*(_int_**)0x47AA82)
o_CastleCreatures[dwelling_type + 14 * town->type];
Это как раз и работает. Оно даже номер фракции получает и отрисовывает бэкграунд 10-й фракции, но с получением самой структуры монстров для новых фракций в HD-моде какие-то непонятки (возможно, там просто не выделена память под них где-нибудь в HD_WOG.dll).
(This post was last modified: 26.11.2020 18:27 by XEPOMAHT.)
|
|
26.11.2020 18:19 |
|
igrik
Posts: 2819
|
|
26.11.2020 18:25 |
|
XEPOMAHT
Posts: 2348
|
(26.11.2020 18:25)igrik Wrote: TyphonZ точно не записывает сюда адрес новой таблицы.
Code:
Выдержка из Олли:
0047AA82 MOV EDI,DWORD PTR DS:[ESI*4+6747B4]
(26.11.2020 17:32)XEPOMAHT Wrote: В Тифоне 1-2 вместо 6747B4 используется своя самопальная таблица - TownCreatures, к которой через простыню хуков привязан диалог города с наймом. HD-мод читает только содовскую и не умеет читать тифоновскую, увы (там и адрес таблицы не получишь просто так) в найме будут только то, что прописано в 6747B4.
|
|
26.11.2020 18:30 |
|
igrik
Posts: 2819
|
Так а как известить HD, что таблица перемещена? Если вы указатель не меняете
Проверил сейчас - Аметист тоже не удосужился исправить указатель.
Поэтому и не работает правильно быстрая покупка существ в HD.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
26.11.2020 18:34 |
|
XEPOMAHT
Posts: 2348
|
(26.11.2020 18:34)igrik Wrote: Так а как известить HD, что таблица перемещена? Если вы указатель не меняете
А уже никак, старые версии Тифона всё равно не поддерживаются (а новые нахрен никому не нужны, поэтому я временно положил болт с резьбой на Тифон до релиза MoP 2.19). Нанимайте монстров стандартными содовскими диалогами и не включайте диалог найма в HD-моде. Из-за того, что приходится всё время что-то клянчить у авторов ERA/HD-мода, я выбираю MoP, где могу всё сделать сам вместо уже бесконечного попрошайничества, которое мне давно надоело (Бараторч всё равно давно записал меня в вечный игнор после того, как мне нечем было задонатить за мою первую и последнюю просьбу к нему).
(26.11.2020 18:34)igrik Wrote: Проверил сейчас - Аметист тоже не удосужился исправить указатель.
Вы хоть знаете ЧТО это за таблица? Её указатель и не должен изменяться в Аметисте, т.к. таблица не меняется при добавлении новых монстров в игру. Её и WoG не меняет, вообще есть только 2 мода, совместимые с HD-модом, увеличивающие размер данной таблицы.
(This post was last modified: 26.11.2020 19:01 by XEPOMAHT.)
|
|
26.11.2020 18:50 |
|
daemon_n
Posts: 4342
|
|
26.11.2020 20:58 |
|
Berserker
Posts: 16637
|
Quote:Из-за того, что приходится всё время что-то клянчить у авторов ERA/HD-мода, я выбираю MoP, где могу всё сделать сам вместо уже бесконечного попрошайничества, которое мне давно надоело (Бараторч всё равно давно записал меня в вечный игнор после того, как мне нечем было задонатить за мою первую и последнюю просьбу к нему).
Это всё, конечно, хорошо и похвально, но здесь техническая тема, в которой мы ищем сотрудничества и по возможности решаем вопросы. Просто жалобы в воздух никак в этом процессе не помогают.
В данном случае, судя по всему, проблему прежде всего в необъяснимой на первой взгляд необходимости в Тифоне вообще эту таблицу трогать.
Тут бы ответ от МОРа не помешал. Я пока не до конца понимаю. Играю с HD модом, установка монстров по городам работает, картинки существ отрисовываются. Монстры в жилищах нанимаются. Что и зачем сделано в Typhon 2 со структурой пока не ясно.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
27.11.2020 00:29 |
|
XEPOMAHT
Posts: 2348
|
(27.11.2020 00:29)Berserker Wrote: здесь техническая тема, в которой мы ищем сотрудничества и по возможности решаем вопросы. Просто жалобы в воздух никак в этом процессе не помогают.
Да, исправление EXCEPTION_ACCESS_VIOLATION в HD_WOG.dll при использовании ERA+ - дело добровольное и наверное нужное только мне (ERA+ всё равно наверно останется экспериментальным модом навечно). Может быть меня забанят на этом форуме наконец-то, тогда перестану докучать "жалобами в воздух". Но если ошибки есть, то я считаю долгом описывать их на форуме при каждом удобном случае.
(27.11.2020 00:29)Berserker Wrote: Я пока не до конца понимаю. Играю с HD модом, установка монстров по городам работает, картинки существ отрисовываются. Монстры в жилищах нанимаются. Что и зачем сделано в Typhon 2 со структурой пока не ясно.
Там для найма добавлена поддержка альтернативных монстров. Соответственно, таблица монстров городов увеличилась в 2 раза - стандартная и альтернативная массивы с номерами монстров. HD-мод понимает только стандартный массив и считывает его по старому адресу, т.к. физически таблица перенесена в Тифоне 2 не была. Всё просто.
(This post was last modified: 27.11.2020 01:36 by XEPOMAHT.)
|
|
27.11.2020 01:34 |
|
Berserker
Posts: 16637
|
|
27.11.2020 01:54 |
|
V_Maiko
Posts: 610
|
Berserker, Extended Dwellings works fine with Typhon when I was using it. Clearly there are confusions, Typhon also has a sub-tool called "Town Editor" that allows you to choose the type of creature to recruit, this was used in The Tides of War port for ERA.
And Extended Dwellings is for new slots for recruit creatures or alternatives (this is used by me in Third Upgrades Mod).
But in both the problem is the same with HD mod.
|
|
27.11.2020 02:45 |
|