Wake of Gods Forum | Форум Во Имя Богов
Замена Сопряжения - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Новые города (/forumdisplay.php?fid=157)
+--- Thread: Замена Сопряжения (/showthread.php?tid=4953)


Замена Сопряжения - igrik - 13.12.2015 02:38

Информация о проделанной работе:



Скрины (Click to View)
=================================================

Первоначальное сообщение:
igrik Wrote:Уважаемые, как всё-таки грохнуть "все заклинания" от грааля в Сопряжении? Нужно! Реально нужно, ибо делаю Причал взамен Сопряжения для себя и друзей для игры под пиво, потому что некоторые элементы в ХотА не устраивают, да и к опыту (без ЕА) невероятно привыкли.



RE: Исследование героев - feanor - 14.12.2015 00:58

в Форджике - так
Code:
*(char*)0x5BE4F6 = 99;
*(char*)0x5CE81F = 99;
*(char*)0x5CE616 = 99;
*(char*)0x5D743E = 99;
был восьмой город, стал девяноста девятый.


RE: Исследование героев - igrik - 14.12.2015 01:43

Спасибо! А то я нашел всего 2 адреса.


RE: Исследование героев - feanor - 14.12.2015 19:09

Но, кстати, Конфлу оче грустно заменять.
Во-первых, проблема элементалей
Во-вторых, слишком много индексов зданий отдано под декор - муторно впиливать спецпостройки


RE: Исследование героев - igrik - 14.12.2015 19:32

Другие замки мне по душе и трогать их я не захотел.
Quote:слишком много индексов зданий отдано под декор - муторно впиливать спецпостройки
Сейчас почти подошел к этому вопросу: начал двигать строения.
И вот вчера выросли 2 вопроса: как доп.прирост фей перевести в доп прирост матросов или ассид и как запилить фишку грааля Причала. Пока что ток думаю/ищу способы как это сделать. И одновременно пытаюсь разобраться в таблице координат мозаики грааля.

А в чем проблема элементалей? Гемороно - да, потому что не попорядку идут, а остальное не сложно: снял через патч их 2х урон. Через скрипт снял имунитеты (но потом через патч сделаю). Через патч снял ненависть к противоположным элементалям. Двелинги у них по 2, что тоже решается. Или я еще не знаю какого-то подводного камня?)). Хотя надеюсь что все нашел и переделал. Вообще все эти вопросы стараюсь максимально решать патчами. Больше проблем было с фениксом. Этот кизяк не хотел ни деф, ни озвучку менять. Пришлось опять же патчем его рубить
На данный момент: существа, двеллинги и герои сделаны (без пушки)
Очень вовремя нашел твои адреса по почвам))))
Вообще, если бы умел писать dll, возможно было бы проще. Но до этого еще далеко
Конечно, в итоге это все костыльный костыль, но так как я играю всего с 10 своими скриптами и вообще без других модов - то и такой сойдет. А совместимость с другими модами плавно, но уверено стемится к нулю


RE: Исследование героев - feanor - 14.12.2015 21:58

Quote:Или я еще не знаю какого-то подводного камня?
Заклинания призыва.


RE: Исследование героев - Algor - 14.12.2015 23:49

(14.12.2015 21:58)feanor Wrote:  
Quote:Или я еще не знаю какого-то подводного камня?
Заклинания призыва.
Замена на посланников более чем уместна.


RE: Исследование героев - igrik - 15.12.2015 00:03

Quote:Замена на посланников более чем уместна.
Sm Еще не добрался до призыва. У меня и были мысли использовать посланников. Решу через 4 хука и это
Ппц, одни патчи да хуки

Code:
c->return_address = 0x446DF1;
        }
    }
    return NO_EXEC_DEFAULT
Это указатель на адрес возврата и не выполнять затертый код?


RE: Исследование героев - feanor - 15.12.2015 00:35

Quote:Это указатель на адрес возврата и не выполнять затертый код?
угу

Quote: как запилить фишку грааля Причала.
"63E510h – таблица процентных модификаторов затрат очков хода при передвижении по разным почвам."(с)MoP


RE: Исследование героев - igrik - 15.12.2015 02:04

