HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 195 196 197 198 [199] 200 201 202 203 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



hgrunt_2020 вот так. По этому тутору всё прекрасно делается. Рекомендую отключить клиентские пушки и завести кастомную мессагу вместо SVC_WEAPONANIM, чтобы нормально работало по сети в режиме наблюдателя.

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

Старое сообщение 25-09-2021 05:54
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 253
Возраст: 17

Рейтинг



опять я, и опять с вопросом

хотел чтоб в место заряженного выстрела гаусс сам пополнял боезапас, провозился долго, но чет толи я дурак, толи лыжи не едут, анимация spinup перестала проигрыватся, а spin проигрывается но после отпускания кнопки
вот что намудрил


void CGauss::SecondaryAttack()
{
if ( charge == 0 )
{

// spin up

SendWeaponAnim( GAUSS_SPINUP );
charge = 1;
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;
m_pPlayer->m_flStartCharge = gpGlobals->time;
m_pPlayer->m_flAmmoStartCharge = UTIL_WeaponTimeBase() + GetFullChargeTime();
}
else if (charge == 1)
{
if (m_flTimeWeaponIdle < UTIL_WeaponTimeBase())
{
SendWeaponAnim( GAUSS_SPIN );
}
}
else
{
if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] >= 100 )
{
m_fInAttack = 0;
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;
m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1;
return;
}

if ( m_pPlayer->m_flStartCharge < gpGlobals->time - 10 )
{
m_fInAttack = 0;
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;
m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0;
SendWeaponAnim( GAUSS_IDLE );

// Player may have been killed and this weapon dropped, don't execute any more code after this!
return;
}
}

if( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] >= URANIUM_MAX_CARRY )
return;

while( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] < URANIUM_MAX_CARRY && m_flRechargeTime < gpGlobals->time )
{
m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]++;
m_flRechargeTime += 0.5f;
}
}

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

Старое сообщение 26-09-2021 10:50
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 1077

Рейтинг



Думаю, многие замечали, что в какие-то моменты анимация деплоя оружия перестаёт играть при быстрой смене между пушками (на Q) - оружие мгновенно отображается на экране. Проявляется это как в сетевой, так и в одиночной игре. Кто-нибудь копал в эту сторону? Можно ли это стабильно побороть?

__________________
I'm on github
I'm on opendesktop.org

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

Старое сообщение 26-09-2021 12:10
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
FreeSlave писал:
Можно ли это стабильно побороть?

Отключить клиентские пушки, я думаю.

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

Старое сообщение 26-09-2021 14:35
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 253
Возраст: 17

Рейтинг



Пытался сделать улучшение для пушек , но чет пошло не так

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

C++ Source Code:
1
class CItem74drum : public CItem
2
{
3
  void Spawn( void )
4
  {
5
    Precache( );
6
    SET_MODEL(ENT(pev), "models/w_74drum.mdl");
7
    CItem::Spawn( );
8
  }
9
  void Precache( void )
10
  {
11
    PRECACHE_MODEL ("models/w_74drum.mdl");
12
  }
13
  BOOL MyTouch( CBasePlayer *pPlayer )
14
  {
15
    if (m_iDrum == 0)
16
    {
17
      m_iDrum = 1;
18
    }
19
    return FALSE;
20
  }
21
};

__________________
И главное, Артём, помни: не ешь желтый снег!

Отредактировано hgrunt_2020 30-09-2021 в 10:25

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

Старое сообщение 30-09-2021 10:22
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



hgrunt_2020 так тебе надо заводить переменные в коде пушки или игрока, а не в коде итема. В общих чертах:

C++ Source Code:
1
BOOL MyTouch( CBasePlayer *pPlayer )
2
{
3
  if (pPlayer->m_iDrum == 0)
4
  {
5
    if (pPlayer->pev->weapons & (1<<WEAPON_MYWEAPON))
6
    {
7
      pPlayer->m_iDrum = 1;
8
    }
9
  }
10
  return FALSE;
11
}
12
 
13
CMyWeapon::ItemPostFrame
14
{
15
  if (m_pPlayer->m_iDrum == 1)
16
    pev->body = нужная_бодигруппа;
17
}

Не забывай передавать бодю на клиент в эвентах и указывать в аргументе SendWeaponAnim, если работаешь не под ксашмодом.

Добавлено 30-09-2021 в 18:03:

