Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программа - редактор ландшафта карт
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III
Страницы: 1, 2
pHOMM
Добрых суток, герои )

Написал на Дельфи7 программу редактирования земли, рек и дорог на картах для героев3. Вся детальная инфа на моем сайте - http://www.phomm.narod.ru

А дело было так: я решил поучаствовать в конкурсе HW на лучшую карту 2009г
http://forum.heroesworld.ru/showthread.php?t=6284
рисую себе, рисую и думаю, что хотел бы я поменять конкретные тайлы почвы на другие, и давай извращать в редакторе карт. Очень долго и муторно, например, сделать лавовую почву, состоящую только из квадратиков, на которых есть лава. Или сделать берег без тонкой такой береговой линии. Так в редакторе я и не сделал то, что хотел.
Вспомнил, что где-то был формат карт, нашел его и давай в шестнадцатеричном редакторе выискивать нужные байты и заменять. Очень скоро я понял, что и так долго что-то менять, но можно конечно. И тут и подумал - напишу я прогу для редактирования почв. Сказано - сделано. Через день уже тестил в псевдографике(по цвету почв на миникарте) карты.
Потом добавил реки и дороги, потом поднапрягся и сделал рисовку графикой игры, для чего распаковал дефы почв, дорог и рек. Немного погодя, довёл до ума, добавил отмену действия, всякие удобные штуки, размер кисти, предпросмотр кисти, и всякие заменяющие алгоритмы (например, все лавовые реки заменить на точно такие же по отрисовке, но ледяные, не затрагивая всё остальное).

Уже хотел выкладывать, но подумал, надо бы сделать такую фишку, которая бы действительно была нужна, а то только графику менять - это так, баловство, влияет конечно на карту, но играбельности/функциональности не приносит.
И сделал смену размеров карт !! Теперь могу ещё много чего добавить, всяких функций , но для версии 0.1 пока ограничился этим.

Прошу заценить )

Ну и конечно, пожелания для функционала и багрепорты(тут надо указать ревизию и карту на которой тестится + описание к повторению бага)

Конечно же, я не жму и выложил сразу исходники, кто хочет может написать/переписать что хочет.

Усё на сайте(см. вверх) smile.gif

ЗЫ грейт сэнькс baratorch'у за его работы с дебагером над сменой разрешения, сам когда-то думал этим заняться, но мои знания асма меньше его...
Ogion Stranniy
А смена размеров карт- это где и как?
pHOMM
ну на сайте написано, как сделано... ей-богу, заходите прочитайте описание, сама прога весит 270 кб в архиве и графика(из дефов распакованая и конвертированая в бмп) - 1,2 мб, нетяжко скачать, если есть какие-то уж совсем сверхъествественные вопросы, то велкам в аську, она на сайте
tolich
Первое, что могу сказать - бесит, что когда передвигаешь курсор с карты на панель управления, карта сдвигается влево, причем довольно быстро. Изменение размера карты - функция очень полезная и выполняется одним щелчком (не помню, есть ли такое в патче сергроя). Советую связаться с гиппо, он тоже мутит редактор. Может быть, вы обогатите друг друга идеями?
pHOMM
эээм, да конечно это несколько неудобно, смещение это, оправданием мне служит только то, что такая система скроллинга применяется в героях, я сам избегаю(когда ООООчень важна позиция экрана) этого просто резким перемещением мышки, но обычно смещение на 2-3 клетки не портит картину, если знакомы с дельфи, то изменить в исходнике одну константу задержки для скроллинга не составит труда, можно найти функцию и вообще отключить скроллинг мышкой - комментируется 1 строка.

В патче сергроя насколько я знаю заменяются оригинальные размеры на другие, мою прогу, кстати, путём изменения констант архилегко подстроить и под эти размеры.

Ну а ещё могу добавить, что было в мыслях делать не просто обрезку карты, при которой остаётся левая-верхняя область(при увеличении) или дополняются области справа и снизу(при уменьшении), а такое изменение размеров , что сперва меняется размер, а потом существующие данные карты переносятся в заданную пользователем точку. Думаю можно это и в 0.1 версии сделать в одной из ревизий

Да, про гиппокамуса, вполне можно, но у нас с ним разные игры ))) для которых мы работаем, у него - РГ, у меня ТВ, смотря какой редактор он пишет - переделку с новыми функциями или же такой как я - сборник функций для того, что не умеет родной редактор+гуи для этих функций.

Да, ещё подумал, что можно оставить нынешний скролинг, но только при нажатой левой кнопке мыши, или таскательный скроллинг - взяв мышкой - тащить карту, какой на ваш взгляд будет удобнее ?
напишите и сделаю 2 ревизию (скачаете только архив с прогой)
feanor
Он редактор для хоты пишет же?
pHOMM
суть ли меняет факт сей ?
йода

пишет-то на дельфи )) ну может плюс дельфиикс какой-нибудь
hippocamus
Пишу на Делфи 2007 (уже перехожу на Делфи 2010).
Интересно глянуть, скачал, посмотрю smile.gif

Добавлено ([mergetime]1258465421[/mergetime]):
При попытке ставить за пределы карты - вылет...
Ошибка при покрытии береговой линии скалистой землёй.
Berserker
На всех картах только Map Error. Ни одна не открылась. Качал полный архив с сорцами.
tolich
Это потому, что таки не распакрвывает, зараза.

