Изменяем основной цвет букв в меню ( Автор : Heming)


Изменяем основной цвет букв в меню
 
Статья предусматривает то, что вы умеете создавать директории для модов, а также что у вас имеется Visual C++ 6.0 он полностью настроен на работу с SDK. Также данная статья предусматривает, что Вы разобрались с редактированием классов Serious Sam: TSE. ©

Ну, что-ж статья посвящена следующему:

* Научиться изменять цвет шрифта в меню
* Научиться изменять цвет шрифта в игре

Результаты :
Screen 1
Screen 2

 
На 1 скриншоте мы видим что цвет букв белый( прямо как в xbox моде ), а на втором скриншоте мы замечаем что интерфейс "посинел".
Ну, что - ж приступим.
Для достижения результата на 1 картинке мы открываем наш проект GameMP и ищем в нем файл SEColors.h
Далее видим..


#ifndef __SECOLORS_H
#define __SECOLORS_H 1

#define SE_COL_ORANGE_LIGHT     0xffd70000
#define SE_COL_ORANGE_NEUTRAL   0xee9c0000
#define SE_COL_ORANGE_DARK      0x9b4b0000
#define SE_COL_ORANGE_DARK_LT   0xbc6a0000
#define SE_COL_BLUE_DARK_HV     0x151c2300
#define SE_COL_BLUE_DARK        0x2a384600
#define SE_COL_BLUE_DARK_LT     0x43596f00
#define SE_COL_BLUE_NEUTRAL     0x5c7a9900
#define SE_COL_BLUE_NEUTRAL_LT  0x6097cc00
#define SE_COL_BLUE_LIGHT       0x64b4ff00
#define SE_COL_BLUEGREEN_LT     0x6cff6c00
#define SE_COL_PURPLE           0x6a556000
#define SE_COL_BLACK            0x00000000
#define SE_COL_WHITE            0xffffffff

#endif 

Вы наверное заметили, что трех последних параметров у вас нет. Так и должно быть. Просто добавьте их в свой SEColors.h, после чего сохраните.
Итак, мы добавили 3 цвета - Фиолетовый, черный и белый. Добавлять цвета можно с помощью NameEditor.

Теперь мы как-то должны их использовать.
Для этого мы открываем файл Game.cpp в проекте GameMP.
Обратим внимание на следующие строки кода:

  if (!strcmp(strName, "thumbnail border")) {
    colDefault = SE_COL_BLUE_NEUTRAL|255;
  } else if (!strcmp(strName, "no thumbnail")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "popup box")) {
    colDefault = SE_COL_BLUE_NEUTRAL|255;
  } else if (!strcmp(strName, "tool tip")) {
    colDefault = SE_COL_ORANGE_LIGHT|255;
  } else if (!strcmp(strName, "unselected")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "selected")) {
    colDefault = SE_COL_ORANGE_LIGHT|255;
  } else if (!strcmp(strName, "disabled selected")) {
    colDefault = SE_COL_ORANGE_DARK_LT |255;
  } else if (!strcmp(strName, "disabled unselected")) {
    colDefault = SE_COL_ORANGE_DARK|255;
  } else if (!strcmp(strName, "label")) {
    colDefault = C_WHITE|255;
  } else if (!strcmp(strName, "title")) {
    colDefault = C_WHITE|255;
  } else if (!strcmp(strName, "editing")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "hilited")) {
    colDefault = SE_COL_ORANGE_LIGHT|255;
  } else if (!strcmp(strName, "hilited rectangle")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "edit fill")) {
    colDefault = SE_COL_BLUE_DARK_LT|75;
  } else if (!strcmp(strName, "editing cursor")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "model box")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "hiscore header")) {
    colDefault = SE_COL_ORANGE_LIGHT|255;
  } else if (!strcmp(strName, "hiscore data")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "hiscore last set")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "slider box")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "file info")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "display mode")) {
    colDefault = SE_COL_ORANGE_NEUTRAL|255;
  } else if (!strcmp(strName, "bcg fill")) {
    colDefault = SE_COL_BLUE_DARK|255;
  }

В этих строках содержатся цвета букв, а именно
 
