Ku2zoff>> я сделал примари атакуу эМки скажем так:
************************
void Cm4a1::PrimaryAttack()
{
// don't fire if empty
if (m_iClip <= 0)
}
// one less round in the clip
m_iClip--;
// add a muzzle flash
m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
как сделать такие вот везчи я думаю ты 100 пудо взнаеш ну хотяб приблизительно));
1-SendWeaponAnim( m4a1_FIRE1 );-как поставить рандомно m4a1_FIRE1 или m4a1_FIRE2, а то ( m4a1_FIRE1, m4a1_FIRE1 )не катит.
/
2-пунч англ и сделал разным но хочецо и скажем
Vector vecAcc(VECTOR_CONE_2DEGREES);исправить для разных условий с глушаком и без, а то я пробовал но както не выходит ничего.
if(m_iAnimLevel == 0)
{
vecAcc = Vector(VECTOR_CONE_2DEGREES); //зададим значение
}
if(m_iAnimLevel == 1)
{
vecAcc = Vector(VECTOR_CONE_4DEGREES); //зададим значение
}
и вот ещё таблица точности(я это так назвал) - для пулемёта, например, т.к. разброс большой. В ней учитывается разброс пуль в зависимости от скорости игрока и его положения(сидит, стоит и т.п.)
Ku2zoff>> слухай мот я чё нитак делаю но у меня ничег о не изменяется после добавления выше указанных строк всё компица и cl, и mp, но не робит и всё тут может гдето нужно указать чтонибудь ежо?
Может у тебя FireBulletsPlayer вызывается несколько раз(с одной и с другой меткостью)? Или вектор меткости определён несколько раз совершенно по-разному?
Совет: вставляешь "таблицу" меткости, уменьшаешь немного значения отклонений(процентов на 15) и дописываешь условие:
Ku2zoff>>сделал вот так вот но нифиг всерно одинаково;
*********************
void Cm4a1::PrimaryAttack()
{
// don't fire if empty
if (m_iClip <= 0)
{
PlayEmptySound();
m_flNextPrimaryAttack = 0.15;
return;
}
// one less round in the clip
m_iClip--;
// add a muzzle flash
m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
rocksTaa вектор accuracy должен быть определён раньше вызова стрельбы, т.е. все строчки с accuracy = должны быть выше строчки Vector vecDir = m_pPlayer->FireBulletsPlayer
Ku2zoff>> всё работает просто супер, но вот проблемка ездь и суть её заложена как я понял в строке,
******
PLAYBACK_EVENT_FULL( 0, m_pPlayer->edict(), m_usFireMachinegun, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, pev->body, 0, 0, 0 );
********
у меня пушка стреляет и оставляет на стене 2 декаля , т.е по 2 патрона как сделать чтоб по нармальному шмаляла?
Но врядли от флага эвента прок будет
Ещё глянь в vecDir = m_pPlayer->FireBulletsPlayer( 1/*количество пуль одновременно*/
Колиличество пуль верно указано.
Добавлено 02-01-2008 в 16:41:
Хоть убей-после нового года ни как не вспомню что флаг делает
__________________
Хотелось бы, чтобы не только хотелось...
Тренсфер>> этат код не кактит разброс перестаёт работать а вот мой клиент:
************************
//======================
// m4a1 START
//======================
АХ ДА ВОТ ЕЩЁ ЧТО:
я вот эдыкыю хрень придумал но надо бы её подмозговать, а вот собсно что я придумал вот отрывок кода
****************
void Cak47::PrimaryAttack()
{
// don't fire if empty
if (m_iClip <= 0)
{
PlayEmptySound();
m_flNextPrimaryAttack = 0.15;
return;
}
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat(m_pPlayer->random_seed, 1.085,2.085);
}
***************************
а вот что надо я хочу чтобы эти условия:
switch(RANDOM_LONG(0,5))
{
case 0:
m_pPlayer->pev->punchangle.x = 1.2;
break;
case 1:
m_pPlayer->pev->punchangle.x -= 3.2;
break;
case 2:
m_pPlayer->pev->punchangle.y -= 2.7;
break;
case 3:
m_pPlayer->pev->punchangle.x -= 1.2;
break;
case 4:
m_pPlayer->pev->punchangle.y = 2.3;
break;
case 5:
m_pPlayer->pev->punchangle.x -= 2.4;
break;
}
начали работать только после скажем 2х или 3х выстрелов
можно ли это сделать?