HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Кодинг оружия
и всё что с этим связано
Страницы (5): [1] 2 3 4 5 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



Кодинг оружия

Не знаю возможно ли - но всё же - можно как нибудь посчитать, сколько пуль подряд выпустила пушка, или же сколько времени зажата атака (для автоматов)?

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

Старое сообщение 05-06-2012 05:29
- За что?
DefilerUnit
Житель форума
Девойс

Дата регистрации: May 2011
Проживает: (void)
Сообщений: 106
Возраст: 104

Рейтинг



это подойдёт?
http://hlpp.thewavelength.net/tuts/burst.htm

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

Старое сообщение 05-06-2012 07:44
- За что?
HAWK0044
Житель форума

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

Рейтинг



DefilerUnit
не подойдёт.Точнее подойдёт, но что-то метод через weaponidle меня настораживает.

Lev
тебе нужно завести переменную которая будет хранить время первого выстрела и прибавить к нему промежуток того времени в котором ты хочешь сделать замер.

float flFirstShot;

if(!flFirstShot)
flFirstShot = gpGlobals->time + 1.0;//1.0 - твоё время

if(flFirstShot > gpGlobals->time)
{
m_iShoots++;
}
else
{
flFirstShot = 0.0;
m_iShoots=0;
}

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

Старое сообщение 05-06-2012 08:03
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Lev пиши по русски - хочу замутить перегрев оружия. Все беды от того, что люди называют вещи не своими именами.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-06-2012 10:12
-
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



Ну можно и так сказать - только мне нужно просто сделать кастомный дым при прохождении временного поргога стрельбы. Вот таким спрайтом

Вложение: gunsmoke2.rar (23.8 кб)
Этот файл был скачан 411 раз.

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

Старое сообщение 05-06-2012 13:05
- За что?
ONeiLL
CrazyUkrainian

Дата регистрации: Dec 2011
Проживает: Украина, Житомир
Сообщений: 562
Возраст: 26

Рейтинг



Lev , таким спрайтом сложновато будет замутить, ведь спрайт всегда смотрит лицом к игроку

Добавлено 05-06-2012 в 16:11:

Или дым у тебя вверх должен быть направлен?

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

Старое сообщение 05-06-2012 13:11
- За что?
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



У меня в entity.cpp есть дым - круглый, после каждого выстрела

C++ Source Code:
1
void VectorAngles( const float *forward, float *angles );
2
 
3
float zz_framerate = CVAR_GET_FLOAT( "zz_framerate" );
4
float zz_fadespeed = CVAR_GET_FLOAT( "zz_fadespeed" );
5
float zz_life = CVAR_GET_FLOAT( "zz_life" );
6
float zz_alpha = CVAR_GET_FLOAT( "zz_alpha" );
7
 
8
int iSmoke = CVAR_GET_FLOAT("cl_gunsmoke");
9
 
10
TEMPENTITY *pSmokeTempEntity;
11
int  iGunSmoke = gEngfuncs.pEventAPI->EV_FindModelIndex ("sprites/gunsmoke.spr");
12
 
13
TEMPENTITY *pSmokeTempEntity2;
14
int  iGunSmoke2 = gEngfuncs.pEventAPI->EV_FindModelIndex ("sprites/gunsmoke2.spr");
15
 
16
vec3_t up, right, forward, angles;
17
 
18
cl_entity_t *ent = gEngfuncs.GetEntityByIndex( entity->index );
19
 
20
angles =  ent->curstate.angles;
21
 
22
AngleVectors( entity->angles, forward, up, right );
23
 
24
 
25
 
