HLFX.Ru Forum Страницы (235): « Первая ... « 218 219 220 221 [222] 223 224 225 226 » ... Последняя »
Показать все 3518 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено илья2 21-04-2022 в 22:39:

Цитата:
илья2 писал:
как превысить лимит прекеша моделей с 512 на 1000 ? и возможно ли такое ?

все сам справился кое какие баги пришлось пофиксить в своём моде путем исправления кода. Теперь точно проблем с прекешами быть не должно !

__________________
Илья


Отправлено илья2 25-04-2022 в 21:37:

New message started when msg *23* has not been sent yet: вот такая вот ошибка вылетает когда я пытаюсь добавить такой код:

// ExplodeTouch( pOther );

//initialize a vector that finds the center of the RPG models hitbox
Vector vecSpot2 = pev->origin + (pev->mins + pev->maxs) * 0.5;

killit++;

if ( killit == 1 )
{
// blast circle "The Infamous Disc of Death"
MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin );
WRITE_BYTE( TE_BEAMCYLINDER );
WRITE_COORD( pev->origin.x);//center of effect on x axis
WRITE_COORD( pev->origin.y);//center of effect on y axis
WRITE_COORD( pev->origin.z);//center of effect on z axis
WRITE_COORD( pev->origin.x);//axis of effect on x axis
WRITE_COORD( pev->origin.y);//axis of effect on y axis
WRITE_COORD( pev->origin.z + 300 ); // z axis and Radius of effect
WRITE_SHORT( PRECACHE_MODEL( "sprites/white.spr" ) );//Name of the sprite to use, as defined at begining of tut
WRITE_BYTE( 0 ); // startframe
WRITE_BYTE( 0 ); //framerate in 0.1's
WRITE_BYTE( 40 ); //Life in 0.1's
WRITE_BYTE( 302 ); //Line Width in .1 units
WRITE_BYTE( 0 ); //Noise Amplitude in 0.01's
WRITE_BYTE( 255 ); // Red Color Value
WRITE_BYTE( 255 ); // Green Color Value
WRITE_BYTE( 192 ); // Blue Color Value
WRITE_BYTE( 128 ); // brightness
WRITE_BYTE( 0 ); // speed
MESSAGE_END();


pev->effects |= EF_NODRAW;//stop showing the model!!
pev->velocity = g_vecZero;//set velocity to "0"

UTIL_ScreenShake( pev->origin, 500.0, 400.0, 6.0, 1800 );

entvars_t *pevOwner;

if ( pev->owner )
pevOwner = VARS( pev->owner );
else
pevOwner = NULL;

pev->owner = NULL; // can't traceline attack owner if this is set

/*Big Damage
The first parameter is the center of where the damage radiates from. The second is the inflictor
( or what caused it ). The third is the attacker (or what caused this ). The fourth parameter is the
damage to inflict, the fifth is the class to ignore ( or what entity not apply damage to ). The final
parameter is the damage type--(with multiple damage types delineated by a | ).*/
::RadiusDamage( pev->origin, pev, pevOwner, 400, 1000, CLASS_NONE, DMG_BLAST | DMG_BURN | DMG_ALWAYSGIB );

EMIT_SOUND(ENT(pev), CHAN_STATIC, "weapons/nuke1.wav", 1.0, 0.3);


MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin );
WRITE_BYTE( TE_SPRITE );//additive sprite plays though once
WRITE_COORD( pev->origin.x );//where to make the sprite appear on x axis
WRITE_COORD( pev->origin.y );//where to make the sprite appear on y axis
WRITE_COORD( pev->origin.z + 128 );//Creates sprite 128 units above model's center
WRITE_SHORT( PRECACHE_MODEL( "sprites/fexplo.spr" ) );//Name of the sprite to use, as defined at begining of tut
WRITE_BYTE( 400 ); // scale in .1 units --by comparison the player is 72 units tall
WRITE_BYTE( 255 ); // brightness (this is as bright as it gets)
MESSAGE_END();


UTIL_Remove( this );

}

killit = 0;

в функцию взрыва гранаты CGrenade::Explode( TraceResult *pTrace, int bitsDamageType )

