]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Give some touched items to the rider while riding monsters
authorMario <zacjardine@y7mail.com>
Sat, 7 Feb 2015 17:10:58 +0000 (04:10 +1100)
committerMario <zacjardine@y7mail.com>
Sat, 7 Feb 2015 17:10:58 +0000 (04:10 +1100)
qcsrc/server/mutators/mutator_buffs.qc
qcsrc/server/mutators/mutator_piggyback.qc
qcsrc/server/t_items.qc

index c5fcefd9ec311331b7f51de4e29cd356cdea650a..84b400dae6c0c03cb832896b710185b85065f744 100644 (file)
@@ -131,6 +131,11 @@ void buff_Touch()
                return;
        }
 
+       if(IS_MONSTER(other))
+       if(cvar("g_piggyback"))
+       if(other.piggybacker)
+               other = other.piggybacker;
+
        if(cvar("g_piggyback"))
        if(other.buffs)
        if(other.buffs == self.buffs || !other.cvar_cl_buffs_autoreplace)
index da8aacc75f031596952d3e5f98b3f8202f81d128..ea8cbfad3f4d63334865a0112af2204aff30cd58 100644 (file)
@@ -170,17 +170,17 @@ MUTATOR_HOOKFUNCTION(pb_PlayerThink)
                pb_FixPBEnt(self);
 
        if(IS_MONSTER(self.pbhost))
-       if(self.movement || (self.BUTTON_JUMP || self.BUTTON_CROUCH))
-       if(!self.pbhost.enemy)
+       if(self.movement || self.BUTTON_JUMP || self.BUTTON_CROUCH)
+       //if(!self.pbhost.enemy) // if player is trying to move, don't override
        {
                float forw, rit, updown = 0;
                vector wishvel = '0 0 0';
 
                makevectors(self.angles);
                if(self.BUTTON_JUMP)
-                       updown = 500;
+                       updown = 300;
                else if(self.BUTTON_CROUCH)
-                       updown = -500;
+                       updown = -300;
 
                if(self.movement)
                {
index 5e33698b353ce297fecdc3d58bec0c416fa8b55e..31799ac164d4fff7e6140deab34076fe5481cd50 100644 (file)
@@ -638,6 +638,9 @@ void Item_Touch (void)
                }
        }
 
+       if(cvar("g_piggyback") && IS_MONSTER(other) && other.piggybacker && IS_PLAYER(other.piggybacker))
+               other = other.piggybacker; // the piggyback mutator hook will do the rest
+
        if (!IS_PLAYER(other))
                return;
        if (other.frozen)