26
switch( event->event )
27
{
28
case 5001:
29
    pSmokeTempEntity = gEngfuncs.pEfxAPI->R_TempSprite( (float *)&entity->attachment[0], Vector (1,1,1)/*forward * gEngfuncs.pfnRandomLong ( -1 , 1 ) + right * gEngfuncs.pfnRandomLong ( -1 , 1 ) + up * gEngfuncs.pfnRandomLong ( -1 , 1 )*/,
30
  0.3,
31
  iGunSmoke,//iGunSmoke
32
  kRenderTransAdd,
33
  kRenderFxNone,
34
  1.0,//1.0
35
  0.5, //1
36
  FTENT_SPRANIMATE| FTENT_FADEOUT);
37
 
38
  if(pSmokeTempEntity)
39
  {    // sprite created successfully, adjust some things
40
  pSmokeTempEntity->fadeSpeed = gEngfuncs.pfnRandomLong ( 10.0 , 2.0 );
41
  pSmokeTempEntity->entity.curstate.framerate = 20;
42
  pSmokeTempEntity->entity.curstate.renderamt = 255;
43
  pSmokeTempEntity->entity.curstate.rendercolor.r = COLOR_VALUE;
44
  pSmokeTempEntity->entity.curstate.rendercolor.g = COLOR_VALUE;
45
  pSmokeTempEntity->entity.curstate.rendercolor.b = COLOR_VALUE;
46
}
47
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[0], atoi( event->options) );
48
DlightFlash((float *)&entity->attachment[0]);
49
break;
- а новый дым должен возникать только при перегреве - от ствола - вроде горячего воздуха

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

Старое сообщение 05-06-2012 13:15
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
ONeiLL писал:
ведь спрайт всегда смотрит лицом к игроку

кто тебя так обманул?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-06-2012 13:16
-
ONeiLL
CrazyUkrainian

Дата регистрации: Dec 2011
Проживает: Украина, Житомир
Сообщений: 562
Возраст: 26

Рейтинг



Ну если не скомпилить с параметром oriented или vp_parallel_upright

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

Старое сообщение 05-06-2012 13:32
- За что?
qpAHToMAS
Интернетовское трепло

Дата регистрации: Sep 2007
Проживает: (void)
Сообщений: 1788
Возраст: 33

Рейтинг



Какая разница, какой спрайт. Человек спрашивал как отловить конкретный момент, а создать эффект — совсем другое дело.

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

Старое сообщение 05-06-2012 23:36
- За что?
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



Мне нужно узнать три вещи: первое - как и где ловить этот момент(я думаю что на сервере в коде самого оружия), второе - как передать этот момент на клиент, чтобы им можно было воспользоваться в эвентах, и третье - в выше преведённом мной коде, дым после выстрела не прикреплён к стволу, а остаётся там, где произошёл выстрел - и в этом случае это нормально, но новый эффект мне нужно бы зафиксировать на стволе - как это можно сделать?

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

Старое сообщение 06-06-2012 07:37
- За что?
ONeiLL
CrazyUkrainian

Дата регистрации: Dec 2011
Проживает: Украина, Житомир
Сообщений: 562
Возраст: 26

Рейтинг



Код дал HAWK0044

Его в PrimaryAttack

C++ Source Code:
1
if(!flFirstShot)
2
  flFirstShot = gpGlobals->time + 1.0;//1.0 - твоё время
3
 
4
if(flFirstShot > gpGlobals->time)
5
{
6
  m_iShoots++;
7
}
8
else
9
{
10
  flFirstShot = 0.0;
11
  m_iShoots=0;
12
}
13
 
14
if( m_iShoots >= 10 ) // После 10 выстрелов дым
15
{
16
  // А вот здесь уже и  надо наш дым делать, как думай сам
17
}


Предварительно переменные flFirstShot и flFirstShot надо объявить в классе оружия или в CBaseWeapon, потом в функ. Deploy их поидее надо обнулять.

Добавлено 06-06-2012 в 11:12:

И я не уверен, будет это работать или нет )))

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

Старое сообщение 06-06-2012 08:12
- За что?
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



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

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

Старое сообщение 06-06-2012 17:45
- За что?
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 38

Рейтинг



зачем пересылать?, клиентское оружие и так проиграет после 10 выстрела то что требуется.

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

Старое сообщение 06-06-2012 18:14
- За что?
Lev
Житель форума

Дата регистрации: Dec 2011
Проживает: Оренбург
Сообщений: 786
Возраст: 30

Рейтинг



Ты имеешь в виду то, которое в ev_hldm.cpp? А как это сделать?

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

Старое сообщение 06-06-2012 18:26
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 04:25. Новая тема    Ответить
Страницы (5): [1] 2 3 4 5 »   Предыдущая тема   Следующая тема
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