void AvHParalysisGun::FireProjectiles(void) { #ifdef AVH_SERVER UTIL_MakeVectors(this->m_pPlayer->pev->v_angle); Vector vecAiming = gpGlobals->v_forward; Vector vecSrc = this->m_pPlayer->GetGunPosition( ) + vecAiming; Vector vecEnd = vecSrc + vecAiming*kParalysisRange; const float kParalysisTime = 6; // Treat damage upgrade as modifier onto paralysis //int theTracerFreq; //float theDamageMultiplier; //AvHPlayerUpgrade::GetWeaponUpgrade(this->m_pPlayer->pev->iuser4, &theDamageMultiplier, &theTracerFreq); // Perform trace to hit victim TraceResult tr; UTIL_TraceLine(vecSrc, vecEnd, dont_ignore_monsters, dont_ignore_glass, this->m_pPlayer->edict(), &tr); CBaseEntity* theEntityHit = CBaseEntity::Instance(tr.pHit); if(theEntityHit) { AvHPlayer* thePlayer = dynamic_cast<AvHPlayer*>(theEntityHit); if(thePlayer) { // Check teams (hit friendly in tourny mode) if((thePlayer->pev->team != this->m_pPlayer->pev->team) || (GetGameRules()->GetIsTournamentMode())) { thePlayer->SetIsParalyzed(true, kParalysisTime/**theDamageMultiplier*/); // Play hit event PLAYBACK_EVENT_FULL(0, thePlayer->edict(), gParalysisStartEventID, 0, thePlayer->pev->origin, (float *)&g_vecZero, 0.0, 0.0, /*theWeaponIndex*/ 0, 0, 0, 0); } } } #endif }