Добавлено ([mergetime]1258466445[/mergetime]):
Да, этот момент я как-то упустил... lupa.gif
Berserker
Тогда подожду с литьём на вог-архив. Нужна хотя бы рабочая версия.
hippocamus
А, извиняюсь, несплошное покрытие береговой линии вызвано зеркалом береговой линии.

Добавлено ([mergetime]1258467752[/mergetime]):
- Открывает только запакованные карты
- Грузит довольно медленно
- Колёсико мыши вызывает сбои

А так вообще хорошая прога, но для удобства нужно бы сделать выбор тайла из диалога, и желательно - подгрузку тайлов из лода, а не из архива.

Сглаживание, я понимаю, ты специально не делал? Вот на сглаживании я как раз и застрял сейчас с редактором, я не хочу делать его жёстко прописанным, хочу сделать настраиваемым. И сделать возможным добавлением новых переходов. Например Трава-снег, одноклеточных рек и проч.
tolich
А у меня только распакованные. Видимо, в разных архивах разные версии.

Добавлено ([mergetime]1258468327[/mergetime]):
Я, как и Берсеркер, качал фулл.
pHOMM
Так, сейчас наведу шороху !!!

0. в архивах версии всегда одни! о чём можно убедиться по файлу revision.pas, который есть часть исходника(в архиве фул и src). при любом изменении я перезаливаю на сайт все архивы, кроме тайлов

1. спешал фо Берсеркер ninja.gif Сказано в описании что открывает ТОЛЬКО РАСПАКОВАНЫЕ карты (раром её , раром!)!!

2. Подгрузку из лодов сделать могу, ибо догадливые заглянут в папку hmm3form и увидят что там формат лодов есть, и сделать не сложно, но особо умные и прозорливые увидят, что нет формата дефов !!! посему я не могу сделать подгрузку из лодов, я искал формат деов и не нашёл, а помнится в бытность свою даже пытался его реверснуть, но не получилось.
ДА я знаю, что надо спросить формат дефов у сергроя !!! но пока не спросил blink.gif

Грузит медленно во-первых из-за первичной загрузки всех битмапов с тайлами а сами карты грузит махом ! убедиться можно загрузив после первой карты вторую другую !!!!!!

А во-вторых грузится(а точнее рисуется) из-за переделки, которую я устроил сегодня(001 ревизия). Дело в том, что тайлы дорог и рек непростые, а со смещённой инфой (сам тайл надо на пиксель вправо сдвигать, а крайнюю правую колонку пикселей помещать на левый край опуская на пиксель), если интересно найди процедуру preparebmp и закомментирую этот сдвигающий код, оставив только уменьшение размера тайла, грузится будет в 3-4 раза быстрее даже на большом монике.

Колёсико мышки наверное вызывает такие сбои : когда фокус находится в комбобоксе выбора любого элемента кисти , а хочется проскролить карту - меняется кисть, так вот, это - штатное поведение комбобокса при скролинге, чтобы этого не было надо кликнуть по карте, фокус переместится в неё и будет скролить карту

Насчёт сглаживания либо я не въехал, либо уважаемый гиппокамус не совсем понял, что эта программа как раз и создавалась , чтобы избежать навязываемой редактором обвязки каждой кетки кучей других, сглаживающих

пример - моя карта "уника" там убраны глупые "бордюрчики" вокруг земли ну и плюс кусочки самой земли , которая находится в пустоте (rock) и получается образ города , парящего на облаке (объект-почва"Магические облака"), а редактор, во-первых, в любом случае сделает "бордюрчики", а во- вторых просто не поместит магические облака на землю типа "rock", поэтому я сперва нарисовал, что надо, а потом удалил всё то, что редактор мне впарил ))

> При попытке ставить за пределы карты - вылет...
а вот это конретнее, плз, что ставить , как ставить и т.п. лучше полный репорт (карту, и описание пошаговое), хотя, чесслово, если запустить исходник из-под дельфи, то любой вылет можно отследить дебагером, а код у меня, ну ведь совсем простой, да ещё и комментирован нормально так...


Это, вчитался в пост, и подумал : а как без новой графики тайлов сделать переходы снег-трава ????
hippocamus
-- а как без новой графики тайлов сделать переходы снег-трава ????
- никак. нужна новая графика. но её сделать несложно.

-- При попытке ставить за пределы карты - вылет...
- тот вылет был обусловлен Memory Access error, и это действительно не связано с рисованием за пределами карты, просто так совпало.
ОШИБКУ вызови так: установи кисть 3х3, порисуй, и покрути колесо мыши.
sergroj
Вызов gzip.exe обязательно прикрути (могу даже отправить свой код из MapTool:)). Только учти, что карты могут быть и не запакованы.
Облака на Rock в редакторе с патчем можно ставить.

Цитата(pHOMM @ 17 Nov 2009, 21:56)
ДА я знаю, что надо спросить формат дефов у сергроя !!! но пока не спросил  blink.gif

Куда послать?