вопрос как исправить эту големотью ?

__________________
Илья


Отправлено Napoleon321 25-04-2022 в 22:46:

I think you're using too many TEMPENTITY-es. Try reducing them.

btw: are you making a nuke launcher?

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 26-04-2022 в 05:51:

Перед этим идёт еще какая-то мессага, у которой ты забыл вызвать MESSAGE_END();

__________________
My Projects: download page

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

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему


Отправлено илья2 26-04-2022 в 07:25:

ну все проблема легко решается сам справился во первых вместо
PRECACHE_MODEL( "sprites/white.spr" )
PRECACHE_MODEL( "sprites/fexplo.spr" )
надо поставить
m_iSpriteTexture
и
m_iExplode

еще надо поставить extern в grenade
extern short m_iSpriteTexture;
extern short m_iExplode;
и сам прекеш в weapons.cpp

DLL_GLOBAL short m_iSpriteTexture;
DLL_GLOBAL short m_iExplode;

m_iSpriteTexture = PRECACHE_MODEL("sprites/white.spr");
m_iExplode = PRECACHE_MODEL( "sprites/fexplo.spr" );

все все просто оказывается. Итог получилась ядерная граната

__________________
Илья


Отправлено Napoleon321 26-04-2022 в 08:14:

Цитата:
илья2 писал:

все все просто оказывается. Итог получилась ядерная граната [/B]


Good job. So I was right you're making a nuke. , I would suggest you to put bigger throw distance for that grenade... else the player will get nuked by their own grenade.

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено илья2 26-04-2022 в 09:43:

Цитата:
Napoleon321 писал:
Good job. So I was right you're making a nuke. , I would suggest you to put bigger throw distance for that grenade... else the player will get nuked by their own grenade.

this is a test version, I just needed to insert a CYLINDERBEAM into a gluon grenade for a gluon cannon

Добавлено 26-04-2022 в 12:43:

о дядя миша а это случайно не ты говорил:
https://csm.dev/threads/dobovljaem-...hockwave.29503/
нельзя кэшировать модель в том месте где передаешь мессагу на клиент.
И уж тем более нежелательно объявлять её индекс как глобальную переменную.

ну теперь понятно почему ошибка вылазит

__________________
Илья


Отправлено Дядя Миша 26-04-2022 в 12:10:

Цитата:
илья2 писал:
о дядя миша а это случайно не ты говорил:

Аватар совпадает, ник совпадает, ну разумеется это кто угодно, но только не я.

__________________
My Projects: download page

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

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему


Отправлено Crystallize 26-04-2022 в 17:35:

илья2 меня впечатляет твой прогресс, на самом деле.


Отправлено илья2 26-04-2022 в 17:54:

Цитата:
Crystallize писал:
илья2 меня впечатляет твой прогресс, на самом деле.

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

__________________
Илья


Отправлено hgrunt_2020 02-05-2022 в 03:08:

Непонятно откуда взявшийся ACT 23

после того как я добавил SetActivity для барни у меня в консоли начала вылазить ошибка
monster_barney has no sequence for act:23
что с ней делать и как её починить?

Добавлено 02-05-2022 в 06:08:

Вот функция

