Pages: 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 Next

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 и вообще все изображения пропадут ;)

Какой идентификатор у нового юнита?
2011-10-23 14:22:11
Vadzra 
PNG редактора тоже не нашел. Попробовал использовать GIMP, но как-то не очевидно, как там палитры заменять. Тоже использую фотошоп. У меня древняя версия 7.0 стоит.

В новой версии Explorer(а) по-прежнему картинка в Events.ff не появляется в игре для нового юнита.

Я выгружаю картинку из IndexMap для старого юнита, переименовываю, вставляю для нового. При этом автоматически создается запись в MQDB и ImageMap, соотвествующая вставленной картинке. Они ведь соотвествуют по номеру индекса, не по алфавиту? Картинка, которая выгружалась из IndexMap для старого юнита выгружается в 255 цветах. Нехватает розового background(а) (надо посмотреть в фотошопе, как цвет называется). Даже если его добавить и вставить картинку обратно, то все равно ее не видно в игре. Картинка, которая при этом появляется в MQDB - не разбита на куски, а просто копия той, что загружена в IndexMap.

В общем дальше у меня некоторый затык - что еще ей нужно?
HSerg
Давай распишу пример модификации сквайра (G000UU0001).
1. Запускаю D2ResExplorer
2. Открываю в IndexMap запись G000UU0004
3. Через контекстное меню "извлекаю файл" IndexMap#8.png.
4. Открываю в IndexMap запись G000UU0001
5. Через контекстное меню "заменяю базовое изображение" на IndexMap#8.png из п.2
6. Проверяю в игре - изображение "сквайра" заменилось на изображение "охотника на ведьм".
2011-10-22 19:32:34
Vadzra 
Да, все понятно теперь, кроме того, почему у меня картинка для уже существующего юнита не встала, когда я ее подставил для нового юнита. Думаю, что это потому, что я начал с того, что уже существующую картинку выгрузил из IndexMap и загрузил ее потом обратно. Но при этом MQDB запись для нового юнита создается не в том формате и не того размера.

Что касается програмки, то я думаю, что вряд ли разработчики каждую картинку вручную резали. Если бы можно было задавать параметры нарезки, то должно было бы заработать. Единственное, что не очень понятно, если эти параметры каждый раз разные, то какие задавать новому юниту?
HSerg
Поправил недоработку - при замене обновлялись не все поля размеров в ImageMap. Выложил новую версию - см. новости.

Так же обратите внимание, что важен алфавитный(!) порядок следования записей в IndexMap в Events.ff, т.е. доп. сортировок в D2 нет и из-за этого записи могут не находиться (отсюда и глюки после переименования).

P.S. Нормального png-редактора с палитрами не нашёл. Придётся таки photoshop ставить или при импорте доп. диалоги добавлять...
2011-10-22 18:53:06
KDS 
Я просто вытащил png из MQDB, открыл ее в Photoshop, там же открыл картинку Dreher(a) и разбил ее на такие же куски. Заменил, сохранил обратно в png (index, 8bit) и вставил в MQDB.

На счет «программки, которая бы разбивала существующие .png файлы на куски по шаблону» я считаю, что не получится. Там каждая анимация у разных юнитов разрезана по разному, соответственно смещения для каждой анимации разные и они где то хранятся.

Есть вариант вытаскивать наиболее удобные для будущего юнита png из MQDB. Изменить правильно его на своего юнита. Создать новую запись в MQDB и заменить на нашу измененную. Соответственно везде в dbf прописать нового юнита с правильной ссылкой на новую анимацию. Это так, что пришло в голову. Реально, нет – не знаю.
2011-10-22 18:29:45
Vadzra 
Cмотри, ты взял картинку Dreher(a), разбил ее на те же куски, что и картинки для существующего юнита, где - в фотошопе? Затем склеил и подставил в MQDB. Это та последовательность, которую ты использовал или нет? Какую ты программу использовал для склейки, Image Ready, Paint.net? Или я все усложняю?

Сергей, похоже, что нужна программа, которая бы разбивала существующие .png файлы на куски по шаблону, аналогичному тому что используется в MQDB, а потом бы их склеивала. В общем, распаковщик и запаковщик MQDB.
2011-10-22 17:23:18
KDS 
Я имел ввиду редактирование уже существующей картинки или анимации. Как вставить что-то новое я не разбирался.
2011-10-22 12:50:57
Vadzra 
Можешь по-подробнее написать, как менять картинку по кускам после того, как вынимаешь ее из MQDB-контейнера?

Т.е. последовательность такая: вставляешь картинку (с анимацией надо будет отдельно разобраться) в IndexMap, затем эта картинка автоматически появляется в MQDB-контейнере в Explorer(е). Эта картинка из MQDB-контейнера выгружается и приводится к правильному формату. Затем она загружается обратно. Вот здесь хотелось бы понять, как ее править до правильного формата? Какой программой это нужно делать и в чем правильный формат состоит?

Интересно, что с анимациями происходит такая штука: анимации в ISOUnit.ff не требуют правки записей в MQDB-контейнере. ISOUnit.ff отвечает за графику юнита на глобальной карте. При добавлении анимаций нового юнита он там прекрасно у меня появляется.
А вот с BatUnits.ff все по-другому. Там все похоже также, как и в Events.ff, т.е. нужно править MQDB.

Pages: 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 Next