Цитата(pHOMM @ 17 Nov 2009, 21:56)
А во-вторых грузится(а точнее рисуется) из-за переделки, которую я устроил сегодня(001 ревизия). Дело в том, что тайлы дорог и рек непростые, а со смещённой инфой (сам тайл надо на пиксель вправо сдвигать, а крайнюю правую колонку пикселей помещать на левый край опуская на пиксель), если интересно найди процедуру preparebmp и закомментирую этот сдвигающий код, оставив только уменьшение размера тайла, грузится будет в 3-4 раза быстрее даже на большом монике.

Ты, наверное, использовал Def Viewer для распаковки кадров?
tolich
Нафик gzip.exe? Гораздо проще и эффективнее прикрутить к программе ZLib.
pHOMM
Блин, точно, дефвьювером распаковывал, может он не очень конвертит из-за области прозрачности..., сейчас прямо в лоде реседитом посмотрел, там без этих смещений графики !!!
сейчас заревизирую новую версию и обновлю тайловый архив, как только найду способ сконвертнуть эти 200 тайлов нормально (подгрузь дефов из лодов сделаю чуток позже, а выслать формат на ящик, он на сайте указан в разделе обо мне, можно и по аське, она там же), как натворю ревизию, так отпишу, ещё удумал в файле ревизий вести небольшую историю изменений. В общем, ждите )

Так, все мои тулзы не умеют резать дефы в бмп, кроме дефвьювера, "Houston, i need help", всё нашёл ! это дефпривью от Сергроя

А косяк с мемори аксес ерором исправил, он был из-за неправильного условия, в коде, который я как раз перед релизом поменял на менее памятекушающий, в коде сохранения клеток ундо.

а насчёт мапедпатча (мой 3.3.0.0), в нём нет совсем клетки rock доступной к установке, всё есть, а рока (даёшь рок ! rulez.gif) - нет (( , первая - дёрт, последняя - вода, опция вкл всё также не позволяет, видимо забыл ты про рок... сейчас глянул в h3objed, там тоже нет.. так что вотъ wacko.gif

ведь-таки никто не сказал какой скроллинг лучше сделать, поэтому пока оставлю старый, хотя хочу сделать таскательный (как автокаде)
pHOMM
Готово!! ревизия 0.1002 на сайте! Исправил баги, переконвертил бпмшки рек и дорог (правда Сергрой - твой дефпривью сохраняет бмп 32битные а надо бы 8битные ну или выбор между ними) , всё перезалил, посему лучше качать новый фулл

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

ЗЫ грейфейс, он же сергрой, у тебя на вот этом сайте http://www.grayface.nm.ru/ в шапке(тег тайтл) написано GARYFACE
Etoprostoya
GARYFACE и GRAYFACE - это одно и тоже. :-)
GARY - гарь.
GRAY - серый.
В первом случае - "лицо цвета гари, пепла", во втором - "серое лицо", что одно и то же.
sergroj
Цитата(pHOMM @ 18 Nov 2009, 12:43)
а насчёт мапедпатча (мой 3.3.0.0), в нём нет совсем клетки rock доступной к установке, всё есть, а рока (даёшь рок ! rulez.gif) - нет (( , первая - дёрт, последняя - вода, опция вкл всё также не позволяет, видимо забыл ты про рок... сейчас глянул в h3objed, там тоже нет.. так что вотъ wacko.gif

В патче есть опция "Ставить объекты куда угодно".

Цитата(pHOMM @ 18 Nov 2009, 13:54)
Готово!! ревизия 0.1002 на сайте! Исправил баги, переконвертил бпмшки рек и дорог (правда Сергрой - твой дефпривью сохраняет бмп 32битные а надо бы 8битные ну или выбор между ними) , всё перезалил, посему лучше качать новый фулл

Странно, у меня в 256...

Цитата(pHOMM @ 18 Nov 2009, 13:54)
ЗЫ грейфейс, он же сергрой, у тебя на вот этом сайте http://www.grayface.nm.ru/ в шапке(тег тайтл) написано GARYFACE

Спасибо.
pHOMM
Ну, глянь в мой архив с тайлами и сравни бмпшки почв - они конверчены дефвьювером2.0, они получились 2 кб и 8-битные, и тайлы рек и дорог, которые я конвертил дефпривью, версия в нём самом не написана (или не нашёл), взял с одного из твоих сайтов (не с форума) и получил бмпшки 4кб и 32битные, вот.

А опции "ставить объекты везде" не увидел, извиняй, просто она "не на поверхности лежит", сейчас проверил - несмотря на запрещающий курсор она ставит-таки.

НО !!! прОблем из - мне надо было рисовать по правилам конкурса HW в редакторе не-ВОГ, поэтому пользоваться мапедпатчем я не мог (хотя есть конечно ещё Маптул - переконвертит карты из вог-версии в сод, кажется, но уж так изголяться я что-то только сейчас дотумкал) и пользовался своей прогой. К тому же создать линию воды, обрывающейся в пустоту сразу можно только с моей прогой (хотя, кто знает...)

По поводу формата дефов и кода вызова гзипа - жду на почту )))
Adept
Цитата(pHOMM @ 17 Nov 2009, 17:29)
Ну и конечно, пожелания для функционала и багрепорты(тут надо указать ревизию и карту на которой тестится + описание к повторению бага)