Заманчиво, но через поиск пути думаю немного не то будет, ведь есть еще доп.плюшки в бою. Попробую поиграться с этим через !!UN:C
Code:
;Units' native terrains
006436C8 04; болото (04) для Сопряжения
Проверил в Хоте (хоть и на 100% не уверен), что "родная земля от грааля" начисляется и нейтралам Причала, и существам в армии противника, а значит изменение этого адреса наиболее приемлемый способ.
Следовательно алгоритм будет примерно такой:
- переменная о наличии хотя бы одного отстроенного грааля в Причале
- !?HM/!?ВА52&v[GrCOV] (вроде все нужные триггеры): в них узнать тип почвы под ногами и записать данный тип почвы в 0х006436C8
- при старте карты/сохранении вернуть "006436C8 04"

Мдя, что то я дико оффтоплю


RE: Исследование героев - gamecreator - 15.12.2015 03:46

А какой бонус-то у Грааля?


RE: Исследование героев - igrik - 15.12.2015 04:37

Конечно сделано "тупо/глупо", но этот бредокод "вызов посланников" работает. Сила вызова = колдовская сила героя
Code:
#include <windows.h>
#include <stdio.h>
#include "..\..\include\era.h"
#include "..\..\include\patcher_x86_commented.hpp"


Patcher * globalPatcher;
PatcherInstance *patcher;


int __stdcall YSumm66(LoHook* h, HookContext* c)
{
    ExecErmCmd("BG:H?y2;");
    ExecErmCmd("HEy2:Fd/d/?y3/d S14/?y4;");
    ExecErmCmd("UN:C6919200/4/?y1;");
    ExecErmCmd("SN:E5927824/2/y1/66/164/y3/y4;");
    //FireErmEvent(790010);
    c->return_address = 0x5A2368;
    return NO_EXEC_DEFAULT;
}

int __stdcall YSumm67(LoHook* h, HookContext* c)
{
    ExecErmCmd("BG:H?y2;");
    ExecErmCmd("HEy2:Fd/d/?y3/d S17/?y4;");
    ExecErmCmd("UN:C6919200/4/?y1;");
    ExecErmCmd("SN:E5927824/2/y1/67/165/y3/y4;");
    //FireErmEvent(790010);
    c->return_address = 0x5A2368;
    return NO_EXEC_DEFAULT;
}
int __stdcall YSumm68(LoHook* h, HookContext* c)
{
    ExecErmCmd("BG:H?y2;");
    ExecErmCmd("HEy2:Fd/d/?y3/d S16/?y4;");
    ExecErmCmd("UN:C6919200/4/?y1;");
    ExecErmCmd("SN:E5927824/2/y1/68/167/y3/y4;");
    //FireErmEvent(790010);
    c->return_address = 0x5A2368;
    return NO_EXEC_DEFAULT;
}
int __stdcall YSumm69(LoHook* h, HookContext* c)
{
    ExecErmCmd("BG:H?y2;");
    ExecErmCmd("HEy2:Fd/d/?y3/d S15/?y4;");
    ExecErmCmd("UN:C6919200/4/?y1;");
    ExecErmCmd("SN:E5927824/2/y1/69/166/y3/y4;");
    //FireErmEvent(790010);
    c->return_address = 0x5A2368;
    return NO_EXEC_DEFAULT;
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
        globalPatcher = GetPatcher();
        patcher =  globalPatcher->CreateInstance("Summon_dll");

        ConnectEra();

        patcher->WriteLoHook(0x5A203F, (void*)YSumm66);
        patcher->WriteLoHook(0x5A2054, (void*)YSumm67);
        patcher->WriteLoHook(0x5A2069, (void*)YSumm68);
        patcher->WriteLoHook(0x5A207E, (void*)YSumm69);
        *(char*)0x59F887 = 235;
        *(char*)0x5A96D0 = 235;

    }
    return TRUE;
}
(15.12.2015 03:46)gamecreator Wrote:  А какой бонус-то у Грааля?
"Присутствие Путеводной Звезды увеличивает число воспроизводимых существ на 50% в неделю, ежедневно приносит королевству по 5000 золотых, а также делает любую землю для существ Причала родной."


RE: Исследование героев - Bes - 15.12.2015 12:29

igrik, ты бы выпилил весь текст по замене сопряжения на причал в отдельную тему... так удобнее, а потом можно было бы и саму базу знаний по коду собрать в один пост и сюда закинуть...


RE: Исследование героев - igrik - 15.12.2015 12:46

Не могу, я модер только в скриптах.

