diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index b6366dfdb1f..d512c7ddf02 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -3,28 +3,27 @@ set name = "Who" set category = "OOC" - var/msg = "Current Players:\n" - - var/list/Lines = list() + var/msg = "Current Players:
" + var/total_num = 0 if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights)) for(var/client/C in clients) - var/entry = "\t[C.key]" + msg += "\t[C.key]" if(C.holder && C.holder.fakekey) - entry += " (as [C.holder.fakekey])" - entry += " - Playing as [C.mob.real_name]" + msg += " (as [C.holder.fakekey])" + msg += " - Playing as [C.mob.real_name]" switch(C.mob.stat) if(UNCONSCIOUS) - entry += " - Unconscious" + msg += " - Unconscious" if(DEAD) if(isobserver(C.mob)) var/mob/abstract/observer/O = C.mob if(O.started_as_observer) - entry += " - Observing" + msg += " - Observing" else - entry += " - DEAD" + msg += " - DEAD" else - entry += " - DEAD" + msg += " - DEAD" var/age if(isnum(C.player_age)) @@ -37,24 +36,27 @@ else if(age < 10) age = "[age]" - entry += " - [age]" + msg += " - [age]" if(is_special_character(C.mob)) - entry += " - Antagonist" - entry += " (?)" - Lines += entry + msg += " - Antagonist" + msg += " (?)" + msg += "
" + total_num++ else for(var/client/C in clients) if(C.holder && C.holder.fakekey) - Lines += C.holder.fakekey + msg += C.holder.fakekey else - Lines += C.key + msg += C.key + total_num++ + msg += "
" - for(var/line in sortList(Lines)) - msg += "[line]\n" + msg += "Total Players: [total_num]" - msg += "Total Players: [length(Lines)]" - to_chat(src, msg) + var/datum/browser/who_win = new(usr, "who", "Who", 450, 500) + who_win.set_content(msg) + who_win.open() /client/verb/staffwho() set category = "Admin" @@ -90,7 +92,7 @@ if(C.is_afk()) msg += " (AFK)" - msg += "\n" + msg += "
" num_admins_online++ else if(R_MOD & C.holder.rights) //Who shows up in mod/mentor rows. @@ -105,7 +107,7 @@ if(C.is_afk()) modmsg += " (AFK)" - modmsg += "\n" + modmsg += "
" num_mods_online++ else if (R_CCIAA & C.holder.rights) @@ -119,7 +121,7 @@ if (C.is_afk()) cciaamsg += " (AFK)" - cciaamsg += "\n" + cciaamsg += "
" num_cciaa_online++ else if(C.holder.rights & R_DEV) @@ -133,7 +135,7 @@ if(C.is_afk()) devmsg += " (AFK)" - devmsg += "\n" + devmsg += "
" num_devs_online++ else @@ -142,40 +144,42 @@ if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights)) if(!C.holder.fakekey) if(C.is_afk()) - msg += "\t[C.key] is a [C.holder.rank] (AFK)\n" + msg += "\t[C.key] is a [C.holder.rank] (AFK)
" else - msg += "\t[C.key] is a [C.holder.rank]\n" + msg += "\t[C.key] is a [C.holder.rank]
" num_admins_online++ else if (R_MOD & C.holder.rights) if(C.is_afk()) - modmsg += "\t[C.key] is a [C.holder.rank] (AFK)\n" + modmsg += "\t[C.key] is a [C.holder.rank] (AFK)
" else - modmsg += "\t[C.key] is a [C.holder.rank]\n" + modmsg += "\t[C.key] is a [C.holder.rank]
" num_mods_online++ else if(C.holder.rights & R_DEV) if(C.is_afk()) - devmsg += "\t[C.key] is a [C.holder.rank] (AFK)\n" + devmsg += "\t[C.key] is a [C.holder.rank] (AFK)
" else - devmsg += "\t[C.key] is a [C.holder.rank]\n" + devmsg += "\t[C.key] is a [C.holder.rank]
" num_devs_online++ else if (R_CCIAA & C.holder.rights) if(C.is_afk()) - cciaamsg += "\t[C.key] is a [C.holder.rank] (AFK)\n" + cciaamsg += "\t[C.key] is a [C.holder.rank] (AFK)
" else - cciaamsg += "\t[C.key] is a [C.holder.rank]\n" + cciaamsg += "\t[C.key] is a [C.holder.rank]
" num_cciaa_online++ if(discord_bot && discord_bot.active) to_chat(src, "Adminhelps are also sent to Discord. If no admins are available in game try anyway and an admin on Discord may see it and respond.") - msg = "Current Admins ([num_admins_online]):\n" + msg + msg = "Current Admins ([num_admins_online]):
" + msg if(config.show_mods) - msg += "\n Current Moderators ([num_mods_online]):\n" + modmsg + msg += "
Current Moderators ([num_mods_online]):
" + modmsg if (config.show_auxiliary_roles) if (num_cciaa_online) - msg += "\n Current CCIA Agents ([num_cciaa_online]):\n" + cciaamsg + msg += "
Current CCIA Agents ([num_cciaa_online]):
" + cciaamsg if(num_devs_online) - msg += "\n Current Developers ([num_devs_online]):\n" + devmsg + msg += "
Current Developers ([num_devs_online]):
" + devmsg - to_chat(src, msg) + var/datum/browser/staff_win = new(usr, "staffwho", "Staff Who", 450, 500) + staff_win.set_content(msg) + staff_win.open() \ No newline at end of file diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 3078f51c960..227ed63abe2 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -933,7 +933,7 @@ if (0) status = "Alive" if (1) status = "Unconscious" if (2) status = "Dead" - health_description = "Status = [status]" + health_description = "Status: [status]" health_description += "
Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()]" else health_description = "This mob type has no health to speak of." @@ -949,12 +949,24 @@ if(MALE,FEMALE) gender_description = "[M.gender]" else gender_description = "[M.gender]" - to_chat(src.owner, "Info about [M.name]: ") - to_chat(src.owner, "Mob type = [M.type]; Species = [species_description] Gender = [gender_description] Damage = [health_description]") - to_chat(src.owner, "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];") - to_chat(src.owner, "Location = [location_description];") - to_chat(src.owner, "[special_role_description]") - to_chat(src.owner, "(PM) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA)") + var/dat = "Info about [M.name]:
" + dat += "Mob type: [M.type]
" + if(species_description) + dat += "Species: [M.type]
" + if(gender_description) + dat += "Gender: [gender_description]
" + dat += "Damage: [health_description]
" + dat += "Real Name: [M.real_name]
" + dat += "Mind Name: [M.mind?"[M.mind.name]":""]
" + dat += "Key: [M.key]
" + dat += "Location: [location_description]
" + if(special_role_description) + dat += "Special Role Desc: [special_role_description]
" + dat += "(PM) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA)" + + var/datum/browser/extrainfo_win = new(usr, "extrainfo", "Extra Info (M.name)", 450, 500) + extrainfo_win.set_content(dat) + extrainfo_win.open() else if(href_list["adminspawncookie"]) if(!check_rights(R_ADMIN|R_FUN)) return diff --git a/html/changelogs/geeves-who_staffwho.yml b/html/changelogs/geeves-who_staffwho.yml new file mode 100644 index 00000000000..110ca718b68 --- /dev/null +++ b/html/changelogs/geeves-who_staffwho.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "The Who and Staff Who actions now output into a window rather than into the chat." + - admin: "The extra info button for admins now also outputs to a window rather than into the chat." \ No newline at end of file