seta notification_INFO_WEAPON_VAPORIZER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_VORTEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-// MSG_CENTER notifications (count = 241):
+// MSG_CENTER notifications (count = 243):
seta notification_CENTER_ALONE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_ATTACKING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_DEFENDING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_KEYHUNT_SCAN "1" "0 = off, 1 = centerprint"
seta notification_CENTER_KEYHUNT_START "1" "0 = off, 1 = centerprint"
seta notification_CENTER_LMS_NOLIVES "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_LMS_VISIBLE_LEADER "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_LMS_VISIBLE_OTHER "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MISSING_PLAYERS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MISSING_TEAMS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MOTD "1" "0 = off, 1 = centerprint"
seta notification_show_sprees_info_newline "1" "Show attacker spree information for MSG_INFO messages on a separate line than the death notification itself"
seta notification_show_sprees_info_specialonly "1" "Don't show attacker spree information in MSG_INFO messages if it isn't an achievement"
-// Notification counts (total = 839): MSG_ANNCE = 80, MSG_INFO = 334, MSG_CENTER = 241, MSG_MULTI = 156, MSG_CHOICE = 28
+// Notification counts (total = 841): MSG_ANNCE = 80, MSG_INFO = 334, MSG_CENTER = 243, MSG_MULTI = 156, MSG_CHOICE = 28
return;
}
+ bool visible_leaders = STAT(OBJECTIVE_STATUS);
string pic = "player_neutral";
vector color = '1 1 1';
+ if (visible_leaders)
+ drawpic_aspect_skin(myPos, "flag_stalemate", vec2(0.5 * mySize.x, mySize.y), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawpic_aspect_skin(myPos, pic, vec2(0.5 * mySize.x, mySize.y), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawstring_aspect(myPos + eX * 0.5 * mySize.x, ftos(stat), vec2(0.5 * mySize.x, mySize.y), color, panel_fg_alpha, DRAWFLAG_NORMAL);
}
int autocvar_g_lms_dynamic_vampire_min_lives_diff;
.float lms_leader;
+int lms_leaders;
+bool lms_visible_leaders;
+bool lms_visible_leaders_prev;
// main functions
int LMS_NewPlayerLives()
if(IS_SPEC(player))
return false; // we don't want spectators of leaders to see the attached waypoint on the top of their screen
- float leader_time = autocvar_g_lms_leader_wp_time;
- float leader_repeat_time = leader_time + autocvar_g_lms_leader_wp_time_repeat;
- if (time % leader_repeat_time > leader_time)
+ if (!lms_visible_leaders)
return false;
return true;
player.frags = FRAGS_SPECTATOR;
}
-int lms_leaders = 0;
MUTATOR_HOOKFUNCTION(lms, PlayerPreThink)
{
entity player = M_ARGV(0, entity);
MUTATOR_HOOKFUNCTION(lms, SV_StartFrame)
{
+ float leader_time = autocvar_g_lms_leader_wp_time;
+ float leader_repeat_time = leader_time + autocvar_g_lms_leader_wp_time_repeat;
+ lms_visible_leaders_prev = lms_visible_leaders;
+ lms_visible_leaders = (time % leader_repeat_time < leader_time);
+
lms_leaders = 0;
FOREACH_CLIENT(true, {
+ STAT(OBJECTIVE_STATUS, it) = lms_visible_leaders;
if (IS_PLAYER(it) && it.frags != FRAGS_PLAYER_OUT_OF_GAME)
{
if (it.lms_leader)
WaypointSprite_UpdateTeamRadar(it.waypointsprite_attachedforcarrier, RADARICON_FLAGCARRIER, pl_color);
WaypointSprite_Ping(it.waypointsprite_attachedforcarrier);
}
+ if (!lms_visible_leaders_prev && lms_visible_leaders && IS_REAL_CLIENT(it))
+ Send_Notification(NOTIF_ONE, it, MSG_CENTER, CENTER_LMS_VISIBLE_LEADER);
lms_leaders++;
}
}
else
{
+ if (IS_PLAYER(it) && it.frags != FRAGS_PLAYER_OUT_OF_GAME)
+ {
+ if (!lms_visible_leaders_prev && lms_visible_leaders && IS_REAL_CLIENT(it))
+ Send_Notification(NOTIF_ONE, it, MSG_CENTER, CENTER_LMS_VISIBLE_OTHER);
+ }
if (it.waypointsprite_attachedforcarrier)
WaypointSprite_Kill(it.waypointsprite_attachedforcarrier);
}
MULTITEAM_CENTER(KEYHUNT_START, N_ENABLE, 0, 0, "", CPID_KEYHUNT, "0 0", _("^BGYou are starting with the ^TC^TT Key"), "", KEY)
MSG_CENTER_NOTIF(LMS_NOLIVES, N_ENABLE, 0, 0, "", CPID_LMS, "0 0", _("^BGYou have no lives left, you must wait until the next match"), "")
+ MSG_CENTER_NOTIF(LMS_VISIBLE_LEADER, N_ENABLE, 0, 0, "", CPID_LMS, "0 0", _("^BGEnemies can now see you on radar!"), "")
+ MSG_CENTER_NOTIF(LMS_VISIBLE_OTHER, N_ENABLE, 0, 0, "", CPID_LMS, "0 0", _("^BGLeaders can now be seen by enemies on radar!"), "")
MSG_CENTER_NOTIF(MISSING_TEAMS, N_ENABLE, 0, 1, "missing_teams", CPID_MISSING_TEAMS, "-1 0", _("^BGWaiting for players to join...\nNeed active players for: %s"), "")
MSG_CENTER_NOTIF(MISSING_PLAYERS, N_ENABLE, 0, 1, "f1", CPID_MISSING_PLAYERS, "-1 0", _("^BGWaiting for %s player(s) to join..."), "")