Кому нужно, "Вызов посланников взамен элементалей" (вот dll). В архиве приложен скрипт ERM. Но он в для справки и его желательно удалить.
Присутсвующая dll по стандарту вызывает посланников. Но если нужны другие монстры в качестве вызываемых, то есть поддержка ERM.
Об этом - ниже:



RE: Исследование героев - feanor - 15.12.2015 18:51

А кстати да, выделите тему, присоединюсь - мне тоже надо довыпилить Конфлу.


RE: Замена Сопряжения - Ivor - 15.12.2015 20:32

Сделал


RE: Замена Сопряжения - igrik - 15.12.2015 21:41

что то не могу разобраться по координатам мозаики карты грааля по координате Х
0х006818F4 PuzzlePiecesX - но это только для "Castl"
Хотя ниже идущая таблица 0х00681954 PuzzlePiecesY для всех типов зАмков.
А где таблица по Х для Конфлы?


RE: Замена Сопряжения - feanor - 16.12.2015 15:05

Потому что, емнип, сначала идут X для замка (48 word), потом Y для замка, потом X для оплота, потом Y для оплота и так далее.
А IDA почему-то считает PuzzlePieces массивами, а не указателями и возвращает смущающий код.


RE: Замена Сопряжения - feanor - 17.12.2015 01:20

Так, чо там еще надо править?

Ресурс в хранилище, ресурс бонусный, стены осады, башенных стрелков, уровень ГМ, остатки спецстроений, орды, окно холла, что-то еще?


RE: Замена Сопряжения - igrik - 17.12.2015 03:56

Намудохался я с этой мозаикой конкретно, но результатом доволен. И с феном оказывается HD его подменяет в "Fix.Cosmetic", а я то трепал себе мозги((
Вот как выглядит окно осады в замке. Нужны адреса чтобы подвигать основную башню, стены, ворота. Как заменять стрелков и двигать их знаю
Сейчас двигаю здания в экране города, так что пока что полный список нужных фичь не могу составить. Но на вскидку:
Ресурс в хранилище - смогу
Ресурс бонусный: мне не нужен, но все же в долгострое желателен
Стены осады - нужно, ибо пока что не знаю как
Стрелки в башнях - уже сделал
ГМ - нужен
Остатки спецстроений - очень желательно. Я тут бессилен
Орды - не понял о чем речь, если доп.существа (на прирост) то нужно
Окно хола- нужно

Короч: почти все нужно, а если будет удобный инструмент: вообще ништяк))
Что еще? - в голову пока не приходит...


RE: Замена Сопряжения - Macron1 - 17.12.2015 14:15

(17.12.2015 03:56)igrik Wrote:  Стены осады - нужно, ибо пока что не знаю как
Надо сдвинуть на 20 по x и 20 по y - меняешь размеры canvas соответсвенно в графическом редакторе у соотв. картинок.
Это для положительного изменения координат верно.


RE: Замена Сопряжения - feanor - 17.12.2015 15:26

пишу пока только по данным из Heroes3f.c
Quote:Нужны адреса чтобы подвигать основную башню, стены, ворота.
Так вроде вот же в сорцах
Code:
extern __int16 WallSection_X[]; // idb
extern __int16 WallSection_Y[]; // idb
0066D844 вроде, идут так же - 9 блоков для замков, в каждом по 324(?) байта, первая половина - X, вторая - Y.

приеду домой, гляну не по кофейной гуще
впрочем, в Фордже стены вместе с кодом делал Аксолотль и я потом прост сдвинул бинарник с циты на конфлу

Quote:Остатки спецстроений - очень желательно. Я тут бессилен
Так, чо там есть.
Верфь остается.
Орды позже посмотрю.
Кузница пока норм.
Торговца артефактами тож хз пока.

Университет.
Для человека его достаточно сделать некликабельным, ну, для особо ушлых можно в функции 005D31A0 поменять номера навыков, передаваемые диалогу.
Для ИИ - sub_005D3180 определяет навыки в конфловом универе, а sub_005253B0 отвечает за выучивание, в том числе и на карте (ИИ, кстати, дуром тратит деньги на все подряд, лохопед).
Вызывается эта парочка дважды в Sub_005258B0_AIBuildInTown, кстати, там же можно и управлять желанием ИИ строить универ. Просто занопь, думаю.