Насколько я знаю, батлфилды привязываются к конкретным точкам. Было бы неплохо, чтобы они тоже могли настраиваться. Да и в целом поля боя с препятствиями и прочим. Ну и вообще встроенный менеджер батлфилдов бы не повредил, чтобы через него можно было и новые юзать. А то у меня например из-за кириллицы в пути к Героям батлфилды устанавливать муторно.
pHOMM
Это, надо так понимать, требует серьёзнейших исследований, с написанием таблицы типов батлфилдов и обстаклов, в зависимости от конфига клетки боя.
Я всё-таки не ревёрсер, чтобы проделать эту работу, да и времени не хватит. Давайте собираться всем миром и тестить те пару тысяч вариантов. Тогда и закодить можно будет. А выбор нужной формации батлфилда при наличии всей таблицы сделать чисто визуально (потом выставляя нужный конфиг на клетку) я думаю не сложно.

Вообще, конечно, это предложение на версию 0.2 А на версию 0.1х я думал сделать перенос части почвы(копировать-вставить, но в мапедпатче3.3 это есть, посему пока не намерен, может позже, просто, чтобы люди не лазили между прогами) и сделать заливку территории до границы(по типу почвы, как в паинте по цвету) как одним конфигом , так и рандомно выбираемым из настраиваемого диапазона, а то в редакторе есть только прямоугольниковая.
CrackedMind
Цитата(Adept @ 19 Nov 2009, 20:52)
Цитата(pHOMM @ 17 Nov 2009, 17:29)
Ну и конечно, пожелания для функционала и багрепорты(тут надо указать ревизию и карту на которой тестится + описание к повторению бага)

Насколько я знаю, батлфилды привязываются к конкретным точкам. Было бы неплохо, чтобы они тоже могли настраиваться. Да и в целом поля боя с препятствиями и прочим. Ну и вообще встроенный менеджер батлфилдов бы не повредил, чтобы через него можно было и новые юзать. А то у меня например из-за кириллицы в пути к Героям батлфилды устанавливать муторно.

Если они и привязываются, то это захардкодено, и на карте это никак не изменить, только если через ERM smile.gif
pHOMM
Почему же не изменить??? Если чётко будет в ходе исследований установлено, что вот такой вид тайла (тип-почва, вид-рисунок) будет соответствовать конкретной конфигурации обстаклов батлфилда, то выбирая по картинке (от типа тайла как известно зависит фоновый рисунок, с некоторыми исключениями - берег и подземка имеют всегда 1 фон) какой батлфилд хочешь - такая конфигурация(тип и вид тайла) и будет вставлена, так и получишь нужный рельеф и вид поля боя, но вот если есть ещё зависимость от координаты или ещё чего, то тут будет очень трудно ревёрсить.
Леголегс
Цитата
но вот если есть ещё зависимость от координаты или ещё чего
Зависимость есть.
http://orderofphoenix.ucoz.ru/forum/7-3-183-16-1207683685
Цитата
На одинаковой земле, в одинаковых координатах, на ЛЮБОЙ карте ОДИНАКОВЫЙ ландшафт на поле боя.
Т.е.: если видишь огроменную трещину на определенном месте карты, скажем, на проклятой земле, то записуй координаты места, лепи любую другую карту (ппц, для онлайна зло тоже великое), ляпай проклятой землей на то же место и там будет такая же трещина.

в точке 0-15-54 например, на проклятой земле, без книг магии один архидьявол гарантированно рвет стопиццот красных драконов....
hippocamus
Как это Архидьявол рвёт 500 Красных драконов? Не понял? Что это за точка такая?
pHOMM
Сейчас проверил, оказывается не на проклятой земле только, но и на камнях, там генерятся такие же препятствия !!! это действительно тема исследования !!!! давайте создадим такую базу - точка на карте , учитываем что это может быть и берег (будем считать его просто типом земли) - тип земли (с учётом волшебных/накладываемых земель, берега и того, что под землёй всегда подземка) - имя рисунка обстакла (дефы в ерм-хелпе или h3sprite.lod есть, а псх-ы только в h3bitmap.lod реседитом смотреть) - точка расположения обстакла в бою - или по ерм-хелпу 1 координата, либо крайняя левая-верхняя точка обстакла, даже если она проходима, то есть угол обстакла по клеткам, записывается в координатах столбец-строка, причём для удобства, и чтобы не запутываться необходимо видеть что гексы они почти как квадратная сетка, только разнесены , поэтому давайте пример

15/54/0 rocks
ObDtS03.def 125 6/8
ObRgS05.def 72 4/5
ObRGS01.def 91 6/6
Obrgl02.pcx 41 3/7

здесь подписаны препятствия обозначеные на рисунке с х z y
картинка - http://phomm.narod.ru/obstacles.jpg

если кто захочет, собирайте данную информацию для всех клеток и потом посылайте мне ,соберём данную информацию и можно будет написать ПРОГРАММУ ПОЗВОЛЯЮЩУЮ ЗНАТЬ КОНФИГУРАЦИЮ БАТЛФИЛДА
Haart of the Abyss
А не будет разнобоя в результатах между играющими на платине, на обычной буке и на английской версии? Не знаю, как в тройке, а в героях 1 и 2 генерация поля боя в переведённой версии разительно отличалась от таковой в оригинале.
hippocamus
Ага, понял как рвёт smile.gif круто!
Но база будет слишком большой и слишком неудобоиспользуемой...
gamecreator
Гиппо, база нужна для обратного инженерного анализа.
зы. драконам на скрине хана smile.gif
Haart of the Abyss
Цитата
здесь подписаны препятствия обозначеные на рисунке с х z y
картинка - http://phomm.narod.ru/obstacles.jpg

