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 ) |
3 | int vertSize = 0, normSize = 0; |
4 | int totalVertSize = 0, totalNormSize = 0; |
5 | size_t vertOffsets[MAXSTUDIOMODELS]; |
6 | size_t normOffsets[MAXSTUDIOMODELS]; |
9 | memset( vertOffsets, 0, sizeof( vertOffsets )); |
10 | memset( normOffsets, 0, sizeof( normOffsets )); |
12 | // through all bodies to determine max vertices count |
13 | for( int j = 0; j < m_pStudioHeader->numbodyparts; j++ ) |
15 | mstudiobodyparts_t *pbodypart = (mstudiobodyparts_t *)((byte *)m_pStudioHeader + m_pStudioHeader->bodypartindex) + j; |
17 | int index = m_ModelInstances[handle].m_pEntity->curstate.body / pbodypart->base; |
18 | index = index % pbodypart->nummodels; |
20 | mstudiomodel_t *psubmodel = (mstudiomodel_t *)((byte *)m_pStudioHeader + pbodypart->modelindex) + index; |
21 | vertSize = (psubmodel->numverts * sizeof(Vector)); |
22 | normSize = (psubmodel->numnorms * sizeof(Vector)); |
24 | // NOTE: vertex and normals array are interleaved into memory representation |
27 | vertOffsets[j] = 0; // just in case |
28 | normOffsets[j] = vertOffsets[j] + vertSize; |
32 | vertOffsets[j] = normOffsets[j-1] + lastNormSize; |
33 | normOffsets[j] = vertOffsets[j] + vertSize; |
36 | // count total cache vertexes and normals |
37 | totalVertSize += vertSize; |
38 | totalNormSize += normSize; |
39 | lastNormSize = normSize; |
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 ); |
48 | for( int i = 0; i < m_pStudioHeader->numbodyparts; i++ ) |
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 |
Вот тогда вы действительно сможете себе сказать "да, я научился работать с памятью".__________________
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:
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); //копипаста из кода ХЛВЕ |
5 | static int iContents = UTIL_PointContents ( tr.vecEndPos ); //копипаста из арбалета |
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) |
17 | WRITE_SHORT( g_sModelIndexFireball ); |
21 | WRITE_SHORT( g_sModelIndexWExplosion ); |
23 | WRITE_BYTE( iScaleExp ); // scale * 10 |
24 | WRITE_BYTE( 15 ); // framerate |
25 | WRITE_BYTE( TE_EXPLFLAG_NONE ); |
Отправлено 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:
нормуль)