]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/t_teleporters.qc
BlaXpirits patch for http://dev.xonotic.org/issues/1255
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / t_teleporters.qc
index 8fc1f3454c709c18d7fedbef26852392fe3637ec..25dc837f953a514ce0ad9918b02d6d0bec92adc2 100644 (file)
@@ -131,10 +131,12 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle
                {
                        player.pusher = teleporter.owner;
                        player.pushltime = time + autocvar_g_maxpushtime;
+                       player.istypefrag = player.BUTTON_CHAT;
                }
                else
                {
                        player.pushltime = 0;
+                       player.istypefrag = 0;
                }
 
                player.lastteleporttime = time;
@@ -201,7 +203,13 @@ void Teleport_Touch (void)
        // for gameplay: vehicles can't teleport
        if (other.vehicle_flags & VHF_ISVEHICLE)
                return;
-
+    
+    if(other.vehicle)
+        return;
+        
+    if(other.turrcaps_flags & TFL_TURRCAPS_ISTURRET)
+        return;
+        
        if (other.deadflag != DEAD_NO)
                return;
 
@@ -329,10 +337,11 @@ void WarpZone_PostTeleportPlayer_Callback(entity pl)
 {
        UpdateCSQCProjectileAfterTeleport(pl);
        // "disown" projectiles after teleport
+       if(pl.owner)
        if(pl.owner == pl.realowner)
        {
                if(!(pl.flags & FL_PROJECTILE))
-                       print("A non-projectile got through a warpzone and its owner cleared. It's a \n", pl.classname, ".\n");
+                       print("A non-projectile got through a warpzone and its owner cleared. It's a ", pl.classname, ".\n");
                pl.owner = world;
        }
        if(pl.classname == "player")