Здесь могла быть ваша фея!


P. S. Или гарпия-ведьма, или вампир, или простой дьявол...
gamecreator
все со скоростью ниже драконов - не могли бы
tolich
Цитата(gamecreator @ 21 Nov 2009, 01:57)
все со скоростью ниже драконов - не могли бы

Ну, гарпия-ведьма вполне смогла бы... если драконы сядут поближе... laugh.gif
CrackedMind
Такие ситуации просто нельзя допускать при генерации, ибо ...
pHOMM
Значит, сообщу вот что: подумал, что создавать такую базу будет чрезвычайно страшно.

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

!#установка таймера на первый день
!?триггер таймера
!!вызов функции по типу почв от 0 до 7 (без воды и черных рокс, потом надо будет учесть ещё и магические земли)

!?триггер функции по типу почв
!!залить всю карту почвой(переданной как аргумент)
!!вызов циклической функции по клеткам Х от клетки 0/0/0 до клетки 144/0/0
!!вызов циклической функции по клеткам Х от клетки 0/0/1 до клетки 144/0/1

!?функция по клеткам Х
!!вызвать функцию для клеток по У и передать в неё ещё и Х

!?функция по клеткам У
!!инициировать битву с 0 кого-нибудь против героя игрока(даже если на этой клетке герой то битва должна вызываться, вроде у меня так работало когда-то)
!!сохранение типов обстаклов и их позиций
!!ресивер записи в инифайл по некоему шаблону: координата и земля - имя графики обстакла - клетка поля(ерм-номер)

для всего этого надо будет создать карту ХЛ+У и поставить героя, и запустить игру )))

