]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Nicer exit for raptor/spider
authorJakob MG <jakob_mg@hotmail.com>
Wed, 1 Aug 2012 00:05:47 +0000 (02:05 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Wed, 1 Aug 2012 00:05:47 +0000 (02:05 +0200)
qcsrc/server/vehicles/raptor.qc
qcsrc/server/vehicles/spiderbot.qc
qcsrc/server/vehicles/vehicles.qc

index 76caf4b2747afbb9cdec91a3c7c95f6f3f52230c..1e2c3135a0067a68a96f8f5fc9a1a61de34f3f85 100644 (file)
@@ -250,7 +250,7 @@ void raptor_exit(float eject)
 
     if not (self.owner)
         return;
-
+       
        makevectors(self.angles);
        if(eject)
        {
@@ -262,12 +262,24 @@ void raptor_exit(float eject)
        }
        else
        {
-           self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed;
+               if(vlen(self.velocity) > 2 * autocvar_sv_maxairspeed)
+               {
+                       self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed * 2;
+                       self.owner.velocity_z += 200;
+                       spot = self.origin + v_forward * 32 + '0 0 64';
+                       spot = vehicles_findgoodexit(spot);
+               }
+               else
+               {
+                       self.owner.velocity = self.velocity * 0.5;
+                       self.owner.velocity_z += 10;
+                       spot = self.origin - v_forward * 200 + '0 0 64';
+                       spot = vehicles_findgoodexit(spot);
+               }
            self.owner.oldvelocity = self.owner.velocity;
-           spot = self.origin - v_forward * 200 + '0 0 64';
-           spot = vehicles_findgoodexit(spot);
            setorigin(self.owner , spot);
        }
+       
        antilag_clear(self.owner);      
     self.owner = world;
 }
index e715f49fc7ab9a1945acc996e876896fddcfe93e..de0fab17487b1ed606ae38e898a7fd2911e23357 100644 (file)
@@ -586,7 +586,7 @@ void spiderbot_exit(float eject)
         e = e.chain;
     }
 
-    self.velocity   = '0 0 0';
+    //self.velocity   = '0 0 0';
     self.think      = spiderbot_think;
     self.nextthink  = time;
     self.frame      = 5;
@@ -606,13 +606,25 @@ void spiderbot_exit(float eject)
        }
        else
        {
-           self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed;
-           self.owner.oldvelocity = self.owner.velocity;           
-           spot = self.origin - v_forward * 200 + '0 0 64';
-           spot = vehicles_findgoodexit(spot);
+               if(vlen(self.velocity) > autocvar_g_vehicle_spiderbot_speed_strafe)
+               {
+                       self.owner.velocity = normalize(self.velocity) * vlen(self.velocity);
+                       self.owner.velocity_z += 200;
+                       spot = self.origin + v_forward * 128 + '0 0 64';
+                       spot = vehicles_findgoodexit(spot);
+               }
+               else
+               {
+                       self.owner.velocity = self.velocity * 0.5;
+                       self.owner.velocity_z += 10;
+                       spot = self.origin + v_forward * 256 + '0 0 64';
+                       spot = vehicles_findgoodexit(spot);
+               }
+           self.owner.oldvelocity = self.owner.velocity;
            setorigin(self.owner , spot);
        }
-    antilag_clear(self.owner);
+       
+       antilag_clear(self.owner);
     self.owner = world;
 }
 
index c0038f41046c568afc195e95684430fc78eed46b..c2d8b7709269ccc08e5ad418ec439ffe643c7e6b 100644 (file)
@@ -638,7 +638,7 @@ void vehicles_enter()
         msg_entity = other;
         WriteByte (MSG_ONE, SVC_SETVIEWPORT);
         WriteEntity(MSG_ONE, self.vehicle_viewport);
-
+                
         WriteByte (MSG_ONE, SVC_SETVIEWANGLES);
         if(self.tur_head)
         {
@@ -1221,10 +1221,10 @@ float vehicle_initialize(string  net_name,
        addstat(STAT_VEHICLESTAT_SHIELD,  AS_INT, vehicle_shield);
        addstat(STAT_VEHICLESTAT_ENERGY,  AS_INT, vehicle_energy);
 
-       addstat(STAT_VEHICLESTAT_AMMO1,   AS_INT,   vehicle_ammo1);
+       addstat(STAT_VEHICLESTAT_AMMO1,   AS_INT, vehicle_ammo1);
        addstat(STAT_VEHICLESTAT_RELOAD1, AS_INT, vehicle_reload1);
 
-       addstat(STAT_VEHICLESTAT_AMMO2,   AS_INT,   vehicle_ammo2);
+       addstat(STAT_VEHICLESTAT_AMMO2,   AS_INT, vehicle_ammo2);
        addstat(STAT_VEHICLESTAT_RELOAD2, AS_INT, vehicle_reload2);
 
     if(bodymodel == "")