ГМ - надо банить в масках строительства и запрещать в окне отстройки, ничего кроме нету. Второе - в 00460D70 (Dlg_Choose2Build_Fill), первое пока не скажу где, я в принципе делал это для TSW, но сейчас сорцы не под рукой.


RE: Замена Сопряжения - igrik - 17.12.2015 21:37

По поводу стен (в окне боя в замке) не нужно копать. Я разобрался и сейчас выстраиваю правильные координаты.
Универ я хотел выпилить. Постараюсь это сделать. И нужно взамен него впилить орду.
Торговцев хочу оставить = грот в топку
Верфь остается.

Quote:(ИИ, кстати, дуром тратит деньги на все подряд, лохопед).
т.е. в универе на КП он учит все нафиг не нужные навыки, в том числе и чародейство?


RE: Замена Сопряжения - feanor - 17.12.2015 23:38

Quote: И нужно взамен него впилить орду.
Не нужно взамен, нужно вторую орду активировать.

Quote:т.е. в универе на КП он учит все нафиг не нужные навыки, в том числе и чародейство?
Нет, те которые нельзя (магия огня у рейнджеров, лидерство и пп у некров) он не выучит. Но вот на орлоглаз и навигацию с радостью просадит деньги.


RE: Замена Сопряжения - igrik - 18.12.2015 12:24

Quote:
Quote:И нужно взамен него впилить орду.
Не нужно взамен, нужно вторую орду активировать.
Если так получится, то будет еще лучше.


RE: Замена Сопряжения - igrik - 24.12.2015 11:59

feanor, появилось 2 вопроса:
1. При наведении на гильдию магов она не выделяется желтой обводкой. Но если курсор мыши увести влево на 50 пискелей то срабатывает выделение гильдии и ее можно посетить
2. Некоторые объекты перекрывают другие объекты. Например тут таверна спрятана под водоемом.



RE: Замена Сопряжения - feanor - 24.12.2015 14:58

Quote:1. При наведении на гильдию магов она не выделяется желтой обводкой. Но если курсор мыши увести влево на 50 пискелей то срабатывает выделение гильдии и ее можно посетить
Проверь, совпадают ли маска и деф по размеру, хз.

Quote:2. Некоторые объекты перекрывают другие объекты. Например тут таверна спрятана под водоемом.
Табличку приоритетов надо править.
TownsBuildingsDrawQueue по вогобазе


RE: Замена Сопряжения - igrik - 29.12.2015 00:10

Наконец-то таки у немя сегодня было время на работе, чтобы допилить координаты строений. И теперь, feanor, как впилить вторую орду. А первую - перевести из 1 уровня существ во второй


RE: Замена Сопряжения - feanor - 29.12.2015 01:31

А хз, я пока не начинал) Посмотри табличку HordeBuildingsData, я хз

вот так редактируется окно холла
Code:
int flux_X_offsets[] = {0,2,4,6,1,3,5,
                        3,4,1,2,0,6,
                        5,1,3,5};

int flux_Y_offsets[] = {3,3,3,3,4,4,4,
                        1,0,1,0,0,0,
                        1,2,2,2}; //позиции в сетке

int flux_buildings[] = {0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,
                        0x00,0x05,0x0E,0x07,0x0A,0x10,
                        21,18,17,24};//строения



int __stdcall HallBldFix(LoHook* h, HookContext* c)
{    
    if( o_TownMgr->town->type == 8)
    {
        c->edx = flux_buildings[c->ecx];
        
        if (o_TownMgr->town->IsBuildingBuilt(9,1) && c->edx == 7)  c->edx = 23;  //а тут мы даем новое спецстроенне в клетке форта после постройки замка

        return NO_EXEC_DEFAULT;
    }

    return EXEC_DEFAULT;
}



int __stdcall HallLocFix(LoHook* h, HookContext* c)
{
    //148 3D0
    *(int*)0x5CC933 = (int)flux_Y_offsets - c->ebp;
    *(int*)0x5CC954 = (int)flux_X_offsets - c->ebp;

    *(int*)0x5CC9A4 = (int)flux_Y_offsets - c->ebp;
    *(int*)0x5CC9B5 = (int)flux_X_offsets - c->ebp;

    *(int*)0x5CCA0F = (int)flux_Y_offsets - c->ebp;
    *(int*)0x5CCA2D = (int)flux_X_offsets - c->ebp;

    *(int*)0x5CCA79 = (int)flux_Y_offsets - c->ebp;
    *(int*)0x5CCA9A = (int)flux_X_offsets - c->ebp;


    return EXEC_DEFAULT;    
}

