| Разработка и ромхакинг > Ромхакинг и программирование |
| [SMD] хакинг Dune: The Battle for Arrakis |
| << < (410/447) > >> |
| SeregaZ:
все. тупик. я не вижу в голове как сделать добавление конфигов :) теория как это все работает: в файле include.asm находим раздел unit_types, в котором перечислены маркеры всех юнитов - например _CARRYALL. потом в этом же include.asm по такому маркеру находим путь до файла-юнита: --- Код: ---_CARRYALL: incbin units\carryall.bin --- Конец кода --- читаем файл units\carryall.bin - в нем практически вся инфа по юниту и находим в нем номер спрайта и тип: 283 и тип 7 по номеру 283 ищем в файле 2_main_sprites_ptrs.asm (81 версия файл по моему sprites_ptrs.asm) нужную строку 283х2 (х2 - потому как по 2 строки в файле на каждый пункт): --- Код: --- dc.l NO_LOAD_GFX dc.l carry_spr_cfg1|AIR_UNIT_SPR dc.l NO_LOAD_GFX dc.l carry_spr_cfg2|AIR_UNIT_SPR dc.l NO_LOAD_GFX dc.l carry_spr_cfg3|AIR_UNIT_SPR dc.l HAVE_SPR dc.l carryharv_spr_cfg1|AIR_UNIT_SPR dc.l HAVE_SPR dc.l carryharv_spr_cfg2|AIR_UNIT_SPR dc.l HAVE_SPR dc.l carryharv_spr_cfg3|AIR_UNIT_SPR --- Конец кода --- и тип 7 означает что нам интересны 3 строки, а лучше наверное 6 - так как там продолжение графики кериола есть на случай перевозки харвестера. итак метки 3 строк carry_spr_cfg1, carry_spr_cfg2, carry_spr_cfg3. теперь у нас есть адреса конфигов. в файле 8_carry_spr_cfg.asm (в 81 это один большой файл sprites_cfgs.asm по моему. в моем случае был порезан один большой файл на кучу мелких по названиям юнитов. и всем была добавлена в начале цифра к названию. таким образом при входе в папку в винде эти конфиг файлы всегда находятся сверху - то есть не нужно искать глазами по папке где asm файлы затерялись среди smd файлов и редактору проще сохранять мелкий файл с 5 строками скажем, вместо всего гиганского файла)... отвлекся... так вот в файле 8_carry_spr_cfg.asm смотрим на конфиги: --- Код: ---carry_spr_cfg1: dc.w 1 dc.w $20, $20, $FFF0, spr2x4, crr_t1|HVMirr, $FFF0 dc.w $20, $20, $FFF0, spr2x4, crr_t1|VMirr, $0 carry_spr_cfg2: dc.w 0 dc.w $20, $20, $FFF0, spr4x4, crr_t2|VMirr, $FFF0 carry_spr_cfg3: dc.w 1 dc.w $20, $20, $FFF0, spr4x2, crr_t3|VMirr, $FFF0 dc.w $20, $20, $0000, spr4x2, crr_t3, $FFF0 --- Конец кода --- где содержится инструкция о размерах изображения и положения изображения относительно квадрата 32х32, так-же есть флаги отзеркаливания изображения и ссылка на сам файл изображения. вот сейчас нас интересует как раз эта самая ссылка на изображение: crr_t1, crr_t2, crr_t3 по этим ссылкам в файле 5_math_sprites_cfgs.asm (в 81 по моему sprites_cfgs.asm) можно найти формулы расчета математики - то есть номера тайла. но сам номер мы конечно не получим - нас интересует часть формулы по адресам crr_t1 и далее: --- Код: ---crr_t1 equ (caryall_spr1-misc_spr2)/32+base3 crr_t2 equ (caryall_spr2-misc_spr2)/32+base3 crr_t3 equ (caryall_spr3-misc_spr2)/32+base3 --- Конец кода --- то есть наконец-то нам попались маркеры, указывающие на реальные пути файлов. то есть нашлись наконец мать их концы! caryall_spr1, caryall_spr2, caryall_spr3. по этим адресам в файле 4_path_sprites_cfgs.asm (в 81 это sprites_cfgs.asm по моему) находим наконец эти самые реальные пути до файлов-графики юнитов: --- Код: ---caryall_spr1: incbin gfx\sprites_gfx\carryall_spr1.smd caryall_spr2: incbin gfx\sprites_gfx\carryall_spr2.smd caryall_spr3: incbin gfx\sprites_gfx\carryall_spr3.smd --- Конец кода --- в редакторе графики отображается файл 8_carry_spr_cfg.asm, остальное все лежит в массивах в памяти. и это все была преамбула :) главный вопрос в том, как мне в редакторе реализовать кнопку добавить или удалить пункт из конфига :) если это скажем было изменение типа спрайта. был 3 градусный 0, 45, 90 - а я решил переделать на 5 градусный 0, 23, 45, 68, 90. это мне нужно в файл конфига добавить еще две строки carry_spr_cfg4 и carry_spr_cfg5, добавить в файл математики еще две строки с этой самой математикой и добавить в файл путей до файлов еще два путя и по этим двум путям создать еще два файла. БЛ@!!!!! как все это сделать?!?!? потом в плане логистики тоже проблема. предположим в редактор графу мы добавили. строчка новая в поле с конфигами появилась. добавлять её в массив внутри программы? ведь построение демонстрационного изображения происходит при участии этого "памятного" массива. это хорошо если пользователь нажмет сохранить. а вдруг пользователь нажмет отмену, передумав? а в массив уже добавлен элемент. а удалять целая история... логистика просто разрывается в клочья :) вот это дело надо сложить в голове в пазл и приступить уже к реализации - но не складывается нифига :) очень много логистических нюансов... |
| AuAurora:
Всё очень плохо |
| Docm@n:
--- Цитата: Дмитрий555 от 21 Октябрь 2017, 12:01:50 --- Где какой уровень сложности? 1800-1800; 1800-1400; 1600-1200? --- Конец цитаты --- 1600-1200 - Легкий. 1800-1800 - Нормал. 1400-1800 - Сложный 1600-2200 - Муаддиб. |
| SeregaZ:
а я вчера пылесосил... и чот вроде в голову пришло. что-то получается :) и даже начал делать сохранение потихоньку. там с конфигами мысль такая: при старте редактора графики делать копию массива конфигов, и уже над копией издеваться. ежели юзверь нажал закрыть окно, без сохранения - ничо не происходит. но ежели нажал сохранить, тогда этот измененный массив копируется в оригинальный, с пересохранением файла конфига и файла графики, над которым были изменения. но вот с анимацией все так-же пока без идей. *** с логистикой пока-что получается просто аааафигенски :) в итоге вышло так, что без танцев с бубном можно загрузить любое изображение из юнитных картинок :) в yy chr надо было каждому тыркать размерность. в моем случае изображение само загружается правильно. сам несколько в недоумении как это вышло :) теперь надо продумать когда выбивать диалог сохранения файла графики, в случае если пользователь решит добавить еще строку (слой) в конфиг. потом надо подумать ежели вдруг пользователь решит нажать отмену. просто тут получается две кнопки должны будут отвечать за сохранение изображения. что несколько не верно. так-же при изменении маркера-ссылки на файл изображения нужно предусмотреть чтоб старый файл удалялся за ненадобностью. но там стописят нюансов. ежели оставить не удаленным - то тогда фактически в роме тайлы будут заняты, но использоваться игрой не будут. то есть например кериол читал картинку из crr_t1 - но я решил снести этот crr_t1, и читать из метки newcrr_t1. вот надо чтоб везде, где есть crr_t1 - он был снесен, и сам файл, закрепленный за этой меткой тоже был удален из файлов сборщика. геморой... и еще я думаю теперь нужна кнопка селекта. чтобы можно было выделять отдельные тайлы в изображении. *** пока не ушел кино смотреть в голову мысль пришла - а почему-бы не расширить GEMS онлайн базу? точнее убрать из названия GEMS, просто онлайн базу, в которой будет скажем список: юниты, заводы, музыка. открываешь юниты скажем - а там стописят вариантов юнитов всех мастей от топтеров и до убертанков какихнить. типа пользователь для своего хака выбирает понравившиеся и одним кликом заменяет оригинальный юнит на этот из базы. естественно если пользователи ранее добавляли в эту базу свои юниты, которые они создавали. еще и буржуев к этой базе подключить :) думаю было бы здорово. п.с.: ежели у кого есть распакованные GEMS банки от игр, которых нет в списке онлайн базы - присылайте. добавлю. так-же я думаю в эту уже существующую базу прикрутить возможность отправлять свои конвертированные треки, то есть чтоб в базе была не только музыка и спецэффекты из игр. |
| AuAurora:
Смели за 25 минут Потихоньку прикрепляю звуки выстрелов из сеги к моделям(после видео), шоб всё по феншую было, позиционный звук. |
| Ti_:
--- Цитата: SeregaZ от 23 Октябрь 2017, 22:06:11 ---ежели его подвинуть, то можно освободить еще один тайл. 4:4 тайл итак не существовал, а мы этим самым освободим еще 4:3 тайл. --- Конец цитаты --- В 81b он так и расположен не по центру. В 82t я его наоборот обратно в центр подвинул и вернул 3 конфига вместо 8-ми. Иначе возникают неудобства в редактировании, из-за того что есть ещё комбо конфиги - кэриолл+харвестер, их тоже вернул к 3. |
| SeregaZ:
ну доделаю окончательно редактор ты сам посмотри потом... этож неудобство было из-за неудобства редактирования :) ведь не видишь что происходит. пиксель туда подвинул - собрал посмотрел - долго, неудобно, не эффективно. в моем случае ведь все под рукой. а так то я понял о чем ты - если сдвинуть чуть от центра, то после зеркалирования тайлы кериола и харвестера не совпадут. вот ежели бы зеркалилось не от границ тайла, а от границ видимой части изображения - тогда было бы дело :) *** и наверное файл 5_math_sprites_cfgs.asm еще на 2 файла разбить надо. в одном чтоб только юнитные, во втором чтоб все остальное не юнитное. *** хотя не... не помогает. видимо автоматику по удалению не используемой графики сделать не получится. *** все. опять мать его затык. ежели в конфиге для одной строчки с маркером на изображение crr_t1 с размером spr2x4 взять и заменить на размер spr3x3 скажем, в этой строчке картинка будет верная. но в соседней строчке у crr_t1 все еще останется spr2x4. и следовательно отображаться она будет не верно. чего теперь, везде где есть crr_t1 делать замену типоразмера? почему столько геморроя то а... |
| Lipetsk:
через 10 мин [SMD] Дюна хак Рейзора Смотрим на: http://elektropage.ru/video http://peka2.tv/romhack https://gaming.youtube.com/user/Lipcards/live Поддержать канал: http://donatepay.ru/donation/romhack |
| -RagmuL-:
M3tro ™, русский ментат есть!? |
| SeregaZ:
кстати про ментатов... в файле конфиге только 1 координата. а что если у меня глаза совсем в другом месте? где задать размер изображения для глаз и координат для глаз? |
| Ti_:
--- Цитата: SeregaZ от 28 Октябрь 2017, 22:00:10 ---кстати про ментатов... в файле конфиге только 1 координата. а что если у меня глаза совсем в другом месте? где задать размер изображения для глаз и координат для глаз? --- Конец цитаты --- Не одна. word_25958 - X и Y анимации глаз. word_25964 - X и Y носа и рта. Размер задать нельзя. |
| SeregaZ:
а если мне рот не нужен? все тайлы для рта сделать прозрачными? и посмотрев на фрименшу вообще в шоке... у неё косичка получается в файле ниже головы. откуда игра знает что косичку надо наверх установить? потом еще в файле рта не ясно... ежели все изображения одного размера и изменять нельзя - как так вышло, что в файле фрименши размеры картинок не совпадают с атрейдисными? как в плане размеров, так и в плане стартового тайла для 2 и далее картинок. первая картинка то еще совпадает так сказать. последующие нет. *** по юнитам осталось сохранение доделать и что-то придумать с анимацией. *** алгоритм сохранения изображения с пропуском последних прозрачных тайлов вроде родил, и на половину сохранение уже написал. а вот путаницу с фактически двумя кнопками сохранения не решил :( |
| Ti_:
Ментаты состоят из спрайтов. Есть карта описывающие расположение каждого спрайта. Фременская ментатша была больше размером и не влезала. Чтобы засунуть, там ряд изменений был произведен в размерах, в схеме спрайтов, и в коде. |
| SeregaZ:
вот я ж чувствую что что-то не то. и этой самой карты для редактирования естественно нет в сборщике? по аналогии с юнитами там по идее должны быть конфиги :) типа картинка айди такой-то, размеры такие-то, лежит по координатам х и у... и так по всем кусочкам пазла :) |
| AuAurora:
Всем замес 3х3х3 |
| Razor:
- обновил Dune Razor Missions; - обновил Dune Razor Missions Ultimate; - выпустил новый хак Dune Razor Missions Origins; Скачать можно в полном сборнике: https://yadi.sk/d/OE5f8azyuUb5p |
| Ermac_oo:
|
| Lin:
Возможно ли добавить в Dune 2 поддержку мыши? Кто-то пробовал уже? |
| SeregaZ:
|
| Razor:
SeregaZ, там сборка обновляется, а твой редактор DUBDSE_v0.6h не может с ней работать. Когда он парсит файлы, то удаляет строчки конфигов новые. Не порядок. :( |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |