X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_campingrifle.qc;h=309717305052fefb239085d85a8ed1ff41b5b103;hb=82eb9ceed29bab0b5759275f060eac7913aa96e1;hp=c3c9d52f9b43926370c8af33e53e78714e69e18e;hpb=5edeb786a80b4ea0254d504f655447174375b7e3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_campingrifle.qc b/qcsrc/server/w_campingrifle.qc index c3c9d52f9..309717305 100644 --- a/qcsrc/server/w_campingrifle.qc +++ b/qcsrc/server/w_campingrifle.qc @@ -1,5 +1,5 @@ #ifdef REGISTER_WEAPON -REGISTER_WEAPON(CAMPINGRIFLE, w_campingrifle, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "campingrifle", "Rifle"); +REGISTER_WEAPON(CAMPINGRIFLE, w_campingrifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "campingrifle", "Sniper Rifle"); #else #ifdef SVQC //Camping rifle Primary mode: manually operated bolt*, Secondary: full automatic** @@ -84,9 +84,9 @@ void W_CampingRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAdde self.ammo_nails -= pAmmo; if(deathtype & HITTYPE_SECONDARY) - W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire2.wav", cvar("g_balance_campingrifle_secondary_damage")); + W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire2.wav", CHAN_WEAPON, cvar("g_balance_campingrifle_secondary_damage") + cvar("g_balance_campingrifle_secondary_headshotaddeddamage")); else - W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire.wav", cvar("g_balance_campingrifle_primary_damage")); + W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire.wav", CHAN_WEAPON, cvar("g_balance_campingrifle_primary_damage") + cvar("g_balance_campingrifle_primary_headshotaddeddamage")); pointparticles(particleeffectnum("shotgun_muzzleflash"), w_shotorg, w_shotdir * 2000, 1); @@ -96,7 +96,10 @@ void W_CampingRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAdde w_shotorg = self.origin + self.view_ofs + ((w_shotorg - self.origin - self.view_ofs) * v_forward) * v_forward; } - fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (cvar("g_balance_campingrifle_tracer") ? EF_RED : EF_BLUE), 1, pBulletConstant); + if(deathtype & HITTYPE_SECONDARY) + fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (cvar("g_balance_campingrifle_secondary_tracer") ? EF_RED : EF_BLUE), 1, pBulletConstant); + else + fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (cvar("g_balance_campingrifle_primary_tracer") ? EF_RED : EF_BLUE), 1, pBulletConstant); endFireBallisticBullet(); if (cvar("g_casings") >= 2) @@ -219,17 +222,22 @@ float w_campingrifle(float req) 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"); @@ -250,38 +258,6 @@ float w_campingrifle(float req) 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_SUICIDEMESSAGE) - { - if(w_deathtype & HITTYPE_SECONDARY) - w_deathtypestring = "shot themself automatically"; - else - w_deathtypestring = "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"; - else - w_deathtypestring = "died in #'s bullet hail"; - } - else - { - if(w_deathtype & HITTYPE_BOUNCE) - { - // TODO special headshot message here too? - w_deathtypestring = "failed to hide from #'s rifle"; - } - else - { - if(w_deathtype & HITTYPE_HEADSHOT) - w_deathtypestring = "got hit in the head by #"; - else - w_deathtypestring = "was sniped by #"; - } - } - } else if (req == WR_RELOAD) { W_CampingRifle_Reload(); @@ -319,6 +295,38 @@ float w_campingrifle(float req) precache_sound("weapons/ric2.wav"); precache_sound("weapons/ric3.wav"); } + else if (req == WR_SUICIDEMESSAGE) + { + if(w_deathtype & HITTYPE_SECONDARY) + w_deathtypestring = "%s shot themself automatically"; + else + w_deathtypestring = "%s sniped themself somehow"; + } + else if (req == WR_KILLMESSAGE) + { + if(w_deathtype & HITTYPE_SECONDARY) + { + if(w_deathtype & HITTYPE_BOUNCE) + w_deathtypestring = "%s failed to hide from %s's bullet hail"; + else + w_deathtypestring = "%s died in %s's bullet hail"; + } + else + { + if(w_deathtype & HITTYPE_BOUNCE) + { + // TODO special headshot message here too? + w_deathtypestring = "%s failed to hide from %s's rifle"; + } + else + { + if(w_deathtype & HITTYPE_HEADSHOT) + w_deathtypestring = "%s got hit in the head by %s"; + else + w_deathtypestring = "%s was sniped by %s"; + } + } + } return TRUE; } #endif