if((announcement != previous_announcement) || (time >= (previous_announcement_time + autocvar_cl_announcer_antispam)))
{
sound(world, CH_INFO, strcat("announcer/", autocvar_cl_announcer, "/", announcement, ".wav"), VOL_BASEVOICE, ATTN_NONE);
- print(strcat("announcement: '", announcement, "' at time: ", ftos(time), ". \n"));
- previous_announcement = announcement;
+ if(previous_announcement) { strunzone(previous_announcement); }
+
+ previous_announcement = strzone(announcement);
previous_announcement_time = time;
}
}
void Announcer_Countdown()
{
float starttime = getstatf(STAT_GAMESTARTTIME);
+ float roundstarttime = getstatf(STAT_ROUNDSTARTTIME);
+ if(roundstarttime == -1)
+ {
+ remove(self);
+ return;
+ }
+ if(roundstarttime >= starttime)
+ starttime = roundstarttime;
+ if(starttime <= time && roundstarttime != starttime) // game start time has passed
+ announcer_5min = announcer_1min = FALSE; // reset maptime announcers now as well
+
float countdown = (starttime - time);
float countdown_rounded = floor(0.5 + countdown);
-
+
if(countdown <= 0) // countdown has finished, starttime is now
{
- if (!spectatee_status)
- centerprint_generic(CPID_GAME_STARTING, _("^1Begin!"), 1, 0);
+ Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_BEGIN);
Announcer_Play("begin");
- announcer_5min = announcer_1min = FALSE; // reset maptime announcers now as well
remove(self);
return;
}
else // countdown is still going
{
- if (!spectatee_status)
- centerprint_generic(CPID_GAME_STARTING, _("^1Game starts in %d seconds"), 1, countdown_rounded);
+ if(roundstarttime == starttime)
+ Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_ROUNDSTART, countdown_rounded);
+ else
+ Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_GAMESTART, countdown_rounded);
if(countdown_rounded <= 3 && countdown_rounded >= 1)
Announcer_Play(ftos(countdown_rounded));
void Announcer_Gamestart()
{
float startTime = getstatf(STAT_GAMESTARTTIME);
-
+ float roundstarttime = getstatf(STAT_ROUNDSTARTTIME);
+ if(roundstarttime > startTime)
+ startTime = roundstarttime;
+
if(previous_game_starttime != startTime)
{
if((time + 5.0) < startTime) // if connecting to server while restart was active don't always play prepareforbattle
Announcer_Play("prepareforbattle");
-
+
if(time < startTime)
{
entity e;
{
float timelimit = getstatf(STAT_TIMELIMIT);
float timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
- float warmup_timeleft;
+ float warmup_timeleft = 0;
if(warmup_stage)
if(autocvar_g_warmup_limit > 0)
}
}
-float redflag_prev;
-float blueflag_prev;
-void carrierAnnouncer() {
- float stat_items, redflag, blueflag;
- float pickup;
- string item;
-
- if not(autocvar_cl_notify_carried_items)
- return;
-
- stat_items = getstati(STAT_ITEMS);
-
- redflag = (stat_items/IT_RED_FLAG_TAKEN) & 3;
- blueflag = (stat_items/IT_BLUE_FLAG_TAKEN) & 3;
-
- if (redflag == 3 && redflag != redflag_prev) {
- item = _("^1RED^7 flag");
- pickup = (redflag_prev == 2);
- }
-
- if (blueflag == 3 && blueflag != blueflag_prev) {
- item = _("^4BLUE^7 flag");
- pickup = (blueflag_prev == 2);
- }
-
- if (item)
- {
- if (pickup) {
- if (autocvar_cl_notify_carried_items & 2)
- centerprint(sprintf(_("You picked up the %s!"), item));
- }
- else {
- if (autocvar_cl_notify_carried_items & 1)
- centerprint(sprintf(_("You got the %s!"), item));
- }
- }
-
- blueflag_prev = blueflag;
- redflag_prev = redflag;
-}
-
void Announcer()
{
Announcer_Gamestart();
Announcer_Time();
- carrierAnnouncer();
}
void Announcer_Precache ()
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/yoda.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/amazing.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/awesome.wav"));
- precache_sound (strcat("announcer/", autocvar_cl_announcer, "/headshot.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/impressive.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/prepareforbattle.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/voteaccept.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/votecall.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/votefail.wav"));
-}
\ No newline at end of file
+}