Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Палитры
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды
Страницы: 1, 2
feanor
Я хотел съюморить про рифму "поллитра", но вовремя вспомнил, что это уже было в заголовке какой-то темы.

Итак, вводная.
О данных и их форматах.

Цвета игроков определены в players.pal, game.pal и паре дефов. Их имена - в plcolors.txt

  • Players.pal определяет цвета интерфейса и цвет флага в бою
  • game.pal - цвет флажков и цвет на миникарте
  • в дефах лежат
    • флаг игрока (crest58.def),
    • флажки для гильдии воров и т.п. (itgflags.def)
    • отметки на карте "с птичьего полета" (vwsymbol.def)
    • флаги героев и лодок (af*.def, abf*.def)


Формат палитр - обычный Microsoft Palette (заголовок 24 байта, потом 256 цветов в ARGB, 4 байта на каждый).
В game.pal цвета игрока занимают девять мест, начиная с 65ого (девятый - серый).
В players.pal цвета игроков занимают все пространство, т.е. на каждого игрока отводится 32 цвета (те самые, которые в индексированных геройских pcx'ах заменяют нижнюю часть палитры). Впрочем, после загрузки они приведутся к RGB565, но об этом позже.

Для редактирования этого players.pal я набросал утилитку:
https://dl.dropbox.com/u/61759222/HoMM/PaletteExplorer.zip


Сверху - крутилка списка игроков и кнопки "сохранить" и "загрузить".
Посередине - собстна, сама палитра.
Снизу слева - крутилки Hue/Saturation/Brightness. Кнопка Pick a color предложит выровнять всю палитру по какому-нить цвету (выбранный цвет станет первым в палитре, остальные изменятся по его образу и подобию). Глючновата
Снизу в центре - кнопки для заливки палитры градиентом (градиент плоский, убогий, но для экспериментов сойдет) и переворота палитры (первый цвет станет последним и т.п).
Снизу справа - место для медитаций.

О технических подробностях
Палитры грузятся один раз, при старте игры.


Код
CPU Disasm
Address   Hex dump          Command                                  Comments
004EEAC0  |.  B9 CCF76700   MOV ECX,OFFSET 0067F7CC        ; ASCII "game.pal"
004EEAC5  |.  E8 26CB0600   CALL 0055B5F0                        ; [h3era.0055B5F0
004EEACA  |.  B9 C0F76700   MOV ECX,OFFSET 0067F7C0        ; ASCII "Players.pal"
004EEACF  |.  A3 18AD6A00   MOV DWORD PTR DS:[6AAD18],EAX
004EEAD4  |.  E8 17CB0600   CALL 0055B5F0                        ; [h3era.0055B5F0
004EEAD9  |.  B9 C0F76700   MOV ECX,OFFSET 0067F7C0        ; ASCII "Players.pal"
004EEADE  |.  A3 10AD6A00   MOV DWORD PTR DS:[6AAD10],EAX
004EEAE3  |.  E8 98CB0600   CALL 0055B680                        ; [h3era.0055B680

После загрузки указатель на загруженную game.pal будет висеть по адресу 6AAD18, на players.pal, соответственно по 6AAD10
Непосредственно цветовые таблицы лежат по смещению +1С относительно загруженных данных, причем цвет там хранится в виде массива слов, каждое из которых представляет собой RGB565 цвет. Изменение данных в памяти практически сразу же действует на игру

То есть, теоретически, палитры можно менять ERM'ом, реально же делать это ручками я бы точно не стал.
J2K
Я конечно дико извиняюсь, что задам сейчас вопрос, ответ на который знает почти все сообщество, но из какого файла и чем выковырнуть этот players.pal?
Etoprostoya
\Data\h3bitmap.lod\PLAYERS.PAL
\Data\h3bitmap.lod\game.pal
Ковырять с помощью MMArchive.
feanor
Цитата
Я конечно дико извиняюсь, что задам сейчас вопрос, ответ на который знает почти все сообщество, но из какого файла и чем выковырнуть этот players.pal?

Собстна, можно ничего и не ковырять, оригинальная палитра для экспериментов выложена, а модифицированную можно просто положить в дату.
J2K
Заковырнуть у меня уже получилось. Стал вот с цветом флагов мутить и бросил это гиблое дело. Что-то нифига не интуитивный интерфейс у всех этих def-штуковин. В общем что есть:

Исходный образец:


Да, да, да. Вы все его узнали. На его основаниии палитра превращается...


Получилось местами прикольно, местами как получилось.


Кстати флажки:


Может потом что-нибудь с этим всем доведу до ума, а может и нет.
Вот файл, если кому надо вдруг: плэерс.пал
feanor
Игрался с сменой интерфейса в рантайме в духе ММ7

Карта со скриптом под Эру: https://dl.dropbox.com/u/61759222/HoMM/Untitled.h3m

И забавный глюк:
packa
Домик трушный, откуда?
feanor
Все три - картографы.
packa
Цитата
Все три - картографы.


То-то смотрю - как родной)
feanor
Случилось у меня ночное озарение(тм)
Оле-Лукойе - мы спонсируем самые безумные идеи!

Исходной точкой был пост, вроде, Икуара о том, что рандом-рандомом, а в авторских картах ставить Инферно с зеленым интерфейсом западло вельми.
Из этого случилась мысля.

А давайте привяжем палитру не только к номеру игрока, но и к стартовому городу? Или, чтоб не ломать голову над поиском 72 оттенков - только к стартовому городу?
gamecreator
осталось подобрать палитры
feanor
Ну, для начала стоило бы обсудить:
- чо делать с теми элементами, которые динамически менять сложно - технически или идеологически. Флаги там, к примеру, цвета игрока.
- какие цвета подбирать фракциям.
- что делать с коллизиями типа 8 игроков-инферно.
gamecreator
так речь не только об интерфейсе? но зачем?
feanor
Не, именно о интерфейсе.

Вопросы-то к нему имеют прямое отношение:
Цитата
- чо делать с теми элементами, которые динамически менять сложно - технически или идеологически. Флаги там, к примеру, цвета игрока.

дефолтный красный флаг не подойдет зеленому интерфейсу Оплота.
Цитата
- какие цвета подбирать фракциям.

самоочевидно
Цитата
- что делать с коллизиями типа 8 игроков-инферно.

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

насчет цветов - думаю лучше ориентироваться по экрану города
Цитата(feanor @ 23 Nov 2012, 20:32) *
понятно, что в сингле два игрока с красным интерфейсом никого не колышут, а вот, скажем, в хотсите..
а что в хотсите? у них же только тип города одинаковый. а все остальное разное. думаю, можно забить.
Berserker
Жёлтая палитра неиграбельна. Белый текст на ней не виден.
Haart of the Abyss
Цитата
а в авторских картах ставить Инферно с зеленым интерфейсом западло вельми
Амненорм™. Да и Герои никогда не центрировались вокруг стартовой фракции, как куча других стратегий. У зелёного такого Оплота может быть неплохой шанс захватить любезно отстроенное компом Инферно и сделать новой столицей.
tolich
... причём столицу строил тоже комп.
Iv
Players.pal смог отредактировать, а вот как редактировать цвета в game.pal - не понял
Crodo
Я в Hex editor менял, 0x118-0x11B байты-красный игрок, следующие 4 - синий, и т. д. Цвета в шестнадцатеричном формате rgb, четвёртый байт два нуля. Что получилось можно проверить в редакторе players.pal в третьей строке. Хотя скорее всего есть специальные программы для редактирования этих палитр.
hippocamus
Заменил на карте коричневый цвет на желтый, розовый сделал погламурнее. Теперь цвета смотрятся гораздо интереснее, имхо.
Также палитру коричневого игрока заменил на жёлтый. Довольно грязный, чтобы белый текст был виден.
Распаковать архив, кинуть в Data: http://yadi.sk/d/x8Bahp2y1qZyu
Хотелось бы и флажки героев исправить, может кто-то поможет?
Crodo
Выложу тоже, долго подбирал, жёлтый, чтобы был почище, не был похож на оранжевый и текст был виден (hsb 19 44 0). Остальные цвета не менял.
Флажки и все остальные дефы так и не сделал(
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла

Другие дефы (Кроме тех, что есть в первом посте):
ADOPB*.def Прямоугольные кнопки (Не помню, где используются)
agem*.def уголки
AOFLG*.def Выбор цвета (Кнопки в виде флагов игроков)

pcx(h3bitmap.lod):
PR*.pcx Лучший герой (для гильдии воров)
ADOP*.pcx Флаги игроков и Выбор начального Города/Героя/Бонуса

Я ещё не проверял эти файлы, но в других эти элементы интерфейса не нашёл, Players.pal их не перекрашивает.

Ещё есть элементы интерфейса тех же цветов, что и палатки ключника (Возможно остатки альфы).
hippocamus
Палатки можно не трогать. Да, там и чёрная и белая есть.
feanor
Надо бы сделать черную обводку всем текстам, которые появляются на фоне палитр..
feanor
Выдрал палитры из третьей цивы и зашил в скрипт.
Смена - !!FU7777:P<номер палитры 1..32>/<номер игрока 0..7>;

Код
ZVSE
!?FU7777;
!!UN:C6991120/4/?y50;
!!VRy51:Sx2 *64 +28 +y50;
!!VRv900&x1=1:C2079292399/2079292399/-1938715535/-1663853357/-1386893995/-1244219946/-969357768/-692398406/-415439044/-413341860/-279056547/-276959363/-274862179/-138479682/-138479682/-2097185;
!!VRv900&x1=2:C1883336769/2017556545/-2008971199/-1874751423/-1606311871/-1337872319/-1069432767/-800993215/-532553663/-530456479/-383456988/-370677273/-223743319/-210963604/-64029650/-51249935;
!!VRv900&x1=3:C1770088833/1770088833/-2115927583/-1839099295/-1430213952/-1155482848/-746531968/-471800864/-60752800/-60687263/-56361821/-49939195/-45613753/-41288311/-36897332/-32571890;
!!VRv900&x1=4:C1927443170/1929474817/-2086567007/-1809738719/-1530878784/-1251953312/-975125024/-696199552/-417274080/-280891583/-278597788/-276303993/-141887606/-139528274/-137234479/-720908;
!!VRv900&x1=5:C29360576/165743073/169937441/174131809/178326177/182520545/186714913/190909281/195103649/197200833/337777698/480451747/621028612/761605477/904213989/910571078;
!!VRv900&x1=6:C191695725/191761262/200281072/342955121/351474931/357897557/500637143/509156953/649799355/651896539/1058750235/1597792060/2004711293/-1885433954/-1344360482/-939538433;
!!VRv900&x1=7:C22151506/24248690/162793908/301339126/439884344/578429562/716909243/719137501/857682719/993999679/1272925151/1551785086/1830710558/2107538846/-1908502978/-1629577506;
!!VRv900&x1=8:C-1991276209/-1989113488/-1718445678/-1447777868/-1177110058/-904410601/-633742791/-363074981/-92407171/-90309987/-83952898/-75564162/-67175426/-58786690/-50397954/-42009218;
!!VRv900&x1=9:C805908489/940128265/1074413578/1208764428/1343049741/1477400591/1745905680/1880256530/2014541843/2014541843/-2009757643/-1873375146/-1736927112/-1466324839/-1329876805/-1193494308;
!!VRv900&x1=10:C962607456/1098989953/1237404097/1510038017/1648452161/1786866305/2059500225/-2097052927/-1824419007/-1824419007/-1683776605/-1545296924/-1404720059/-1266240378/-991443737/-852898519;
!!VRv900&x1=11:C998259584/1134576544/1275087872/1417696384/1560304896/1700816224/1843424736/1986033248/2128641760/2130738944/-2027714781/-1757046971/-1486313624/-1213548630/-1077035059/-806367249;
!!VRv900&x1=12:C1352880291/1352880291/1487034530/1753376898/1887596674/2019719266/-2141093791/-2008971199/-1874751423/-1872654239/-1597792061/-1455118012/-1314475610/-1037581785/-896939383/-622142742;
!!VRv900&x1=13:C1246317129/1248414313/1521179307/1661756172/1800235853/1940812718/2079292399/-1940812719/-1802333038/-1800235854/-1661756173/-1523276492/-1384796811/-1246317130/-1107837449/-969357768;
!!VRv900&x1=14:C6684774/8781958/11010216/13172937/15401195/15532269/17694990/19923248/22151506/22151506/299045331/573907509/850801334/1125597975/1400460153/1677353978;
!!VRv900&x1=15:C311104139/313266860/317526765/321721133/323883854/328143759/332403664/336663569/338826290/340989011/615785652/756428054/1031224695/1173964281/1314606683/1589403324;
!!VRv900&x1=16:C-1298550119/-1164330343/-1021656294/-879047782/-736373733/-593699684/-451025635/-308351586/-165677537/-163580353/-161483169/-157288801/-18874657/-14680289/-12583105/-8388737;
!!VRv900&x1=17:C553918724/553918724/556015908/692398405/694495589/830878086/832975270/969357767/971454951/1107837448/1248414313/1523276491/1663853356/1938715534/2079292399/-1940812719;
!!VRv900&x1=18:C1880322067/2014607380/-2146009066/-2011723753/-1877372903/-1608867814/-1474516964/-1340231651/-1205880801/-1069563841/-1061175105/-918566593/-910177857/-767569345/-759180609/-618669281;
!!VRv900&x1=19:C2067823424/-2092924096/-1952412768/-1811901440/-1539267520/-1398756192/-1258244864/-985610944/-845099616/-710879840/-706554398/-568009180/-429463962/-425138520/-286593302/-148048084;
!!VRv900&x1=20:C806760470/806760470/941045783/1209550872/1343901722/1478187035/1746692124/1881042974/2015328287/-2145419233/-2002810721/-1860202209/-1581276737/-1438668225/-1296059713/-1153451201;
!!VRv900&x1=21:C1548966995/1685283955/1823763636/1964406038/-2055764617/-1917284936/-1776642534/-1501845893/-1361269028/-1361203491/-1222789347/-1086406850/-947992706/-811675746/-673196065/-536879105;
!!VRv900&x1=22:C840970784/843133505/981613186/1120027330/1258507011/1531206468/1671783333/1810263014/1948742695/1950839879/-2071362423/-1930785558/-1792240340/-1517378162/-1378898481/-1238256079;
!!VRv900&x1=23:C-1283411072/-1283411072/-1142899744/-1002388416/-727657312/-589243168/-448731840/-174000736/-35586592/-33489408/-29163966/-24838524/-22610266/-18284824/-13959382/-9633940;
!!VRv900&x1=24:C-1327451936/-1325354752/-1186940608/-1046429280/-771698176/-631186848/-492772704/-218041600/-77530272/-75433088/-71107646/-64685020/-58262394/-51839768/-47514326/-41091700;
!!VRv900&x1=25:C1948873769/1948873769/-2071296886/-1930720021/-1790077619/-1517378162/-1376801297/-1236158895/-963459438/-961296717/-822817036/-686434539/-547954858/-545792137/-407312456/-270929959;
!!VRv900&x1=26:C764161420/764161420/904738285/1177437742/1318080144/1458657009/1733453650/1871998868/2012575733/2012575733/-2013886474/-1879601161/-1745315848/-1476810759/-1342525446/-1208240133;
!!VRv900&x1=27:C1397052229/1399214950/1673946054/1948677158/-2069396313/-1794665209/-1654088344/-1379357240/-1104626136/-968243639/-829698421/-691153203/-552607985/-411965583/-139266126/-720908;
!!VRv900&x1=28:C1639997888/1640063425/1780640290/2055436931/-2100985147/-1960408282/-1685611641/-1547066423/-1406489558/-1270172598/-1129530196/-991050515/-850408113/-709765711/-571286030/-430643628;
!!VRv900&x1=29:C815870113/815870113/954284257/1092698401/1233209729/1371623873/1510038017/1648452161/1788963489/1788963489/2063825667/-2088402043/-1813539865/-1672897463/-1397969748/-1255230162;
!!VRv900&x1=30:C417405153/551624929/555884834/694298978/834875843/973355524/977549892/1116029573/1254443717/1256606438/1397183303/1669948297/1810590699/2085387340/-2068937554/-1796238097;
!!VRv900&x1=31:C-1411994666/-1411994666/-1271417801/-996621160/-858075942/-583279301/-442702436/-304157218/-29360577/-29360577/-25166209/-20971841/-16777473/-14680289/-10485921/-6291553;
!!VRv900&x1=32:C2060679891/2060679891/-2093645003/-1953068138/-1680368681/-1539726279/-1399149414/-1124352773/-985807555/-983710371/-845296227/-706816546/-568402402/-429988258/-425728353/-287314209;
!!SN:K64/?v900/y51/1;
!!UN:R1;
!!UN:R2;
hippocamus
А скрин можно? Хочется знать, чт ставишь. Т.б. что именно в 3ю циву не играл. 1, 2, 4, 5.
feanor
Цитата
ADOPB*.def Прямоугольные кнопки (Не помню, где используются)

Мнится мне, что таки нигде.

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

Цитата
А скрин можно? Хочется знать, чт ставишь.

Вот лень капитально, хотя и знаю, что выкладывать это без хотя бы списка цветов - свинство.

Аддёд:
список цветов
hippocamus
16 и 31 вообще одинаковы?
feanor
Отличаются на четыре пункта в зеленом: 16ый - 255,199,255; 31ый - 255, 203,255.
Хотя, полагаю, конвертация в RGB565 разницу свела почти в ноль, да и ни тот, ни тот не являются адекватными для героев.
feanor
Когда-нибудь восстанавим историческую справедливость.

Sar
Да вот ссылочку на черную и белую дай пожалуйста.
feanor
Черной у меня нету (сделай сам), белой нету вообще: для её нормальной поддержки надо править код, чтобы тексты поверх нее отображались контрастным цветом.
hippocamus
Замена коричневого на жёлтый и исправление розового на более интенсивный. Версия 2.
Кстати, восстановление исторической справедливости. Коричневый и должен был быть жёлтым, о чём говорит буква Y в ресурсах в названиях. Да и ясно же, что должна была быть радуга.

Ссылка на загрузку: http://yadi.sk/d/S-uLaa5rAz5pg

Что заменено:
-----------------
- панели коричневого игрока
- название цвета игрока
- палитра на карте и миникарте
- флаги героев
- флаги лодок
- флаги героев в бою
- знамёна-хоругви в меню выбора стартовой фракции
- цвета геммов по углам рамки вокруг карты

Как устанавливать:
-----------------------
- HotA: кинуть файл в Data\
- Era: кинуть файл в Data\ или Mods\FixedPalette\Data\ и включить этот мод
- SoD/WoG и любые другие версии: вынуть ресурсы из лода и залить в содовские лоды.
feanor
Эм, я уже полгода как выложил)
hippocamus
А флаги героев?
И у тебя жёлтый ближе к оранжевому, а у меня грязно-жёлтый, но ни на что не похожий )
feanor
И флаги есть.
http://forum.df2.ru/index.php?showtopic=29135 же
Zabuza-san
А я хочу играть с модом, копящий существ во внешних жилищах, и с этим. Как быть?
Berserker
Ставь поллитру и играй.
hippocamus
samec, существа будут копиться с этим модом. Накопление существ - опция, включаемая наличием именно этого файла в Data.
feanor, твой мод для ХотЫ ведь не пойдёт. И я не хочу изменять все цвета пропорционально, а только блеклые - из-за того, что их на карте и на миникарте плохо видно.
Но ресурсы - да, можно было, наверное, не делать самому, а твои взять. Протупил )
Zabuza-san
Нашел недочет
tolich
А в чём, собственно, недочёт?
Iv
Цитата(tolich @ 16 Oct 2013, 09:31) *
А в чём, собственно, недочёт?

Фон вокруг флага остался того же цвета, что и раньше
hippocamus
Да. И флаг остался старым. Исправлю.
Я как минимум ещё 3 места нашёл - флаг при ходе противника внизу справа, флажки в гильдии воров и рамочка вокруг героя там же.
Zabuza-san
А желтый флаг выйдет?
feanor
Вышел год назад.
Iv
Ссылка на paletteexplorer побилась
Iv
Цитата(Iv @ 05 Jan 2015, 10:41) *
Ссылка на paletteexplorer побилась

Не зря в своё время заныкал к себе в Evernote https://www.evernote.com/shard/s218/res/b77...tteExplorer.exe
Или если оттуда недоступно, со странички памятки https://www.evernote.com/shard/s218/sh/698c...f549d836d59ec46
feanor
Хм, я даже не заметил
синхронизация со старым компом погрызла мой дропбокс

чуть позднее перезалью
Iv
Цитата(hippocamus @ 16 Oct 2013, 14:54) *
Я как минимум ещё 3 места нашёл - флаг при ходе противника внизу справа, флажки в гильдии воров и рамочка вокруг героя там же.

Названия ассетов не подскажешь?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.