Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
02 Jun 2021, 22:37 |
NТG выводит свой проект из заморозки Выход Бастиона запланирован на 2022 год |
Позвольте задать вопрос, бастион выйдет как отдельный мод, продолжение WOG-а, как заменяющий замок в WOG-е, в рамках VCMI или ERA? Изначально планировался как новый город, который не заменяет ничего. Адаптировать можно под любой исполняемый файл. Начиная от СОДа и заканчивая Эрой. Как сейчас это видят разработчики - вопрос. |
hippocamus, magoth, Berserker, ZёбRA, Grossmaster, Raistlin | ||
02 Jun 2021, 21:51 |
NТG выводит свой проект из заморозки Выход Бастиона запланирован на 2022 год |
Исходники может где-то и остались, но навыки и знания растерял, но если чем смогу помочь, что маловероятно - обращайтесь. Надеюсь город все же выйдет. |
Bes, XEL, hippocamus, magoth, Berserker, Zabuza-san, Raistlin | ||
16 Nov 2020, 01:00 |
Погиб Docent Picolan |
Соболезную!!! Случайно узнал. Человек многое отдал героям... |
NOD, XEL, hippocamus, lion-killer, Mefista, Berserker, XMenik, Theodor, KypaToP_HM, Striker X Fenix, Iriniko, redar2013, SLAVICBOY, Aeternus, Elendion | ||
13 Mar 2011, 14:41 |
Инженерный анализ Reverse Engineering |
Правка генератора случайных монстров при старте карты. Позволяет генерировать новых и воговских монстров на карте без вогификации. Выдрал из наработок по WoG 359 // врезка Fix генератора {0x54110F, 0x0, DP(Hook54110F)}, // Diakon // настройка генератора карт (генерируем новых и ВоГовских монстров) //MGENERATOR mGenerator [MONNUM]; int gmon; int nMon; int NotCheck = 0x541137; int Check = 0x541116; __declspec (naked) void Hook54110F(){ __asm pushad; __asm mov gmon, ebx; __asm mov eax, dword ptr [edi]; __asm mov nMon, eax; if (nMon == -1){ __asm popad; __asm jmp NotCheck; } __asm popad; __asm lea eax, dword ptr [esi + esi*4]; __asm jmp Check; } // врезка FixGeneratora {(Byte*)&JMP, (Byte*)0x54110F, 1}, //Diakon {(Byte*)&PSUB, (Byte*)(0x541013+2), 4}, //Diakon {(Byte*)&MSUB, (Byte*)(0x54106B+2), 4}, //Diakon {(Byte*)&MSUB, (Byte*)(0x54109C+3), 4}, //Diakon {(Byte*)&MSUB, (Byte*)(0x5410E1+3), 4}, //Diakon {(Byte*)&MSUB, (Byte*)(0x541174+3), 4}, //Diakon {(Byte*)&GENMONNUM, (Byte*)(0x541063+1), 4}, //Diakon {(Byte*)&GENMONNUM, (Byte*)(0x5410B3+1), 4}, //Diakon {(Byte*)&GENMON, (Byte*)(0x541159+1), 4}, //Diakon int JMP = 0xE9; //Diakon int PSUB = 0x324; //Diakon int MSUB = -804; // Diakon int GENMONNUM = 0xC5; - изменяется в зависимости от кол-ва монстров. негенерируемых монстров не прописываем в текстовике. Не помню текстовик для рандомной карты. Если кто не знает - напишу. Лень копаться. int GENMON = GENMONNUM -1; |
DracoLich, MasterOfPuppets, Etoprostoya | ||
19 Sep 2010, 22:57 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Еще нашел 0x6992B0 dd -> mouseManager. Но вроде его обнулять не нужно. |
baratorch, Berserker | ||
19 Sep 2010, 22:31 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
И так итог: по адресу: 0x4F0516 (это начало карты) ставим свой хук и запоминаем esp, edi, esi и ebp в переменные. Это нам нужно будет для выхода с карты. Это самое сложное. Теперь чтобы выйти с карты достаточно сделать jmp из любого места кода на адрес 0x4F051B перезаписав предварительно sp, edi, esi и ebp и положив по адресу 697728 код выхода. 0x66 - код выхода "загрузить игру" 0x6C - код выхода "главное меню". Обнулить нужные манагеры: 0x6992D0 dd -> heroWindowManager 0x699414 dd -> soundManager 0x699420 dd -> combatManager 0x699530 dd -> inputManager 0x69954C dd -> townManager На этом пожалуй все. Если чего вдруг и осталось то это мелочи должны быть. |
Throutle, baratorch, Berserker | ||
19 Sep 2010, 22:01 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
И так. Есть в игре различные менеджеры которые обеспечивают различные функции игры. Так вот: 0x6992D0 dd -> heroWindowManager 0x699414 dd -> soundManager 0x699420 dd -> combatManager 0x699530 dd -> inputManager 0x6992B8 dd -> advManager 0x69954C dd -> townManager ну вроде все. advManager обнуляется автоматом. Т.к. выход происходит с карты приключений. Остальные должны обнулятся вручную. (Есно, если мы выходим из боя то нужно вдобавок обнулить combatManager). Итак. Данные адреса - это указатели на класс. Т.е. опишу как классы выглядят (это очень условно, чтоб понятно было как добраться до деструктора): struct Metod{ int Constructor; int Destructor; ................ }; struct CombatManager{ Metod met; ......... }*PMan; Т.е. чтоб добраться до адреса процедуры деструктора нужно: int AdressDestructora = PMan->met.Destructor; Ну вот - теперь вроде должно работать. Добавлено ([mergetime]1284922899[/mergetime]): Аргумент передаваемый в функцию деструктора - адресс по которому располагается класс менеджера. Т.е. в ecx должен лежать адрес класса перед вызовом. |
SAG19330184, feanor, Etoprostoya, Berserker | ||
19 Sep 2010, 15:05 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Да - извини. Напутал с адресом. 0x4F0156 = 0x4F0516 Добавлено ([mergetime]1284897923[/mergetime]): Поправил в первом посте, чтоб людей с толку не сбивать больше. |
baratorch | ||
19 Sep 2010, 13:12 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Не освобождение памяти решается сборщиком мусора, который запускается при начале карты и собирает memalloc. В любом случае я не претендую на истину в последней инстанции. Добавлено ([mergetime]1284891167[/mergetime]): На счет не совпадения - да. С СоД 3.2 не совпадает, но это не проблема. Могу найти, если такой способ устроит. |
baratorch | ||
18 Sep 2010, 18:36 |
Унификация перевода или "собери их все" |
Ну не нужно идти в разрез здравой логики. Робин гуд = Робин гуд. Да и Литл Джон тоже нормально звучит (хотя Малыш Джон вполне приемлемо). Никто не называет ведь футбол "ногамяч". |
Doomђammer | ||
18 Sep 2010, 00:47 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Посмотрел я как грузиться и вот мой вывод. Легче способа я думаю нет. Значится так: по адресу: 0x4F0516 (это начало карты) ставим свой хук и запоминаем esp и ebp в переменные. Это нам нужно будет для выхода с карты. Это самое сложное. Теперь чтобы выйти с карты достаточно сделать jmp из любого места кода на адрес 0x4F051B перезаписав предварительно esp и ebp и положив по адресу 697728 код выхода. 0x66 - код выхода "загрузить игру" 0x6C - код выхода "главное меню". Тестировал - работает. |
SAG19330184, feanor, Throutle, Berserker | ||
17 Sep 2010, 16:35 |
Tales of Enroth[N/A yet, как всегда] Очередная модификация |
Я бы конечно хотел бы видеть мод для СоДа. Сбор основных нововведений и настройка для мультиплеера. Отключение разных ломов типа дипломатии, всякие патчи для процессора, кое-что из ТЕ из баланса (типа уровни магии и св-ва монстров). Не нужно сильно накалять только мод типа одновременного хода и т.п. Только самые необходимые и простые в реализации вещи. А стряпание своих модов... смысла я не вижу кроме личной самореализации и удовлетворения собственного эго. Есть два больших проекта ХоТа и Wog. Присоединяйтесь - работа найдется. И свои идеи вы сможете там воплотить. |
Etoprostoya | ||
29 Jul 2010, 07:22 |
Бездна флуда (старая) флуд и обсуждение на общие темы |
Цитата Иначе у меня времени бы не хватало на работу. Судя по количеству постов за последние дни - ты безработный. ![]() Меня абсолютно не интересует кто выпустит первый 10 город. Я не собираюсь отнимать "лавры" у Энта, тем более человек проделал большую работу и с радостью могу поздравить всю команду Хоты и отдельно товарища бака с его абсолютной бесполезностью для Хоты (знаешь, есть такие насекомые - наездники и паразиты всякие, которые на здоровом организме развиваются и загаживают его). Т.к. ты, бак, писатель то понятия не имеешь в технике отладки и дизассемблирования. Найти нужные места в ехе героев не сложно, да оно мне уже и не нужно. А копаться в чужих трудах - не менее сложно чем в героях. И подходы по встраиванию города у нас разные. Я давно отказался от начальной идеи. И никакой войны между Хотой и КорВОгом нет. Все занимаются своими делами. А с форума большинство КорВога ушло из-за администрации данного форума. (например меня трижды банили). Тем не менее я здесь. |
BT_Uytya!, Лентяй, FCst1, Adept, Kastore, Bugzy, Berserker, SerAlexandr | ||
25 Jul 2010, 21:58 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Элементарно. Просто запусти два приложения героев и играй. Даже поиск не нужно делать, герои автоматом находят игру запущенную локально. Только нужно будет отключить запрет повторного запуска. Добавлено ([mergetime]1280084287[/mergetime]): А вот проверка на второй запуск 004F7E19 3D B7000000 CMP EAX,0B7 следующая команда je по которой прыгать не стоит для запуска героев. |
baratorch | ||
27 May 2010, 18:46 |
Меняем разрешение в Героях (HDmod) дополнение к Heroes III |
Я спорить с некомпетентными людьми в этом вопросе не намерен. Каждый останется при своем мнении. |
packa | ||
24 Apr 2010, 11:30 |
Обсуждение инженерного анализа |
хм.... не знаю у меня кавалерийский бонус прекрасно работает Добавлено ([mergetime]1272097845[/mergetime]): 0075D823 833D C0608402 2>CMP [DWORD 28460C0],27 0075D82A 75 0C JNZ SHORT Era_1_6.0075D838 0075D82C C705 20648402 0>MOV [DWORD 2846420],0B 0075D836 EB 28 JMP SHORT Era_1_6.0075D860 0075D838 833D C0608402 0>CMP [DWORD 28460C0],0B 0075D83F 75 0C JNZ SHORT Era_1_6.0075D84D 0075D841 C705 20648402 0>MOV [DWORD 2846420],0B 0075D84B EB 13 JMP SHORT Era_1_6.0075D860 проверка на монстра всего одна. поэтому менять нужно либо в инструкции 75D823 (как я поменял на нагу) либо 75D83F. А лучше вынести весь этот участок в отдельное место и написать нормальную таблицу. |
MasterOfPuppets | ||
21 Apr 2010, 21:15 |
Обсуждение инженерного анализа |
BufCastleDCoor1 dd 5C32E9h BufCastleDCoor2 dd 5C32F6h Указатель на указатель таблицы располагается по адресу 5C32E9 (там размер координат word ), но игра использует два адреса один для координаты X второй для координаты Y При помощт OlyDbg координаты можно найти за 2 минуты. Ставишь бряк на указатель имени дефа любого строения и при входе в замок оказываешься в коде на процедуре отрисовки. Только поменять координаты зданий обычно мало, чтобы изменить положение здания. Есть еще таблица отвечающая за перекрытие одних зданий другими. Там указана отдаленность зданий от игрока. Добавлено ([mergetime]1271873750[/mergetime]): Буду дома - посмотрю |
Astaroth | ||
25 Mar 2010, 20:00 |
Редактор монстров Для добавления новых монстров (beta) |
В данном архиве лежит редактор монстров и плагин для ERA. Все что нужно - распаковать в корневой каталог ERA и прочитать хелп к данной проге. В архиве есть тестовый монстр для примера. Кому интересно - качаем, ставим, пользуемся отзываемся. У меня еще есть планы на развитие данного редактора, но хочу месяцок отдохнуть, так что пока улучшений не будет. Буду исправлять только найденные ошибки пока. Сегодня, завтра выложу исходники и среды разработок, а так же комментарии как собрать все это добро на вашем компе. Улучшение данного продукта в ваших руках beta0.1 + исходники |
Morn, Sar, ArtisanDen, Vade Parvis, FCst1, Jeanstonik, feanor, dik X.B., packa, Astaroth, Etoprostoya, Berserker, Axolotl | ||
05 Feb 2010, 23:38 |
Инженерный анализ Reverse Engineering |
Я просто поправил информацию, что ты предоставил, чтобы не дезинформировать общественность. |
Raistlin | ||
22 Jan 2010, 17:38 |
Помогите разобраться с удачей! |
Ну с работой удачи - я разобрался, но написать скрипт, если и возможно, то только через эру и очень геморройно. Во-первых, обращение к длл Angel должно быть в том же потоке, что и поток обрабатывающий битву и вероятность удачи (вероятнее всего так оно и есть). Т.к. случайное число для генерации получается из TlsGetValue (ячейка №12). Далее несколько действий над полученным значением (значение в eax): MOV ECX,[DWORD EAX+14] IMUL ECX,ECX,343FD ADD ECX,269EC3 MOV [DWORD EAX+14],ECX MOV EAX,ECX SHR EAX,10 AND EAX,7FFF и SUB ESI,EDI CDQ INC ESI IDIV ESI MOV EAX,EDX ADD EAX,EDI в eax - значение, которое сравнивается с удачей героя, если оно меньше или равно, то удача срабатывает иначе нет. Добавлено ([mergetime]1264171116[/mergetime]): Хотя... можно попробовать вызвать процедуру генерации случайного числа для удачи через эру, если получиться и сравнивать с удачей героя. - это лучший вариант. Адресс процедуры 50C7C0h тип register eax = удача героя edx = 18 ecx = 1 результат есно в eax |
ERMMASTER | ||
08 Jan 2010, 12:07 |
Обсуждение инженерного анализа |
1. Я не знаю на сколько новый у тебя исходник 2. В любом случае подход в том исходнике устаревший, т.к. переписываю все на С++ 3. Последний исходник - это исходник к ролику о Бастионе 4. К длл идет еще две папки DATA_*** . Они тоже могут быть устаревшими - это раз, а два - в них могут быть лишние данные. 5. Те 3 адреса - это снятие ограничений с, если мне не изменяет память, хинта и команды ЕРМ, которая меняет существ в замке UN:T или чет тип того. По этим адресам должно находится число монстров. Последний адрес - точно ЕРМ потому, что - это код Славы. Но не факт, что это весь хинт. 6. Снять хинт без отладчика тебе не удасться. Придется учить азы ассемблера. Т.к. в коде идет простая проверка на кол-во монстров 197, т.е. 197 при помощи артманиты найдешь дох...на. |
MasterOfPuppets | ||
06 Jan 2010, 13:05 |
Обсуждение инженерного анализа |
Ну вот видишь, ты сам сказал, что встречается чаще. Переведи адрес из ехе в виртуальный и проверь в артмани. Как перевести - вот из этой темы: http://forum.df2.ru/index.php?showtopic=6803 "1. На самом деле, Славин файл - это exe. Для WoG 3.58f: 400000 + А, если А < 29C000, 465000 + А, если А >= 29C000." |
MasterOfPuppets | ||
05 Jan 2010, 15:06 |
Тонкости ЕРМ, использование UN:C ERM для профессионалов :) |
Отрываю от сердца (шучу) AVCtown0 db 'DATA_CASTLE/AVCtown0.str',0 BufAVCtown0 dd 4C9823h AVCtowx0 db 'DATA_CASTLE/AVCtowx0.str',0 BufAVCtowx0 dd 4C9810h AVCtowz0 db 'DATA_CASTLE/AVCtowz0.str',0 ;BufAVCtowz0 dd 1 dup (4C97C4h,70AA21h) BufAVCtowz0 dd 4C97C4h это из моего исходника к городам новым. Адреса - это указатели на указатели на таблицу дефов замков в разных ситуациях (при разрушении, целых и т.п.) Тут по-моему только нет вида замка при неотстроенном форте, ну по аналогии, если захочешь - найдешь. |
MasterOfPuppets | ||
28 Jun 2009, 20:49 |
Если нужен скрипт Пишите если нужен скрипт |
Иконку в дефе можно поменять, если кинуть в лод похожий деф, но с другой иконкой и на него поменять указатели. |
Bisik, MasterOfPuppets | ||
Текстовая версия | Сейчас: 3 August 2025 - 00:10 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|