/obj/admins/proc/player_panel_new()//The new one if (!usr.client.holder) return var/dat = "Player Panel" //javascript, the part that does most of the work~ dat += {" "} //body tag start + onload and onkeypress (onkeyup) javascript event calls dat += "" //title + search bar dat += {"
Player panel
Hover over a line to see more information

Search:
"} //player table header dat += {" "} var/list/mobs = sortmobs() var/i = 1 for(var/mob/M in mobs) if(M.ckey) var/color = "#e6e6e6" if(i%2 == 0) color = "#f2f2f2" var/is_antagonist = is_special_character(M) var/M_job = "" if(isliving(M)) if(iscarbon(M)) //Carbon stuff if(ishuman(M)) M_job = M.job else if(ismetroid(M)) M_job = "Metroid" else if(ismonkey(M)) M_job = "Moneky" else if(isalien(M)) //aliens if(islarva(M)) M_job = "Alien larva" else M_job = "Alien" else M_job = "Carbon-based" else if(issilicon(M)) //silicon if(isAI(M)) M_job = "AI" else if(ispAI(M)) M_job = "pAI" else if(isrobot(M)) M_job = "Cyborg" else M_job = "Silicon-based" else if(isanimal(M)) //simple animals if(iscorgi(M)) M_job = "Corgi" else M_job = "Animal" else M_job = "Living" else if(istype(M,/mob/new_player)) M_job = "New player" else if(isobserver(M)) M_job = "Ghost" M_job = dd_replacetext(M_job, "'", "") M_job = dd_replacetext(M_job, "\"", "") M_job = dd_replacetext(M_job, "\\", "") var/M_name = M.name M_name = dd_replacetext(M_name, "'", "") M_name = dd_replacetext(M_name, "\"", "") M_name = dd_replacetext(M_name, "\\", "") var/M_rname = M.real_name M_rname = dd_replacetext(M_rname, "'", "") M_rname = dd_replacetext(M_rname, "\"", "") M_rname = dd_replacetext(M_rname, "\\", "") var/M_key = M.key M_key = dd_replacetext(M_key, "'", "") M_key = dd_replacetext(M_key, "\"", "") M_key = dd_replacetext(M_key, "\\", "") //output for each mob dat += {" "} i++ //player table ending dat += {"
[M_name] - [M_rname] - [M_key] ([M_job])
"} usr << browse(dat, "window=players;size=600x480") //The old one /obj/admins/proc/player_panel_old() if (!usr.client.holder) return var/dat = "Player Menu" dat += "" //add to this if wanting to add back in IP checking //add if you want to know their ip to the lists below var/list/mobs = sortmobs() for(var/mob/M in mobs) if(!M.ckey) continue dat += "" if(isAI(M)) dat += "" else if(isrobot(M)) dat += "" else if(ishuman(M)) dat += "" else if(istype(M, /mob/living/silicon/pai)) dat += "" else if(istype(M, /mob/new_player)) dat += "" else if(isobserver(M)) dat += "" else if(ismonkey(M)) dat += "" else if(isalien(M)) dat += "" else dat += "" if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(H.mind && H.mind.assigned_role) dat += "" else dat += "" dat += {" "} switch(is_special_character(M)) if(0) dat += {""} if(1) dat += {""} if(2) dat += {""} dat += "
NameReal NameAssigned JobKeyOptionsPMTraitor?
IP:(IP: [M.lastKnownIP])
[M.name]AICyborg[M.real_name]pAINew PlayerGhostMonkeyAlienUnknown[H.mind.assigned_role]NA[(M.client ? "[M.client]" : "No client")] X PMTraitor?Traitor?Traitor?
" usr << browse(dat, "window=players;size=640x480")