#ifdef REGISTER_WEAPON
REGISTER_WEAPON(CAMPINGRIFLE, w_campingrifle, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "campingrifle", "Rifle");
#else
+#ifdef SVQC
//Camping rifle Primary mode: manually operated bolt*, Secondary: full automatic**
//* Manually operating the bolt means that all the power of the gas is used to propell the bullet. In this mode the bolt is prevented from moving backwards in response to the firing of the bullet.
//** In fully automatic mode some of the gas is used to extract and reload the next cartrige, thus there is less power and range.
self.campingrifle_accumulator += cvar("g_balance_campingrifle_primary_burstcost");
}
if (self.BUTTON_ATCK2)
- if (weapon_prepareattack_check(1, cvar("g_balance_campingrifle_secondary_refire")))
- if (time >= self.campingrifle_accumulator + cvar("g_balance_campingrifle_secondary_burstcost"))
- {
- weapon_prepareattack_do(1, cvar("g_balance_campingrifle_secondary_refire"));
- W_CampingRifle_BulletHail(cvar("g_balance_campingrifle_secondary_bullethail"), W_CampingRifle_Attack2, WFRAME_FIRE2, cvar("g_balance_campingrifle_secondary_animtime"), cvar("g_balance_campingrifle_primary_refire"));
- self.campingrifle_accumulator += cvar("g_balance_campingrifle_secondary_burstcost");
+ {
+ if (cvar("g_balance_campingrifle_secondary"))
+ {
+ if (weapon_prepareattack_check(1, cvar("g_balance_campingrifle_secondary_refire")))
+ if (time >= self.campingrifle_accumulator + cvar("g_balance_campingrifle_secondary_burstcost"))
+ {
+ weapon_prepareattack_do(1, cvar("g_balance_campingrifle_secondary_refire"));
+ W_CampingRifle_BulletHail(cvar("g_balance_campingrifle_secondary_bullethail"), W_CampingRifle_Attack2, WFRAME_FIRE2, cvar("g_balance_campingrifle_secondary_animtime"), cvar("g_balance_campingrifle_primary_refire"));
+ self.campingrifle_accumulator += cvar("g_balance_campingrifle_secondary_burstcost");
+ }
+ }
}
}
}
else if (req == WR_PRECACHE)
- {
+ {
precache_model ("models/weapons/g_campingrifle.md3");
precache_model ("models/weapons/v_campingrifle.md3");
precache_model ("models/weapons/h_campingrifle.iqm");
return self.ammo_nails >= cvar("g_balance_campingrifle_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_nails >= cvar("g_balance_campingrifle_secondary_ammo");
+ else if (req == WR_RELOAD)
+ {
+ W_CampingRifle_Reload();
+ }
+ else if (req == WR_RESETPLAYER)
+ {
+ self.campingrifle_accumulator = time - cvar("g_balance_campingrifle_bursttime");
+ self.campingrifle_bulletcounter = cvar("g_balance_campingrifle_magazinecapacity");
+ W_CampingRifle_CheckMaxBullets(FALSE);
+ }
+ return TRUE;
+};
+#endif
+#ifdef CSQC
+float w_campingrifle(float req)
+{
+ if(req == WR_IMPACTEFFECT)
+ {
+ vector org2;
+ org2 = w_org + w_backoff * 2;
+ pointparticles(particleeffectnum("machinegun_impact"), org2, w_backoff * 1000, 1);
+ if(!w_issilent)
+ {
+ if(w_random < 0.2)
+ sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
+ else if(w_random < 0.4)
+ sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
+ else if(w_random < 0.5)
+ sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+ }
+ }
+ else if(req == WR_PRECACHE)
+ {
+ precache_sound("weapons/ric1.wav");
+ precache_sound("weapons/ric2.wav");
+ precache_sound("weapons/ric3.wav");
+ }
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "shot themself automatically";
+ w_deathtypestring = "%s shot themself automatically";
else
- w_deathtypestring = "sniped themself somehow";
+ w_deathtypestring = "%s sniped themself somehow";
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_BOUNCE)
- w_deathtypestring = "failed to hide from #'s bullet hail";
+ w_deathtypestring = "%s failed to hide from %s's bullet hail";
else
- w_deathtypestring = "died in #'s bullet hail";
+ w_deathtypestring = "%s died in %s's bullet hail";
}
else
{
if(w_deathtype & HITTYPE_BOUNCE)
{
// TODO special headshot message here too?
- w_deathtypestring = "failed to hide from #'s rifle";
+ w_deathtypestring = "%s failed to hide from %s's rifle";
}
else
{
if(w_deathtype & HITTYPE_HEADSHOT)
- w_deathtypestring = "got hit in the head by #";
+ w_deathtypestring = "%s got hit in the head by %s";
else
- w_deathtypestring = "was sniped by #";
+ w_deathtypestring = "%s was sniped by %s";
}
}
}
- else if (req == WR_RELOAD)
- {
- W_CampingRifle_Reload();
- }
- else if (req == WR_RESETPLAYER)
- {
- self.campingrifle_accumulator = time - cvar("g_balance_campingrifle_bursttime");
- self.campingrifle_bulletcounter = cvar("g_balance_campingrifle_magazinecapacity");
- W_CampingRifle_CheckMaxBullets(FALSE);
- }
return TRUE;
-};
+}
+#endif
#endif