mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +01:00
@@ -181,7 +181,7 @@
|
||||
allmeat += newmeat
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder && (M.client.holder.level != -3))
|
||||
if (M.client && M.client.holder && (M.client.holder.level != -3) && (M.client.holder.level != 0))
|
||||
M << "\red [user.name]/[user.ckey] has gibbed [src.occupant.name]/[src.occupant.ckey]"
|
||||
src.occupant.death(1)
|
||||
src.occupant.ghostize()
|
||||
|
||||
@@ -37,11 +37,13 @@
|
||||
log_ooc("[src.name]/[src.key] : [msg]")
|
||||
|
||||
for (var/client/C)
|
||||
if (src.client.holder && (!src.client.stealth || C.holder))
|
||||
if (src.client.holder && (!src.client.stealth || ( C.holder && C.holder.level != 0)))
|
||||
if (src.client.holder.rank == "Admin Observer")
|
||||
C << "<span class='adminobserverooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.client.holder.rank == "Retired Admin")
|
||||
C << "<span class='ooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.client.holder.rank == "Moderator")
|
||||
C << "<span class='modooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.client.holder.level >= 5)
|
||||
C << "<font color=[src.client.ooccolor]><b><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
|
||||
else
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
for (var/mob/M in world)
|
||||
if(M && M.client && M.client.holder)
|
||||
if(usr.client.holder)
|
||||
if(usr.client.holder && (usr.client.holder.level != 0))
|
||||
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " <i>(as [M.client.fakekey])</i>" : ""]"
|
||||
else if(!M.client.stealth && (M.client.holder.level != -3))
|
||||
usr << "\t[pick(nobles)] [M.client] is a [M.client.holder.rank]"
|
||||
|
||||
+80
-58
@@ -6,7 +6,7 @@ var/global/BSACooldown = 0
|
||||
/proc/message_admins(var/text, var/admin_ref = 0)
|
||||
var/rendered = "<span class=\"admin\"><span class=\"prefix\">ADMIN LOG:</span> <span class=\"message\">[text]</span></span>"
|
||||
for (var/mob/M in world)
|
||||
if (M && M.client && M.client.holder && M.client.holder.level > -3) //Lets not spam our retirees.
|
||||
if (M && M.client && M.client.holder && M.client.holder.level > -3 && M.client.holder.level != 0) //Lets not spam our retirees. Or moderators!
|
||||
if (admin_ref)
|
||||
M << dd_replaceText(rendered, "%admin_ref%", "\ref[M]")
|
||||
else
|
||||
@@ -176,6 +176,7 @@ var/global/BSACooldown = 0
|
||||
|
||||
var/datum/player_info/P = new
|
||||
P.author = usr.key
|
||||
P.rank = usr.client.holder.rank
|
||||
P.content = add
|
||||
var/modifyer = "th"
|
||||
switch(time2text(world.timeofday, "DD"))
|
||||
@@ -196,6 +197,9 @@ var/global/BSACooldown = 0
|
||||
|
||||
info << infos
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has edited [key]'s notes.")
|
||||
log_admin("[key_name(usr)] has edited [key]'s notes.")
|
||||
|
||||
del info
|
||||
|
||||
var/savefile/note_list = new("data/player_notes.sav")
|
||||
@@ -221,6 +225,9 @@ var/global/BSACooldown = 0
|
||||
infos.Remove(item)
|
||||
info << infos
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] deleted one of [key]'s notes.")
|
||||
log_admin("[key_name(usr)] deleted one of [key]'s notes.")
|
||||
|
||||
del info
|
||||
|
||||
show_player_info(key)
|
||||
@@ -612,13 +619,6 @@ var/global/BSACooldown = 0
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("miscdept")
|
||||
joblist += "pAI"
|
||||
for(var/jobPos in nonhuman_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
else
|
||||
joblist += href_list["jobban3"]
|
||||
|
||||
@@ -800,7 +800,7 @@ var/global/BSACooldown = 0
|
||||
usr << browse(dat, "window=jobban2;size=600x250")
|
||||
return
|
||||
if(href_list["newjobban2"])
|
||||
if ((src.rank in list("Moderator", "Administrator", "Badmin", "Tyrant" )))
|
||||
if ((src.rank in list(/*"Moderator", */"Administrator", "Badmin", "Tyrant" )))
|
||||
var/mob/M = locate(href_list["jobban4"])
|
||||
var/job = href_list["newjobban2"]
|
||||
if(!ismob(M)) return
|
||||
@@ -877,7 +877,7 @@ var/global/BSACooldown = 0
|
||||
remove_goon(t)
|
||||
*/
|
||||
if (href_list["mute2"])
|
||||
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
if ((src.rank in list(/* "Moderator", */"Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
var/mob/M = locate(href_list["mute2"])
|
||||
if (ismob(M))
|
||||
if ((M.client && M.client.holder && (M.client.holder.level >= src.level)))
|
||||
@@ -891,7 +891,7 @@ var/global/BSACooldown = 0
|
||||
message_admins("\blue [key_name_admin(usr)] has [(M.client.muted ? "muted" : "voiced")] [key_name_admin(M)].", 1)
|
||||
M << "You have been [(M.client.muted ? "muted" : "voiced")]. Please resolve this in adminhelp."
|
||||
if (href_list["mute_complete"])
|
||||
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
if ((src.rank in list(/* "Moderator", */"Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
var/mob/M = locate(href_list["mute_complete"])
|
||||
if (ismob(M))
|
||||
if ((M.client && M.client.holder && (M.client.holder.level >= src.level)))
|
||||
@@ -997,7 +997,7 @@ var/global/BSACooldown = 0
|
||||
return
|
||||
|
||||
if (href_list["sendtoprison"])
|
||||
if ((src.rank in list( "Moderator", "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
if ((src.rank in list(/* "Moderator", */"Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
|
||||
var/confirm = alert(usr, "Send to admin prison for the round?", "Message", "Yes", "No")
|
||||
if(confirm != "Yes")
|
||||
@@ -1350,62 +1350,79 @@ var/global/BSACooldown = 0
|
||||
// Now isn't that much better? IT IS NOW A PROC, i.e. kinda like a big panel like unstable
|
||||
|
||||
if (href_list["adminplayeropts"])
|
||||
var/mob/M = locate(href_list["adminplayeropts"])
|
||||
show_player_panel(M)
|
||||
if(rank in list("Admin Observer", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
var/mob/M = locate(href_list["adminplayeropts"])
|
||||
show_player_panel(M)
|
||||
else
|
||||
alert("You cannot perform this action. You must be of a higher administrative rank!")
|
||||
|
||||
if (href_list["player_info"])
|
||||
var/key = href_list["player_info"]
|
||||
show_player_info(key)
|
||||
|
||||
if (href_list["adminplayervars"])
|
||||
var/mob/M = locate(href_list["adminplayervars"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.debug_variables(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
if(rank in list("Admin Observer", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
var/mob/M = locate(href_list["adminplayervars"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.debug_variables(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
cl.debug_variables(M)
|
||||
else
|
||||
alert("You cannot perform this action. You must be of a higher administrative rank!")
|
||||
|
||||
if (href_list["adminplayersubtlemessage"])
|
||||
var/mob/M = locate(href_list["adminplayersubtlemessage"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.cmd_admin_subtle_message(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
if(rank in list("Admin Observer", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
var/mob/M = locate(href_list["adminplayersubtlemessage"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.cmd_admin_subtle_message(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
cl.cmd_admin_subtle_message(M)
|
||||
else
|
||||
alert("You cannot perform this action. You must be of a higher administrative rank!")
|
||||
|
||||
if (href_list["adminplayerobservejump"])
|
||||
var/mob/M = locate(href_list["adminplayerobservejump"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.admin_observe()
|
||||
sleep(2)
|
||||
cl.jumptomob(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
if(rank in list("Admin Observer", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
var/mob/M = locate(href_list["adminplayerobservejump"])
|
||||
if(src && src.owner)
|
||||
if(istype(src.owner,/client))
|
||||
var/client/cl = src.owner
|
||||
cl.admin_observe()
|
||||
sleep(2)
|
||||
cl.jumptomob(M)
|
||||
else if(ismob(src.owner))
|
||||
var/mob/MO = src.owner
|
||||
if(MO.client)
|
||||
var/client/cl = MO.client
|
||||
cl.admin_observe()
|
||||
sleep(2)
|
||||
cl.jumptomob(M)
|
||||
else
|
||||
alert("You cannot perform this action. You must be of a higher administrative rank!")
|
||||
|
||||
if (href_list["traitor_panel_pp"])
|
||||
var/mob/M = locate(href_list["traitor_panel_pp"])
|
||||
if(isnull(M))
|
||||
usr << "Mob doesn't seem to exist."
|
||||
return
|
||||
if(!ismob(M))
|
||||
usr << "This doen't seem to be a mob."
|
||||
return
|
||||
show_traitor_panel(M)
|
||||
if(rank in list("Admin Observer", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
var/mob/M = locate(href_list["traitor_panel_pp"])
|
||||
if(isnull(M))
|
||||
usr << "Mob doesn't seem to exist."
|
||||
return
|
||||
if(!ismob(M))
|
||||
usr << "This doen't seem to be a mob."
|
||||
return
|
||||
show_traitor_panel(M)
|
||||
else
|
||||
alert("You cannot perform this action. You must be of a higher administrative rank!")
|
||||
|
||||
|
||||
|
||||
if (href_list["BlueSpaceArtillery"])
|
||||
var/mob/M = locate(href_list["BlueSpaceArtillery"])
|
||||
@@ -2239,7 +2256,7 @@ var/global/BSACooldown = 0
|
||||
return
|
||||
|
||||
if (href_list["secretsadmin"])
|
||||
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
if ((src.rank in list(/* "Moderator", */"Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
var/ok = 0
|
||||
switch(href_list["secretsadmin"])
|
||||
if("clear_bombs")
|
||||
@@ -2380,7 +2397,7 @@ var/global/BSACooldown = 0
|
||||
message_admins("\blue [user.ckey] warned [M.ckey].")
|
||||
else
|
||||
AddBan(M.ckey, M.computer_id, "Autobanning due to previous warn", user.ckey, 1, AUTOBANTIME)
|
||||
M << "\red<BIG><B>You have been autobanned by [user.ckey]. This is what we in the biz like to call a \"second warning\".</B></BIG>"
|
||||
M << "\red<BIG><B>You have been autobanned by [user.ckey].</B></BIG>"
|
||||
M << "\red This is a temporary ban; it will automatically be removed in [AUTOBANTIME] minutes."
|
||||
log_admin("[user.ckey] warned [M.ckey], resulting in a [AUTOBANTIME] minute autoban.")
|
||||
ban_unban_log_save("[user.ckey] warned [M.ckey], resulting in a [AUTOBANTIME] minute autoban.")
|
||||
@@ -2428,6 +2445,7 @@ var/global/BSACooldown = 0
|
||||
|
||||
body += "<b>Mob type</b> = [M.type]<br><br>"
|
||||
|
||||
body += "<A href='?src=\ref[src];warn=\ref[M]'>Warn</A> | "
|
||||
body += "<A href='?src=\ref[src];boot2=\ref[M]'>Kick</A> | "
|
||||
body += "<A href='?src=\ref[src];newban=\ref[M]'>Ban</A> | "
|
||||
body += "<A href='?src=\ref[src];jobban2=\ref[M]'>Jobban</A> "
|
||||
@@ -2527,10 +2545,11 @@ var/global/BSACooldown = 0
|
||||
//feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/datum/player_info/var
|
||||
author // admin who authored the information
|
||||
content // text content of the information
|
||||
timestamp // Because this is bloody annoying
|
||||
|
||||
/datum/player_info/var/author // admin who authored the information
|
||||
/datum/player_info/var/rank //rank of admin who made the notes
|
||||
/datum/player_info/var/content // text content of the information
|
||||
/datum/player_info/var/timestamp // Because this is bloody annoying
|
||||
|
||||
/obj/admins/proc/player_has_info(var/key as text)
|
||||
var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav")
|
||||
@@ -2563,7 +2582,10 @@ var/global/BSACooldown = 0
|
||||
if(!I.timestamp)
|
||||
I.timestamp = "Pre-4/3/2012"
|
||||
update_file = 1
|
||||
dat += "<font color=#008800>[I.content]</font> <i>by [I.author]</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
||||
if(!I.rank)
|
||||
I.rank = "N/A"
|
||||
update_file = 1
|
||||
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
||||
if(I.author == usr.key)
|
||||
dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
|
||||
dat += "<br><br>"
|
||||
|
||||
@@ -107,52 +107,32 @@
|
||||
if (holder.level >= -1)
|
||||
verbs += /client/proc/investigate_show
|
||||
verbs += /client/proc/cmd_admin_say
|
||||
verbs += /client/proc/cmd_mod_say
|
||||
verbs += /client/proc/cmd_admin_gib_self
|
||||
verbs += /client/proc/deadmin_self
|
||||
else if (holder.level == -3) // Retired Admin
|
||||
verbs += /client/proc/cmd_admin_say
|
||||
verbs += /client/proc/cmd_mod_say
|
||||
return
|
||||
else return
|
||||
|
||||
//Moderator
|
||||
if (holder.level >= 0)
|
||||
verbs += /obj/admins/proc/announce
|
||||
verbs += /obj/admins/proc/startnow
|
||||
verbs += /obj/admins/proc/toggleAI //Toggle the AI
|
||||
verbs += /obj/admins/proc/toggleenter //Toggle enterting
|
||||
// verbs += /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /obj/admins/proc/vmode
|
||||
verbs += /obj/admins/proc/votekill
|
||||
verbs += /obj/admins/proc/show_player_panel
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
//verbs += /client/proc/cmd_admin_mute --was never used (according to stats trackind) - use show player panel --erro
|
||||
verbs += /client/proc/cmd_admin_pm_context
|
||||
verbs += /client/proc/cmd_admin_pm_panel
|
||||
verbs += /client/proc/cmd_admin_subtle_message
|
||||
//verbs += /client/proc/warn - was never used
|
||||
verbs += /client/proc/dsay
|
||||
verbs += /client/proc/admin_play
|
||||
verbs += /client/proc/admin_observe
|
||||
verbs += /client/proc/game_panel
|
||||
// verbs += /client/proc/player_panel
|
||||
verbs += /client/proc/player_panel_new
|
||||
verbs += /client/proc/unban_panel
|
||||
verbs += /client/proc/jobbans
|
||||
|
||||
verbs += /client/proc/voting
|
||||
verbs += /client/proc/hide_verbs
|
||||
verbs += /client/proc/general_report
|
||||
//verbs += /client/proc/air_report
|
||||
verbs += /client/proc/deadmin_self
|
||||
//verbs += /client/proc/cmd_admin_prison --Merged with player panel
|
||||
//verbs += /obj/admins/proc/unprison --Merged with player panel
|
||||
verbs += /client/proc/playernotes
|
||||
verbs += /obj/admins/proc/show_skills
|
||||
else return
|
||||
|
||||
if(holder.level == 0) //Moderators don't get asay, only msay
|
||||
verbs -= /client/proc/cmd_admin_say
|
||||
verbs -= /client/proc/investigate_show
|
||||
verbs -= /client/proc/cmd_admin_gib_self
|
||||
verbs += /client/proc/mod_panel
|
||||
|
||||
//Temporary Admin
|
||||
if (holder.level >= 1)
|
||||
verbs += /obj/admins/proc/delay //game start delay
|
||||
@@ -165,6 +145,35 @@
|
||||
verbs += /client/proc/deadmin_self
|
||||
//verbs += /client/proc/cmd_admin_attack_log --Merged with view variables
|
||||
verbs += /client/proc/cmd_admin_change_custom_event
|
||||
//
|
||||
//MOVED FROM MODERATOR
|
||||
//
|
||||
verbs += /client/proc/cmd_admin_subtle_message
|
||||
verbs += /obj/admins/proc/announce
|
||||
verbs += /obj/admins/proc/startnow
|
||||
verbs += /obj/admins/proc/toggleAI //Toggle the AI
|
||||
verbs += /obj/admins/proc/toggleenter //Toggle enterting
|
||||
// verbs += /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /obj/admins/proc/vmode
|
||||
verbs += /obj/admins/proc/votekill
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
//verbs += /client/proc/cmd_admin_mute --was never used (according to stats trackind) - use show player panel --erro
|
||||
verbs += /client/proc/dsay
|
||||
verbs += /client/proc/game_panel
|
||||
verbs += /obj/admins/proc/show_player_panel
|
||||
// verbs += /client/proc/player_panel
|
||||
verbs += /client/proc/player_panel_new
|
||||
verbs += /client/proc/unban_panel
|
||||
verbs += /client/proc/jobbans
|
||||
verbs += /client/proc/voting
|
||||
verbs += /client/proc/general_report
|
||||
//verbs += /client/proc/air_report
|
||||
//verbs += /client/proc/cmd_admin_prison --Merged with player panel
|
||||
//verbs += /obj/admins/proc/unprison --Merged with player panel
|
||||
verbs += /client/proc/playernotes
|
||||
else return
|
||||
|
||||
//Admin Candidate
|
||||
@@ -393,8 +402,8 @@
|
||||
verbs -= /client/proc/cmd_admin_pm_context
|
||||
verbs -= /client/proc/cmd_admin_pm_panel
|
||||
verbs -= /client/proc/cmd_admin_say
|
||||
verbs -= /client/proc/cmd_mod_say
|
||||
verbs -= /client/proc/cmd_admin_subtle_message
|
||||
//verbs -= /client/proc/warn
|
||||
verbs -= /client/proc/dsay
|
||||
verbs -= /client/proc/admin_play
|
||||
verbs -= /client/proc/admin_observe
|
||||
@@ -418,6 +427,7 @@
|
||||
verbs -= /client/proc/toggle_hear_radio
|
||||
verbs -= /client/proc/tension_report
|
||||
verbs -= /client/proc/player_panel_new
|
||||
verbs -= /client/proc/mod_panel
|
||||
verbs -= /client/proc/toggle_gravity_on
|
||||
verbs -= /client/proc/toggle_gravity_off
|
||||
verbs -= /client/proc/toggle_random_events
|
||||
@@ -428,7 +438,7 @@
|
||||
verbs -= /client/proc/getserverlog
|
||||
verbs -= /client/proc/cinematic //show a cinematic sequence
|
||||
verbs -= /client/proc/admin_memo
|
||||
verbs -= /client/proc/investigate_show
|
||||
verbs -= /client/proc/investigate_show
|
||||
verbs -= /client/proc/cmd_admin_change_custom_event
|
||||
verbs -= /client/proc/admin_invis
|
||||
verbs -= /client/proc/callprocgen
|
||||
@@ -538,6 +548,14 @@
|
||||
// feedback_add_details("admin_verb","PPN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/client/proc/mod_panel()
|
||||
set name = "Moderator Panel"
|
||||
set category = "Admin"
|
||||
if(holder)
|
||||
holder.mod_panel()
|
||||
// feedback_add_details("admin_verb","MP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/client/proc/check_antagonists()
|
||||
set name = "Check Antagonists"
|
||||
set category = "Admin"
|
||||
@@ -836,6 +854,7 @@
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /client/proc/cmd_admin_say//asay
|
||||
verbs += /client/proc/cmd_mod_say
|
||||
verbs += /client/proc/toggleadminhelpsound
|
||||
// feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
@@ -856,6 +875,7 @@
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /client/proc/cmd_admin_say//asay
|
||||
verbs += /client/proc/cmd_mod_say//asay
|
||||
// feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
|
||||
@@ -113,6 +113,113 @@
|
||||
|
||||
usr << browse(dat, "window=players;size=905x600")
|
||||
|
||||
|
||||
/obj/admins/proc/mod_panel()//The new one
|
||||
if (!usr.client.holder)
|
||||
return
|
||||
var/dat = "<html><head><title>Player Menu</title></head>"
|
||||
dat += "<body><table border=1 cellspacing=5><B><tr><th>Name/Real Name</th><th>IP/CID</th><th>Info</th><th>Options</th></tr></B>"
|
||||
//add <th>IP:</th> to this if wanting to add back in IP checking <th>Type</th> <th>Assigned Job</th> <th>Traitor?</th>
|
||||
//add <td>(IP: [M.lastKnownIP])</td> if you want to know their ip to the lists below
|
||||
var/list/mobs = get_sorted_mobs()
|
||||
var/i = 1
|
||||
|
||||
for(var/mob/M in mobs)
|
||||
if(M.ckey)
|
||||
var/color = "#e6e6e6"
|
||||
i++
|
||||
if(i%2 == 0)
|
||||
color = "#f2f2f2"
|
||||
var/real = (M.real_name == M.original_name ? "<b>[M.name]/[M.real_name]</b>" : "<b>[M.original_name] (as [M.name]/[M.real_name])</b>")
|
||||
var/turf/T = get_turf(M)
|
||||
var/client_key = (M.key? M.key : "No key")
|
||||
dat += "<tr align='center' bgcolor='[color]'><td>[real] <br>[M.client ? M.client : "No client ([client_key])"] at ([T.x], [T.y], [T.z])</td>" // Adds current name
|
||||
/* if(isobserver(M))
|
||||
dat += "<td>Ghost</td>"
|
||||
else if(isalien(M))
|
||||
dat += "<td>Alien</td>"
|
||||
else if(islarva(M))
|
||||
dat += "<td>Alien larva</td>"
|
||||
else if(istajaran(M))
|
||||
dat += "<td>Tajaran</td>"
|
||||
else if(ishuman(M))
|
||||
dat += "<td>[M.job]</td>"
|
||||
else if(ismetroid(M))
|
||||
dat += "<td>Metroid</td>"
|
||||
else if(ismonkey(M))
|
||||
dat += "<td>Monkey</td>"
|
||||
else if(isAI(M))
|
||||
dat += "<td>AI</td>"
|
||||
else if(ispAI(M))
|
||||
dat += "<td>pAI</td>"
|
||||
else if(isrobot(M))
|
||||
dat += "<td>Cyborg</td>"
|
||||
else if(isanimal(M))
|
||||
dat += "<td>Animal</td>"
|
||||
else if(iscorgi(M))
|
||||
dat += "<td>Corgi</td>"
|
||||
else if(istype(M,/mob/new_player))
|
||||
dat += "<td>New Player</td>"
|
||||
else
|
||||
dat += "<td>\red ERROR</td>\black"
|
||||
|
||||
if(M.mind && M.mind.assigned_role && istype(M, /mob/living/carbon/human)) // Adds a column to Player Panel that shows their current job.
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if (H.wear_id)
|
||||
var/obj/item/weapon/card/id/id
|
||||
|
||||
if(istype(H.wear_id, /obj/item/device/pda))
|
||||
var/obj/item/device/pda/PDA = H.wear_id
|
||||
if(!isnull(PDA.id)) // The PDA may contain no ID
|
||||
id = PDA.id // The ID is contained inside the PDA
|
||||
|
||||
else
|
||||
id = H.wear_id // The ID was on the ID slot
|
||||
|
||||
if(!id) // Happens when there's no ID in the PDA located on the wear_id slot
|
||||
dat += "<td>[M.mind.assigned_role] (No ID)</td>"
|
||||
|
||||
else if(isnull(id.assignment)) // Preventing runtime errors blocking the player panel
|
||||
if(istype(id, /obj/item/weapon/card/id/syndicate))
|
||||
dat += "<td><font color=purple>Antagonist</font></td>"
|
||||
else
|
||||
usr << "<font color=red>ERROR:</font> Inform the coders that an [id.name] was checked for its assignment variable, and it was null."
|
||||
dat += "<td><font color=red>ERROR</font></td>"
|
||||
|
||||
else
|
||||
if(M.mind.assigned_role == id.assignment) // Polymorph
|
||||
dat += "<td>[M.mind.assigned_role]</td>"
|
||||
|
||||
else
|
||||
dat += "<td>[M.mind.assigned_role] ([id.assignment])"
|
||||
|
||||
else
|
||||
dat += "<td>[M.mind.assigned_role] (No ID)</td>"
|
||||
|
||||
else
|
||||
dat += "<td>No Assigned Role</td>"
|
||||
*/
|
||||
dat += {"<td>IP: [M.client.address]<br>
|
||||
CID: [M.client.computer_id]</td>
|
||||
"}
|
||||
|
||||
dat += {"<td><A HREF='?src=\ref[src];player_info=[M.ckey]'>[player_has_info(M.ckey) ? "Info" : "N/A"] </A></td>
|
||||
<td><A href='?src=\ref[usr];priv_msg=\ref[M]'><b>PM</b></A></td>
|
||||
"}
|
||||
|
||||
/* switch(is_special_character(M))
|
||||
if(0)
|
||||
dat += {"<td align=center><A HREF='?src=\ref[src];traitor=\ref[M]'>Traitor?</A></td>"}
|
||||
if(1)
|
||||
dat += {"<td align=center><A HREF='?src=\ref[src];traitor=\ref[M]'><font color=red>Traitor?</font></A></td>"}
|
||||
if(2)
|
||||
dat += {"<td align=center><A HREF='?src=\ref[src];traitor=\ref[M]'><font color=red><b>Traitor?</b></font></A></td>"}
|
||||
*/
|
||||
dat += "</table></body></html>"
|
||||
|
||||
usr << browse(dat, "window=players;size=600x600")
|
||||
|
||||
//The old one
|
||||
/obj/admins/proc/player_panel_old()
|
||||
if (!usr.client.holder)
|
||||
|
||||
@@ -61,8 +61,12 @@
|
||||
|
||||
if(C.holder)
|
||||
if(holder) //both are admins
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
if(holder.rank == "Moderator") //If moderator
|
||||
C << "<font color='maroon'>Mod PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Mod PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
else
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
|
||||
else //recipient is an admin but sender is not
|
||||
C << "<font color='red'>Reply PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
@@ -75,10 +79,14 @@
|
||||
else
|
||||
if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT
|
||||
// C << "<font color='red' size='4'><b>-- Administrator private message --</b></font>"
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 0)]</b>: [msg]</font>"
|
||||
C << "<font color='red'><i>Click on the administrator's name to reply.</i></font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
|
||||
if(holder.rank == "Moderator")
|
||||
C << "<font color='maroon'>Mod PM from-<b>[key_name(src, C, 0)]</b>: [msg]</font>"
|
||||
C << "<font color='maroon'><i>Click on the moderators's name to reply.</i></font>"
|
||||
src << "<font color='blue'>Mod PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
else
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 0)]</b>: [msg]</font>"
|
||||
C << "<font color='red'><i>Click on the administrator's name to reply.</i></font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
//always play non-admin recipients the adminhelp sound
|
||||
C << 'adminhelp.ogg'
|
||||
|
||||
|
||||
@@ -20,9 +20,39 @@
|
||||
//feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
if (M.client && M.client.holder && M.client.holder.level != 0) //Moderators cannot see it.
|
||||
if (src.holder.rank == "Admin Observer")
|
||||
M << "<span class='adminobserver'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else
|
||||
M << "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]</EM> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||
|
||||
/client/proc/cmd_mod_say(msg as text)
|
||||
set category = "Special Verbs"
|
||||
set name = "Msay"
|
||||
set hidden = 1
|
||||
|
||||
if (!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
if (src.muted || src.muted_complete)
|
||||
src << "You are muted."
|
||||
return
|
||||
|
||||
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
|
||||
log_admin("MOD: [key_name(src)] : [msg]")
|
||||
|
||||
|
||||
if (!msg)
|
||||
return
|
||||
//feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
if (src.holder.rank == "Admin Observer")
|
||||
M << "<span class='adminobserver'><span class='prefix'>MOD:</span> <EM>[key_name(usr, M)]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.holder.rank == "Moderator")
|
||||
M << "<span class='mod'><span class='prefix'>MOD:</span> <EM>[key_name(usr, M)]</EM> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||
else
|
||||
M << "<span class='adminmod'><span class='prefix'>MOD:</span> <EM>[key_name(usr, M)]</EM> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
// log_admin("[key_name(Sender)] sent a message to Centcomm! The message was [msg]") // Handled somewhere else
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
if (M.client && M.client.holder && M.client.holder.level != 0)
|
||||
M << "\blue <b><font color=orange>CENTCOMM:</font>[key_name(Sender, M)] (<A HREF='?src=\ref[M.client.holder];adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?src=\ref[M.client.holder];adminplayervars=\ref[Sender]'>VV</A>) (<A HREF='?src=\ref[M.client.holder];adminplayersubtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?src=\ref[M.client.holder];secretsadmin=check_antagonist'>CA</A>) (<A HREF='?src=\ref[M.client.holder];BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?src=\ref[M.client.holder];CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||
//
|
||||
/proc/Syndicate_announce(var/text , var/mob/Sender)
|
||||
@@ -38,6 +38,6 @@
|
||||
// log_admin("[key_name(Sender)] sent a message to the Syndicate! The message was [msg]") // Handled somewhere else
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
if (M.client && M.client.holder && M.client.holder.level != 0)
|
||||
M << "\blue <b><font color=crimson>SYNDICATE:</font>[key_name(Sender, M)] (<A HREF='?src=\ref[M.client.holder];adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?src=\ref[M.client.holder];adminplayervars=\ref[Sender]'>VV</A>) (<A HREF='?src=\ref[M.client.holder];adminplayersubtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?src=\ref[M.client.holder];secretsadmin=check_antagonist'>CA</A>) (<A HREF='?src=\ref[M.client.holder];BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?src=\ref[M.client.holder];SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||
//
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
|
||||
|
||||
proc/ManifestLateSpawn(var/mob/living/carbon/human/H, icon/H_icon) // Attempted fix to add late joiners to various databases -- TLE
|
||||
// This is basically ripped wholesale from the normal code for adding people to the databases during a fresh round //Erth Mark
|
||||
// This is basically ripped wholesale from the normal code for adding people to the databases during a fresh round
|
||||
if (!isnull(H.mind) && (H.mind.assigned_role != "MODE"))
|
||||
var/datum/data/record/G = new()
|
||||
var/datum/data/record/M = new()
|
||||
|
||||
@@ -20,6 +20,10 @@ em {font-style: normal; font-weight: bold;}
|
||||
.adminobserver {color: #996600; font-weight: bold;}
|
||||
.admin {color: #386aff; font-weight: bold;}
|
||||
|
||||
.mod {color: #735638; font-weight: bold;}
|
||||
.modooc {color: #184880; font-weight: bold;}
|
||||
.adminmod {color: #402A14; font-weight: bold;}
|
||||
|
||||
.name { font-weight: bold;}
|
||||
|
||||
.say {}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
Reference in New Issue
Block a user