pos = Scoreboard_DrawMedal(pos, "gfx/medal/accuracy", height, pl.(scores(SP_MEDAL_ACCURACY)));
pos = Scoreboard_DrawMedal(pos, "gfx/medal/assist", height, pl.(scores(SP_MEDAL_ASSIST)));
+ pos = Scoreboard_DrawMedal(pos, "gfx/medal/capture", height, pl.(scores(SP_MEDAL_CAPTURE)));
pos = Scoreboard_DrawMedal(pos, "gfx/medal/defense", height, pl.(scores(SP_MEDAL_DEFENSE)));
pos = Scoreboard_DrawMedal(pos, "gfx/medal/perfect", height, pl.(scores(SP_MEDAL_PERFECT)));
if(!old_time || new_time < old_time)
GameRules_scoring_add(player, CTF_CAPTIME, new_time - old_time);
+ Give_Medal(player, CAPTURE);
+
// announcer
WinningConditionHelper(NULL);
if (Score_NewLeader())
// Killing an enemy flag carrier
GameRules_scoring_add_team(frag_attacker, SCORE, ((SAME_TEAM(frag_attacker, frag_target)) ? -autocvar_g_ctf_score_kill : autocvar_g_ctf_score_kill));
GameRules_scoring_add(frag_attacker, CTF_FCKILLS, 1);
+ } else if(frag_attacker.flagcarried) {
Give_Medal(frag_attacker, DEFENSE);
} else {
entity tmp_entity;
MSG_MEDAL_NOTIF(IMPRESSIVE, N__ALWAYS, "impressive", ANNCE_ACHIEVEMENT_IMPRESSIVE)
MSG_MEDAL_NOTIF(YODA, N__ALWAYS, "yoda", ANNCE_ACHIEVEMENT_YODA)
+ MSG_MEDAL_NOTIF(CAPTURE, N__ALWAYS, "capture", NULL)
MSG_MEDAL_NOTIF(PERFECT, N__ALWAYS, "perfect", ANNCE_ACHIEVEMENT_PERFECT)
MSG_MEDAL_NOTIF(ACCURACY, N__ALWAYS, "accuracy", ANNCE_ACHIEVEMENT_ACCURACY)
case MSG_MEDAL:
{
centerprint_Medal(notif.nent_icon, f1);
- Local_Notification_sound(notif.nent_msgannce.nent_channel, notif.nent_msgannce.nent_snd, notif.nent_msgannce.nent_vol, notif.nent_msgannce.nent_position);
+ if(notif.nent_msgannce)
+ Local_Notification_sound(
+ notif.nent_msgannce.nent_channel,
+ notif.nent_msgannce.nent_snd,
+ notif.nent_msgannce.nent_vol,
+ notif.nent_msgannce.nent_position);
break;
}
}
Local_Notification_Queue_Add(
net_type,
notif,
- MSG_MEDAL_TIME,
+ (notif.nent_msgannce ? MSG_MEDAL_TIME : 0),
f1);
break;
}
REGISTER_SP(MEDAL_ACCURACY);
REGISTER_SP(MEDAL_ASSIST);
+REGISTER_SP(MEDAL_CAPTURE);
REGISTER_SP(MEDAL_DEFENSE);
REGISTER_SP(MEDAL_PERFECT);