From: unknown Date: Fri, 19 Nov 2010 07:48:59 +0000 (-0500) Subject: Some work on scoring.... still have to fix the bug of not displaying the correct... X-Git-Tag: xonotic-v0.1.0preview~86^2~2^2~1^2~30 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a8e1109e34f67382b0c7d1872e879f603f337075;p=xonotic%2Fxonotic-data.pk3dir.git Some work on scoring.... still have to fix the bug of not displaying the correct columns, but that'll have to be tomorrow. Lots of cleaning up is going to need done soon as well. --- diff --git a/qcsrc/client/scoreboard.qc b/qcsrc/client/scoreboard.qc index ec17dfca7..cb93c5325 100644 --- a/qcsrc/client/scoreboard.qc +++ b/qcsrc/client/scoreboard.qc @@ -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"); } diff --git a/qcsrc/server/mutators/gamemode_keepaway.qc b/qcsrc/server/mutators/gamemode_keepaway.qc index 6435f05e0..378c45b5e 100644 --- a/qcsrc/server/mutators/gamemode_keepaway.qc +++ b/qcsrc/server/mutators/gamemode_keepaway.qc @@ -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; -} */ diff --git a/qcsrc/server/scores_rules.qc b/qcsrc/server/scores_rules.qc index dcfad174d..78b6560f9 100644 --- a/qcsrc/server/scores_rules.qc +++ b/qcsrc/server/scores_rules.qc @@ -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);