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

Full Version: Замена Сопряжения
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6
Сделал
что то не могу разобраться по координатам мозаики карты грааля по координате Х
0х006818F4 PuzzlePiecesX - но это только для "Castl"
Хотя ниже идущая таблица 0х00681954 PuzzlePiecesY для всех типов зАмков.
А где таблица по Х для Конфлы?
Потому что, емнип, сначала идут X для замка (48 word), потом Y для замка, потом X для оплота, потом Y для оплота и так далее.
А IDA почему-то считает PuzzlePieces массивами, а не указателями и возвращает смущающий код.
Так, чо там еще надо править?

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

Короч: почти все нужно, а если будет удобный инструмент: вообще ништяк))
Что еще? - в голову пока не приходит...
(17.12.2015 03:56)igrik Wrote: [ -> ]Стены осады - нужно, ибо пока что не знаю как
Надо сдвинуть на 20 по x и 20 по y - меняешь размеры canvas соответсвенно в графическом редакторе у соотв. картинок.
Это для положительного изменения координат верно.
пишу пока только по данным из 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, но сейчас сорцы не под рукой.
По поводу стен (в окне боя в замке) не нужно копать. Я разобрался и сейчас выстраиваю правильные координаты.
Универ я хотел выпилить. Постараюсь это сделать. И нужно взамен него впилить орду.
Торговцев хочу оставить = грот в топку
Верфь остается.

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

Quote:т.е. в универе на КП он учит все нафиг не нужные навыки, в том числе и чародейство?
Нет, те которые нельзя (магия огня у рейнджеров, лидерство и пп у некров) он не выучит. Но вот на орлоглаз и навигацию с радостью просадит деньги.
Quote:
Quote:И нужно взамен него впилить орду.
Не нужно взамен, нужно вторую орду активировать.
Если так получится, то будет еще лучше.
feanor, появилось 2 вопроса:
1. При наведении на гильдию магов она не выделяется желтой обводкой. Но если курсор мыши увести влево на 50 пискелей то срабатывает выделение гильдии и ее можно посетить
2. Некоторые объекты перекрывают другие объекты. Например тут таверна спрятана под водоемом.
Quote:1. При наведении на гильдию магов она не выделяется желтой обводкой. Но если курсор мыши увести влево на 50 пискелей то срабатывает выделение гильдии и ее можно посетить
Проверь, совпадают ли маска и деф по размеру, хз.

Quote:2. Некоторые объекты перекрывают другие объекты. Например тут таверна спрятана под водоемом.
Табличку приоритетов надо править.
TownsBuildingsDrawQueue по вогобазе
Наконец-то таки у немя сегодня было время на работе, чтобы допилить координаты строений. И теперь, feanor, как впилить вторую орду. А первую - перевести из 1 уровня существ во второй
А хз, я пока не начинал) Посмотри табличку 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);
Табличка-битмап замещающих строений (орды и братство меча) строится в 004EB810, ближе к концу, по структуре сомнительнейшего вида.
(такая же как и для дерева строений)
Pages: 1 2 3 4 5 6
Reference URL's