Heroes of Might & Magic III: Shades of Darkness |
Здравствуйте, гость ( Вход | Регистрация )
Heroes of Might & Magic III: Shades of Darkness |
27 Jan 2013, 03:18
Сообщение
#21
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
А теперь обещанное о оборотной стороне вопроса.
Из истории вопроса. Вообще, в героях есть два способа перекраски игры. Первый используется при отрисовке черно-белой карты в экране обелисков, при отрисовке окаменевших/клонированных войск, при наложении жажды крови и т.п. В этом случае объект рисуется через функцию Draw_0044E610_grayscaleOrMore, в которой он "на лету" перекрашивается под нужный колёр и рисуется в экранном буфере. Бараторч упоминал, что скорость работы функции удручает, я соглашусь (там для каждого пикселя выполняется несколько операций с плавающей точкой) и это все о ней на сей момент. Второй используется при использовании чита wogsarumanofmanycolors (nwcphisherprice для ортодоксов). В этом случае ресурсы подкрашиваются не на этапе отрисовки, а на этапе загрузки либо взятия из кэша. Для ресурсов с индексированными цветами, по всей видимости, красится палитра, для неиндексированных - битмап целиком. Это дает некоторое едва заметное замедление при загрузке, но потом все рисуется столь же быстро, сколь и при нормальных условиях. Из минусов - раз включив эту фичу, отключить её сложно: необходимо перезагрузить все перекрашенные ресурсы - а по умолчанию не все из них перезагружаются даже при рестарте карты. Собственно, запустите героев c сабжем, наберите wogsarumanofmanycolors (который будет работать как отключалка тонировки - см. ниже) и попытайтесь избавиться от фиолетового. Матчасть. Изменение цвета описывается четырьмя параметрами (точнее, восьмью тетрадами - оно в экзешнике встречается восемь раз): - яркость. Обычный HSLный Lightness. По умолчанию - 1, wogsarumanofmanycolors поднимает её до 1.2. Меньше - темнее (до абсолютной черноты при 0), выше - светлее - насыщенность. Не менее обычное Brightness. По умолчанию - 1, чит поднимает её до 1.5. Меньше - более тусклые оттенки (до черно-белых при 0), больше - более контрастные. - степень проявленности цвета и цвет. А вот тут начинается интересное, ибо эти два параметра к, казалось бы, ожидаемому Hue отношение имеют опосредованное. Нет, "цвет" отчасти похож на Hue, хоть и варьируется не от 0 до 360, а от 0 до 1 (0 - красный, 0,33 - зеленый, 0,75 - фиолетовый из ShoD etc), однако его изменение ничего не меняет в игре. Для привнесения изменений нужно задать степень проявленности цвета - опять же, от 0 (нету изменений) до 1 (все будет перекрашено только в этот цвет) Алсо, в игре имеется флаг, показывающий, включена ли перекраска - но это довольно очевидно. Адреса и явки. CODE *(int*)0x69E600 = 1; //флаг /*float p4 = 1.2; float p3 = 1.5; float p2 = -1.0; float p1 = -1.0;*/ wogsarumanofmanycolors float p4 = 1; //darker - 1 - brighter (Lightness) float p3 = 1; //grayscale - 1 - colorfool (Brightness) float p2 = 1; //1,0 - red (color value - color hue) float p1 = 0.75; *(float*)0x55AD09 = p4; *(float*)0x55AD0E = p3; *(float*)0x55AD13 = p2; *(float*)0x55AD18 = p1; *(float*)0x55AF0A = p4; *(float*)0x55AF0F = p3; *(float*)0x55AF14 = p2; *(float*)0x55AF19 = p1; *(float*)0x55B137 = p4; *(float*)0x55B13C = p3; *(float*)0x55B141 = p2; *(float*)0x55B146 = p1; *(float*)0x55B330 = p4; *(float*)0x55B335 = p3; *(float*)0x55B33A = p2; *(float*)0x55B33F = p1; *(float*)0x55B550 = p4; *(float*)0x55B555 = p3; *(float*)0x55B55A = p2; *(float*)0x55B55F = p1; *(float*)0x55B756 = p4; *(float*)0x55B75B = p3; *(float*)0x55B760 = p2; *(float*)0x55B765 = p1; *(float*)0x55B924 = p4; *(float*)0x55B929 = p3; *(float*)0x55B92E = p2; *(float*)0x55B933 = p1; *(float*)0x55CFB0 = p4; *(float*)0x55CFB5 = p3; *(float*)0x55CFBA = p2; *(float*)0x55CFBF = p1; Как видно из кода, все это, в общем, можно зашить в обычный патч или даже в UN:C команду. Дллка была выбрана исключительно из-за нежелания париться с переводом 32-bit float в машинное представление - это все же не самая очевидная процедура на свете. |
|
|
30 Jan 2013, 23:30
Сообщение
#22
|
|
Крайне средняя кошка Сообщений: 2 768 Спасибо сказали: 5045 раз |
Вашу мать,Зилот,можно хотя бы день на меня не ссылаться...
Хотела серъёзный вопрос про палитры-можно сделать так,чтобы всё было раскрашено как в Покемоне (первых двух играх,если их в Gameboy Colour ставить)? -------------------- |
|
|
30 Jan 2013, 23:56
Сообщение
#23
|
|
Крайне средняя кошка Сообщений: 2 768 Спасибо сказали: 5045 раз |
Berserker
Я-то думала,мы все давно не в третьем классе... feanor Там-пастельная гамма и по два-три цвета на каждый спрайт) -------------------- |
|
|
31 Jan 2013, 00:34
Сообщение
#24
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
Цитата Там-пастельная гамма и по два-три цвета на каждый спрайт) Вряд ли. Стандартными средствами хорошо только тонировать в красный-синий-фиолетовый и регулировать яркость. Все другое получается омерзительно. |
|
|
01 Feb 2013, 11:40
Сообщение
#25
|
|
Immortal Сообщений: 6 260 Спасибо сказали: 12647 раз |
-------------------- |
|
|
01 Feb 2013, 11:49
Сообщение
#26
|
|
Immortal Сообщений: 6 245 Спасибо сказали: 7071 раз |
Так толсто, что даже тонко.
-------------------- Cyberpunk not dead!
|
|
|
01 Feb 2013, 13:50
Сообщение
#27
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
Цитата Так толсто, что даже тонко. В сабже, как бы, нету троллинга вот вообще. |
|
|
27 Feb 2013, 21:32
Сообщение
#28
|
|
Immortal Сообщений: 1 468 Спасибо сказали: 1151 раз |
Доигрался, однако.
-------------------- |
|
|
27 Feb 2013, 21:35
(Сообщение отредактировал magoth - 27 Feb 2013, 21:36)
Сообщение
#29
|
|
Immortal Сообщений: 993 Спасибо сказали: 548 раз |
Berserker
Никак китайских героев ставил ?! ))) |
|
|
27 Feb 2013, 21:39
Сообщение
#30
|
|
Nevada-kun Сообщений: 1 978 Спасибо сказали: 842 раза |
Ололо... Ужасающий баг...
-------------------- |
|
|
27 Feb 2013, 23:54
Сообщение
#31
|
|
Immortal Сообщений: 1 468 Спасибо сказали: 1151 раз |
Это режим кровавой ярости. Вместо символов рисуется розовый флаг.
-------------------- |
|
|
28 Feb 2013, 02:18
Сообщение
#32
|
|
Крайне средняя кошка Сообщений: 2 768 Спасибо сказали: 5045 раз |
5баллов. Напоминает мне тот раз, когда у меня в покемоне половина надписей в меню превратилась в куски Бульбазавра
-------------------- |
|
|
28 Feb 2013, 19:08
Сообщение
#33
|
|
Immortal Сообщений: 1 468 Спасибо сказали: 1151 раз |
А это уже отрисовка дефа. «Нужно больше дерева!»
-------------------- Спасибо сказали: |
|
|
08 Mar 2013, 16:48
(Сообщение отредактировал Bes - 08 Mar 2013, 19:23)
Сообщение
#34
|
|
замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз |
feanor, ту да же )))
автор: Екатерина Д. -------------------- |
|
|
01 Apr 2019, 22:40
Сообщение
#35
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
|
|
|
Текстовая версия | Сейчас: 18 April 2024 - 15:30 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |