/datum/admins/proc/player_panel_new()//The new one if (!usr.client.holder) return var/dat = "Admin 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 - [check_rights(R_ADMIN,0) ? "Check antagonists | " : "" ]

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(issmall(M)) M_job = "Monkey" else if(ishuman(M)) M_job = M.job else if(isslime(M)) M_job = "slime" 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" else if(isSpirit(M)) M_job = (ismask(M)) ? "Mask" : "Spirit" M_job = replacetext(M_job, "'", "") M_job = replacetext(M_job, "\"", "") M_job = replacetext(M_job, "\\", "") var/M_name = M.name M_name = replacetext(M_name, "'", "") M_name = replacetext(M_name, "\"", "") M_name = replacetext(M_name, "\\", "") var/M_rname = M.real_name M_rname = replacetext(M_rname, "'", "") M_rname = replacetext(M_rname, "\"", "") M_rname = replacetext(M_rname, "\\", "") var/M_key = M.key M_key = replacetext(M_key, "'", "") M_key = replacetext(M_key, "\"", "") M_key = replacetext(M_key, "\\", "") var/M_eyeref = "" if(isAI(M)) var/mob/living/silicon/ai/A = M if(A.client && A.eyeobj) // No point following clientless AI eyes M_eyeref = "\ref[A.eyeobj]" //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 /datum/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(issmall(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(isalien(M)) dat += "" else if(ismask(M)) dat += "" else if(isSpirit(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]AICyborgMonkey[M.real_name]pAINew PlayerGhostAlienMaskSpiritUnknown[H.mind.assigned_role]NA[(M.client ? "[M.client]" : "No client")] X PMTraitor?Traitor?Traitor?
" usr << browse(dat, "window=players;size=640x480") /datum/admins/proc/check_antagonists() if(!check_rights(R_ADMIN)) return if (ticker && ticker.current_state >= GAME_STATE_PLAYING) var/dat = "Round Status

Round Status

" dat += "Current Game Mode: [ticker.mode.name]
" dat += "Round Duration: [round(world.time / 36000)]:[add_zero(num2text(world.time / 600 % 60), 2)]:[add_zero(num2text(world.time / 10 % 60), 2)]
" dat += "Emergency shuttle
" if (!emergency_shuttle.online()) dat += "Call Shuttle
" else if (emergency_shuttle.wait_for_launch) var/timeleft = emergency_shuttle.estimate_launch_time() dat += "ETL: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
" else if (emergency_shuttle.shuttle.has_arrive_time()) var/timeleft = emergency_shuttle.estimate_arrival_time() dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
" dat += "Send Back
" if (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP) dat += "Launching now..." dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
" if(ticker.mode.syndicates.len) dat += "
" for(var/datum/mind/N in ticker.mode.syndicates) var/mob/M = N.current if(M) dat += "" dat += "" else dat += "" dat += "
Syndicates
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PM
Nuclear Operative not found!