..
        //не строим домики (освобождаем строение 23)
        *(char*)0x5BEFF6 = 99;

        //окно холла
        //*(char*)0x66D044 = 18; //количество строений в окне холла
        //*(char*)0x836B30 = 18;

        
        emerald->WriteLoHook(0x5CA8FC,(void*)HallLocFix);
        emerald->WriteLoHook(0x460DE2,(void*)HallBldFix);



RE: Замена Сопряжения - feanor - 30.12.2015 01:49

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


RE: Замена Сопряжения - feanor - 01.01.2016 23:22

По приросту в ордах.
Массив структур TownHordeBuildings, 6887F0, восемнадцать (по две на город) 16-битных структур
Code:
dword id_unit; //номер дегрейда
word amount; //количество прироста
word level; //уровень
dword upg_id_unit; //номер апгрейда
word upg_amount; //количество прироста
word upg_level; //уровень+7
На старте заполнены только поля id_unit и amount, все остальное автоматически заполняется в sub_005BE360 на старте
у неактивных вторых орд там -1 и 0, если подставить до старта id_unit и amount - оно заполнится автоматически

Кажется, по ордам все.


RE: Замена Сопряжения - feanor - 02.01.2016 04:18

И таки да, все
Image: FnGt3KR3uZE.jpg


RE: Замена Сопряжения - igrik - 03.01.2016 19:31

Ух ты!)) Шикарно!


RE: Замена Сопряжения - igrik - 07.01.2016 00:11

feanor, возникло пара вопросов:
1. Прирост Орды дают правильный, а вот тип нанимаемого существа -нет.
2. При постройке орды 24 (25) здание 4 уровня существ пропадает (33, 40), но постоенное здание орды в экране города не отображается (те что 24, 25). Как я понял за это отвечает цикл по адресу 0х004EBA28. Я пытаюсь въехать, но это еще не мой уровень. Я понимаю, что нужно поставить хук по 0х004EBBCE и расширить кусок функции. В общем нужен окрыляющий пинок))

upd:
Quote:Табличка-битмап замещающих строений (орды и братство меча) строится в 004EB810, ближе к концу, по структуре сомнительнейшего вида.
(такая же как и для дерева строений)
млин, ты же это и описал...


RE: Замена Сопряжения - feanor - 07.01.2016 02:55

Quote:но постоенное здание орды в экране города не отображается (те что 24, 25).
а ты его спрайт-то добавил в таблицу приоритетов? ну и там имя-координаты-деф-маска-обводка


RE: Замена Сопряжения - igrik - 07.01.2016 03:01

Нет не добавил. Мля.....
Странно, хотя дефы есть в лоде, но все равно вылет с сообщением о том, что нет дефа. TBELHrd3(4).def
Quote:имя
Имя куда-то в exe нужно прописывать?


RE: Замена Сопряжения - igrik - 07.01.2016 03:16

ага, увидел куда нужно имя дефа записать.

Получается, что нужно по адресам 0х00643654 и 0х00643658 положить указатели на "TbElHrd3" и "TbElHrd4".
Ух блин. А как это сделать?
Для масок и обводок разберусь по аналогии


RE: Замена Сопряжения - feanor - 07.01.2016 03:34

чоб и готовыми не воспользоваться.

но можно и
*(int*)0x643654 = (int)"TbELHrd3";
*(int*)0x643658 = (int)"TbELHrd3";

*(int*)0x68A9BC = (int)"ToELhrd3";
*(int*)0x68A9C0 = (int)"ToELhrd3";

(у меня орда требует апгрейд, поэтому я воткнул один спрайт для обоих вариантов, на всякий случай)


RE: Замена Сопряжения - igrik - 07.01.2016 03:47

Заработало! Dance3
Осталось указать тип нанимаемых существ. А то и там и там 1 уровень нанимается


RE: Замена Сопряжения - feanor - 07.01.2016 03:50

Quote:Осталось указать тип нанимаемых существ. А то и там и там 1 уровень нанимается
лол, ток щас заметил, что у меня тоже какая-то фигня
впрочем, ожидаемо, хуки на определение грейда я еще не ставил

думаю, ручное прописывание в вышеупомянутую таблицу спасет


RE: Замена Сопряжения - igrik - 07.01.2016 13:40