Этот код годится, если хранить переменную в игроке. Ну мало ли, может у него тоже какие-то свойства меняются. А вот если хранить в пушке, что логичнее, тут немного сложнее:
C++ Source Code:
1
BOOL MyTouch( CBasePlayer *pPlayer )
2
{
3
  if (pPlayer->pev->weapons & (1<<WEAPON_MYWEAPON))
4
  {
5
    CMyWeapon *pGun = NULL;
6
 
7
    for ( i = 0 ; i < MAX_ITEM_TYPES ; i++ )
8
    {
9
      if ( pPlayer->m_rgpPlayerItems[ i ] )
10
      {
11
        CBasePlayerItem *pPlayerItem = pPlayer->m_rgpPlayerItems[ i ];
12
        while ( pPlayerItem )
13
        {
14
          pGun = (CMyWeapon*)(pPlayerItem->GetWeaponPtr());
15
        }
16
      }
17
    }
18
    if (pGun && pGun->m_iDrum == 0)
19
    {
20
      pGun->m_iDrum = 1;
21
    }
22
  }
23
  return FALSE;
24
}

Отредактировано Ku2zoff 30-09-2021 в 11:08

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

Старое сообщение 30-09-2021 11:03
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 253
Возраст: 17

Рейтинг



Ku2zoff
items.cpp(361) : error C2065: 'i' : undeclared identifier
што с этим делать?

Добавлено 30-09-2021 в 14:58:

Ku2zoff
ты в for ( i = 0 ; i < MAX_ITEM_TYPES ; i++ ) забыл int, вот и выдовало у меня ошибку

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 30-09-2021 11:58
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
hgrunt_2020 писал:
забыл int

Написал код на коленке, чисто для примера. Вот и упустил. Указатель на пушку правильно приходит?

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

Старое сообщение 30-09-2021 12:04
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 253
Возраст: 17

Рейтинг



Ku2zoff
здесь надо писать номер и ID пушки?
ибо у меня при подборе вылетает

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 30-09-2021 12:16
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Вместо WEAPON_MYWEAPON пишешь, например, WEAPON_MP5. Возможно, указатель получается невалидный. Поищи в коде, где из m_rgpPlayerItems ищутся CBasePlayerItem и сравнивай, в чём разница.

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

Старое сообщение 30-09-2021 13:01
- За что?
Chyvachok
Житель форума

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

Рейтинг



Тема с апгрейдами интересная, к примеру еще как вариант интересно бы сделать акимбо-пушки, но чтобы это было не отдельное оружие которое дается при подборе, а было апгрейдом существующей, а то без тутора Дяди Миши всего 32 слота на пушки, хотя я вроде смог осилить более-менее нормальные акимбо пушки. Из мелочей еще надо сделать какую-то анимацию применения подбора, просто холстер и деплой с новой боди группой если пушки в руках и игрока.

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

Отредактировано Chyvachok 30-09-2021 в 14:18

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

Старое сообщение 30-09-2021 14:15
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 1077

Рейтинг



Достаю в HUD_WeaponsPostThink состояние клиентской пушки через gEngfuncs.GetViewModel() и меняю там curstate.body. Но отображается изменение несколько позже. Можно ли как-то триггернуть перерисовку?

__________________
I'm on github
I'm on opendesktop.org

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

Старое сообщение 10-10-2021 10:26
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



FreeSlave посылай с сервера в мессаге SVC_WEAPONANIM. Тогда бодя будет меняться не посреди кадра, а в начале. Но если надо менять налету, лучше используй Xash Weapon System с её бодями и скинами.

Добавлено 10-10-2021 в 23:42:

Ещё можешь попробовать менять бодю не в посттчинке, а в HUD_Frame. Теоретически, если операции, что делаются в ItemPreFrame запихать в HUD_Frame, а те, что в ItemPostFrame, оставить в HUD_WeaponsPostThink, это избавит систему оружий от глюков. Но ссылку на инфу о предиктинге можно получить только из HUD_PostRunCmd. Так что проще вообще нафиг вырезать клиентские пушки. От них один геморрой, а лаг в полсекунды при стрельбе не так уж заметен при игре по сети.

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

Старое сообщение 10-10-2021 16:42
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 1077

Рейтинг



Ku2zoff SVC_WEAPONANIM же резетнет саму анимацию? Мне нужно менять боди без смены анимации, поэтому полез напрямую в ViewModel.

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

__________________
I'm on github
I'm on opendesktop.org

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

Старое сообщение 10-10-2021 18:01
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Помню я с этим дерьмом боролся на уровне движка. Вроде даже победил.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 10-10-2021 18:03
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 05:36. Новая тема    Ответить
Страницы (260): « Первая ... « 195 196 197 198 [199] 200 201 202 203 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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