X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fctf.qc;h=d84075cf4c959b725d97de65c6d85b2ec498dcf5;hb=2c960a8eaf5e3c4c95fdf8cff3522701332f05ae;hp=f5835377d982ea2ded4998baf629d3711883b787;hpb=c6c371883dde697e1f237d498c08e09788b6af6b;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/ctf.qc b/qcsrc/server/ctf.qc index f5835377d..d84075cf4 100644 --- a/qcsrc/server/ctf.qc +++ b/qcsrc/server/ctf.qc @@ -416,6 +416,7 @@ void flag_cap_ring_spawn(vector org) shockwave_spawn("models/ctf/shockwavetransring.md3", org - '0 0 15', -0.8, 0, 1); } +// TODO add FlagDamage, replace weird hurttrigger handling inside trigger_hurt code by it void FlagTouch() { if(gameover) return; @@ -423,14 +424,24 @@ void FlagTouch() float t; entity player; string s, s0, h0, h1; + + if (self.cnt == FLAG_CARRY) + return; + + if (self.cnt == FLAG_DROPPED) + { + if(ITEM_TOUCH_NEEDKILL()) + { + self.pain_finished = 0; // return immediately + return; + } + } + if (other.classname != "player") return; if (other.health < 1) // ignore dead players return; - if (self.cnt == FLAG_CARRY) - return; - if (self.cnt == FLAG_BASE) if (other.team == self.team) if (other.flagcarried) // he's got a flag