]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix turretremove & buffturret commands
authorMario <mario.mario@y7mail.com>
Sat, 26 Jan 2013 11:30:23 +0000 (22:30 +1100)
committerMario <mario.mario@y7mail.com>
Sat, 26 Jan 2013 11:30:23 +0000 (22:30 +1100)
commands.cfg
qcsrc/server/mutators/gamemode_td.qc
qcsrc/server/mutators/gamemode_td.qh

index 091cf49ee51c4db04c787a284155e90c154ec596..60ff9af08958421511d136ae5f0a1577dc6b3267 100644 (file)
@@ -174,6 +174,7 @@ alias sandbox "cmd g_sandbox ${* ?}"
 alias spawnturret "cmd turretspawn ${* ?}"
 alias debugmonsters "cmd debugmonsters ${* ?}"
 alias upgradeturret "cmd buffturret ${* ?}"
+alias rmturret "cmd turretremove ${* ?}"
 
 
 // ============================================================
index 4d4276c050424faea3a602aa6a7e764d3e2c6199..5d1149701bc205f0220b33639f392faa3db8141b 100644 (file)
@@ -711,42 +711,6 @@ MUTATOR_HOOKFUNCTION(td_PlayerDamage_Calculate)
        if((frag_target.turrcaps_flags & TFL_TURRCAPS_ISTURRET) && !(DEATH_ISMONSTER(frag_deathtype) || frag_attacker.turrcaps_flags & TFL_TURRCAPS_SUPPORT))
                frag_damage = 0;
                
-       if((frag_target.turrcaps_flags & TFL_TURRCAPS_ISTURRET) && frag_attacker == frag_target.realowner && frag_target.realowner.classname == STR_PLAYER)
-       {
-               if(frag_attacker.turret_removemode)
-               {
-                       frag_attacker.turret_cnt -= 1;
-                       frag_attacker.turret_removemode = 0;
-                       sprint(frag_attacker, strcat("You removed your ", frag_target.netname, "\n"));
-                       remove(frag_target);
-                       return FALSE;
-               }
-               else if(frag_attacker.turret_buffmode)
-               {
-                       if(frag_attacker.ammo_fuel < 100)       
-                       {
-                               sprint(frag_attacker, "You need 100 fuel to increase this turret's power.\n");
-                               frag_attacker.turret_buffmode = 0;
-                               return FALSE;
-                       }
-                       else if(frag_target.turret_buff >= 3)
-                       {
-                               sprint(frag_attacker, "This turret cannot be buffed up any higher.\n");
-                               frag_attacker.turret_buffmode = 0;
-                               return FALSE;
-                       }
-                       
-                       frag_attacker.ammo_fuel -= 100;
-                       
-                       buffturret(frag_target, 1.2);
-                       
-                       frag_attacker.turret_buffmode = 0;
-                       sprint(frag_attacker, "Turret power increased by 20%!\n");
-                       return FALSE;
-               }
-               return FALSE;
-       }
-               
        return TRUE;
 }
 
@@ -927,6 +891,8 @@ MUTATOR_HOOKFUNCTION(td_TurretSpawn)
 MUTATOR_HOOKFUNCTION(td_PlayerCommand)
 {
        if(MUTATOR_RETURNVALUE) { return FALSE; } // command was already handled?
+       makevectors(self.v_angle);
+       WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 100, MOVE_NORMAL, self);
        if(cmd_name == "turretspawn")
        {
                if(argv(1) == "list")
@@ -945,8 +911,6 @@ MUTATOR_HOOKFUNCTION(td_PlayerCommand)
                        sprint(self, sprintf("Can't spawn more than %d turrets.\n", max_turrets));
                        return TRUE;
                }
-               makevectors(self.v_angle);
-               WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 100, MOVE_NORMAL, self);
                switch(argv(1))
                {
                        case "plasma":
@@ -992,14 +956,38 @@ MUTATOR_HOOKFUNCTION(td_PlayerCommand)
        }
        if(cmd_name == "buffturret")
        {
-               sprint(self, "Shoot your turret to buff it up!\n");
-               self.turret_buffmode = 1;
+               if(trace_ent.realowner != self || !(trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET))
+               {
+                       sprint(self, "You need to aim at your turret to upgrade it\n");
+                       return TRUE;
+               }
+               if(self.ammo_fuel < 100)        
+               {
+                       sprint(self, "You need 100 fuel to increase this turret's power\n");
+                       return TRUE;
+               }
+               if(trace_ent.turret_buff >= 3)
+               {
+                       sprint(self, "This turret cannot be buffed up any higher\n");
+                       return TRUE;
+               }
+               
+               self.ammo_fuel -= 100;
+               buffturret(trace_ent, 1.2);
+               sprint(self, "Turret power increased by 20%!\n");
+               
                return TRUE;
        }
        if(cmd_name == "turretremove")
        {
-               sprint(self, "Shoot your turret to remove it\n");
-               self.turret_removemode = 1;
+               if((trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET) && trace_ent.realowner == self)
+               {
+                       self.turret_cnt -= 1;
+                       sprint(self, strcat("You removed your ", trace_ent.netname, "\n"));
+                       remove(trace_ent);
+                       return TRUE;
+               }
+               sprint(self, "You need to aim at your turret to remove it\n");
                return TRUE;
        }
        if(cmd_name == "debugmonsters")
index e6ece9698110dfe18dc769e3a55b358286e77e64..557e049cb68a2bc2efb28b8dcdcc48ed17ef9d08 100644 (file)
@@ -11,8 +11,6 @@ float max_turrets;
 .float drop_size;
 
 // Turret defs
-.float turret_removemode;
-.float turret_buffmode;
 .float turret_buff;
 
 // TD defs