]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Some work on scoring.... still have to fix the bug of not displaying the correct...
authorunknown <samual@xonotic.org>
Fri, 19 Nov 2010 07:48:59 +0000 (02:48 -0500)
committerunknown <samual@xonotic.org>
Fri, 19 Nov 2010 07:48:59 +0000 (02:48 -0500)
qcsrc/client/scoreboard.qc
qcsrc/server/mutators/gamemode_keepaway.qc
qcsrc/server/scores_rules.qc

index ec17dfca77efe473c73a5146513c1744f6820fe8..cb93c53257a3d9d08564c3484be83896e3db6a51 100644 (file)
@@ -248,12 +248,12 @@ string HUD_DefaultColumnLayout()
 {
        return strcat( // fteqcc sucks
                "ping pl name | ",
-               "-teams,race,lms/kills -teams,lms/deaths -teams,lms,race/suicides -race,dm,tdm/frags ", // tdm already has this in "score"
+               "-teams,race,lms/kills -teams,lms/deaths -teams,lms,race,keepaway/suicides -race,dm,tdm,keepaway/frags ", // tdm already has this in "score"
                "+ctf/caps +ctf/pickups +ctf/fckills +ctf/returns ",
                "+lms/lives +lms/rank ",
                "+kh/caps +kh/pushes +kh/destroyed ",
                "?+race/laps ?+race/time ?+race/fastest ",
-               "+as/objectives +nexball/faults +nexball/goals ",
+               "+as/objectives +nexball/faults +nexball/goals +keepaway/drops +keepaway/pickups +keepaway/bckills ",
                "-lms,race,nexball/score");
 }
 
index 6435f05e01d0dd07086cd7da872c8424c6deb741..378c45b5e31d3ef91d30535c7763cb7ba114975c 100644 (file)
@@ -4,11 +4,15 @@ void ka_RespawnBall(void);
 
 void ka_Initialize()
 {
+       print("^4ka_Initialize was just called!\n");
+
        if(!g_keepaway)
                return;
                
        precache_sound("keepaway/pickedup.wav");
        precache_sound("keepaway/dropped.wav");
+
+       ScoreRules_keepaway();
        
        entity e;
        e = spawn();
@@ -150,47 +154,39 @@ MUTATOR_HOOKFUNCTION(ka_RemovePlayer)
                ball.owner.kaballcarried = world;
                ball.owner = world;
        }
-       return 1;
-}
-
-/*
-void ka_DropEvent(entity plyr, entity ball)
-{      
-       setattachment(ball, world, "");
-       ball.movetype = MOVETYPE_BOUNCE;
-       ball.solid = SOLID_TRIGGER;
-       ball.wait = time + 1;
-       ball.ctf_droptime = time;
-       ball.think = ka_SpawnBall;
-       ball.nextthink = time + cvar("g_keepawayball_respawntime");
-       ball.touch = ka_TouchEvent;
-       plyr.effects = EF_LOWPRECISION;
-       plyr.alpha = 1.0;
-       ball.alpha = 1.0;
-       setorigin(ball, plyr.origin + '0 0 10');
-       ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom();
-       
-       bprint(plyr.netname, "^7 has dropped the ball!\n");
-       WriteByte(MSG_BROADCAST, SVC_CENTERPRINT);
-       WriteString(MSG_BROADCAST, strcat("\n\n", plyr.netname, "^7 has dropped the ball!\n"));
-       sound(other, CHAN_AUTO, "keepaway/dropped.wav", VOL_BASE, ATTN_NORM);   
        
-       PlayerScore_Add(plyr, SP_KEEPAWAY_DROPS, 1);
+       if((frag_attacker || frag_target) && !(frag_attacker == frag_target)) {
+               if(frag_target.kaballcarried) // get amount of times killing carrier
+                       PlayerScore_Add(frag_attacker, SP_KEEPAWAY_CARRIERKILLS, 1);
+               else if not(frag_attacker.kaballcarried)
+                       if(cvar("g_keepaway_noncarrier_warn"))
+                               centerprint_atprio(frag_attacker, (CENTERPRIO_SPAM + 5), "Killing people while you don't have the ball gives no points!");
        
-       // todo
-       //WaypointSprite_AttachCarrier("ka-ball", ball);
-       //WaypointSprite_Kill(plyr.waypointsprite_attachedforcarrier);
-       
-       ball.owner.kaballcarried = world;
-       ball.owner = world;
+               if(frag_attacker.kaballcarried) // get kills as carrier
+                       PlayerScore_Add(frag_attacker, SP_KEEPAWAY_SCORE, 1);
+       }
+       return 1;
 }
-
-
-void ka_CheckWinner()
+/*
+MUTATOR_HOOKFUNCTION(ka_Scoring)
 {
+       if not(frag_attacker == frag_target)
+       {
+               if(frag_target.kaballcarried) { // get amount of times killing carrier
+                       PlayerScore_Add(frag_attacker, SP_KEEPAWAY_CARRIERKILLS, 1);
+                       //ka_RemovePlayer();
+               }
+               else if not(frag_attacker.kaballcarried)
+                       if(cvar("g_keepaway_noncarrier_warn"))
+                               centerprint_atprio(frag_attacker, (CENTERPRIO_SPAM + 5), "Killing people while you don't have the ball gives no points!");
 
+               if(frag_attacker.kaballcarried) // get kills as carrier
+                       PlayerScore_Add(frag_attacker, SP_KEEPAWAY_SCORE, 1);
+       }
+       return 1;
 }
 
+
 MUTATOR_HOOKFUNCTION(ka_PlayerDies)
 {
        float i;
@@ -243,24 +239,6 @@ MUTATOR_HOOKFUNCTION(ka_PlayerDies)
 
        return 1;
 }
-
-MUTATOR_HOOKFUNCTION(tag_RemovePlayer)
-{
-
-       return 1;
-}
-
-MUTATOR_HOOKFUNCTION(tag_GiveFragsForKill)
-{
-       frag_score = 0; // no frags counted in Tag, maybe later (TODO)
-       return 1;
-}
-
-MUTATOR_HOOKFUNCTION(tag_PlayerPreThink)
-{
-       setcolor(self, 16 * self.tagcolor + self.tagcolor); // prevent cheating by changing player colors
-       return 1;
-}
 */
 
 
index dcfad174d0d233868863e3f3b4e700eeea21408a..78b6560f9f2c45216e7f5b561ca99ee68ff4734e 100644 (file)
@@ -195,6 +195,7 @@ void ScoreRules_nexball(float teams)
 #define SP_KEEPAWAY_SCORE 7
 void ScoreRules_keepaway()
 {
+       print("^4ScoreRules_keepaway was just called!\n");
        ScoreRules_basics(0, SFL_SORT_PRIO_PRIMARY, 0, FALSE);
        ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_SCORE,                "score",        SFL_SORT_PRIO_PRIMARY);
        ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_PICKUPS,      "pickups",  0);