2024/03/28, Чт, 13:49 Приветствую Вас ---- | RSS
Регистрация
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Jack-Hang  
Форум » Основной раздел » Кодинг Статьи » [Кодинг] Ночное Видение (А ля Оппосинг форс) (Не очeнь реалное ночное виденье)
[Кодинг] Ночное Видение (А ля Оппосинг форс)
Jack-HangДата: Ср, 2006/10/11, 15:35 | Сообщение # 1
Hang-Overed
Репутация: 5
Регистрация:2006/08/20
Сообщений: 84
Статус: Offline
1) На сервере в player.cpp все встречающиеся EF_DIMLIGHT заменяем на EF_BRIGHTLIGHT

2) На клиенте в файле flashlight.cpp ищем функцию
int CHudFlashlight::Draw(float flTime)
там в ней почти в самом начале есть строчки:

Code

if (!(gHUD.m_iWeaponBits & (1

После них вставляем код, который весь экран замостит анимированными спрайтиками найтвижена:

Code

if (m_fOn)
{
   // здесь задается имя спрайта
   HSPRITE hspr = SPR_Load( "sprites/of_nv_b.spr" );
   
   // 128, 255, 128 - это зеленоватый цвет в RGB, измени если нужно
   SPR_Set(hspr, 128, 255, 128 );
   
   // 20 - это скорость анимации спрайта, количество кадров/сек
   int frame = (int)(flTime * 20) % SPR_Frames(hspr);
   int xSize = SPR_Width(hspr, 0);
   int ySize = SPR_Height(hspr, 0);
   
   for (int yPos = 0; yPos < ScreenHeight; yPos += ySize)
   {
     for (int xPos = 0; xPos < ScreenWidth; xPos += xSize)
     {
       SPR_DrawAdditive(frame, xPos, yPos, NULL);
     }
   }
}

3) Берем из оппозинг форса спрайт по имени of_nv_b.spr, и кладем его в свою папку sprites.. Ну или юзаем любой другой понравившийся спрайт.

4) По вкусу заменяем картинки батарейки и звуки.

© by BUzer




 
JoJoДата: Вт, 2007/03/27, 12:36 | Сообщение # 2
Noob
Репутация: 0
Регистрация:2007/03/27
Сообщений: 3
Статус: Offline
Что-то не получается сделать! Можете дать целеком файл flashlight.cpp с уже этим кодом?
 
Jack-HangДата: Вт, 2007/03/27, 16:55 | Сообщение # 3
Hang-Overed
Репутация: 5
Регистрация:2006/08/20
Сообщений: 84
Статус: Offline
Code
int CHudFlashlight::Draw(float flTime)
{
  if ( gHUD.m_iHideHUDDisplay & ( HIDEHUD_FLASHLIGHT | HIDEHUD_ALL ) )
   return 1;

  int r, g, b, x, y, a;
  wrect_t rc;

  if (!(gHUD.m_iWeaponBits & (1<<(WEAPON_SUIT)) ))
   return 1;if (m_fOn)
{
     // здесь задается имя спрайта
     HSPRITE hspr = SPR_Load( "sprites/of_nv_b.spr" );
      
     // 128, 255, 128 - это зеленоватый цвет в RGB, измени если нужно
     SPR_Set(hspr, 120, 0, 180);
      
     // 20 - это скорость анимации спрайта, количество кадров/сек
     int frame = (int)(flTime * 20) % SPR_Frames(hspr);
     int xSize = SPR_Width(hspr, 0);
     int ySize = SPR_Height(hspr, 0);
      
     for (int yPos = 0; yPos < ScreenHeight; yPos += ySize)
     {
         for (int xPos = 0; xPos < ScreenWidth; xPos += xSize)
         {
             SPR_DrawAdditive(frame, xPos, yPos, NULL);
         }
     }
}

  if (m_fOn)
   a = 100;
  else
   a = MIN_ALPHA;

  if (m_flBat < 0.20)
   UnpackRGB(r,g,b, RGB_REDISH);
  else
   UnpackRGB(r,g,b, RGB_WHITISH);

  ScaleColors(r, g, b, a);

  y = (m_prc1->bottom - m_prc2->top)/2;
  x = ScreenWidth - m_iWidth - m_iWidth/2 ;

  // Draw the flashlight casing
  SPR_Set(m_hSprite1, r, g, b );
  SPR_DrawAdditive( 0,  x, y, m_prc1);

  if ( m_fOn )
  {  // draw the flashlight beam
   x = ScreenWidth - m_iWidth/2;

   SPR_Set( m_hBeam, r, g, b );
   SPR_DrawAdditive( 0, x, y, m_prcBeam );
  }

  // draw the flashlight energy level
  x = ScreenWidth - m_iWidth - m_iWidth/2 ;
  int iOffset = m_iWidth * (1.0 - m_flBat);
  if (iOffset < m_iWidth)
  {
   rc = *m_prc2;
   rc.left += iOffset;

   SPR_Set(m_hSprite2, r, g, b );
   SPR_DrawAdditive( 0, x + iOffset, y, &rc);
  }

  return 1;
}

Вот полностью вся функция, советую ознакомится! happy




 
JoJoДата: Ср, 2007/03/28, 00:05 | Сообщение # 4
Noob
Репутация: 0
Регистрация:2007/03/27
Сообщений: 3
Статус: Offline
Компил ругается на RGB_WHITISH. Можешь выложить flashlight.cpp целым файлом?
 
Jack-HangДата: Ср, 2007/03/28, 14:51 | Сообщение # 5
Hang-Overed
Репутация: 5
Регистрация:2006/08/20
Сообщений: 84
Статус: Offline
Code
else  
    UnpackRGB(r,g,b, RGB_WHITISH);
Удали!! Это ненужно.




 
NameLesSДата: Сб, 2007/07/07, 18:20 | Сообщение # 6
Noob
Репутация: 0
Регистрация:2007/07/07
Сообщений: 5
Статус: Offline
a mozet ktonibut screen pokazat? smile
 
KieДата: Сб, 2007/07/07, 20:57 | Сообщение # 7
Keyborder
Репутация: 5
Регистрация:2006/08/20
Сообщений: 40
Статус: Offline
NameLesS, скринов не делали, а рабочая версия с этим кодом утеряна. Но выглядит это примерно как в Контр-Ударе.



Сообщение отредактировал Kie - Сб, 2007/07/07, 20:58
 
NameLesSДата: Вс, 2007/07/08, 18:04 | Сообщение # 8
Noob
Репутация: 0
Регистрация:2007/07/07
Сообщений: 5
Статус: Offline
Kie, OK cool
 
Форум » Основной раздел » Кодинг Статьи » [Кодинг] Ночное Видение (А ля Оппосинг форс) (Не очeнь реалное ночное виденье)
  • Страница 1 из 1
  • 1
Поиск:

Сайт управляется системой uCoz Copyright by kiexStudio © 2009