X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_fireball.qc;h=6b98d37cd7404b024f8252e55b49307d58ecf4c1;hb=392daf627bb137aadf4c156dc8dfc4906475840e;hp=c1d30ba0211f53bbd9297b4bcf2a96797a8a5851;hpb=5174b0f43d421554519d485b94893249cb095963;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_fireball.qc b/qcsrc/server/w_fireball.qc index c1d30ba02..6b98d37cd 100644 --- a/qcsrc/server/w_fireball.qc +++ b/qcsrc/server/w_fireball.qc @@ -1,6 +1,7 @@ #ifdef REGISTER_WEAPON REGISTER_WEAPON(FIREBALL, w_fireball, IT_FUEL, 9, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "fireball", "fireball", "Fireball"); #else +#ifdef SVQC .float bot_primary_fireballmooth; // whatever a mooth is .vector fireball_impactvec; .float fireball_primarytime; @@ -98,6 +99,7 @@ void W_Fireball_Think() if(time > self.pushltime) { self.cnt = 1; + self.projectiledeathtype |= HITTYPE_SPLASH; W_Fireball_Explode(); return; } @@ -321,13 +323,13 @@ float w_fireball(float req) { if (self.BUTTON_ATCK) if (time >= self.fireball_primarytime) - if (weapon_prepareattack(1, cvar("g_balance_fireball_primary_refire"))) + if (weapon_prepareattack(0, cvar("g_balance_fireball_primary_refire"))) { W_Fireball_Attack1_Frame0(); self.fireball_primarytime = time + cvar("g_balance_fireball_primary_refire2"); } if (self.BUTTON_ATCK2) - if (weapon_prepareattack(0, cvar("g_balance_fireball_secondary_refire"))) + if (weapon_prepareattack(1, cvar("g_balance_fireball_secondary_refire"))) { W_Fireball_Attack2(); weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_fireball_secondary_animtime"), w_ready); @@ -349,45 +351,67 @@ float w_fireball(float req) return self.ammo_fuel >= cvar("g_balance_fireball_primary_ammo"); else if (req == WR_CHECKAMMO2) return self.ammo_fuel >= cvar("g_balance_fireball_secondary_ammo"); + else if (req == WR_RESETPLAYER) + { + self.fireball_primarytime = time; + } + return TRUE; +}; +#endif +#ifdef CSQC +float w_fireball(float req) +{ + if(req == WR_IMPACTEFFECT) + { + vector org2; + if(w_deathtype & HITTYPE_SECONDARY) + { + // firemine goes out silently + } + else + { + org2 = w_org + w_backoff * 16; + pointparticles(particleeffectnum("fireball_explode"), org2, '0 0 0', 1); + if(!w_issilent) + sound(self, CHAN_PROJECTILE, "weapons/fireball_impact2.wav", VOL_BASE, ATTN_NORM * 0.25); // long range boom + } + } + else if(req == WR_PRECACHE) + { + precache_sound("weapons/fireball_impact2.wav"); + } else if (req == WR_SUICIDEMESSAGE) { if(w_deathtype & HITTYPE_SECONDARY) - w_deathtypestring = "forgot about some firemine"; + w_deathtypestring = "%s forgot about some firemine"; else - w_deathtypestring = "should have used a smaller gun"; + w_deathtypestring = "%s should have used a smaller gun"; } else if (req == WR_KILLMESSAGE) { if(w_deathtype & HITTYPE_SECONDARY) { if(w_deathtype & HITTYPE_HEADSHOT) - w_deathtypestring = "tried to catch #'s firemine"; + w_deathtypestring = "%s tried to catch %s's firemine"; else - w_deathtypestring = "fatefully ignored #'s firemine"; + w_deathtypestring = "%s fatefully ignored %s's firemine"; } else { if(w_deathtype & HITTYPE_BOUNCE) { if(w_deathtype & HITTYPE_SPLASH) // BFG effect - { - w_deathtypestring = "could not hide from #'s fireball"; - } + w_deathtypestring = "%s could not hide from %s's fireball"; else // laser - { - w_deathtypestring = "saw the pretty lights of #'s fireball"; - } + w_deathtypestring = "%s saw the pretty lights of %s's fireball"; } else if(w_deathtype & HITTYPE_SPLASH) - w_deathtypestring = "got too close to #'s fireball"; + w_deathtypestring = "%s got too close to %s's fireball"; else - w_deathtypestring = "tasted #'s fireball"; + w_deathtypestring = "%s tasted %s's fireball"; } } - else if (req == WR_RESETPLAYER) - { - self.fireball_primarytime = time; - } return TRUE; -}; +} +#endif #endif