Disciples II: Revenge of the Greenskins » Программирование

Технические аспекты решения вопросов (программерам сюда).

(145 сообщений)
  1. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Не совсем по теме, но ковыряясь с кодом, заметил, где находится проверка диска в приводе. У меня лицензионная английская версия, но на нетбук, на котором я собственно и разбираю код, игра полностью не встала. На нетбуке нет сдюка. Так что я устанавливал игру, замэпив сдюк с десктопа. Игра до конца не встала, так как в конце она потребовала несколько раз поменять диски в сдюке и последний диск не смогла обнаружить... Так что запуск без диска в такой конфигурации был актуален. Правда, пока еще не решил точно что менять. Либо надо в самой программе bynary подкрутить, либо свою функцию написать, что возможно будет интересным экпериментом по вставке своего кода в игру. Вообще, интересно, что все это я уже давно мог бы сделать, но нехватало чисто уверенности в том, что я делаю это правильно. Но времени это занимает конечно уйму. Ковырял эти функции вчера пол дня и сегодня несколько часов ))

    Отправлено 7 года(лет) назад #
  2. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Я сейчас не сильно занимаюсь модом, готовлюсь к сдаче ВНО и поступлению в универ.

    Отправлено 7 года(лет) назад #
  3. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    отовлюсь к сдаче ВНО и поступлению в универ

    Успехов! ))

    Значит такой апдейт: Научился вставлять свой код в ехе. Теперь можно писать свои функции и вставлять их в код и они будут исполняться. Т.е. то, о чем так долго говорили большевики свершилось. )) Можно писать дополнения к ехешнику. Теперь дело за "малым" )). Всего то и нужно, что написать свое расширение для новой расы. Ну, и попутно, свой код пока что вставляется только на Win 7 и несколько через одно место, - путем использования дополнительного ехешника и правки ехешника для Д2, что далеко не идеально, но это уже мелочи... )) Хотя нужно будет конечно поправить, чтобы нормально работало.

    Отправлено 7 года(лет) назад #
  4. Gorgarsss

    орк в 3D
    Joined: 31.10.09
    Posts: 139

    offline

    Login to Send PM

    То есть убивать и насиловать старые расы ради добавления новых теперь необязательно?

    Отправлено 7 года(лет) назад #
  5. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    То есть убивать и насиловать старые расы ради добавления новых теперь необязательно?

    Зачем убивать, а вот насиловать... Нее, не надо. )) А если серьезно и в кратце, то сделан значимый шаг в этом направлении. Этих шагов еще довольно много.

    Ближайшие задачи: научится записывать свой код по определенному адресу в ехе. А то все так и будут через одно место его подгружать. Научиться вставлять свои данные в программу. Это важнее, чем писать свой код, ибо нужно понять, как расширять исходные структуры данных. По первому есть некоторые наработки в сети, которые можно взять за основу. По второму - есть некоторые идеи.

    Отправлено 7 года(лет) назад #
  6. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Короче говоря, у меня есть NoCD, который работает в дебагере, но не работает на самой программе. Я научился вставлять свой код куда нужно и этот код нормально работает (в дебагере :D). Начну, пожалуй потихоньку ковырять первый диалог - выбора рас.
    То, что noCD неработает с самой программой, меня не очень смущает на данном этапе, ибо это может быть связано с тем, что dll приходится подгружать после старта процесса, что нарушает логику того, что происходит.

    PS NoCD мне вообще-то нафиг не нужен, но это был первый логический шаг, чтобы научиться вставлять свой код в программу. Кроме того, дебагер у меня пока что работает только до момента старта GUI, затем все вылетает по exception. Чтобы понять, как код работает, дебагер - незаменимая вещь. Если, кстати, не определю, как сделать так, чтобы он все-таки работал дальше, то придется кодить без него, что, конечно, не здорово...

    Отправлено 7 года(лет) назад #
  7. HSerg

    программинг, консультант
    Joined: 22.01.09
    Posts: 26

    offline

    Login to Send PM

    А почему в сам Disc*.exe код не вставишь ?

    Отправлено 7 года(лет) назад #
  8. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    А почему в сам Disc*.exe код не вставишь ?

    Единственный способ, который я знаю - это подцепить свою dll. Кода будет много и если просто бинарник править, то он (код) туда не влезет, а как увеличивать адресное пространство скомпилированного ехе я не знаю.

    Отправлено 7 года(лет) назад #
  9. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Все, доломал )) У меня есть полностью работающий NoCD. Т.е. есть все условия для вставки своего кода. Если код будет правильно написан, то никаких препятствий к тому, чтобы он заработал. На очереди - первый диалог.

    Отправлено 7 года(лет) назад #
  10. admin

    дизайнер
    Joined: 15.10.08
    Posts: 930

    offline

    Login to Send PM

    Охренительно.

    И помните, что мы собрались поработать.
    Отправлено 7 года(лет) назад #
  11. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

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

    Отправлено 7 года(лет) назад #
  12. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    После долгого отсутствия, я снова в строю! Vadzra, рад что работа не стоит на месте.

    Отправлено 7 года(лет) назад #
  13. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    После долгого отсутствия, я снова в строю!

    С возвращением. ) Я видел HSerg подправил тулзы некоторое время назад. Как там, портреты уже нормально вставляются?

    Отправлено 7 года(лет) назад #
  14. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Да портреты уже вставляются нормально.

    Отправлено 7 года(лет) назад #
  15. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Вставил переменные для Greenskins в Lrace.dbf и Lsubrace.dbf. Дело не просто в том, чтобы прописать их в базе данных, но и прописать их в коде, ибо все расы закодированы в ехе.

    Где-то закодировано, что рас 15 - от 0 до 14. Если не найду где, то есть два варианта - оставить так как есть, ибо пока не вижу, на что это влияет, либо заменить какую-нибудь подрасу на зеленокожих, благо подрас целых 9 штук... Опять же нейтральных зеленокожих можно вообще теперь убрать )

    На очереди LTerrain.dbf, LAiSpell.dbf и LDthAnim.dbf. Все они инициализируются похожим образом, так что я думаю прописать их это просто вопрос времени.

    Дальше будет веселее, ибо затем нужно будет менять те функции, где происходит проверка игровых рас.

    Как ни странно экраны выбора будут идти вслед за этим, а может вместе с этапом 2, т.к. собственно картинки не критичны при введении еще одного элемента выбора.

    Отправлено 7 года(лет) назад #
  16. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Надеюсь, у тебя все получится!)

    Отправлено 7 года(лет) назад #
  17. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    В настоящий момент вставляю в игру ресурсы согласно названиям и описаниям юнитов. Затем посмотрю на магию и здания столицы. У зданий, кстати, в соотвествующей ветке здесь на форуме, не нашел их названий, они будут нужны.

    С юнитами небольшое неудобство, т.к. моделей пока нет, то придется брать анимации существующих юнитов. Хотел обойтись малой кровью, сказав что для нового юнита базовым будет уже существующий. Но так получается наполовину, т.к. у каждого юнита 2 записи в ГЮнитс и каждая отвечает за свою часть анимации, то всю анимацию так перетащить не получается. Придется копировать.

    Насчет кода - напишу когда будут определенные новости. Процесс идет.

    Отправлено 6 года(лет) назад #
  18. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

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

    Отправлено 6 года(лет) назад #
  19. admin

    дизайнер
    Joined: 15.10.08
    Posts: 930

    offline

    Login to Send PM

    Вечером отвечу.

    Отправлено 6 года(лет) назад #
  20. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Так, на днях ожидается появление в диалоге выбора рас новой расы )

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

    Отправлено 6 года(лет) назад #
  21. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Vadzra, я тоже этим занимаюсь :)
    Решил забить на идею вставить новую расу. Хочу написать программу позволяющую автоматически заменять одну из существующих рас. Плюсы данного метода:
    1) 5 Рас, останется 5 рас. Это плюс, потому что все равно на карте больше 4 рас не поместишь.
    2) Не надо править код, его вообще не надо трогать. Только ресурсы.
    Первый раз устанавливаешь небольшую прогу (не больше 1 Мб) и модифицированные ресурсы. Есть одна проблема: некоторые модифицированные файлы весят достаточно много (BatUnits.ff - 340 Мб, IsoUnit.ff - 71 Мб, Interf.ff - 30 Мб, MenuAnim.ff - 26 Мб) и практически не ужимаются (максимум - 2-3%).
    Но и на этот счет у меня есть неплохая идея. Наброски уже есть, но толком еще ничего не писал. Да, кстати, я добавил пару новых юнитов - не скину потому что резона нет качать пол гига ради 3 юнитов.
    В общем все в процессе :)

    Отправлено 6 года(лет) назад #
  22. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Пишу на C#, кого нет придется качать Microsoft .NET Framework 3.5 (c Windows вроде только 2.0 идет).
    Картинка для выбора рассы действительно не помешает :) Ждемс художников(я только с Paint дружу)..

    Отправлено 6 года(лет) назад #
  23. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Покажи скрин вставленного юнита.

    Ничего не понял, про с# и .net. Ты хоть строчку кода написал?
    И зачем они нам?

    Отправлено 6 года(лет) назад #
  24. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Нас всех интересует, что именно Вы уже сделали? Добавили в игру орков со старыми моделями и новыми описаниями и прописали в dbf не рабочую(PLAYABLE OFF) расу орков? Я это все делал года 2 назад, причем не трогая кода. Что конкретно Вы добавили в код? К чему привели все те пафосные разговоры про дебагеры/дизассемблеры?

    Отправлено 6 года(лет) назад #
  25. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Написал пока 84 строчки. Они там для доп. утилиты которую я пишу.
    C# это язык на котором я пишу оную программу.
    .NET Framework программная платформа/

    Отправлено 6 года(лет) назад #
  26. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    Добавил несколько старых юнитов (качество плохое, как и в Д1)..


    Большие картинки:
    http://s1.ipicture.ru/uploads/20130801/p9z7IffC.gif
    http://s1.ipicture.ru/uploads/20130801/BlqO5iQ7.gif
    Так же 2 юнитов из HOMM пока недоделал.

    Отправлено 6 года(лет) назад #
  27. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    То, что вставил свои картинки в игру - это просто классно! :)

    1) Кстати, это статические или анимированные картинки?
    2) Вставлял через gif или по одной?
    3) Они в Д1 в том же формате, что и в Д2 или ты их правил? Инструкцию по правке выложи, пожалуйста.

    Ну, что, граждане форумчане, я вас поздравляю с вставленной графикой юнитов. Осталось их собственно нарисовать.

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

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

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

    Отправлено 6 года(лет) назад #
  28. HSerg

    программинг, консультант
    Joined: 22.01.09
    Posts: 26

    offline

    Login to Send PM

    2Vadzra: На Habr встретил мурзилку в которой очень просто описан процесс отладки и внедрения - Как я писал фикс широкоэкранных разрешений для FlatOut

    2Dreher: У D2ResExplorer есть консольный родственник для модификации файлов ресурсов ;) Для dbf нет, но с ними всё просто. Исходной задумкой было сделать внешний контейнер для отдельного юнита (чтобы подключать утилитой без ручной модификации файлов ресурсов), но времени хватило только на D2UnitsEditorViewer. Юнит должен был "состоять" из xml с характеристиками, png с графикой и mp3 со звуком.

    Отправлено 6 года(лет) назад #
  29. Vadzra

    программинг, английский
    Joined: 09.01.09
    Posts: 190

    offline

    Login to Send PM

    Для меню пока что вот такую картинку сделал. Пока не идеально, но так для первого приближения.

    Отправлено 6 года(лет) назад #
  30. Dreher

    preferred member
    Joined: 01.11.11
    Posts: 151

    offline

    Login to Send PM

    2Vadzra, картинка красивая немного смущает присутствие голубых полос вокруг черепов посередине.
    По поводу ранее заданных вопросов:
    1) Это анимированные картинки. (пока только анимация атаки + тени)
    2) По одной :) (хотя когда вставлял было не очень весело)
    3) Они в Д1 в другом формате и перед вставкой прошли следующий путь:
    исходный_файл->avi->раскадровка->правка(ибо в Д2 другой размер окна боя)
    все эти пункты выполняются с легкостью (ну или с Google), не вижу особого смысла обьяснять более подробно.

    2HSerg: Задумка написать утилиту которая автоматически добавит некоторые ресурсы в ff файлы. Это чтоб модификация могла занять 50Мб, а не 500.

    2В_пустоту: Набор которым я пользуюсь при моддинге Д2:
    1) DBFNavigator (для правки dbf, нужен очень часто)
    2) D2ResExplorer (для правки ff, нужен часто)
    3) Paint 2000 (для правки картинок, нужен редко)
    4) D2ImgEncoder (кодирует картинки, в удобочитаемый для игры формат)
    5) Notepad++ (для правки dlg, нужен редко)
    Другие программы требуются довольно редко, для импорта моделей из других игр нужно еще 3-4 программы - сейчас я их удалил и название не смогу написать.

    Отправлено 6 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение »

Вы должны войти в систему, чтобы оставлять сообщения.

3,731 posts in 82 topics over 218 months by 51 of 86 members. Latest: RafStudio, jeskort, Der Gaste