C++ Source Code:
1
void CBarney :: SetActivity ( Activity NewActivity )
2
{
3
  int	iSequence = ACTIVITY_NOT_AVAILABLE;
4
  void *pmodel = GET_MODEL_PTR( ENT(pev) );
5
 
6
  switch ( NewActivity)
7
  {
8
  case ACT_RUN:
9
      if ( pev->health <= BARNEY_LIMP_HEALTH )
10
      {
11
        // limp!
12
        iSequence = LookupActivity ( ACT_RUN_HURT );
13
      }
14
    else
15
    {
16
      iSequence = LookupActivity ( NewActivity );
17
    }
18
    break;
19
  case ACT_WALK:
20
      if ( pev->health <= BARNEY_LIMP_HEALTH )
21
      {
22
        // limp!
23
        iSequence = LookupActivity ( ACT_WALK_HURT );
24
      }
25
    else
26
    {
27
      iSequence = LookupActivity ( NewActivity );
28
    }
29
    break;
30
  case ACT_IDLE:
31
      if ( m_MonsterState == MONSTERSTATE_COMBAT )
32
      {
33
        NewActivity = ACT_IDLE_ANGRY;
34
      }
35
    iSequence = LookupActivity ( NewActivity );
36
    break;
37
  default:
38
      iSequence = LookupActivity ( NewActivity );
39
    break;
40
  }
41
 
42
  m_Activity = NewActivity; // Go ahead and set this so it doesn't keep trying when the anim is not present
43
 
44
  // Set to the desired anim, or default anim if the desired is not present
45
  if ( iSequence > ACTIVITY_NOT_AVAILABLE )
46
  {
47
    if ( pev->sequence != iSequence || !m_fSequenceLoops )
48
    {
49
      pev->frame = 0;
50
    }
51
 
52
    pev->sequence		= iSequence;	// Set to the reset anim (if it's there)
53
    ResetSequenceInfo( );
54
    SetYawSpeed();
55
  }
56
  else
57
  {
58
    // Not available try to get default anim
59
    ALERT ( at_console, "%s has no sequence for act:%d\n", STRING(pev->classname), NewActivity );
60
    pev->sequence		= 0;	// Set to the reset anim (if it's there)
61
  }
62
}

__________________


https://www.moddb.com/mods/metro-2031-last-chance


Отправлено Ku2zoff 02-05-2022 в 04:55:

hgrunt_2020 это ACT_SIGNAL3, CTalkMonster используют эту активность во время разговора. Подразумевается кивок головой или какое-то другое движение, например жест рукой. Т.к. в моделях барника и учёного такой активности нету, сделана проверка. Видимо, планировалась целая куча анимаций во время разговора, но что-то пошло не так, и от этого отказались. Добавь проверку в CBarney::SetActivity, проблема исчезнет.

C++ Source Code:
if (NewActivity == ACT_SIGNAL3 && (LookupActivity(ACT_SIGNAL3) == ACTIVITY_NOT_AVAILABLE))
  NewActivity = ACT_IDLE;
Это вставь в самое начало функции.


Отправлено hgrunt_2020 02-05-2022 в 05:14:

Ku2zoff О,спасибо. только все же остается вопрос, у меня ни в SetActivity ни в модели нет ACT_SIGNAL3, что же тогда источник ошибки

__________________


https://www.moddb.com/mods/metro-2031-last-chance


Отправлено Дядя Миша 02-05-2022 в 06:21:

Цитата:
hgrunt_2020 писал:
что с ней делать и как её починить?

Нету такой анимации в модели в Барни.

__________________
My Projects: download page

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

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему


Отправлено Ku2zoff 02-05-2022 в 07:08:

Цитата:
hgrunt_2020 писал:
что же тогда источник ошибки

То, что такой активности нет в модели - и есть источник ошибки. В базовом классе CTalkMonster в SetActivity есть проверка на её отсутствие, а в классе CHGrunt, откуда ты скопировал барнику SetActivity, нет.
C++ Source Code:
1
void CTalkMonster :: SetActivity ( Activity newActivity )
2
{
3
  if (newActivity == ACT_IDLE && IsTalking() )
4
    newActivity = ACT_SIGNAL3;
5
 
6
  if ( newActivity == ACT_SIGNAL3 && (LookupActivity ( ACT_SIGNAL3 ) == ACTIVITY_NOT_AVAILABLE))
7
    newActivity = ACT_IDLE;
8
 
9
  CBaseMonster::SetActivity( newActivity );
10
}

Если внимательно посмотришь таски CTalkMonster, то найдёшь там много вызовов { TASK_SET_ACTIVITY, (float)ACT_SIGNAL3 }. Как раз во время разговоров. Что интересно, даже у учёных нет такой активности. Или вэлв не наделали анимаций, или что-то пошло не так, например жестикуляция при каждой фразе выглядела странно, и они воткнули в код заглушку.


Временная зона GMT. Текущее время 00:56. Страницы (235): « Первая ... « 218 219 220 221 [222] 223 224 225 226 » ... Последняя »
Показать все 3518 сообщений этой темы на одной странице

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