From: Jakob MG Date: Sat, 2 Apr 2011 16:08:05 +0000 (+0200) Subject: csqc projectile types for vehicles, and models X-Git-Tag: xonotic-v0.5.0~199^2~11^2~94 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=70c1a2b3df4418d95de27d5a84c6cdcfe301f167;p=xonotic%2Fxonotic-data.pk3dir.git csqc projectile types for vehicles, and models --- diff --git a/models/vehicles/bomblet.md3 b/models/vehicles/bomblet.md3 new file mode 100644 index 000000000..a45d24af1 Binary files /dev/null and b/models/vehicles/bomblet.md3 differ diff --git a/models/vehicles/clusterbomb.md3 b/models/vehicles/clusterbomb.md3 new file mode 100644 index 000000000..5481c574a Binary files /dev/null and b/models/vehicles/clusterbomb.md3 differ diff --git a/models/vehicles/clusterbomb_fragment.md3 b/models/vehicles/clusterbomb_fragment.md3 new file mode 100644 index 000000000..c2c63c2e0 Binary files /dev/null and b/models/vehicles/clusterbomb_fragment.md3 differ diff --git a/models/vehicles/rocket01.md3 b/models/vehicles/rocket01.md3 new file mode 100644 index 000000000..329f27730 Binary files /dev/null and b/models/vehicles/rocket01.md3 differ diff --git a/models/vehicles/rocket02.md3 b/models/vehicles/rocket02.md3 new file mode 100644 index 000000000..ab408796d Binary files /dev/null and b/models/vehicles/rocket02.md3 differ diff --git a/models/vehicles/rockets.tga b/models/vehicles/rockets.tga new file mode 100644 index 000000000..553fdf0e7 Binary files /dev/null and b/models/vehicles/rockets.tga differ diff --git a/models/vehicles/rockets_gloss.tga b/models/vehicles/rockets_gloss.tga new file mode 100644 index 000000000..d62e764a2 Binary files /dev/null and b/models/vehicles/rockets_gloss.tga differ diff --git a/models/vehicles/rockets_glow.tga b/models/vehicles/rockets_glow.tga new file mode 100644 index 000000000..14c9f3045 Binary files /dev/null and b/models/vehicles/rockets_glow.tga differ diff --git a/models/vehicles/rockets_reflect.tga b/models/vehicles/rockets_reflect.tga new file mode 100644 index 000000000..0c1616657 Binary files /dev/null and b/models/vehicles/rockets_reflect.tga differ diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 96150a0bb..dd87f79a3 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -27,10 +27,12 @@ void Projectile_ResetTrail(vector to) self.trail_oldorigin = to; self.trail_oldtime = time; } + void Projectile_DrawTrail(vector to) { vector from; float t0; + from = self.trail_oldorigin; t0 = self.trail_oldtime; self.trail_oldorigin = to; @@ -294,7 +296,14 @@ void Ent_Projectile() 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_SEEKER"); break; case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.traileffect = particleeffectnum("TR_SEEKER"); break; - case PROJECTILE_RAPTORBOMB: setmodel(self, "models/vehicles/raptor_bomb.dpm"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break; + + case PROJECTILE_RAPTORBOMB: setmodel(self, "models/vehicles/clusterbomb.md3"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break; + case PROJECTILE_RAPTORBOMBLET: setmodel(self, "models/vehicles/bomblet.md3"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break; + case PROJECTILE_RAPTORCANNON: setmodel(self, "models/plasmatrail.mdl"); self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break; + + case PROJECTILE_SPIDERROCKET: setmodel(self, "models/vehicles/rocket02.md3"); self.traileffect = particleeffectnum("TR_ROCKET"); break; + case PROJECTILE_WAKIROCKET: setmodel(self, "models/vehicles/rocket01.md3"); self.traileffect = particleeffectnum("TR_ROCKET"); break; + case PROJECTILE_WAKICANNON: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum(""); break; default: error("Received invalid CSQC projectile, can't work with this!"); break; @@ -389,6 +398,18 @@ void Ent_Projectile() self.mins = '-3 -3 -3'; self.maxs = '3 3 3'; break; + case PROJECTILE_RAPTORBOMBLET: + break; + case PROJECTILE_RAPTORCANNON: + break; + case PROJECTILE_SPIDERROCKET: + loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); + break; + case PROJECTILE_WAKIROCKET: + loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); + break; + case PROJECTILE_WAKICANNON: + break; default: break; } @@ -429,7 +450,12 @@ void Projectile_Precache() precache_model("models/rocket.md3"); precache_model("models/tagrocket.md3"); precache_model("models/tracer.mdl"); - precache_model("models/vehicles/raptor_bomb.dpm"); + + precache_model("models/vehicles/bomblet.md3"); + precache_model("models/vehicles/clusterbomb.md3"); + precache_model("models/vehicles/clusterbomb_fragment.md3"); + precache_model("models/vehicles/rocket01.md3"); + precache_model("models/vehicles/rocket02.md3"); precache_sound("weapons/electro_fly.wav"); precache_sound("weapons/rocket_fly.wav"); diff --git a/qcsrc/client/vehicles/vehicles.qc b/qcsrc/client/vehicles/vehicles.qc index aac436fb0..9ec28d61f 100644 --- a/qcsrc/client/vehicles/vehicles.qc +++ b/qcsrc/client/vehicles/vehicles.qc @@ -300,6 +300,7 @@ void CSQC_RAPTOR_HUD() { dropmark = spawn(); dropmark.owner = self; + dropmark.gravity = 1; } if(reload == 1) diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index 0d19e0320..d5c24313d 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -491,7 +491,13 @@ float PROJECTILE_CRYLINK_BOUNCING = 20; float PROJECTILE_FIREBALL = 21; float PROJECTILE_FIREMINE = 22; float PROJECTILE_BULLET_GLOWING_TRACER = 23; -float PROJECTILE_RAPTORBOMB = 24; + +float PROJECTILE_RAPTORCANNON = 24; +float PROJECTILE_RAPTORBOMB = 25; +float PROJECTILE_RAPTORBOMBLET = 26; +float PROJECTILE_SPIDERROCKET = 27; +float PROJECTILE_WAKIROCKET = 28; +float PROJECTILE_WAKICANNON = 29; float SPECIES_HUMAN = 0; float SPECIES_ROBOT_SOLID = 1; diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc index 69177137e..d5466fc5e 100644 --- a/qcsrc/server/vehicles/racer.qc +++ b/qcsrc/server/vehicles/racer.qc @@ -165,7 +165,7 @@ void racer_fire_cannon(string tagname) pointparticles(particleeffectnum("wakizashi_gun_muzzleflash"), bolt.origin, bolt.velocity, 1); - CSQCProjectile(bolt, TRUE, PROJECTILE_LASER, TRUE); + CSQCProjectile(bolt, TRUE, PROJECTILE_WAKICANNON, TRUE); } void racer_rocket_groundhugger() @@ -292,7 +292,7 @@ void racer_fire_rocket(string tagname, entity trg) rocket.nextthink = time; rocket.enemy = trg; - CSQCProjectile(rocket, TRUE, PROJECTILE_ROCKET, TRUE); + CSQCProjectile(rocket, TRUE, PROJECTILE_WAKIROCKET, TRUE); } .float fire1_waspressed; diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index ad33235a2..43624e407 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -117,17 +117,16 @@ void raptor_bomb_burst() bomblet = spawn(); setorigin(bomblet, self.origin); - bomblet.scale = 0.5; - bomblet.solid = SOLID_TRIGGER; + //bomblet.solid = SOLID_TRIGGER; bomblet.movetype = MOVETYPE_TOSS; bomblet.touch = raptor_bomblet_touch; bomblet.think = raptor_bomblet_boom; bomblet.nextthink = time + 5; - bomblet.owner = self.owner; + bomblet.owner = self.owner; bomblet.realowner = self.realowner; bomblet.velocity = normalize(normalize(self.velocity) + (randomvec() * autocvar_g_vehicle_raptor_bomblet_spread)) * vlen(self.velocity); PROJECTILE_MAKETRIGGER(bomblet); - CSQCProjectile(bomblet, TRUE, PROJECTILE_RAPTORBOMB, TRUE); + CSQCProjectile(bomblet, TRUE, PROJECTILE_RAPTORBOMBLET, TRUE); } remove(self); @@ -165,6 +164,7 @@ void raptor_bombdrop() bomb_1.owner = bomb_2.owner = self; bomb_1.realowner = bomb_2.realowner = self.owner; bomb_1.solid = bomb_2.solid = SOLID_BBOX; + bomb_1.gravity = bomb_2.gravity = 1; PROJECTILE_MAKETRIGGER(bomb_1); PROJECTILE_MAKETRIGGER(bomb_2); @@ -207,7 +207,7 @@ void raptor_fire_cannon(entity gun, string tagname) pointparticles(particleeffectnum("raptor_cannon_muzzleflash"), bolt.origin, bolt.velocity, 1); //pointparticles(particleeffectnum("spiderbot_minigun_muzzleflash"), bolt.origin, bolt.velocity, 1); - CSQCProjectile(bolt, TRUE, PROJECTILE_CRYLINK, TRUE); + CSQCProjectile(bolt, TRUE, PROJECTILE_RAPTORCANNON, TRUE); } void raptor_think() @@ -666,8 +666,8 @@ void raptor_dinit() setattachment(self.vehicle_viewport, world, ""); #endif - setmodel(self.bomb1,"models/vehicles/raptor_bomb.dpm"); - setmodel(self.bomb2,"models/vehicles/raptor_bomb.dpm"); + setmodel(self.bomb1,"models/vehicles/clusterbomb.md3"); + setmodel(self.bomb2,"models/vehicles/clusterbomb.md3"); setmodel(self.gun1, "models/vehicles/raptor_gun.dpm"); setmodel(self.gun2, "models/vehicles/raptor_gun.dpm"); @@ -734,7 +734,7 @@ void spawnfunc_vehicle_raptor() precache_model ("models/vehicles/raptor_gun.dpm"); precache_model ("models/vehicles/spinner.dpm"); precache_model ("models/vehicles/raptor_cockpit.dpm"); - precache_model ("models/vehicles/raptor_bomb.dpm"); + precache_model ("models/vehicles/clusterbomb.md3"); self.think = raptor_dinit; self.nextthink = time + 1; diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc index 090b53149..79d2504d1 100644 --- a/qcsrc/server/vehicles/spiderbot.qc +++ b/qcsrc/server/vehicles/spiderbot.qc @@ -225,7 +225,7 @@ void spiderbot_rocket_do() rocket.solid = SOLID_TRIGGER; rocket.pos1 = trace_endpos; - CSQCProjectile(rocket, FALSE, PROJECTILE_ROCKET, FALSE); // no culling, has fly sound + CSQCProjectile(rocket, FALSE, PROJECTILE_SPIDERROCKET, FALSE); // no culling, has fly sound self.tur_head.frame += 1; if (self.tur_head.frame == 9) diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 1ec83dabb..13b52ce22 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -595,7 +595,6 @@ float vehicle_initialize(string net_name, addstat(STAT_VEHICLESTAT_AMMO2, AS_INT, vehicle_ammo2); addstat(STAT_VEHICLESTAT_RELOAD2, AS_FLOAT, vehicle_reload2); - if(bodymodel == "") error("vehicles: missing bodymodel!"); diff --git a/scripts/vrockets.shader b/scripts/vrockets.shader new file mode 100644 index 000000000..84d071f85 --- /dev/null +++ b/scripts/vrockets.shader @@ -0,0 +1,8 @@ +models/vehicles/rockets +{ + dpreflectcube textures/cubemap/sky + { + models/vehicles/rockets.tga + rgbgen vertex + } +} \ No newline at end of file