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"
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 );
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 )
ну все проблема легко решается сам справился во первых вместо
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;
все все просто оказывается. Итог получилась ядерная граната [/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.
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/
нельзя кэшировать модель в том месте где передаешь мессагу на клиент.
И уж тем более нежелательно объявлять её индекс как глобальную переменную.
Crystallize писал: илья2 меня впечатляет твой прогресс, на самом деле.
Да это просто опыт. Когда очень много занимаешься одним и тем же, со временем набирается опыт, и ты уже сам знаешь, как и что делать. А как всем известно, опыт круче знаний .
после того как я добавил SetActivity для барни у меня в консоли начала вылазить ошибка
monster_barney has no sequence for act:23
что с ней делать и как её починить?
hgrunt_2020 это ACT_SIGNAL3, CTalkMonster используют эту активность во время разговора. Подразумевается кивок головой или какое-то другое движение, например жест рукой. Т.к. в моделях барника и учёного такой активности нету, сделана проверка. Видимо, планировалась целая куча анимаций во время разговора, но что-то пошло не так, и от этого отказались. Добавь проверку в CBarney::SetActivity, проблема исчезнет.
C++ Source Code:
if (NewActivity == ACT_SIGNAL3 && (LookupActivity(ACT_SIGNAL3) == ACTIVITY_NOT_AVAILABLE))
То, что такой активности нет в модели - и есть источник ошибки. В базовом классе CTalkMonster в SetActivity есть проверка на её отсутствие, а в классе CHGrunt, откуда ты скопировал барнику SetActivity, нет.
Если внимательно посмотришь таски CTalkMonster, то найдёшь там много вызовов { TASK_SET_ACTIVITY, (float)ACT_SIGNAL3 }. Как раз во время разговоров. Что интересно, даже у учёных нет такой активности. Или вэлв не наделали анимаций, или что-то пошло не так, например жестикуляция при каждой фразе выглядела странно, и они воткнули в код заглушку.