HLFX.Ru Forum Страницы (5): « 1 2 [3] 4 5 »
Показать все 67 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Кодинг оружия (https://hlfx.ru/forum/showthread.php?threadid=3457)


Отправлено ONeiLL 05-07-2012 в 12:56:

Цитата:
Lev писал:
не умею работать с памятью

Просто это на замудрёном языке так звучит.

Напиши int iiii = 1;

Поздравляю, ты научился работать с памятью


Отправлено Lev 05-07-2012 в 14:17:

Да - но это не страшно

Добавлено 05-07-2012 в 20:17:

Решил сделать так чтобы персонажи тоже выбрасывали при перезарядке обойму - есть сама функция спавна void CSpetsnaz::SpawnClip( void ) - но как её правилно запустить я не понимаю - если сделать так

SetThink( SpawnClip );
pev->nextthink = gpGlobals->time + 0.0;

то после перезарядки персонажи перестают стрелять и двигаться вообще, хотя и откликаются на разговор.


Отправлено KiQ 06-07-2012 в 15:19:

Lev
pev->nextthink = gpGlobals->time + 0.1;
или уж вызывай непосредственно из Reload.

__________________
-Brain is dead-


Отправлено Дядя Миша 06-07-2012 в 16:46:

Цитата:
ONeiLL писал:
Поздравляю, ты научился работать с памятью

С памятью вы научитесь работать, когда подобные конструкции вас смущать перестанут.
C++ Source Code:
1
void CStudioModelRenderer :: CreateVertexCache( word handle )
2
{
3
  int vertSize = 0, normSize = 0;
4
  int totalVertSize = 0, totalNormSize = 0;
5
  size_t vertOffsets[MAXSTUDIOMODELS];
6
  size_t normOffsets[MAXSTUDIOMODELS];
7
  int lastNormSize = 0;
8
 
9
  memset( vertOffsets, 0, sizeof( vertOffsets ));
10
  memset( normOffsets, 0, sizeof( normOffsets ));
11
 
12
  // through all bodies to determine max vertices count
13
  for( int j = 0; j < m_pStudioHeader->numbodyparts; j++ )
14
  {
15
    mstudiobodyparts_t *pbodypart = (mstudiobodyparts_t *)((byte *)m_pStudioHeader + m_pStudioHeader->bodypartindex) + j;
16
 
17
    int index = m_ModelInstances[handle].m_pEntity->curstate.body / pbodypart->base;
18
    index = index % pbodypart->nummodels;
19
 
20
    mstudiomodel_t *psubmodel = (mstudiomodel_t *)((byte *)m_pStudioHeader + pbodypart->modelindex) + index;
21
    vertSize = (psubmodel->numverts * sizeof(Vector));
22
    normSize = (psubmodel->numnorms * sizeof(Vector));
23
 
24
    // NOTE: vertex and normals array are interleaved into memory representation
25
    if( j == 0 )
26
    {
27
      vertOffsets[j] = 0;	// just in case
28
      normOffsets[j] = vertOffsets[j] + vertSize;
29
    }
30
    else
31
    {
32
      vertOffsets[j] = normOffsets[j-1] + lastNormSize;
33
      normOffsets[j] = vertOffsets[j] + vertSize;
34
    }
35
 
36
    // count total cache vertexes and normals
37
    totalVertSize += vertSize;
38
    totalNormSize += normSize;
39
    lastNormSize = normSize;
40
  }
41
 
42
  // create a vertexcache too
43
  size_t cacheSize = sizeof( VertCache_t ) + totalVertSize + totalNormSize;
44
  m_ModelInstances[handle].vertcache = (VertCache_t *)calloc( 1, cacheSize );
45
  byte *cache_base = (byte *)m_ModelInstances[handle].vertcache + sizeof( VertCache_t );
46
 
47
  // simple huh?
48
  for( int i = 0; i < m_pStudioHeader->numbodyparts; i++ )
49
  {
50
    m_ModelInstances[handle].vertcache->verts[i] = (Vector *)(cache_base + vertOffsets[i]); // vertex array
51
    m_ModelInstances[handle].vertcache->norms[i] = (Vector *)(cache_base + normOffsets[i]); // normal array
52
  }
53
}

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено ONeiLL 06-07-2012 в 17:45:

конечно я не понял, для чего это, но ничего такого странного тоже не заметил


Отправлено Chyvachok 10-07-2012 в 17:05:

А как создать разрывные патроны? Чтобы автомат стрелял пулями которые взрываются как стрела арбалета.


Отправлено fire64 10-07-2012 в 17:22:

Chyvachok, делай трассу и в месте попадания создавай взрыв.

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


Отправлено Chyvachok 10-07-2012 в 17:35:

fire64 а как учитывать разброс?


Отправлено Дядя Миша 10-07-2012 в 18:07:

Цитата:
fire64 писал:
Chyvachok, делай трассу и в месте попадания создавай взрыв.

мастер апчхимизаций? Пуля уже и так трассу делает. Достаточно взывать взрыв там же, где и искры.

__________________
My Projects: download page

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

Цитата:

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


Отправлено pRoxxx 10-07-2012 в 20:07:

Цитата:
Lev писал:
не умею работать с памятью

Оу, видел бы ты как я зафлудил ДМ'у аську из за очистки памяти.


Отправлено Chyvachok 11-07-2012 в 10:36:

Сделал я разрывные патроны, кто хочет может глянуть на мой быдлокод:
Только как эффект взрыва чуть к игроку приблизить? А то он некрасиво в стене рисуется.

C++ Source Code:
1
case BULLET_PLAYER_357:
2
  //pEntity->TraceAttack(pevAttacker, gSkillData.plrDmg357, vecDir, &tr, DMG_BLAST | DMG_ALWAYSGIB);
3
RadiusDamage(tr.vecEndPos, pevAttacker, pevAttacker, gSkillData.plrDmg357Exp, gSkillData.plrDmg357Radius, CLASS_NONE, DMG_BLAST | DMG_ALWAYSGIB); //копипаста из кода ХЛВЕ
4
 
5
static int iContents = UTIL_PointContents ( tr.vecEndPos ); //копипаста из арбалета
6
static int iScaleExp;
7
 
8
iScaleExp = 10;
9
 
10
MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, tr.vecEndPos );
11
WRITE_BYTE( TE_EXPLOSION);
12
WRITE_COORD( tr.vecEndPos.x );
13
WRITE_COORD( tr.vecEndPos.y );
14
WRITE_COORD( tr.vecEndPos.z );
15
if (iContents != CONTENTS_WATER)
16
{
17
  WRITE_SHORT( g_sModelIndexFireball );
18
}
19
else
20
{
21
  WRITE_SHORT( g_sModelIndexWExplosion );
22
}
23
WRITE_BYTE( iScaleExp  ); // scale * 10
24
WRITE_BYTE( 15  ); // framerate
25
WRITE_BYTE( TE_EXPLFLAG_NONE );
26
MESSAGE_END();
27
 
28
break;


Отправлено CrazyRussian 11-07-2012 в 11:26:

Цитата:
Chyvachok писал:
Только как эффект взрыва чуть к игроку приблизить?

Vector origin = tr.vecEndPos + vecDir * -чуть;
где:
"чуть" - насколько отодвигаешь взрыв
vecDir - направление из которого у тебя пускается трасса
origin - результирующее положение эффекта взрыва.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено Chyvachok 11-07-2012 в 11:32:

CrazyRussian спасибо, попробую.


Отправлено Дядя Миша 11-07-2012 в 13:31:

вместо чють напиши 24.

__________________
My Projects: download page

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

Цитата:

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


Отправлено marikcool 11-07-2012 в 14:09:

нормуль)


Временная зона GMT. Текущее время 01:45. Страницы (5): « 1 2 [3] 4 5 »
Показать все 67 сообщений этой темы на одной странице

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