" for(var/obj/item/weapon/disk/nuclear/N in world) dat += "" dat += "
Nuclear Disk(s)
[N.name], " var/atom/disk_loc = N.loc while(!istype(disk_loc, /turf)) if(istype(disk_loc, /mob)) var/mob/M = disk_loc dat += "carried by [M.real_name] " if(istype(disk_loc, /obj)) var/obj/O = disk_loc dat += "in \a [O.name] " disk_loc = disk_loc.loc dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])
" if(ticker.mode.head_revolutionaries.len || ticker.mode.revolutionaries.len) dat += "
" for(var/datum/mind/N in ticker.mode.head_revolutionaries) var/mob/M = N.current if(!M) dat += "" else dat += "" dat += "" for(var/datum/mind/N in ticker.mode.revolutionaries) var/mob/M = N.current if(M) dat += "" dat += "" dat += "
Revolutionaries
Head Revolutionary not found!
[M.real_name] (Leader)[M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PM
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PM
" for(var/datum/mind/N in ticker.mode.get_living_heads()) var/mob/M = N.current if(M) dat += "" dat += "" var/turf/mob_loc = get_turf(M) dat += "" else dat += "" if(ticker.mode.num_players_started() >= 30) for(var/datum/mind/N in ticker.mode.get_extra_living_heads()) var/mob/M = N.current if(M) dat += "" dat += "" var/turf/mob_loc = get_turf(M) dat += "" else dat += "" dat += "
Target(s)Location
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PM[mob_loc.loc]
Head not found!
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PM[mob_loc.loc]
Head not found!
" if(ticker.mode.name == "nations") dat += "
" for(var/obj/item/flag/nation/N in world) dat += "" dat += "
Flags(s)
[N.name], " var/atom/flag_loc = N.loc while(!istype(flag_loc, /turf)) if(istype(flag_loc, /mob)) var/mob/M = flag_loc dat += "carried by [M.real_name] " if(istype(flag_loc, /obj)) var/obj/O = flag_loc dat += "in \a [O.name] " flag_loc = flag_loc.loc dat += "in [flag_loc.loc] at ([flag_loc.x], [flag_loc.y], [flag_loc.z])
" if(istype(ticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/mode = ticker.mode dat += "
" dat += "" for(var/datum/mind/blob in mode.infected_crew) var/mob/M = blob.current if(M) dat += "" dat += "" else dat += "" dat += "
Blob
Progress: [blobs.len]/[mode.blobwincount]
[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PM
Blob not found!
" if(ticker.mode.changelings.len) dat += check_role_table("Changelings", ticker.mode.changelings, src) if(ticker.mode.wizards.len) dat += check_role_table("Wizards", ticker.mode.wizards, src) if(ticker.mode.raiders.len) dat += check_role_table("Raiders", ticker.mode.raiders, src) /*if(ticker.mode.ninjas.len) dat += check_role_table("Ninjas", ticker.mode.ninjas, src)*/ if(ticker.mode.cult.len) dat += check_role_table("Cultists", ticker.mode.cult, src, 0) if(ticker.mode.traitors.len) dat += check_role_table("Traitors", ticker.mode.traitors, src) if(ticker.mode.shadows.len) dat += check_role_table("Shadowlings", ticker.mode.shadows, src) if(ticker.mode.shadowling_thralls.len) dat += check_role_table("Shadowling Thralls", ticker.mode.shadowling_thralls, src) if(ticker.mode.vampires.len) dat += check_role_table("Vampires", ticker.mode.vampires, src) if(ticker.mode.enthralled.len) dat += check_role_table("Vampire Thralls", ticker.mode.enthralled, src) if(ticker.mode.xenos.len) dat += check_role_table("Xenos", ticker.mode.xenos, src) if(ticker.mode.superheroes.len) dat += check_role_table("Superheroes", ticker.mode.superheroes, src) if(ticker.mode.supervillains.len) dat += check_role_table("Supervillains", ticker.mode.supervillains, src) if(ticker.mode.greyshirts.len) dat += check_role_table("Greyshirts", ticker.mode.greyshirts, src) var/datum/game_mode/mutiny/mutiny = get_mutiny_mode() if(mutiny) dat += mutiny.check_antagonists_ui(src) dat += "" usr << browse(dat, "window=roundstatus;size=400x500") else alert("The game hasn't started yet!") /proc/check_role_table(name, list/members, admins, show_objectives=1) var/txt = "
" for(var/datum/mind/M in members) txt += check_role_table_row(M.current, admins, show_objectives) txt += "
[name]
" return txt /proc/check_role_table_row(mob/M, admins=src, show_objectives) if (!istype(M)) return "Not found!" var/txt = {" [M.real_name] [M.client ? "" : " (logged out)"] [M.is_dead() ? " (DEAD)" : ""] PM "} if (show_objectives) txt += {" Show Objective "} txt += "" return txt