HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Подключение проекционного фонарика
Как бы это лучше сделать
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
master07
Житель форума

Дата регистрации: Aug 2013
Проживает: гиде-то
Сообщений: 205
Возраст: 32

Рейтинг



Подключение проекционного фонарика

Вот недавно снёс из паранойи код фонарика и исправил ошибки. Но вот я не знаю как подключить чтобы не было трудностей, вот сам код:

В ev_hldm.cpp добавил:

C++ Source Code:
1
DynamicLight *MY_AllocDlight (int key)
2
{
3
  int		i;
4
  DynamicLight	*dl;
5
  float time = gEngfuncs.GetClientTime();
6
 
7
  if (key)
8
  {
9
    dl = cl_dlights;
10
    for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
11
    {
12
      if (dl->key == key)
13
      {
14
        memset (dl, 0, sizeof(*dl));
15
        dl->key = key;
16
        return dl;
17
      }
18
    }
19
  }
20
  dl = cl_dlights;
21
  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
22
  {
23
    if (dl->die < time)
24
    {
25
      memset (dl, 0, sizeof(*dl));
26
      dl->key = key;
27
      return dl;
28
    }
29
  }
30
 
31
  dl = &cl_dlights[0];
32
  memset (dl, 0, sizeof(*dl));
33
  dl->key = key;
34
  return dl;
35
}


И в конец:

C++ Source Code:
1
void SetupFlashlight(vec3_t origin, vec3_t angles, float time, float frametime)
2
{
3
  if (!g_flashlight)
4
    return;
5
 
6
  static float add = 0;
7
  float addideal = 0;
8
  pmtrace_t tr;
9
  vec3_t fwd, right, up;
10
  AngleVectors(angles, fwd, right, up);
11
  fwd = origin + (fwd*150);
12
  gEngfuncs.pEventAPI->EV_SetTraceHull( 2 );
13
  gEngfuncs.pEventAPI->EV_PlayerTrace( origin, fwd, PM_NORMAL, -1, &tr );
14
  if (tr.fraction < 1.0)
15
    addideal = (1 - tr.fraction)*30;
16
  float speed = (add - addideal)*10;
17
  if (speed < 0) speed *= -1;
18
  if (add < addideal)
19
  {
20
    add += frametime*speed;
21
    if (add > addideal) add = addideal;
22
  }
23
  else if (add > addideal)
24
  {
25
    add -= frametime*speed;
26
    if (add < addideal) add = addideal;
27
  }
28
 
29
  DynamicLight *flashlight = MY_AllocDlight(-666);
30
  flashlight->origin = origin + Vector(0,0,-13) + (right*5);
31
  flashlight->radius = 700;
32
  flashlight->die = time + 0.01;
33
  flashlight->angles = angles;
34
  strcpy(flashlight->spot_texture, "gfx/flashlight.tga");
35
  flashlight->cone_hor = 50+add;
36
  flashlight->cone_ver = 50+add;
37
  flashlight->color = Vector(1.4, 1.4, 1.4);
38
}


В ev_hldm.h в конец:

C++ Source Code:
1
void SetupFlashlight(vec3_t origin, vec3_t angles, float time, float frametime);
2
 
3
struct DynamicLight
4
{
5
  vec3_t	origin;
6
  float	radius;
7
  vec3_t	color;
8
  float	die;
9
  float	decay;
10
  int		key;
11
 
12
// spotlight specific:
13
  vec3_t	angles;
14
  float	cone_hor;
15
  float	cone_ver;
16
  char	spot_texture[64];
17
};
18
 
19
DynamicLight* MY_AllocDlight (int key);
20
 
21
#define MAX_DLIGHTS 32
22
DynamicLight cl_dlights[MAX_DLIGHTS];
23
 
24
int g_flashlight;
25
 


Вот и всё проверил ошибок не было, а в игре нет никакого фонарика, потому что я знаю что нужно его подключить, но не знаю как. Помогите пожалуйста. Заранее благодарен.

Сообщить модератору | | IP: Записан
Сообщение: 128624

Старое сообщение 03-12-2013 10:35
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
master07 писал:
Вот недавно снёс из паранойи код фонарика и исправил ошибки

Чего-чего сделал?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 128630

Старое сообщение 03-12-2013 12:29
-
master07
Житель форума

Дата регистрации: Aug 2013
Проживает: гиде-то
Сообщений: 205
Возраст: 32

Рейтинг



Что именно. Я когда снёс всё то, что нужно при компиляции возникали ошибки.

Сообщить модератору | | IP: Записан
Сообщение: 128632

Старое сообщение 03-12-2013 12:51
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1844

Рейтинг



Цитата:
master07 писал:
Подключение проекционного фонарика


Прочитал случайно как провокационного фонарика.

А то теме может стоит написать что за ошибки были?

Сообщить модератору | | IP: Записан
Сообщение: 128644

Старое сообщение 03-12-2013 15:07
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 33

Рейтинг



master07, а ты в курсе, что в паранойе свой рендер?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | | IP: Записан
Сообщение: 128645

Старое сообщение 03-12-2013 15:40
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
master07 писал:
Что именно. Я когда снёс всё то, что нужно при компиляции возникали ошибки.

Снести можно яйцо, если ты курица.
Снести можно несущую перегородку, если ты равшан или джамшут.
Что ты там в коде снёс - непонятно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 128649

Старое сообщение 03-12-2013 15:51
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Может не снёс, а перенёс? В чистый СДК. Маленький кусок кода без остального рендера. Естественно работать не будет.

Добавлено 03-12-2013 в 23:07:

Цитата:
master07 писал:
C++ Source Code:
DynamicLight cl_dlights[MAX_DLIGHTS];
Эти длайты надо ещё где-то в коде "менеджить" и отрисовывать вообще-то. Что толку от того, что они просто так есть и создаются в функции MY_AllocDlight?

Сообщить модератору | | IP: Записан
Сообщение: 128652

Старое сообщение 03-12-2013 16:07
- За что?
Cybermax
Житель форума

Дата регистрации: May 2006
Проживает: &#12644;
Сообщений: 5126

Рейтинг



Цитата:
Дядя Миша писал:
Снести можно яйцо, если ты курица.

Выпилил, удалил?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 128656

Старое сообщение 03-12-2013 16:32
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Cybermax не торопись с выводами. HAWK нам одно время рассказывал, что у него программа "летает". Мы за него радовались, а он имел в виду, что она у него "падает".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 128659

Старое сообщение 03-12-2013 16:53
-
HAWK0044
Житель форума

Дата регистрации: Oct 2010
Проживает: Анапа
Сообщений: 563
Возраст: 27

Рейтинг



Дядя Миша да, было дело

вангую что он решил перенести фонарик из паранои, но перенёс только код длайтов и установку проекции, ни о каких рендерерах речи быть не может, опять же вангую что он нигде эти "снесённые" функции не вызывает.

Сообщить модератору | | IP: Записан
Сообщение: 129120

Старое сообщение 15-12-2013 13:05
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 22:49. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Подключение проекционного фонарика
Как бы это лучше сделать
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024