diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index ff0d03626f8..c8f519c0711 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -58,7 +58,7 @@ proc/get_all_admin_clients()
if(M && M.client && M.client.holder)
if(usr.client.holder)
var/afk = 0
- if( M.client.inactivity > 3000 ) //3000 deciseconds = 300 seconds = 5 minutes
+ if( M.client.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
afk = 1
if(isobserver(M))
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " (as [M.client.fakekey])" : ""] - Observing [afk ? "(AFK)" : ""]"
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 065d2c116ac..4f6b03097b6 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -80,11 +80,16 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
j++
msg = dd_list2text(msglist, " ")
+ var/admin_number = 0
+ var/admin_number_afk = 0
if(mob)
var/ref_mob = "\ref[src.mob]"
for (var/client/X)
if (X.holder)
+ admin_number++
+ if( X.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
+ admin_number_afk++
if(X.sound_adminhelp)
X << 'adminhelp.ogg'
var/msg_to_send = "\blue HELP: [key_name(src, X)] (?) (PP) (VV) (SM) (JMP) (CA): [msg]"
@@ -95,6 +100,9 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
var/ref_client = "\ref[src]"
for (var/client/X)
if (X.holder)
+ admin_number++
+ if( X.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
+ admin_number_afk++
if(X.sound_adminhelp)
X << 'adminhelp.ogg'
var/msg_to_send = "\blue HELP: [key_name(src, X)] (VV) (CA): [msg]"
@@ -103,10 +111,14 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
X << msg_to_send
src << "PM to-Admins: [original_msg]"
- log_admin("HELP: [key_name(src)]: [original_msg]")
+ log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number] non-AFK admins.")
if(tension_master)
tension_master.new_adminhelp()
- send2irc(ckey, original_msg)
+ if((admin_number - admin_number_afk) <= 0)
+ if(!admin_number_afk)
+ send2irc(ckey, "[original_msg] - No admins online")
+ else
+ send2irc(ckey, "[original_msg] - All admins AFK ([admin_number_afk])")
feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
diff --git a/code/setup.dm b/code/setup.dm
index e973a499e3e..e2b5de75872 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -396,4 +396,7 @@ var/list/liftable_structures = list(\
#define BANTYPE_PERMA 1
#define BANTYPE_TEMP 2
#define BANTYPE_JOB_PERMA 3
-#define BANTYPE_JOB_TEMP 4
\ No newline at end of file
+#define BANTYPE_JOB_TEMP 4
+
+//The number of deciseconds which someone needs to be inactive to be classified as AFK:
+#define AFK_THRESHOLD 3000
\ No newline at end of file