Code:
// уровни нанимаемых монстров орды для Конфлы
*(char*)0x68A3C4 = 1; // 18
*(char*)0x68A3C5 = 8; // 19

*(char*)0x68A3D8 = 3; // 24
*(char*)0x68A3D9 = 10; // 25



RE: Замена Сопряжения - igrik - 07.01.2016 13:53

Так, с ордами закончено.
Еще один вопос: маску строительства ГМ5 я запретил. Теперь нужно, чтобы после строительства ГМ4 она оформлялась желтей подсветкой, а не серой как сейчас. Где копать?
Image: AcisjfJ2csc.jpg


RE: Замена Сопряжения - feanor - 07.01.2016 16:17

В районе 00460F2F.


RE: Замена Сопряжения - igrik - 07.01.2016 17:44

вуаля
Code:
int __stdcall Hota_GM5off(LoHook* h, HookContext* c)
{
    char Ytown = *(char*)(c->esi+4);
    if (Ytown == 8)
    {
        c->return_address = 0x460FB1;    
        return NO_EXEC_DEFAULT;
    }
    return EXEC_DEFAULT;
}
...
// не строить ГМ5
HotaOnEra->WriteLoHook(0x460FE0, (void*)Hota_GM5off);



RE: Замена Сопряжения - igrik - 07.01.2016 21:57

gamecreator, подскажи как найти адрес в сорцах WoG'a по вот этому (строка 4882 в Monsters.cpp)
Code:
if(tp==158){ // феникс
      SetMonMagic(mon,0x1D,1000,1,0); // огненный щит
      SetMonMagic(mon,55,1000,3,0);   // палач
    }
Хочу избавиться от них

И я так понимаю, что "char Ytown = *(char*)(c->esi+4); if (Ytown == 8) " можно было описать как-то проще


RE: Замена Сопряжения - gamecreator - 07.01.2016 23:14

Ищешь что такое SetMonMagic, находишь все ссылки на неё, просматриваешь подозрительные (вот у тебя тут 2 вызова рядом). Выполняешь рекурсивно пока в коде не найдётся прямой адрес, который легко найти.


RE: Замена Сопряжения - igrik - 07.01.2016 23:57

в чем искать? в ida, артмани или олке?


RE: Замена Сопряжения - feanor - 08.01.2016 00:09

Quote:вуаля
если напилишь адрес возврата для трехэтажной ГМ, буду благодарен :D
у меня пока костылями

Quote:gamecreator, подскажи как найти адрес в сорцах WoG'a по вот этому (строка 4882 в Monsters.cpp)
я бы искал в олли через Search for -> All constants -> 9E, вогсекция.
Quote:И я так понимаю, что "char Ytown = *(char*)(c->esi+4); if (Ytown == 8) " можно было описать как-то проще

   if (*(char*)(c->esi+4)== 8) :D

на самом деле
Town* town = (Town*)c->esi;
if(town->type == 8) ..


RE: Замена Сопряжения - igrik - 08.01.2016 00:35

ну как бы даже и не знаю, не костыль ли у меня :D
для трехэтажки хук 0x00460FA6
разврат 0x00460F80


RE: Замена Сопряжения - igrik - 08.01.2016 01:42

(08.01.2016 00:09)feanor Wrote:  я бы искал в олли через Search for -> All constants -> 9E, вогсекция.
Спасибо. Таким образом я нашел и второй адрес



RE: Замена Сопряжения - gamecreator - 08.01.2016 03:12

(07.01.2016 23:57)igrik Wrote:  в чем искать? в ida, артмани или олке?
Где удобнее. Я в олли ищу, иды у меня нет.

(08.01.2016 01:42)igrik Wrote:  снять огненный щит и палач с фена 8 ур и передать их закаленному снайперу
А чего просто не удалить? Изменить условный прыжок на безусловный после проверки условия.


RE: Замена Сопряжения - igrik - 08.01.2016 13:57

(08.01.2016 03:12)gamecreator Wrote:  А чего просто не удалить? Изменить условный прыжок на безусловный после проверки условия.
Привычка. Если честно - даже и не задумался


RE: Замена Сопряжения - igrik - 09.01.2016 17:50

feanor, можешь объяснить по массиву (вроде так называется) приоритетов отображения строений в экране города. Нифига не могу въехать.
Это предпоследний штрих, и я наконец закончу.