Есть правда 1 подводный камешек - насколько я понимаю дефы обстаклов так сохранятся, а вот псх-ы надо будет искать немаловероятно через UN:С (((

UPD есть дополнительный мысль, что вариантов полей боя не так уж и много, и возможно их набор ограничивается также и кластером карты, он как известно равен 36*36 (s-1 кластер xl-16 кластеров) и схемы полей боя в каждом кластере повторяются, не говоря уж о том, что и внутри кластера они могут повторяться
gamecreator
ага, и так раз 8-10 хотя бы.
sergroj
не помню, куда ты говорил прислать def/lod и gzip?
pHOMM
На сайте моём приведены моя почта и аська, как удобнее послать
понимаю что лень , посему почта phommэтmailдотru аська 421*049*471
sergroj
А, DefPreview возьми с http://sites.google.com/site/sergroj/ - старый сайт я уже не обновляю.
pHOMM
Вобщем, фигня какая-то. Написал скрипт, карту для него тестовую, всё супер и бой идёт и земля меняется снова бой и т.д., вот только обстаклы не сохраняются, ибо BF:O не позволяет гет-синтаксис... Полез в Артмани, но пока не нашёл нужных адресов - обстаклов и их местоположения чтобы в UN:C забацать получение этих данных
"Хьюстон, ай нид хелп !!!"

Карту кладу на сайт свой, в ней же скрипт и описание действий. Карта - http://phomm.narod.ru/sobstcheck.h3m она пока S

Для ленивых скрипт кину и сюда

Код
ZVSE
!#VRz10:S^c:\obstacle.ini^;
!#UN:X?v6/?v7;
!#VRv6:S1; here must be S-1
!?HM0;
!!DO20/0/0/1:P; here must be 20/0/7/1

!?FU20;
!!VRv9:Sx16; save terrain type
!!FU21:P0/0/v6/v6/0/x16/0;
; xstart, ystart, xend, yend, level, type, subtype

!?FU21; - set rectangle
!!DO22/0/v6/1:Px1/x2/x3/x4/x5/x6/x7;

!?FU22&x16>=x1/x16<=x3; - set row
!!DO23/0/v6/1:Px16/x2/x4/x5/x6/x7;

!?FU23&x16>=x2/x16<=x3; - set 1 tile
!!VRv1:Sx1;  X cord
!!VRv2:Sx16; Y cord
!!VRv3:Sx4; level
!!TR1:Tx5/x6/d/d/d/d/d/d; - change terrain type
!!HE0:Tv1/v2/v3/0/0; start battle with 0 pikemen;

!?BA0;
!!DO24/0/188/1:P; loop thru battlefield positions

!?FU24
;!BF:O?vx16/x16; get obstacle # because so it doesn't work, it should be done with UN:C with check of empty hexes
!!VRv4:Sx16;   set here vx16 - type of obstacle
!!VRz1:M3/v1;
!!VRz2:M3/v2;
!!VRz3:M3/v3;
!!VRz4:M3/v4;
!!VRz9:M3/v9;
!!VRz8:Sz9+^.^+z1+^/^+z2+^/^+z3;
!!UN:N5/4/x16/8/10;
pHOMM
Намерен подогреть интерес к своей программочке...

Как говорил, уже сделал загрузку из лодов (дефы из спрайтлода) , распаковку/запаковку карт (да и незапакованные читает, для любой, в общем, карты подойдёт). ГИГАНТСКИЙ СЕНЬКС в помощи по данным разработкам SERGROJ'ю

Также оставил работоспособность программы и без героев, включив в "комплект поставки" нужные дефы, поэтому отныне будет всего два варианта (а не как до этого, отдельные архивы : графа, прога, исходники, и полный) то есть старый полный и новый полный (у старого нету глюков вроде как )) и возможно кому-то ещё пригодится распиленная на бмп графа и базовые исходники, а у новой понятно что )

Релиз будет, как добью основные баги, возможно в феврале.

Итак анонс функционала, обсуждайте, спрашивайте, предлагайте:

1. Открытие и сохранение карт, как обычных (запакованных) так и распакованных любой версии Героев3 (всего 4 разных) и любого размера (помимо стандартных размеров поддерживаются и иные размеры) .
2. Отрисовка карты 2 методами. Первый - на канве с использованием цветов, используемых для рисовки мини-карты, без визуального деления разных текстур (тайлов) одного типа почвы, с прорисовкой горизонтально-вертикальных дорог и без прорисовки рек. Второй - с графикой - либо грузит из прилагаемых к программе деф-файлов (и тем самым работа с программой автономна и не требует наличия героев на компьютере), либо загружает из ресурсов игры. Рисовка карты аналогична тому, как её видно в игре или нативном редакторе карт, но без рисовки объектов. Известно, что рисунки дорог лежат под ногами лошади героя, поэтому они смещены из центра тайла вниз на половину высоты, пока трогать не захотел... морока пока, а результат - чуть более правильно размещённая дорога, многие даже не заметят.
3. Кисть. Независимый или комбинированный выбор любого компонента рисовки - будь то почва, река, дорога или зеркало, и любого разумного размера кисти (раздельно горизонтального и вертикального). При использовании с графикой смена кисти сопровождается отрисовкой в рабочей области прямоугольника с изображением выбранного набора параметров кисти, например травяной тайл поверх которого река и дорога, к каждому из которых может быть ещё применено зеркало.
4. Изменение размеров карты. Всего есть 4 размера карт (но существует также патчер позволяющий делать и много других), можно между ними переключаться хоть на уменьшение, хоть на увеличение. При этом данные в создаваемой области при увеличении заполняются нулевой ячейкой - ей соответствует один из земляных кусочков без рек, дорог и зеркал. Данные при уменьшении карты из обрезаемой области теряются навсегда... потом претензии не принимаю )) конечно же, при случайном изменении помогает закрытие приложения без сохранения карты и открытие всего этого заново, с потерей предыдущих правок, посему, не забывайте периодически сохраняться.
5. Анду или ундо, кому как, по-русски отмена действия. Отменяет закраску 1 клетки, память выделяется динамически, то есть сколько хотите, столько и сделаете ундов. Скажу сразу, что, если вы рисуете кистью 36*36, то зараз можно получить 1296 ундов и если потом захотите отменить, то долго и упорно жмите на энтер (после клика мышкой по кнопке ундо), пока не дойдёте до нужного шага отмены. Конечно же, клетки, которые идентичны выбранной кисти, не перерисовываются и не сохраняются в ундо.
6. Заливка. Спецфункция для заливки однотипной поверхности почвы произвольной формы (не обязательно прямоугольной), в отличие от "заполнения", которое производится выбором нужной кисти и заданием размера для области заполнения по ширине и высоте, при этом однократный щелчок ПКМ заполняет область заданного размера этой кистью, при установке подтипа почвы в n/c , "не менять", работает почти аналогично заливке, но область прямоугольная и с заданными размерами, ну и без учета перехода одной почвы в другую. А заливка меняет строго 1 тип почвы на другой, причём только у определенного набора типов почв, ибо у них одинаковая индексация текстурок (переходные почвы - грязь, песок, вода и пустота, нельзя менять, у них иная индексация), при этом закрашиваются все (ну почти все ))) , надо отточить) соседние клетки того же типа. Для этого выставляется "fill" в любом из полей для размера кисти, если выбраны оба то зливка идёт по всем соседним клеткам, если только в одном, то заливка ограничивается на то число которое выставлено в направлении вниз и вправо соответственно.
7. Интерфейс. Прокрутка карты осуществляется перемещением мышки по краю видимой области карты с зажатой ЛКМ, либо, когда фокус на карте, скролится горизонтально колёсиком а вертикально - колёсиком с зажатым Ctrl/Shift (хотя и скролбары есть), логичным и удобным считаю рисовку нажатием правой кнопки мышки, выбор - левой кнопкой мышки, при котором в информационном поле расписываются параметры выбранной клетки.
8. Сбои и баги (да, это не баги, а фичи, то бишь такой же функционал biggrin.gif). Приложение легко может повеситься, версия ещё небольшая smile.gif. Могут не открываться или не сохраняться карты, хотя я приложил к этому месту кода большие усилия, переписывая его и тестируя на десятках карт (да и с алгоритмом распаковки могут быть проблемы, ибо код не мой а разработчиков распаковщика). Также может произойти какой-нибудь сбой при рисовке, анду и т.п. Естественно, принимаю в таком случае багрепорты на почту, чем детальней, тем скорее я пофиксю. И апдейтну сайт, для удобства введена система ревизий по багам, она идет по версии, например 0.1.1.00, и 00 - ревизия.
0. Опенсурс. Писал на Дельфи7 с использованием свободно распространяемых описаний форматов карт героев (на русском) и т.п. Графику извлек из ресурсов. Можете использовать исходники, но я пока буду работать и над расширением функционала сам, правда по мере того, как сам сочту нужным. Исходники более менее комментированы на английском языке. Собственно, как и водится в этих случаях - фривар, "as is", никаких гарантий, сам тестил на картах и играл, наблюдал то, что нарисовал своим редактором и в игре, и в нативном редакторе карт.



