mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
Adds in an "Advanced who"
Adds in an "Advanced who" which lets normal players see if someone is observing/in the lobby/playing.
This commit is contained in:
86
code/game/verbs/advanced_who.dm
Normal file
86
code/game/verbs/advanced_who.dm
Normal file
@@ -0,0 +1,86 @@
|
||||
|
||||
/client/verb/who_advanced()
|
||||
set name = "Advanced Who"
|
||||
set category = "OOC"
|
||||
|
||||
var/msg = "<b>Current Players:</b>\n"
|
||||
|
||||
var/list/Lines = list()
|
||||
|
||||
if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights))
|
||||
for(var/client/C in clients)
|
||||
var/entry = "\t[C.key]"
|
||||
if(C.holder && C.holder.fakekey)
|
||||
entry += " <i>(as [C.holder.fakekey])</i>"
|
||||
entry += " - Playing as [C.mob.real_name]"
|
||||
switch(C.mob.stat)
|
||||
if(UNCONSCIOUS)
|
||||
entry += " - <font color='darkgray'><b>Unconscious</b></font>"
|
||||
if(DEAD)
|
||||
if(isobserver(C.mob))
|
||||
var/mob/observer/dead/O = C.mob
|
||||
if(O.started_as_observer)
|
||||
entry += " - <font color='gray'>Observing</font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
|
||||
var/age
|
||||
if(isnum(C.player_age))
|
||||
age = C.player_age
|
||||
else
|
||||
age = 0
|
||||
|
||||
if(age <= 1)
|
||||
age = "<font color='#ff0000'><b>[age]</b></font>"
|
||||
else if(age < 10)
|
||||
age = "<font color='#ff8c00'><b>[age]</b></font>"
|
||||
|
||||
entry += " - [age]"
|
||||
|
||||
if(is_special_character(C.mob))
|
||||
entry += " - <b><font color='red'>Antagonist</font></b>"
|
||||
|
||||
if(C.is_afk())
|
||||
var/seconds = C.last_activity_seconds()
|
||||
entry += " (AFK - "
|
||||
entry += "[round(seconds / 60)] minutes, "
|
||||
entry += "[seconds % 60] seconds)"
|
||||
|
||||
entry += " (<A HREF='?_src_=holder;adminmoreinfo=\ref[C.mob]'>?</A>)"
|
||||
if(C.is_afk())
|
||||
var/seconds = C.last_activity_seconds()
|
||||
entry += " (AFK - "
|
||||
entry += "[round(seconds / 60)] minutes, "
|
||||
entry += "[seconds % 60] seconds)" //Let's go into the seconds, why not?
|
||||
Lines += entry
|
||||
else
|
||||
for(var/client/C in clients)
|
||||
if(C.holder && C.holder.fakekey)
|
||||
var/entry = "\t[C.key]"
|
||||
var/mob/observer/dead/O = C.mob
|
||||
entry += C.holder.fakekey
|
||||
if(isobserver(O))
|
||||
entry += " - <font color='gray'>Observing</font>"
|
||||
else if(istype(O,/mob/new_player))
|
||||
entry += " - <font color='blue'>In Lobby</font>"
|
||||
else
|
||||
entry += " - <font color='green'>Playing</font>"
|
||||
Lines += entry
|
||||
else
|
||||
var/entry = "\t[C.key]"
|
||||
var/mob/observer/dead/O = C.mob
|
||||
if(isobserver(O)) //Woo, players can see
|
||||
entry += " - <font color='gray'>Observing</font>"
|
||||
else if(istype(O,/mob/new_player))
|
||||
entry += " - <font color='blue'>In Lobby</font>"
|
||||
else
|
||||
entry += " - <font color='green'>Playing</font>"
|
||||
Lines += entry
|
||||
|
||||
for(var/line in sortList(Lines))
|
||||
msg += "[line]\n"
|
||||
|
||||
msg += "<b>Total Players: [length(Lines)]</b>"
|
||||
src << msg
|
||||
Reference in New Issue
Block a user