Страницы: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Следующая
2011-11-17 00:18:29
Vadzra 
Новости по просьбам )) ковыряюсь одновременно с дебагером и компилятором. Для того, чтобы код скомпилить его нужно руками поправлять, что нетривиально. Дебагер пока тоже неработает. В дебагере дело в обработчике исключений. Исключения обрабатываются под дебагером некорректно. Правда с VS ситуация немного лучше - там можно приаатачиться к процессу дебагером. В Олли и ИДА этого не получается. Так что, если заставить компилятор заработать, то жить будет можно.

Нашел несколько мест в коде, где нужно прописывать новую расу. Но без решения вопросов выше, это пока чисто теоретическое знание.
2011-11-15 22:49:50
Dreher 
Vadzra, огласи новости плиз :)
2011-11-09 11:59:28
Dreher 
Сергей, большое спасибо за версию RC11! Теперь гораздо проще стало добавлять анимации и программа заметно быстрее стала работать.
2011-11-03 01:47:03
Vadzra 
Нашел почему память не читалась и что за процедура, на которой все останавливается. Процедура занимается выгрузкой dll. Похоже, что если какой-то процесс занял память по конкретному адресу, то выгрузить dll неполучается. Я выгрузил из памяти практически все и дебагер прошел дальше и ругался на другой адрес (что кстати не показатель, если они динамически присваиваются). Но все равно он остановился в определенный момент. В дебагере в окне dll каким-то образом отображалась как загруженная dll антивируса, хотя сам антивирус я остановил и процесс его убил. Правда, я это сделал уже после того, как дебагер начал работать. В общем, нужно заставить его как-то заработать ибо иначе будет не посмотреть в реальном времени на изменения в коде.

Кстати, Дисы запускаются, но потом вылетают на первом экране.
2011-11-01 14:24:38
Vadzra 
Хорошая новость - я нашел где выбираются расы в коде. Действительно, менеджмент рас прошит в коде, но все не так страшно. Можно проследить, где расы выбираются, где новая раса могла бы быть добавлена и т.д.

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

Вопрос - как блин править read-only доступ в ассемблере? Т.е. если запускать Дисы под дебагером, то он ругается, что память по определенному адресу доступна только для чтения. Я точно знаю процедуру, которая пытается в память писать. Но дело кажется не в этом, а может быть в том что для этой dll (Shw32.dll) segment permissions по какой-то причине: read. Хмм, это где-то можно поменять?
P.S. Адрес, где программа пытается писать в память - A93B395 если что.
2011-10-29 19:28:30
Vadzra 
Понял, спасибо. Нашел где прописаны ярлыки для кнопок в редакторе, про которые я говорил ниже. Теперь могу визуально заменять например Империю на Зеленокожих :) Также при выборе расы на экране компании могу теперь сделать так, что вместо Империи или любой другой расы будут Зеленокожие. Кстати вся эта информация содержится в папке Interf, что логично. ;) Там еще есть два .dlg файла, это просто парсеры, которыми определяется интерфейс, насколько я вижу.

Нашел файл, где прописаны столицы разных рас - в папке Imgs. Файл Capital.dat. Надо будет попробовать вставить туда столицу. Но сначала, основное, что хочу найти, как происходит выбор количества рас на экране их выбора для конкретной компании.
2011-10-29 14:42:50
Vadzra 
Пара находок по поводу новой расы - почти уверен, что старую расу можно заменить на новую. Что касается возможности вставить новую расу в добавок к существующим, то пока не получилось и похоже, что количество рас забито где-то на програмном уровне. К этому выводу приводит экран Scenario Editor(a). Когда выбираешь, какие расы должны присутствовать в новом квесте, то там есть 5 кнопок, по одной на каждую из рас. У меня описания стоят русские в игре, но эти кнопки не переведены и я не смог их найти в ресурсах игры. Похоже, что они зашиты где-то. Аналогично в игре на экране выбора рас выбор происходит по тому же принципу. Сейчас ковыряю все это дебагером.

В связи с этим вопрос - Сергей, когда я запускаю Scenario Editor под дебагером в IDA, то он (Editor) зависает на экране, где нужно выбрать, что делать дальше - создавать новый квест, загружать старый и т.д. Если едитор убить из Task Managerа, то в IDA виден exception, что memory ... can''t be read... Как настроить IDA так, чтобы мозно было бы выполнять определенные действия в редакторе и IDA их бы отслеживал?
HSerg
Запускай редактор в окне, тогда будет возможность переключиться в IDA и нажать кнопку. Для отслеживания нужно знать функцию или какой-либо ресурс и использовать (напр.) breakpoint-ы.
2011-10-27 16:33:42
Dreher 
Точнее 0 идет перед 1 и после Z.
to Vadzra: спасибо за детальную инструкцию.
2011-10-27 15:47:13
Dreher 
to HSerg, немог бы ты добавить поиск в редактор анимаций? Ну там где список изображений по алфавиту. Дело в том, что - все анимации в IsoUnit состоят из последовательных картинок: только последовательность эта немного странная. Например, первая картинка анимации называется TCE тогда дальше идет UCE, VCE и тп. Тоесть, у последовательных картинок изменяется не последний символ (как-бы это было логично) а первый. Первая картинка, первый символ A потом все буквы латинского алфавита (последняя Z), потом цифры от 1 до 9 потом 0 и знак "_". Потом изменяется 2 символ (средний), и только потом последний. В последовательных анимациях картинки так-же идут друг за другом в таком порядке. То есть если анимация G000UUXXXXMOVE0 начинается с HBE то закончится она на WBE(в каждой анимации или 16 или 1 картинка). А G000UUXXXXMOVE1 (следующая за ней анимация) будет начинаться на XBE а заканчиваться BCE. Суть в том, что если я хочу повторить уже существующую анимацию (для последующей замены) мне придется вручную искать каждую картинку в разных частях списка (т.к. В списке они все по алфавиту, по первому символу) - а это 272 картинки (я посчитал).
HSerg
Ok, добавлю фильтр или сортировку.
2011-10-27 01:20:53
Vadzra 
To Dreher: Ответил о том, как вставлять анимации здесь: http://nevendaar.com/forum/27-1670-2#87813