RE: Замена Сопряжения - feanor - 09.01.2016 23:08

А чего там такого?

Code:
char priorities[44] =
{22,7,8,9,23,26,36,43,33,40,31,38,27,28,34,41,16,15,21,10,11,12,13,0,1,2,3,4,32,​39,24,25,14,17,29,35,42,30,37,18,19,5,-1,-1};
memcpy((void*)(0x642EC4 + 44*8), priorities, 44);
от дальнего к ближнему


RE: Замена Сопряжения - igrik - 10.01.2016 00:51

в том то и оно. Тогда как можно понять на примере гильдии магов:
{22,7,8,9,23,26} Она же первой идет в данной сетке.
22 то выше 7, 8, 9!
Я понимаю, что
22 - ГМ 0
7 - ГМ 1
8 - ГМ 2
и т.д.
Я ставил граааль в "0" и в "43" приоритет, а он все равно перекрывает некоторые (одни и те же) строения каждом из этих параметров. Отсюда я и туплю как пробка


RE: Замена Сопряжения - StasPV - 10.01.2016 01:46

Цифры в массиве - номера городских строений (в ерм-хелпе есть таблица с числами). 22-спец строение, 7 - форт, 8 - цитадель, 9 - замок, 23 - спец строение. То есть, если в Причале на переднем плане ратуша-капитолий, и рынок - хранилище ресурсов, а на дальнем плане - генератор 4 и 5 уровня, то массив будет начинаться с 10,11,12,13,14,15 а заканчиваться 33, 40, 34, 41, а середину распределить.

То есть числа здесь не приоритет а именно номера зданий по порядку убывания от переднего плана к заднему.


RE: Замена Сопряжения - igrik - 10.01.2016 11:48

Всё верно. Спасибо. Только от заднего плана к ближнему.


RE: Замена Сопряжения - igrik - 10.01.2016 23:19

feanor, как ты обошел вложенные файлы в "_HD3_Data\Common\Fix.Cosmetic", а именно:
- AVWPHX.def
- Cphx.def
- TOELup_6.bmp
- TZELup_6.bmp
- TBELdw_6.def
- TBELup_6.def

или что мне записать в 8 байт по адресу 0х6890B8
long, double или long double. Я хочу в духе
*(double*)0x6890B8 = (double)"TbElDw_7";


RE: Замена Сопряжения - gamecreator - 10.01.2016 23:39

long double не влезет в 8 байт. Если ты просто пытаешься быстро скопировать туда 8 символов, то:
*(double*)0x6890B8 = *(double*)"TbElDw_7";
Ну или любой 8-байтный тип вместо double.


RE: Замена Сопряжения - feanor - 11.01.2016 23:28

Quote:feanor, как ты обошел вложенные файлы в "_HD3_Data\Common\Fix.Cosmetic", а именно:
никак, я не использую HD (=
почему бы не заткнуть их средствами эры - та же папка _HD.., только в каталоге мода?

Quote:или что мне записать в 8 байт по адресу 0х6890B8
кришна с тобой, зачем так?
*(int*)0x6436A0 /*указатель на 6890B8*/ = (int)"tbeldw-6";
можно и memcpy/strcpy, конечно, но зачем?


RE: Замена Сопряжения - igrik - 12.01.2016 16:17

Quote:почему бы не заткнуть их средствами эры - та же папка _HD.., только в каталоге мода
Ты чёртов гений!
Да и вообще, feanor, отдельное и огромное спасибо за всю помощь! 145
My work is complete.
Скрины (Click to View)



RE: Замена Сопряжения - Bes - 12.01.2016 21:01

(12.01.2016 16:17)igrik Wrote:  Ты чёртов гений!
Rolleyes я думаю он итак это знает147


RE: Замена Сопряжения - Berserker - 13.01.2016 01:02

Quote:My work is complete.
Здорово ) Комплит полнейший по замене на Причал?


RE: Замена Сопряжения - igrik - 26.01.2016 00:41

(13.01.2016 01:02)Berserker Wrote:  
Quote:My work is complete.
Здорово ) Комплит полнейший по замене на Причал?
Да, но получив отказ у Hota Crew, оставил данный мод для личного использования.


RE: Замена Сопряжения - k : / - 26.01.2016 13:59

Если не приходило в голову, подумайте о варианте опубликовать мод без графики и с названиями "монстр 1 монстр 2 здание 1 здание 2", для дальнейшей настройки уже собственно самим пользователем.


