![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#21
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20602 раза ![]() |
А теперь обещанное о оборотной стороне вопроса.
Из истории вопроса. Вообще, в героях есть два способа перекраски игры. Первый используется при отрисовке черно-белой карты в экране обелисков, при отрисовке окаменевших/клонированных войск, при наложении жажды крови и т.п. В этом случае объект рисуется через функцию 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 в машинное представление - это все же не самая очевидная процедура на свете. |
|
|
![]()
Сообщение
#22
|
|
![]() Крайне средняя кошка Сообщений: 2 922 Спасибо сказали: 5173 раза ![]() |
Вашу мать,Зилот,можно хотя бы день на меня не ссылаться...
Хотела серъёзный вопрос про палитры-можно сделать так,чтобы всё было раскрашено как в Покемоне (первых двух играх,если их в Gameboy Colour ставить)? -------------------- |
|
|
![]()
Сообщение
#23
|
|
![]() Крайне средняя кошка Сообщений: 2 922 Спасибо сказали: 5173 раза ![]() |
Berserker
Я-то думала,мы все давно не в третьем классе... feanor Там-пастельная гамма и по два-три цвета на каждый спрайт) ![]() ![]() ![]() -------------------- |
|
|
![]()
Сообщение
#24
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20602 раза ![]() |
Цитата Там-пастельная гамма и по два-три цвета на каждый спрайт) Вряд ли. Стандартными средствами хорошо только тонировать в красный-синий-фиолетовый и регулировать яркость. Все другое получается омерзительно. |
|
|
![]()
Сообщение
#25
|
|
![]() Immortal Сообщений: 6 283 Спасибо сказали: 12711 раз ![]() |
-------------------- |
|
|
![]()
Сообщение
#26
|
|
![]() Immortal Сообщений: 6 245 Спасибо сказали: 7075 раз ![]() |
Так толсто, что даже тонко.
-------------------- Cyberpunk not dead!
|
|
|
![]()
Сообщение
#27
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20602 раза ![]() |
Цитата Так толсто, что даже тонко. В сабже, как бы, нету троллинга вот вообще. |
|
|
![]() ![]()
Сообщение
#28
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Доигрался, однако.
![]() -------------------- |
|
|
![]()
Сообщение
#29
|
|
![]() Immortal Сообщений: 993 Спасибо сказали: 548 раз ![]() |
Berserker
Никак китайских героев ставил ?! ))) |
|
|
![]()
Сообщение
#30
|
|
![]() Nevada-kun Сообщений: 1 986 Спасибо сказали: 854 раза ![]() |
Ололо... Ужасающий баг...
-------------------- ![]() |
|
|
![]()
Сообщение
#31
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Это режим кровавой ярости. Вместо символов рисуется розовый флаг.
-------------------- |
|
|
![]()
Сообщение
#32
|
|
![]() Крайне средняя кошка Сообщений: 2 922 Спасибо сказали: 5173 раза ![]() |
5баллов. Напоминает мне тот раз, когда у меня в покемоне половина надписей в меню превратилась в куски Бульбазавра
-------------------- |
|
|
![]()
Сообщение
#33
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
А это уже отрисовка дефа. «Нужно больше дерева!»
![]() -------------------- Спасибо сказали: |
|
|
![]()
Сообщение
#34
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
feanor, ту да же )))
-------------------- |
|
|
![]()
Сообщение
#35
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20602 раза ![]() |
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 14 September 2025 - 20:45 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|