Ну и конечно, велкам вашим предложениям по наработке о препятствиях, думаю дополнить скрипт установкой препятствий и удалением их с брейкпоинтами где надо, вида !!IF:M^^; и в таком виде изучать адресное пространство в артмане, дабы изучить структуры для поля битвы и препятствий, ПОМОЩЬ ДИКО ПРИВЕТСТВУЕТСЯ )))
pHOMM
Всем добрых суток ! )

Вобщем, как и обещал , сделал, всё что задумал и ещё маленькую пачечку )) , хотя тестинг всего этого отнял добрую половину времени, и багфиксы писал постоянно, но теперь мой редахтур стабилен, и Берсеркер, можешь теперь со спокойной душой класть на ВОГ-архив )) , не сочтите за нескромность. Ну и packa тоже спрашивал о внесении в каталог моих программ, также разрешаю.


Теперь кратенько. Ибо широко в предыдущем посте написано ) Линко - http://phomm.narod.ru/h3mtered.htm

Всё работает, и карты любые(пакованые и не пакованые, и норм размеров и мега размеров) и все функции работают, кисти, заполнители, чейнджеры, заливка и копипаста (главные нововедения). Ну и, конечно, графика сделана в 3 вариантах - подгрузь из дефов (с прогой идут), из лодов геройских, и псевдо-графика.

Полный ридми в комплекте проги и на сайте, а предыдущий пост не очень полный.

Также сделал англ страничку на своём сайте для редактора, так что теперь и гости нерусскоговорящие велкам !!!


Также маленько обновил свой дефпарсер, чутка только изменился код, даже недостоин отдельной ревизии (там буквально убраны нотюзед но деклеаред пеерменные и мелочи), однако подбавил дефлистов !!, думаю потом завести папочку для дефлистов и страничечку чтобы их можно было по отдельности скачать, посему для оных целей открываю приём листов, которые вы сделаете и захотите поделиться, велкам в почту ! Ну и конечно тоже сделал для дефпарсера англ версию странички )) (а то ведь негоже, программы мои по английски предлагают посетить мой сайт за апдейтами, а англ странички нет )


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

За сим, откланиваюсь... ваш рН
pHOMM
Здравия, Герои ))

вот побился, побился, и сделал-таки эти препятствия !!!

Теперь, чтобы поглядеть препятствия в моём редакторе , надо всего-то нажать конопочку и в отдельном окне можно наблюдать за их размещением на поле боя ))

Правда, конечно, не сделал так, как хотел, а именно, в нативной графике... пока только картинка etoprostoya (за что ему спс большой ), на которою наносятся черные прямоугольнички :-D

Ну, и главное, что ещё не сделано, так это база на всего под 800 полей боя.... а должна быть по прикидкам аж под 400 000 !!!!! (с учетом магических полей, боев просто на воде , побережья и абордажа, подземки и всего такого)

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

Чтобы составлять базу, нужны приличные компьютерные мощности... в плане времени. Я пока не добился никакого автоматизма, и уж тем более не читаю из памяти данные, ибо не знаю где, а всего лишь скриптом запускаю битву и сохраняю в инишке препятствия. Ну а уж для автоматизации процесса двигания мышкой в бою для убийства 1 крестьянина использую программу баллиста-убивалка forum.heroesworld.ru/showthread.php?t=2326

Вобщем , кто хочет помогите, пожалуйста, с наполнением базы, хотя бы на 1 ночку запустить если то можно тысяч пять-семь боев провернуть, за инструкциями ко мне в контакты, там на сайте у меня http://phomm.narod.ru/about.htm

Ну и ещё о грустном, в грязевых препятствиях есть такие хитрые препятствия (а может и не только в грязевых), кусок которых, стоя на определённой клетке "является" препятствием (распознается скриптом как флаг препятствия и удаляется соотв. магией именно с этой клетки), но сама клетка доступна для вставки туда бойца, посему картина расположения препятствий не всегда точна...

На закуску сделал мультиланг поддержку в проге, с русификацией, естественно, причесал кое-где, вобщем, пользуйте )))

http://phomm.narod.ru/h3mtered.htm

За сим, откланиваюсь... ваш рН
pHOMM
GOOD NEWS EVERYONE !!!!

1). Пофиксил недочет с препятствиями, которые как бы не препятствия ))) Оказывается есть 3 типа препятствий, команда !!BU:O выдаёт 3 флага для препятствий , 1, 2, 3 (последний комбинация первых) 1 это такое препятствие на которое встать монстру можно, и снять его можно "убиралкой" , в нём и был у меня затык, теперь заново переделаю эти 800 циклов (или может сразу же сделаю пару тысяч, не суть). 2 это "истинные препятствия" исходные точки размещения препятствий, хотя их можнт быть на 1 препятствие несколько, а также все псх-препятствия (их номеров нет в ермхелпе, они зашиты в битмап лоде) 3 это комбинирка первых двух, как я понял.

По причине названного необходимо апдейтнуть справку Драколича, и указать что флаг 1 это проходимые монстрами и убираемые "убиралкой" препятствия, а 2 и 3 это нормальные препы.

А Сергрою надо будет поправить скрипт на определение доступных для движения монстру клеток в бою (Он знает мы с ним об этом говорили)

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

3) доделал карту, с помощью которой кто угодно может создать базу интересующего его размера карты и ландшафта, включая побережье, в итоге получив базу препятствий. она туть http://phomm.narod.ru/homm3maps/obstcheck.h3m малая её версия (S) также доступна тут http://phomm.narod.ru/homm3maps/sobstcheck.h3m ну и конечно нужна программа баллиста-убивалка http://forum.heroesworld.ru/showthread.php?t=2326

литл апдейт, в обоих картах включена переделка только одной клетки 0/0 , для включения всех клеток (а я не хочу чтобы на меня потом ругались когда запустят этого монстра на все 9 типов и 144*144 клеток) надо всеголишь поменять константочку...в самом начале скрипта в карте было так !#VRv6:S0; а надо так !#VRv6:-1; тогда прогон по всей карте и всем типам земель, если только 1 опред тип то !!DO20/0/8/1:P; менять на !!DO20/стартовый тип/конечный тип/1:P; типы идут от 0 до 7 , 8 взят в моём скрипте для побережья

тестить на воге/те, желательно вообще без других скриптов

4) вот собственно всё и готово для создания реально и точно работающего просмотрщика полей боя. Когда мне пришлют пару баз, я сразу же сделаю всё, что надо, для того, чтобы единую базу скачивали с моего сайта, версии базы будут по времени создания инишки, трудно будет ошибиться тут, и скачав прогу, где будет полностью внедрён алгоритм просмотра (пока базовых типов ландшафтов, кроме водных и магических) можно будет качать и базу, постепенно она станет полной , посчитаем ))) 144*144*9 базовых типов (от грязи до лавы - 8 и побережный) = 186624 полей боя. А кто любит посчитать, может ещё прибавить 9 магических (но тут правда есть подозрение что мертвая земля имеет такие же препятствия как и камневая/варварская, и получится на 20 тысяч меньше) типов и 2 морских (1 корабель и 2 корабеля), итого 20 типов )) всего полей боя получится около 415 тысяч


ДА !!!! теперь те кто кричал давайте чем-нить помогём разрабам, деньгами там, или наймём кодера, или ещё как "рвались" помочь , давайте выделите 1 ночь (можете и фильм параллельно качать, одно другому не мешает) давайте наполним базу !!!


не сидите )) время ведь идёт !!!
pHOMM
Ну вот и сделал я наконец хорошую полностью рабочую и быструю карту с максимально возможной автоматизацией и подробной инструкцией по использованию, сейчас скорость занесения данных в базу - около 1 бой в сеукнду, и для занесения всех карт препятствий полей боя на 1 типе почвы - уйдёт около 6-7 часов, что ночью вообще не проблема.

Подробная инструкция в архиве, там же и нужные файлы, размер 250кб вроде www.phomm.narod.ru/obstcheck.zip

Давайте добьём уже это дело !!! присылайте мне базы по 1 или 2 кто хочет типа почвы, я объединяю и выпускаю Редактор ландшафтов с полностью рабочим просмотром препятствий (пока конечно не учитываю магические и водные поля боя, но уже с побережьями !)

Спасибо PACKA за помощь с данной работой !!
Леголегс
Запустил в виртуалке. Если свет не отрубят - пару дней погоняю.
ЗЫ запустил с исходными настройками.Я так понимаю, что так сделается вообще всё?
ЗЗЫ оно делает то,что уже было сделано (есть в файле) или по-умному выбирает?
pHOMM
Исходно настроена на !!DO20/0/8/1:P; т.е 144*144*9 типов = ~186тыс

Читать файл - не читает, делает просто цикл... т.е. то что уже было всё равно сделает...

НО ! в скрипте всё описано (правда комменты пишу на англ в любом коде, привычка....) и указать скрипту что именно делать , не сложно,
!!DO20/стартовый тип/конечный тип/1:P; - для типов почв где 0-7 это почвы, а 8 сделал для побережья ( сделал так для возможности загона сразу неск типов земли, вкл побережье, но побережье потом можно на др цифру поменять легко, и базу НЕ НАДО будет переделывать, а в обычном текстовике исправить текст 8. на Х. и всё , ну тут уж моя забота ))))

А если уже что-то было сделано, например сделан диапазон 0,0-70,143 то надо будет только проставить !!FU21:P71/0/v6/v6/0/x16/0;

Но я бы конечно , во избежание путаницы, советовал бы просто делать по типам почв, не думаю, что должно быть напряжно по 6-7 часов... я бы и сам )) но 9 ночей это прилично, да и качать ведь что-то придётся, не могу же я ради одной базы гонять коныка ))))
Леголегс
Ночку отработало. Жаль, индикации прогресса никакой нет. И особенно жаль, что в БУ странное ограничение на 99999 итераций.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.