X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fvehicles%2Fraptor.qc;h=1a9a33633332787864e7da5e69ee4903ac0a7341;hb=ba70b09b56e7cf370a584fb759baabf077701f3b;hp=de5c7dfcd0fee235b3d86ec7ae431a39d9f78ce4;hpb=8952f4c63ed5480c61515b302871b22da9042a92;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index de5c7dfcd..1a9a33633 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -1,7 +1,7 @@ #ifdef SVQC #define RAPTOR_MIN '-80 -80 0' #define RAPTOR_MAX '80 80 70' - +//#define RAPTOR_ENGINE "sound/vehicles/raptor.wav" float autocvar_g_vehicle_raptor_respawntime; float autocvar_g_vehicle_raptor_movestyle; @@ -195,8 +195,8 @@ void raptor_think() void raptor_enter() { self.owner.PlayerPhysplug = raptor_takeoff; - self.movetype = MOVETYPE_FLY; - self.solid = SOLID_BBOX; + self.movetype = MOVETYPE_BOUNCEMISSILE; + self.solid = SOLID_SLIDEBOX; self.owner.vehicle_health = (self.vehicle_health / autocvar_g_vehicle_raptor_health); self.owner.vehicle_shield = (self.vehicle_shield / autocvar_g_vehicle_raptor_shield); self.velocity_z = 1; // Nudge upwards to takeoff sequense can work. @@ -237,6 +237,7 @@ void raptor_land() void raptor_exit(float eject) { + vector spot; self.tur_head.exteriormodeltoclient = world; if(self.deadflag == DEAD_NO) @@ -251,22 +252,34 @@ void raptor_exit(float eject) makevectors(self.angles); if(eject) { - setorigin(self.owner,self.origin + v_forward * 100 + '0 0 64'); + spot = self.origin + v_forward * 100 + '0 0 64'; + spot = vehicles_findgoodexit(spot); + setorigin(self.owner , spot); self.owner.velocity = (v_up + v_forward * 0.25) * 750; } else - setorigin(self.owner,self.origin - v_forward * 200 + '0 0 64'); - + { + spot = self.origin - v_forward * 200 + '0 0 64'; + spot = vehicles_findgoodexit(spot); + setorigin(self.owner , spot); + } + self.owner = world; } float raptor_takeoff() { entity player, raptor; - + player = self; raptor = self.vehicle; self = raptor; + + if(self.sound_nexttime < time) + { + self.sound_nexttime = time + 7.955812; //soundlength("vehicles/raptor_fly.wav"); + sound (self, CHAN_VOICE, "vehicles/raptor_fly.wav", VOL_BASE, ATTN_NORM); + } // Takeoff sequense if(raptor.frame < 25) @@ -314,7 +327,21 @@ float raptor_frame() player = self; raptor = self.vehicle; self = raptor; - + + ftmp = vlen(self.velocity); + if(ftmp > autocvar_g_vehicle_raptor_speed_forward) + ftmp = 1; + else + ftmp = ftmp / autocvar_g_vehicle_raptor_speed_forward; + + if(fabs(ftmp - self.wait) > 0.2 || self.sound_nexttime < time) + { + self.sound_nexttime = time + 7.955812; //soundlength("vehicles/raptor_fly.wav"); + sound (self, CHAN_VOICE, "vehicles/raptor_fly.wav", 1 - ftmp, ATTN_NORM ); + sound (self, CHAN_PLAYER, "vehicles/raptor_speed.wav", ftmp, ATTN_NORM); + self.wait = ftmp; + } + if(player.BUTTON_USE && raptor.deadflag == DEAD_NO) { self = raptor; @@ -329,13 +356,12 @@ float raptor_frame() player.BUTTON_ATCK = player.BUTTON_ATCK2 = 0; return 1; } - crosshair_trace(player); #if VEHICLES_VIEWROTATE_CROSSHAIR df = vectoangles(normalize(trace_endpos - self.origin + '0 0 32')); if(df_x > 180) df_x -= 360; - if(df_x < -180) df_x += 360; + if(df_x < -180) df_x += 360;-- if(df_y > 180) df_y -= 360; if(df_y < -180) df_y += 360; @@ -616,7 +642,7 @@ void raptor_spawn() self.vehicle_health = autocvar_g_vehicle_raptor_health; self.vehicle_shield = autocvar_g_vehicle_raptor_shield; self.movetype = MOVETYPE_TOSS; - self.solid = SOLID_BBOX; + self.solid = SOLID_SLIDEBOX; self.vehicle_energy = 1; self.bomb1.gun1.avelocity_y = 90; @@ -729,6 +755,8 @@ void raptor_dinit() void spawnfunc_vehicle_raptor() { vehicles_configcheck("vehicle_raptor.cfg", autocvar_g_vehicle_raptor_health); + + if(autocvar_g_vehicle_raptor_shield) self.vehicle_flags |= VHF_HASSHIELD; @@ -749,7 +777,9 @@ void spawnfunc_vehicle_raptor() precache_model ("models/vehicles/clusterbomb.md3"); precache_model ("models/vehicles/clusterbomb_folded.md3"); precache_model ("models/vehicles/raptor_body.dpm"); - + precache_sound ("vehicles/raptor_fly.wav"); + precache_sound ("vehicles/raptor_speed.wav"); + self.think = raptor_dinit; self.nextthink = time + 1; }