RE: Замена Сопряжения - igrik - 26.01.2016 14:30

Нет, потому что там не всё так просто.
Да и зачем выпускать инвалида.


RE: Замена Сопряжения - Macron1 - 26.01.2016 14:31

(26.01.2016 00:41)igrik Wrote:  Да, но получив отказ у Hota Crew, оставил данный мод для личного использования.

Мод угрожает существованию HOTA?
А как же лицензия Creative Commons?
Или как вариант выпустить мод, который включает только скрипты, а для работы необходим lod HOTA, не поставляющийся в комплекте.


RE: Замена Сопряжения - igrik - 26.01.2016 14:38

Это все лазейки в поиках оправдать свои действия, которые мне не нужны. У меня было желание просто поделиться наработкой. Из-за чего я спросил и получил обоснованный ответ.


RE: Замена Сопряжения - feanor - 26.01.2016 20:19

Макрон Wrote:Или как вариант выпустить мод, который включает только скрипты, а для работы необходим lod HOTA, не поставляющийся в комплекте.
Думал, да - будет сложновато, хотовский лод перекрывает файлы оригинала. Можно попробовать замутить автоперепаковщик или что-то иное, но это уж совсем шиза, проще наплевать.


RE: Замена Сопряжения - Berserker - 08.11.2017 18:33

Печальное решение, но довольно предсказуемое. Годы идут, а некоторые вещи не меняются.


RE: ERA II - igrik - 21.09.2019 16:30

Да, Причал в моде заменяет Сопряжение.
XEPOMAHT как раз таки и делал(-ет) Причал как 10 город. В этом и есть кардинальная разница. Мой мод никак не всунуть 10м городом. Вообще никак. Реализация совсем другая. Мне не приходилось переносить и расширять массу таблиц, и запариваться с таблицей героев. Моя работа была намного проще.


RE: Замена Сопряжения - Mahno - 20.05.2020 02:30

Здравствуйте!Хоть мод и заброшен, но интересно узнать, где можно аспида зеленого найти?) Если можно, то хотя-бы деф и иконку скиньте плиз))


RE: Замена Сопряжения - V_Maiko - 20.05.2020 02:50

Mahno, В ERA+ вы можете найти более продвинутую разработку этого мода с ядром Typhon 3.


RE: Замена Сопряжения - igrik - 20.05.2020 12:01

(20.05.2020 02:30)Mahno Wrote:  Здравствуйте!Хоть мод и заброшен, но интересно узнать, где можно аспида зеленого найти?) Если можно, то хотя-бы деф и иконку скиньте плиз))
Мод не заброшен. Мод завершен. Я периодически им пользуюсь.

Зеленый Аспид


RE: Замена Сопряжения - Algor - 20.05.2020 12:14

7-zip ругается на архив


RE: Замена Сопряжения - igrik - 20.05.2020 12:29

"Скажи-ка дядя, ведь не rar'ом..."

Потому что был запакован одним из последних версий winrar'ов. Перепаковал с помощью 7-zip


RE: Замена Сопряжения - Algor - 20.05.2020 13:17

Вот же чёрт, у меня 7-zip стоял от 2012 года 96-copy
Обновил, все открылось. Спасибо.


RE: Замена Сопряжения - Bes - 25.05.2020 22:34

(21.09.2019 12:28)igrik Wrote:     я склепал мод Причал для Эра. Уважая труд всей Hota Crew (потому что мне Хота нравится как цельная игра), я спросил одобрения выложить в сеть мод, в котором содержатся их наработки и их задумка. Команда Хоты объяснила, что желает оставить свой контент уникальным и не смешивать его разными модами. Я принял их решение.
В любом случае, мод я создавал для себя. Сам и пользуюсь 115
igrik, имхо, за давностью времени (в HotA много чего поменялось итак), твои слова "Я периодически им пользуюсь" просто дразнят нас в очередной раз Beee
Может пора пересмотреть свои старые решения?
дай нам Причал для ERA Kap


RE: Замена Сопряжения - Algor - 25.05.2020 23:56

Bes, в HotA не поменялась HotA Sm
А выкладывать при уже полученном ранее отказе совсем некрасиво.


RE: Замена Сопряжения - Raistlin - 02.01.2021 18:48

igrik, в архиве кое-чего не хватает, а именно кадров для avwattak.def Ab