Да, последняя версия RC10 стала дольше обрабатывать запросы.
2011-10-26 23:35:06
Dreher 
Извлечь в GIF я могу, но при открытии этой GIF-ки пишет: "Ошибка при построении изображения". И у меня почему-то последняя версия RC10 виснет сильно....
2011-10-26 19:42:28
Dreher 
Help me! Please! Пожалуйста распишите как добавлять в IsoUnit и BatUnit картинки для моего нового юнита.
2011-10-26 17:02:20
Dreher 
Кто уже разобрался, подскажите: как в IsoUnit добавить в IndexMap анимацию? То есть, я хочу создать юнита внешнив видом как голем, я извлек картинки голема из пака. Они называются IndexMap#18554-AnimMap#001.png и так-далее, но анимации (например, анимация ходьбы) извлеклась не как анимация а как 15 png картинок. А мне нужно добавить такую-же анимацию только для моего юнита - G000UU8153. Как быть? Мне сначала нужно добавить по одной картинки, а потом их склеить и переименовать в G000UU8153MOVE1 и тп соответственно?
HSerg
Извлекай в формате анимированного GIF - так проще редактировать и добавлять обратно.
2011-10-26 04:55:55
XVilka 
По поводу открытых сырцов Эксплорера. Будут ли они? Я тут пытаюсь написать открытый аналог ScenEdit.exe на Qt/C++. Давайте лучше скооперируемся - быстрее получится
HSerg
Маловероятно, т.к. всё полезное уже портировано на java в Open D2 (http://sourceforge.net/projects/open-d2 - см. svn)
2011-10-24 22:51:14
Vadzra 
В общем, напишу еще раз - заработало!! :))

Перевставил анимации для нового юнита и он появился на арене боя. Не нужно никаких переименований в BatUnits.ff. Видимо фикс в 10-ой версии Эксплорера пофиксил и Event.ff и BatUnits.ff.

Ну что. на очереди вставка новой расы и столицы :))
HSerg
Ура !! :))
2011-10-23 18:06:38
Vadzra 
Короче говоря, с BatUnits.ff пока не получается.

1. Сначала сделал по аналогии с ISOUnit.ff, где все заработало. ID нового юнита G000UU8151. Ничего на экране боя не появилось.
2. Затем, переименовал все анимации для нового юнита в G000UU8053 - это следующий номер за последним номером анимации в BatUnits. Не сработало.

Если смотреть по аналогии с Events.ff, то мне нужно переименовывать все файлы между последней существующей анимацией и новой анимацией. А это около 400 записей. Но, с другой стороны, в ISOUnit.ff все заработало и без этого, немного непонятно...
2011-10-23 15:39:55
Vadzra 
Хмм, а с BatUnits.ff все интереснее. Там анимации находятся посреди файлов с кадрами анимации по алфавиту. А анимации нового юнита добавляются в конец списка. Хмм, что тут на что переименовывать..., чтобы они шли в нужном порядке?

Попробовать что ли поименовать новый юнит сразу за последним по порядку из старых? Но он все равно по индексу будет в самом конце...
2011-10-23 15:28:26
Vadzra 
Заработало!!

Я знаю кунфу! Нет, не так, я знаю как вставлять портреты в Events.ff :) Думаю, что с анимацией в BatUnits.ff что-то похожее. Большое спасибо за помощь!
HSerg
Да, не самая очевидная логика. Спасибо за информацию об экспериментах - без неё бы не разобрался.
2011-10-23 15:07:21
Vadzra 
Идентификатор: G000UU8251. Причем в ISOUnit.ff анимация для него нормально подцепляется.
HSerg
Попробуй переименовать ILLUMIELLE в G000UU8100, TORA`ACH в G000UU8101 и т.д. до твоей записи.
2011-10-23 14:56:55
Vadzra 
Проверил. Все работает, как ты сказал, для существующей записи юнита. Для новой записи вставляю ту же самую картинку (например, охотника на ведьм), ничего в игре не появляется.
HSerg
Переименуй в IndexMap запись G000UU0001 в G000UU9999 и вообще все изображения пропадут ;)

Какой идентификатор у нового юнита?
Страницы: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Следующая