Главная » Статьи » SDK

Изменяем основной цвет букв в меню ( Автор : 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.



Источник: http://St-games.ucoz.net
Категория: SDK | Добавил: Heming (06.03.2011) | Автор: Егор Иванов E W
Просмотров: 995 | Теги: sdk, GameMP.dll
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]