if (!strcmp(strName, "thumbnail border")) {

Этот параметр означает, какой цвет будет в границе .Tbn файла при выборе уровня в меню.Я поменял его на SE_COL_WHITE. Компилируем и тестируем.
Собственно, вот, появилась белая рамочка.

 
ThumbnailBorder
Полный размер :

 


Следующий параметр называется..
  } else if (!strcmp(strName, "no thumbnail")) {
Что же означает этот параметр? Этот параметр регулирует цвет текста " фото отсутствует " при выборе уровня, если автор карты забыл выложить .tbn файл вместе со своей картой.
Out_of_Photo
Впрочем, если вы делаете мод, этот параметр вам вряд ли пригодится.

Третий параметр :

} else if (!strcmp(strName, "popup box")) {

Popup box - Насколько translate.google.ru говорит правильно, "всплывающее окно". Я долго искал значение и наконец, не нашел его :-(
Возможно, он заменяет цвет чего-либо в всплывающем окне, когда вы нажимаете "Выйти из игры" или "Завершение игры".

 
Четвертый параметр :

} else if (!strcmp(strName, "tool tip")) {

Tool Tip - подсказка, показываемая внизу экрана при наведении на параметр меню.
Скажем..
ToolTip
 
К примеру, если вы нажимаете на модификации вы видите текст внизу "просмотр демонстрационных игр".

Пятый параметр :

} else if (!strcmp(strName, "unselected")) {

Unselected  - не выбранное. То есть...

 
ToolTip
 
Я думаю, здесь ничего объяснять не надо.
Шестой параметр:

} else if (!strcmp(strName, "selected")) {

Selected - это выбранное. Оно обозначено оранжевым.
Здесь все ясно.

Следующий параметр:

} else if (!strcmp(strName, "editing")) {

Он регулирует цвет букв тогда, когда вы что-либо редактируете.
Например, никнейм.

 

Editing
 

Итак, следующий параметр это..

  } else if (!strcmp(strName, "hilited")) {

Он регулирует цвет цифры в так называемой "коробочке" для номера игрока.
У меня белым цветом цифра 6.

 

 
Hilited
 

  } else if (!strcmp(strName, "hilited rectangle")) {

Этот параметр регулирует цвет в самой "коробочке" :)


 
Далее идут 2 схожих с собой параметра

  } else if (!strcmp(strName, "edit fill")) {
  } else if (!strcmp(strName, "editing cursor")) {

Первый регулирует цвет в поле для изменения ника игрока:

 

 
А второй регулирует курсор.

 

Ладно, думаю этого пока будет достаточно.

 



 

 

Переходим ко второму файлу - HUD.cpp
Мы хотим добиться вот этого результата.

 

 

Screen 2
Или какого-либо другого, тут уже на ваш вкус.


Найдем строки в которых упоминается "SE_COL". Так мы сразу обнаружим цвет.
Первое, что попадается на глаза - это : ..

 

 


 

 


 

 

_pDP->Fill( fSizeI-fBlackStrip-1, 0, fBlackStrip+1, fSizeJ, C_BLACK|CT_OPAQUE);

  colMask = LerpColor(SE_COL_BLUE_NEUTRAL_LT, C_WHITE, 0.25f); // здесь я изменил цвет.

  FLOAT _fYResolutionScaling = (FLOAT)_pixDPHeight/480.0f;

 

 



Как-то так. Параметр регулирует цвет в снайперском прицеле. Нам это не понадобится, поэтому ищем далее.

 


 


_colHUD     = 0x4C80BB00;
  _colHUDText = SE_COL_BLUE_NEUTRAL_LT; /* а эта штука регулирует цвет патронов в правом нижнем углу экрана. */
  _ulAlphaHUD = NormFloatToByte(hud_fOpacity);
  _tmNow = _pTimer->CurrentTick();



Тут я тоже поменял. Но можно сделать и покрасивее, но тут уже как вы хотите.
Ищем далее.

 

 


 

 


  COLOR colMax = SE_COL_BLUE_NEUTRAL_LT; // Здесь происходит колоризация
  COLOR colTop = SE_COL_BLUE_NEUTRAL_LT; // например, когда полоска жизней наверху, при Enemy Counter'e
  COLOR colMid = LerpColor(colTop, C_WHITE, 0.5f); // или здоровья, когда его много, средне и мало.



Вот так. Все оказалось проще, чем я думал. Удачи!
© Heming Hitrowski.
 



Комментарии   

№ 9  |  20.03.2012  |  0  
блин здорово! Тоже хочу так, все в прицепе понятно но как мне все это исходное добро в длл запилить, я спрашивал в теме но ответ забыл, очень прошу помогите если можете!
Ответ Цитата

№ 8  |  01.07.2011  |  0  
а вот я никак не пойму как изменять цвет в имени помогите кто нибудь
:(
Ответ Цитата

№ 6  |  26.03.2011  |  0  
В уровнях и именах изменять цвет легко а модах...
Ответ Цитата

№ 7  |  03.04.2011  |  0  
Тоже легко. Делай по статье.
Ответ Цитата

№ 5  |  19.03.2011  |  0  
блин, а без СДК никак, а то мою ошибку в Visual никак не исправить Ssmile3 Ssmile2
Ответ Цитата

№ 4  |  12.03.2011  |  0  
Вот над этим я уже поработаю..Спасибо за подсказку :)
Ответ Цитата

№ 3  |  12.03.2011  |  0  
А кто нибудь напишите статью где описано как сделать так чтобы в меню некотрые кнопки были заблокированы!?
Ответ Цитата

№ 2  |  12.03.2011  |  0  
Спасибо!
Ответ Цитата

№ 1  |  12.03.2011  |  +1  
Очень полезно для новичков!
В своем моде тоже разбирался как изменять цвет шрифта =)
Нашел. =)
Была бы тогда эта статья - время на поиск значительно меньше бы ушло. :) Молодец! Классно написал. Даже очень классно!! :)
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 54.158.119.60

Информация

Прочее

Категории раздела

Croteam [3]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [10]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [5]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [9]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [54]
Уроки по Serious Editor 2 [2]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [33]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [25]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Голосование

Где вы (собираетесь) приобрели (-ти) Serious Sam 3: BFE
1. В Steam
2. Купил лицензионный диск
3. Не собираюсь по-различным причинам
4. "Из рук в руки" (у барыг)
5. В российских интернет-магазинах (Gamazavr и т.д.)
6. EuroGamer, или другие иностранные интернет-магазины

Статистика



На сайте: 13
Гостей: 10
Пользователей: 3
ymanhaelMic, Glebdug, Gnogor