X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fprojectile.qc;h=7072a1b59af8705fbe4dddeba768bd6c29c2958f;hb=58b26c0a303456441dbb82e608213d2f86d695d8;hp=97debdfacd388320f8ea8e9b325685c17b102a07;hpb=b49d3f3ffff847ec761e15fcc6285a736cddcba3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 97debdfac..7072a1b59 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -213,13 +213,15 @@ void Ent_Projectile() self.velocity_x = ReadCoord(); self.velocity_y = ReadCoord(); self.velocity_z = ReadCoord(); - self.gravity = ReadCoord(); - + if(f & 0x10) + self.gravity = ReadCoord(); + else + self.gravity = 0; // none self.move_origin = self.origin; self.move_velocity = self.velocity; } - if(time == self.spawntime || (self.count & 0x80) || (f & 0x10)) + if(time == self.spawntime || (self.count & 0x80) || (f & 0x08)) { self.trail_oldorigin = self.origin; if(!(self.count & 0x80)) @@ -249,14 +251,14 @@ void Ent_Projectile() self.traileffect = 0; switch(self.cnt) { - case PROJECTILE_ELECTRO: setmodel(self, "models/ebomb.mdl");self.traileffect = particleeffectnum("TR_XONOTICPLASMA"); break; + case PROJECTILE_ELECTRO: setmodel(self, "models/ebomb.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break; case PROJECTILE_ROCKET: setmodel(self, "models/rocket.md3");self.traileffect = particleeffectnum("TR_ROCKET"); self.scale = 2; break; case PROJECTILE_BULLET: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_bullet"); break; case PROJECTILE_BULLET_GLOWING: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_bullet"); break; case PROJECTILE_BULLET_GLOWING_TRACER: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_rifle"); break; case PROJECTILE_CRYLINK: setmodel(self, "models/plasmatrail.mdl");self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break; case PROJECTILE_CRYLINK_BOUNCING: setmodel(self, "models/plasmatrail.mdl");self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break; - case PROJECTILE_ELECTRO_BEAM: setmodel(self, "models/elaser.mdl");self.traileffect = particleeffectnum("TR_XONOTICPLASMA"); break; + case PROJECTILE_ELECTRO_BEAM: setmodel(self, "models/elaser.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break; case PROJECTILE_GRENADE: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_GRENADE"); break; case PROJECTILE_GRENADE_BOUNCING: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_GRENADE"); break; case PROJECTILE_LASER: setmodel(self, "models/laser.mdl");self.traileffect = particleeffectnum(""); break; @@ -268,6 +270,9 @@ void Ent_Projectile() case PROJECTILE_HAGAR_BOUNCING: setmodel(self, "models/hagarmissile.mdl");self.traileffect = particleeffectnum("TR_GRENADE"); self.scale = 0.4; break; case PROJECTILE_FIREBALL: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("fireball"); break; // particle effect is good enough case PROJECTILE_FIREMINE: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("firemine"); break; // particle effect is good enough + case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break; + case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_ROCKET"); break; + case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.scale = 2; self.traileffect = particleeffectnum("TR_ROCKET"); break; default: error("Received invalid CSQC projectile, can't work with this!"); break; @@ -304,6 +309,8 @@ void Ent_Projectile() self.maxs = '0 0 -3'; self.move_movetype = MOVETYPE_BOUNCE; self.move_touch = SUB_Null; + self.move_bounce_factor = g_balance_grenadelauncher_secondary_bouncefactor; + self.move_bounce_stopspeed = g_balance_grenadelauncher_secondary_bouncestop; break; case PROJECTILE_PORTO_RED: self.colormod = '2 1 1'; @@ -337,6 +344,19 @@ void Ent_Projectile() self.mins = '-4 -4 -4'; self.maxs = '4 4 4'; break; + case PROJECTILE_TAG: + loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); + self.mins = '-2 -2 -2'; + self.maxs = '2 2 2'; + break; + case PROJECTILE_FLAC: + self.mins = '-2 -2 -2'; + self.maxs = '2 2 2'; + break; + case PROJECTILE_SEEKER: + self.mins = '-4 -4 -4'; + self.maxs = '4 4 4'; + break; default: break; } @@ -374,9 +394,11 @@ void Projectile_Precache() precache_model("models/laser.mdl"); precache_model("models/plasmatrail.mdl"); precache_model("models/rocket.md3"); + precache_model("models/tagrocket.md3"); precache_model("models/tracer.mdl"); precache_sound("weapons/electro_fly.wav"); precache_sound("weapons/rocket_fly.wav"); precache_sound("weapons/fireball_fly.wav"); precache_sound("weapons/fireball_fly2.wav"); + precache_sound("weapons/tag_rocket_fly.wav"); }