mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-17 10:57:19 +01:00
Ports Goonchat from Baystation. (#9635)
changes:
rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
rscadd: "You can change icon style to any font on your system."
tweak: "The game window has been altered a bit to adjust for this."
rscdel: "Removed skin style prefs as they are no longer used."
This commit is contained in:
@@ -342,7 +342,7 @@
|
||||
data += list(list(C.ckey, C.address, C.computer_id))
|
||||
|
||||
var/data_str = json_encode(data)
|
||||
to_chat(C, output(list2params(list("E-DAT", data_str, 900)), "greeting.browser:setCookie"))
|
||||
send_output(C, list2params(list("E-DAT", data_str, 900)), "greeting.browser:setCookie")
|
||||
|
||||
#undef BAD_CID
|
||||
#undef BAD_IP
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
ip = query.item[3]
|
||||
if(!validckey)
|
||||
if(!banned_mob || (banned_mob && !IsGuestKey(banned_mob.key)))
|
||||
message_admins("<font color='red'>[key_name_admin(usr)] attempted to ban [ckey], but [ckey] has not been seen yet. Please only ban actual players.</font>",1)
|
||||
message_admins("<span class='warning'>[key_name_admin(usr)] attempted to ban [ckey], but [ckey] has not been seen yet. Please only ban actual players.</span>",1)
|
||||
return
|
||||
|
||||
var/a_ckey
|
||||
@@ -507,7 +507,7 @@
|
||||
var/typedesc =""
|
||||
switch(bantype)
|
||||
if("PERMABAN")
|
||||
typedesc = "<font color='red'><b>PERMABAN</b></font>"
|
||||
typedesc = "<span class='warning'><b>PERMABAN</b></span>"
|
||||
if("TEMPBAN")
|
||||
typedesc = "<b>TEMPBAN</b><br><font size='2'>([duration] minutes) [(unbanned || auto) ? "" : "(<a href=\"byond://?src=\ref[src];dbbanedit=duration;dbbanid=[banid]\">Edit</a>)"]<br>Expires [expiration]</font>"
|
||||
if("JOB_PERMABAN")
|
||||
|
||||
+11
-11
@@ -397,7 +397,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
if(FC.is_admin_channel)
|
||||
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen'><A href='?src=\ref[src];ac_show_channel=\ref[FC]'>[FC.channel_name]</A></FONT></B><BR>"
|
||||
else
|
||||
dat+="<B><A href='?src=\ref[src];ac_show_channel=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR></B>"
|
||||
dat+="<B><A href='?src=\ref[src];ac_show_channel=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<span class='warning'>***</span>") : null]<BR></B>"
|
||||
dat+={"<BR><HR><A href='?src=\ref[src];ac_refresh=1'>Refresh</A>
|
||||
<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>
|
||||
"}
|
||||
@@ -452,7 +452,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
|
||||
if(src.admincaster_feed_channel.censored)
|
||||
dat+={"
|
||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||
<span class='warning'><B>ATTENTION: </B></span>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||
"}
|
||||
else
|
||||
@@ -464,7 +464,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
i++
|
||||
dat+="<BLOCKQUOTE style=\"padding:4px;border-left:4px #797979 solid\">[MESSAGE.body] <FONT SIZE=1>\[Likes: <A href='?src=\ref[src];ac_setlikes=1;'><FONT COLOR='DarkGreen'>[MESSAGE.likes]</FONT></A> Dislikes: <A href='?src=\ref[src];ac_setdislikes=1;'><FONT COLOR='maroon'>[MESSAGE.dislikes]</FONT></A>\]</FONT><BR>"
|
||||
if(MESSAGE.img)
|
||||
to_chat(usr, browse_rsc(MESSAGE.img, "tmp_photo[i].png"))
|
||||
send_rsc(usr, MESSAGE.img, "tmp_photo[i].png")
|
||||
dat+="<img src='tmp_photo[i].png' width = '180'><BR><BR>"
|
||||
dat+="<FONT SIZE=1><A href='?src=\ref[src];ac_view_comments=1;ac_story=\ref[MESSAGE]'>View Comments</A> <A href='?src=\ref[src];ac_add_comment=1;ac_story=\ref[MESSAGE]'>Add Comment</A> <A href='?src=\ref[src];ac_like=1;ac_story=\ref[MESSAGE]'>Like Story</A> <A href='?src=\ref[src];ac_dislike=1;ac_story=\ref[MESSAGE]'>Dislike Story</A></FONT><BR>"
|
||||
dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author] - [MESSAGE.time_stamp]</FONT>\]</FONT></BLOCKQUOTE><BR>"
|
||||
@@ -484,7 +484,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
else
|
||||
for(var/channel in SSnews.network_channels)
|
||||
var/datum/feed_channel/FC = SSnews.GetFeedChannel(channel)
|
||||
dat+="<A href='?src=\ref[src];ac_pick_censor_channel=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
|
||||
dat+="<A href='?src=\ref[src];ac_pick_censor_channel=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<span class='warning'>***</span>") : null]<BR>"
|
||||
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
|
||||
if(11)
|
||||
dat+={"
|
||||
@@ -498,7 +498,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
else
|
||||
for(var/channel in SSnews.network_channels)
|
||||
var/datum/feed_channel/FC = SSnews.GetFeedChannel(channel)
|
||||
dat+="<A href='?src=\ref[src];ac_pick_d_notice=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
|
||||
dat+="<A href='?src=\ref[src];ac_pick_d_notice=\ref[FC]'>[FC.channel_name]</A> [(FC.censored) ? ("<span class='warning'>***</span>") : null]<BR>"
|
||||
|
||||
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>"
|
||||
if(12)
|
||||
@@ -522,7 +522,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
"}
|
||||
if(src.admincaster_feed_channel.censored)
|
||||
dat+={"
|
||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||
<span class='warning'><B>ATTENTION: </B></span>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||
"}
|
||||
else
|
||||
@@ -580,7 +580,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
<B>Photo:</B>:
|
||||
"}
|
||||
if(SSnews.wanted_issue.img)
|
||||
to_chat(usr, browse_rsc(SSnews.wanted_issue.img, "tmp_photow.png"))
|
||||
send_rsc(usr, SSnews.wanted_issue.img, "tmp_photow.png")
|
||||
dat+="<BR><img src='tmp_photow.png' width = '180'>"
|
||||
else
|
||||
dat+="None"
|
||||
@@ -817,11 +817,11 @@ proc/admin_notice(var/message, var/rights)
|
||||
if(SSticker.current_state == GAME_STATE_PREGAME)
|
||||
SSticker.current_state = GAME_STATE_SETTING_UP
|
||||
log_admin("[usr.key] has started the game.")
|
||||
message_admins("<font color='blue'>[usr.key] has started the game.</font>")
|
||||
message_admins("<span class='notice'>[usr.key] has started the game.</span>")
|
||||
feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return 1
|
||||
else
|
||||
to_chat(usr, "<font color='red'>Error: Start Now: Game has already started.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: Start Now: Game has already started.</span>")
|
||||
return 0
|
||||
|
||||
/datum/admins/proc/toggleenter()
|
||||
@@ -1363,7 +1363,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
if(check_rights(R_ADMIN|R_MOD))
|
||||
if (H.paralysis == 0)
|
||||
msg = "has paralyzed [key_name_admin(H)]."
|
||||
H.visible_message("<font color='#002eb8'><b>OOC Information:</b></font> <font color='red'>[H] has been winded by a member of staff! Please freeze all roleplay involving their character until the matter is resolved! Adminhelp if you have further questions.</font>", "<font color='red'><b>You have been winded by a member of staff! Please stand by until they contact you!</b></font>")
|
||||
H.visible_message("<font color='#002eb8'><b>OOC Information:</b></font> <span class='warning'>[H] has been winded by a member of staff! Please freeze all roleplay involving their character until the matter is resolved! Adminhelp if you have further questions.</span>", "<span class='warning'><b>You have been winded by a member of staff! Please stand by until they contact you!</b></span>")
|
||||
H.paralysis = 8000
|
||||
else
|
||||
if (alert("The player is currently winded. Do you want to unwind him?", "Unwind player?", "Yes", "No") == "No")
|
||||
@@ -1371,7 +1371,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
|
||||
H.paralysis = 0
|
||||
msg = "has unparalyzed [key_name_admin(H)]."
|
||||
H.visible_message("<font color='#002eb8'><b>OOC Information:</b></font> <font color='green'>[H] has been unwinded by a member of staff!</font>", "<font color='red'><b>You have been unwinded by a member of staff!</b></font>")
|
||||
H.visible_message("<font color='#002eb8'><b>OOC Information:</b></font> <font color='green'>[H] has been unwinded by a member of staff!</font>", "<span class='warning'><b>You have been unwinded by a member of staff!</b></span>")
|
||||
log_and_message_admins(msg)
|
||||
feedback_add_details("admin_verb", "WIND")
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, va
|
||||
victim.attack_log += text("\[[time_stamp()]\] <font color='orange'>[key_name(attacker)] - [victim_message]</font>")
|
||||
jmp_link = " (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[victim.x];Y=[victim.y];Z=[victim.z]'>JMP</a>)"
|
||||
if(attacker)
|
||||
attacker.attack_log += text("\[[time_stamp()]\] <font color='red'>[key_name(victim)] - [attacker_message]</font>")
|
||||
attacker.attack_log += text("\[[time_stamp()]\] <span class='warning'>[key_name(victim)] - [attacker_message]</span>")
|
||||
jmp_link = " (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[attacker.x];Y=[attacker.y];Z=[attacker.z]'>JMP</a>)"
|
||||
|
||||
msg_admin_attack("[key_name_admin(attacker)] [admin_message] [key_name_admin(victim)] (INTENT: [attacker? uppertext(attacker.a_intent) : "N/A"])[jmp_link]",ckey=key_name(attacker),ckey_target=key_name(victim))
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
if("singulo", "telesci") //general one-round-only stuff
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</span>")
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
if(href_logfile)
|
||||
src << browse(href_logfile,"window=investigate[subject];size=800x300")
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: No href logfile found.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: admin_investigate: No href logfile found.</span>")
|
||||
return
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: Href Logging is not on.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: admin_investigate: Href Logging is not on.</span>")
|
||||
return
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
/*
|
||||
* A file containing the admin commands for interfacing with the server_greeting datum.
|
||||
*/
|
||||
/client/proc/admin_edit_motd()
|
||||
set name = "Edit MotD"
|
||||
set category = "Server"
|
||||
|
||||
if (!check_rights(R_SERVER))
|
||||
return
|
||||
|
||||
var/new_message = input(usr, "Please edit the Message of the Day as necessary.", "Message of the Day", server_greeting.motd) as message
|
||||
|
||||
if (!new_message)
|
||||
new_message = "<center>This is a palceholder. Pester your staff to change it!</center>"
|
||||
|
||||
server_greeting.update_value("motd", new_message)
|
||||
message_admins("[ckey] has edited the message of the day:<br>[html_encode(new_message)]")
|
||||
|
||||
/client/proc/admin_memo_control(task in list("write", "delete"))
|
||||
set name = "Edit Memos"
|
||||
set category = "Server"
|
||||
|
||||
if (!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
switch (task)
|
||||
if ("write")
|
||||
admin_memo_write()
|
||||
if ("delete")
|
||||
admin_memo_delete()
|
||||
|
||||
/client/proc/admin_memo_write()
|
||||
var/current_memo = ""
|
||||
if (server_greeting.memo_list.len && server_greeting.memo_list[ckey])
|
||||
current_memo = server_greeting.memo_list[ckey]
|
||||
|
||||
var/new_memo = input(usr, "Please write your memo.", "Memo", current_memo) as message
|
||||
|
||||
if (server_greeting.update_value("memo_write", list(ckey, new_memo)))
|
||||
to_chat(src, "<span class='notice'>Operation carried out successfully.</span>")
|
||||
message_admins("[ckey] wrote a new memo:<br>[html_encode(new_memo)]")
|
||||
else
|
||||
to_chat(src, "<span class='danger'>Error carrying out desired operation.</span>")
|
||||
|
||||
return
|
||||
|
||||
/client/proc/admin_memo_delete()
|
||||
if (!server_greeting.memo_list.len)
|
||||
to_chat(src, "<span class='notice'>No memos are currently saved.</span>")
|
||||
return
|
||||
|
||||
if (!check_rights(R_SERVER))
|
||||
if (!server_greeting.memo_list[ckey])
|
||||
to_chat(src, "<span class='warning'>You do not have a memo saved. Cancelling.</span>")
|
||||
|
||||
else if (alert("Do you wish to delete your own memo, written on [server_greeting.memo_list[ckey]["date"]]?", "Choices", "Yes", "No") == "Yes")
|
||||
if (server_greeting.update_value("memo_delete", ckey))
|
||||
to_chat(src, "<span class='notice'>Operation carried out successfully.</span>")
|
||||
message_admins("[ckey] has deleted their own memo.")
|
||||
else
|
||||
to_chat(src, "<span class='danger'>Error carrying out desired operation.</span>")
|
||||
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Cancelled.</span>")
|
||||
|
||||
return
|
||||
else
|
||||
var/input = input(usr, "Whose memo shall we delete?", "Remove Memo", null) as null|anything in server_greeting.memo_list
|
||||
|
||||
if (!input)
|
||||
to_chat(src, "<span class='notice'>Cancelled.</span>")
|
||||
return
|
||||
|
||||
if (server_greeting.update_value("memo_delete", input))
|
||||
to_chat(src, "<span class='notice'>Operation carried out successfully.</span>")
|
||||
message_admins("[ckey] has deleted the memo of [input].")
|
||||
else
|
||||
to_chat(src, "<span class='danger'>Error carrying out desired operation.</span>")
|
||||
|
||||
return
|
||||
@@ -48,7 +48,6 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/rename_silicon, //properly renames silicons,
|
||||
/client/proc/manage_silicon_laws, // Allows viewing and editing silicon laws. ,
|
||||
/client/proc/check_antagonists,
|
||||
/client/proc/admin_memo_control, /*admin memo system. show/delete/write. +SERVER needed to delete admin memos of others*/
|
||||
/client/proc/dsay, /*talk in deadchat using our ckey/fakekey*/
|
||||
/client/proc/toggleprayers, /*toggles prayers on/off*/
|
||||
// /client/proc/toggle_hear_deadcast, /*toggles whether we hear deadchat*/
|
||||
@@ -172,7 +171,6 @@ var/list/admin_verbs_server = list(
|
||||
/client/proc/toggle_random_events,
|
||||
/client/proc/check_customitem_activity,
|
||||
/client/proc/nanomapgen_DumpImage,
|
||||
/client/proc/admin_edit_motd,
|
||||
/client/proc/toggle_recursive_explosions,
|
||||
/client/proc/restart_controller,
|
||||
/client/proc/cmd_ss_panic,
|
||||
@@ -273,7 +271,6 @@ var/list/admin_verbs_hideable = list(
|
||||
/client/proc/toggle_antagHUD_use,
|
||||
/client/proc/toggle_antagHUD_restrictions,
|
||||
/client/proc/event_manager_panel,
|
||||
/client/proc/admin_edit_motd,
|
||||
/client/proc/empty_ai_core_toggle_latejoin,
|
||||
/client/proc/empty_ai_core_toggle_latejoin,
|
||||
/client/proc/cmd_admin_change_custom_event,
|
||||
@@ -301,7 +298,6 @@ var/list/admin_verbs_hideable = list(
|
||||
/client/proc/add_client_color,
|
||||
/datum/admins/proc/force_mode_latespawn,
|
||||
/datum/admins/proc/toggleenter,
|
||||
/client/proc/admin_memo_control,
|
||||
/datum/admins/proc/toggleguests,
|
||||
/datum/admins/proc/capture_map_part,
|
||||
/client/proc/Set_Holiday,
|
||||
@@ -569,13 +565,13 @@ var/list/admin_verbs_cciaa = list(
|
||||
ghost.reenter_corpse()
|
||||
log_admin("[src] reentered their corpose using aghost.",admin_key=key_name(src))
|
||||
else
|
||||
to_chat(ghost, "<font color='red'>Error: Aghost: Can't reenter corpse.</font>")
|
||||
to_chat(ghost, "<span class='warning'>Error: Aghost: Can't reenter corpse.</span>")
|
||||
return
|
||||
|
||||
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
else if(istype(mob,/mob/abstract/new_player))
|
||||
to_chat(src, "<font color='red'>Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.</span>")
|
||||
else
|
||||
//ghostize
|
||||
var/mob/body = mob
|
||||
@@ -728,7 +724,7 @@ var/list/admin_verbs_cciaa = list(
|
||||
|
||||
C.cure_all_traumas(TRUE, CURE_ADMIN)
|
||||
log_and_message_admins("<span class='notice'>cured [key_name(C)]'s traumas.</span>")
|
||||
feedback_add_details("admin_verb","TB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!\
|
||||
feedback_add_details("admin_verb","TB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/add_traumas(mob/T as mob in mob_list)
|
||||
set category = "Fun"
|
||||
|
||||
@@ -87,13 +87,13 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check
|
||||
return 1
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(user, "<font color='red'>Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].</font>")
|
||||
to_chat(user, "<span class='warning'>Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].</span>")
|
||||
else
|
||||
if(user.client.holder)
|
||||
return 1
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(user, "<font color='red'>Error: You are not an admin.</font>")
|
||||
to_chat(user, "<span class='warning'>Error: You are not an admin.</span>")
|
||||
return 0
|
||||
|
||||
//probably a bit iffy - will hopefully figure out a better solution
|
||||
@@ -105,7 +105,7 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check
|
||||
if(usr.client.holder.rights != other.holder.rights)
|
||||
if( (usr.client.holder.rights & other.holder.rights) == other.holder.rights )
|
||||
return 1 //we have all the rights they have and more
|
||||
to_chat(usr, "<font color='red'>Error: Cannot proceed. They have more or equal rights to us.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: Cannot proceed. They have more or equal rights to us.</span>")
|
||||
return 0
|
||||
|
||||
/client/proc/deadmin()
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
var/cap = generate_image(tx ,ty ,tz ,range, CAPTURE_MODE_PARTIAL, null, ligths, 1)
|
||||
var/file_name = "map_capture_x[tx]_y[ty]_z[tz]_r[range].png"
|
||||
to_chat(usr, "Saved capture in cache as [file_name].")
|
||||
to_chat(usr, browse_rsc(cap, file_name))
|
||||
send_rsc(usr, cap, file_name)
|
||||
else
|
||||
to_chat(usr, "Target coordinates are incorrect.")
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/cap = generate_image(currentx ,currenty ,currentz ,16, CAPTURE_MODE_PARTIAL, null, ligths, 1)
|
||||
var/file_name = "map_capture_x[currentx]_y[currenty]_z[currentz]_r16.png"
|
||||
to_chat(usr, "Saved capture in cache as [file_name].")
|
||||
to_chat(usr, browse_rsc(cap, file_name))
|
||||
send_rsc(usr, cap, file_name)
|
||||
currentx = currentx + 16
|
||||
spawn (6)
|
||||
del(cap)
|
||||
@@ -45,7 +45,7 @@
|
||||
var/cap = generate_image(currentx ,currenty ,currentz ,16, CAPTURE_MODE_PARTIAL, null, ligths, 1)
|
||||
var/file_name = "map_capture_x[currentx]_y[currenty]_z[currentz]_r16.png"
|
||||
to_chat(usr, "Saved capture in cache as [file_name].")
|
||||
to_chat(usr, browse_rsc(cap, file_name))
|
||||
send_rsc(usr, cap, file_name)
|
||||
currentx = currentx + 16
|
||||
spawn (6)
|
||||
del(cap)
|
||||
|
||||
@@ -10,7 +10,7 @@ datum/admins/proc/notes_show(var/ckey)
|
||||
|
||||
datum/admins/proc/notes_gethtml(var/ckey)
|
||||
var/savefile/notesfile = new(NOTESFILE)
|
||||
if(!notesfile) return "<font color='red'>Error: Cannot access [NOTESFILE]</font>"
|
||||
if(!notesfile) return "<span class='warning'>Error: Cannot access [NOTESFILE]</span>"
|
||||
if(ckey)
|
||||
. = "<b>Notes for <a href='?src=\ref[src];notes=show'>[ckey]</a>:</b> <a href='?src=\ref[src];notes=add;ckey=[ckey]'>\[+\]</a> <a href='?src=\ref[src];notes=remove;ckey=[ckey]'>\[-\]</a><br>"
|
||||
notesfile.cd = "/[ckey]"
|
||||
|
||||
@@ -827,7 +827,7 @@
|
||||
|
||||
//Job + antagonist
|
||||
if(M.mind)
|
||||
special_role_description = "Role: <b>[M.mind.assigned_role]</b>; Antagonist: <font color='red'><b>[M.mind.special_role]</b></font>; Has been rev: [(M.mind.has_been_rev)?"Yes":"No"]"
|
||||
special_role_description = "Role: <b>[M.mind.assigned_role]</b>; Antagonist: <span class='warning'><b>[M.mind.special_role]</b></span>; Has been rev: [(M.mind.has_been_rev)?"Yes":"No"]"
|
||||
else
|
||||
special_role_description = "Role: <i>Mind datum missing</i> Antagonist: <i>Mind datum missing</i>; Has been rev: <i>Mind datum missing</i>;"
|
||||
|
||||
@@ -838,7 +838,7 @@
|
||||
switch (M.stat)
|
||||
if (0) status = "Alive"
|
||||
if (1) status = "<font color='orange'><b>Unconscious</b></font>"
|
||||
if (2) status = "<font color='red'><b>Dead</b></font>"
|
||||
if (2) status = "<span class='warning'><b>Dead</b></span>"
|
||||
health_description = "Status: [status]"
|
||||
health_description += "<BR>Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()]"
|
||||
else
|
||||
@@ -853,7 +853,7 @@
|
||||
//GenDer
|
||||
switch(M.gender)
|
||||
if(MALE,FEMALE) gender_description = "[M.gender]"
|
||||
else gender_description = "<font color='red'><b>[M.gender]</b></font>"
|
||||
else gender_description = "<span class='warning'><b>[M.gender]</b></span>"
|
||||
|
||||
var/dat = "<b>Info about [M.name]:</b><br>"
|
||||
dat += "Mob type: [M.type]<br>"
|
||||
|
||||
@@ -13,27 +13,27 @@
|
||||
data += "<b>If you do not know what these do, you shouldn't be touching them!</b><hr>"
|
||||
|
||||
data += "<h2>Hub Visibility Setting:</h2><br>"
|
||||
data += "Currently [world.visibility ? "<font color='green'>VISIBLE</font>" : "<font color='red'>HIDDEN</font>"]. <a href='?_src_=holder;access_control=hub'>Toggle</a><br><hr>"
|
||||
data += "Currently [world.visibility ? "<font color='green'>VISIBLE</font>" : "<span class='warning'>HIDDEN</span>"]. <a href='?_src_=holder;access_control=hub'>Toggle</a><br><hr>"
|
||||
|
||||
data += "<h2>IP Intel Settings:</h2><br><ul>"
|
||||
data += "<li>Current warning level: [config.ipintel_rating_bad ? "[config.ipintel_rating_bad]" : "<font color='red'>DISABLED</font>"]. <a href='?_src_=holder;access_control=intel_bad'>Edit</a></li>"
|
||||
data += "<li>Current kick level: [config.ipintel_rating_kick ? "[config.ipintel_rating_kick]" : "<font color='red'>DISABLED</font>"]. <a href='?_src_=holder;access_control=intel_kick'>Edit</a></li>"
|
||||
data += "<li>Current warning level: [config.ipintel_rating_bad ? "[config.ipintel_rating_bad]" : "<span class='warning'>DISABLED</span>"]. <a href='?_src_=holder;access_control=intel_bad'>Edit</a></li>"
|
||||
data += "<li>Current kick level: [config.ipintel_rating_kick ? "[config.ipintel_rating_kick]" : "<span class='warning'>DISABLED</span>"]. <a href='?_src_=holder;access_control=intel_kick'>Edit</a></li>"
|
||||
data += "</ul><hr>"
|
||||
|
||||
data += "<h2>Player Age Settings:</h2><br><ul>"
|
||||
data += "<li>New players: [config.access_deny_new_players ? "<font color='red'>DENIED</font>" : "<font color='green'>ALLOWED</font>"]. <a href='?_src_=holder;access_control=new_players;'>Toggle</a></li>"
|
||||
data += "<li>Account age restriction: [config.access_deny_new_accounts == -1 ? "<font color='red'>DISABLED</font>" : "[config.access_deny_new_accounts] DAYS"]. <a href='?_src_=holder;access_control=new_accounts;'>Edit</a></li>"
|
||||
data += "<li>New players: [config.access_deny_new_players ? "<span class='warning'>DENIED</span>" : "<font color='green'>ALLOWED</font>"]. <a href='?_src_=holder;access_control=new_players;'>Toggle</a></li>"
|
||||
data += "<li>Account age restriction: [config.access_deny_new_accounts == -1 ? "<span class='warning'>DISABLED</span>" : "[config.access_deny_new_accounts] DAYS"]. <a href='?_src_=holder;access_control=new_accounts;'>Edit</a></li>"
|
||||
data += "</ul><hr>"
|
||||
|
||||
data += "<h2>VM Detection Settings:</h2><br><ul>"
|
||||
data += "<li>VM identifier count to warn on: [config.access_warn_vms ? "[config.access_warn_vms]" : "<font color='red'>DISABLED</font>"]. <a href='?_src_=holder;access_control=vm_warn;'>Edit</a></li>"
|
||||
data += "<li>VM identifier count to kick on: [config.access_deny_vms ? "[config.access_deny_vms]" : "<font color='red'>DISABLED</font>"]. <a href='?_src_=holder;access_control=vm_kick;'>Edit</a></li>"
|
||||
data += "<li>VM identifier count to warn on: [config.access_warn_vms ? "[config.access_warn_vms]" : "<span class='warning'>DISABLED</span>"]. <a href='?_src_=holder;access_control=vm_warn;'>Edit</a></li>"
|
||||
data += "<li>VM identifier count to kick on: [config.access_deny_vms ? "[config.access_deny_vms]" : "<span class='warning'>DISABLED</span>"]. <a href='?_src_=holder;access_control=vm_kick;'>Edit</a></li>"
|
||||
data += "</ul>"
|
||||
|
||||
data += "<h2>Guest join settings:</h2><br><ul>"
|
||||
data += "<li>Guests [(config.guests_allowed || config.external_auth) ? "<font color='green'>CAN</font>" : "<font color='red'>CAN NOT</font>"] join.</li>"
|
||||
data += "<li>Guests [config.guests_allowed ? "<font color='green'>CAN</font>" : "<font color='red'>CAN NOT</font>"] play. <a href='?_src_=holder;access_control=guest;'>Toggle</a></li>"
|
||||
data += "<li>External authetification: [config.external_auth ? "<font color='green'>ENABLED</font>" : "<font color='red'>DISABLED</font>"]. <a href='?_src_=holder;access_control=external_auth;'>Toggle</a></li>"
|
||||
data += "<li>Guests [(config.guests_allowed || config.external_auth) ? "<font color='green'>CAN</font>" : "<span class='warning'>CAN NOT</span>"] join.</li>"
|
||||
data += "<li>Guests [config.guests_allowed ? "<font color='green'>CAN</font>" : "<span class='warning'>CAN NOT</span>"] play. <a href='?_src_=holder;access_control=guest;'>Toggle</a></li>"
|
||||
data += "<li>External authetification: [config.external_auth ? "<font color='green'>ENABLED</font>" : "<span class='warning'>DISABLED</span>"]. <a href='?_src_=holder;access_control=external_auth;'>Toggle</a></li>"
|
||||
data += "</ul>"
|
||||
|
||||
config_window.set_user(src.mob)
|
||||
|
||||
@@ -111,7 +111,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
//Options bar: mob, details ( admin = 2, undibbsed admin = 3, mentor = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
|
||||
// highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name)
|
||||
|
||||
msg = "<span class='notice'><b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1, 1, ticket)] (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>):</b> [msg]</span>"
|
||||
msg = "<span class='notice'><b>[create_text_tag("HELP")][get_options_bar(mob, 2, 1, 1, 1, ticket)] (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>):</b> [msg]</span>"
|
||||
|
||||
var/admin_number_present = 0
|
||||
var/admin_number_afk = 0
|
||||
@@ -128,7 +128,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
to_chat(C, msg)
|
||||
|
||||
//show it to the person adminhelping too
|
||||
to_chat(src, "<font color='blue'>PM to-<b>Staff </b>: [original_msg]</font>")
|
||||
to_chat(src, "<span class='notice'>PM to-<b>Staff </b>: [original_msg]</span>")
|
||||
|
||||
var/admin_number_active = admin_number_present - admin_number_afk
|
||||
log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.",admin_key=key_name(src))
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set category = null
|
||||
set name = "Admin PM Mob"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Context: Only administrators may use this command.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Admin-PM-Context: Only administrators may use this command.</span>")
|
||||
return
|
||||
if( !ismob(M) || !M.client ) return
|
||||
cmd_admin_pm(M.client,null)
|
||||
@@ -14,7 +14,7 @@
|
||||
set category = "Admin"
|
||||
set name = "Admin PM"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Panel: Only administrators may use this command.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Admin-PM-Panel: Only administrators may use this command.</span>")
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
for(var/p in clients)
|
||||
@@ -41,8 +41,8 @@
|
||||
|
||||
/client/proc/cmd_admin_pm(var/client/C, var/msg = null, var/datum/ticket/ticket = null)
|
||||
if(!istype(C, /client))
|
||||
if(holder) to_chat(src, "<font color='red'>Error: Private-Message: Client not found.</font>")
|
||||
else to_chat(src, "<font color='red'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</font>")
|
||||
if(holder) to_chat(src, "<span class='warning'>Error: Private-Message: Client not found.</span>")
|
||||
else to_chat(src, "<span class='warning'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</span>")
|
||||
return
|
||||
|
||||
var/receive_pm_type = "Player"
|
||||
@@ -66,9 +66,9 @@
|
||||
return
|
||||
if(!C)
|
||||
if(holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM: Client not found.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Admin-PM: Client not found.</span>")
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_SERVER|R_DEBUG|R_DEV, 0))
|
||||
@@ -125,21 +125,21 @@
|
||||
adminhelp(reply) //sender has left, adminhelp instead
|
||||
return
|
||||
|
||||
var/sender_message = "<span class='pm'><span class='out'>" + create_text_tag("pm_out_alt", "PM", src) + " to <span class='name'>[get_options_bar(C, holder ? 1 : 0, holder ? 1 : 0, 1)]</span>"
|
||||
var/sender_message = "<span class='pm'><span class='out'>" + create_text_tag("PM <-", src) + " to <span class='name'>[get_options_bar(C, holder ? 1 : 0, holder ? 1 : 0, 1)]</span>"
|
||||
if(holder)
|
||||
sender_message += " (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
|
||||
sender_message += ": <span class='message'>[generate_ahelp_key_words(mob, msg)]</span>"
|
||||
sender_message += ": <span class='message linkify'>[generate_ahelp_key_words(mob, msg)]</span>"
|
||||
else
|
||||
sender_message += ": <span class='message'>[msg]</span>"
|
||||
sender_message += ": <span class='message linkify'>[msg]</span>"
|
||||
sender_message += "</span></span>"
|
||||
to_chat(src, sender_message)
|
||||
|
||||
var/receiver_message = "<span class='pm'><span class='in'>" + create_text_tag("pm_in", "", C) + " <b>\[[receive_pm_type] PM\]</b> <span class='name'>[get_options_bar(src, C.holder ? 1 : 0, C.holder ? 1 : 0, 1)]</span>"
|
||||
var/receiver_message = "<span class='pm'><span class='in'>" + create_text_tag("PM ->", C) + " <b>\[[receive_pm_type] PM\]</b> <span class='name'>[get_options_bar(src, C.holder ? 1 : 0, C.holder ? 1 : 0, 1)]</span>"
|
||||
if(C.holder)
|
||||
receiver_message += " (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
|
||||
receiver_message += ": <span class='message'>[generate_ahelp_key_words(C.mob, msg)]</span>"
|
||||
receiver_message += ": <span class='message linkify'>[generate_ahelp_key_words(C.mob, msg)]</span>"
|
||||
else
|
||||
receiver_message += ": <span class='message'>[msg]</span>"
|
||||
receiver_message += ": <span class='message linkify'>[msg]</span>"
|
||||
receiver_message += "</span></span>"
|
||||
to_chat(C, receiver_message)
|
||||
|
||||
@@ -159,11 +159,11 @@
|
||||
if(X == C || X == src)
|
||||
continue
|
||||
if(X.key != key && X.key != C.key && (X.holder.rights & (R_ADMIN|R_MOD)))
|
||||
to_chat(X, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", X) + " <span class='name'>[key_name(src, X, 0, ticket)]</span> to <span class='name'>[key_name(C, X, 0, ticket)]</span> (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): <span class='message'>[msg]</span></span></span>")
|
||||
to_chat(X, "<span class='pm'><span class='other'>" + create_text_tag("PM <->", X) + " <span class='name'>[key_name(src, X, 0, ticket)]</span> to <span class='name'>[key_name(C, X, 0, ticket)]</span> (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): <span class='message linkify'>[msg]</span></span></span>")
|
||||
|
||||
/client/proc/cmd_admin_discord_pm(sender)
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<font color='red'>Error: Private-Message: You are unable to use PM-s (muted).</font>")
|
||||
to_chat(src, "<span class='warning'>Error: Private-Message: You are unable to use PM-s (muted).</span>")
|
||||
return
|
||||
|
||||
var/msg = input(src,"Message:", "Reply private message to [sender] on Discord") as text|null
|
||||
@@ -177,7 +177,7 @@
|
||||
post_webhook_event(WEBHOOK_ADMIN_PM, list("title"="Help is requested", "message"="PlayerPM to **[discord_escape(sender)]** from **[discord_escape(key_name(src))]**: ```[discord_escape(html_decode(msg))]```"))
|
||||
discord_bot.send_to_admins("PlayerPM to [discord_escape(sender)] from [discord_escape(key_name(src))]: [discord_escape(html_decode(msg))]")
|
||||
|
||||
to_chat(src, "<span class='pm'><span class='out'>" + create_text_tag("pm_out_alt", "", src) + " to <span class='name'>Discord-[sender]</span>: <span class='message'>[msg]</span></span></span>")
|
||||
to_chat(src, "<span class='pm'><span class='out'>" + create_text_tag("PM <-", src) + " to <span class='name'>Discord-[sender]</span>: <span class='message linkify'>[msg]</span></span></span>")
|
||||
|
||||
log_admin("PM: [key_name(src)]->Discord-[sender]: [msg]")
|
||||
for(var/s in staff)
|
||||
@@ -185,4 +185,4 @@
|
||||
if(C == src)
|
||||
continue
|
||||
if(C.holder.rights & (R_ADMIN|R_MOD))
|
||||
to_chat(C, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", C) + " <span class='name'>[key_name(src, C, 0)]</span> to <span class='name'>Discord-[sender]</span>: <span class='message'>[msg]</span></span></span>")
|
||||
to_chat(C, "<span class='pm'><span class='other'>" + create_text_tag("PM <->", C) + " <span class='name'>[key_name(src, C, 0)]</span> to <span class='name'>Discord-[sender]</span>: <span class='message linkify'>[msg]</span></span></span>")
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
to_chat(C, "<span class='admin_channel'>" + create_text_tag("admin", "ADMIN:", C) + " <span class='name'>[key_name(usr, 1)]</span>([admin_jump_link(mob, src)]): <span class='message'>[msg]</span></span>")
|
||||
to_chat(C, "<span class='admin_channel'>" + create_text_tag("ADMIN", C) + " <span class='name'>[key_name(usr, 1)]</span>([admin_jump_link(mob, src)]): <span class='message linkify'>[msg]</span></span>")
|
||||
|
||||
feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if ((R_ADMIN|R_MOD) & C.holder.rights)
|
||||
to_chat(C, "<span class='mod_channel'>" + create_text_tag("mod", "MOD:", C) + " <span class='name'>[sender_name]</span>(<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>")
|
||||
to_chat(C, "<span class='mod_channel'>" + create_text_tag("MOD", C) + " <span class='name'>[sender_name]</span>(<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message linkify'>[msg]</span></span>")
|
||||
|
||||
feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
log_admin("DEV: [key_name(src)] : [msg]",admin_key=key_name(src))
|
||||
|
||||
if(check_rights(R_DEV,0))
|
||||
msg = "<span class='devsay'><span class='prefix'>DEV:</span> <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message'>[msg]</span></span>"
|
||||
msg = "<span class='devsay'>[create_text_tag("DEV")] <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message linkify'>[msg]</span></span>"
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C.holder.rights & (R_ADMIN|R_DEV))
|
||||
@@ -72,7 +72,7 @@
|
||||
log_admin("CCIASAY: [key_name(src)] : [msg]",admin_key=key_name(src))
|
||||
|
||||
if(check_rights((R_CCIAA|R_ADMIN),0))
|
||||
msg = "<span class='cciaasay'><span class='prefix'>CCIAAgent:</span> <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message'>[msg]</span></span>"
|
||||
msg = "<span class='cciaasay'><span class='prefix'>CCIAAgent:</span> <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message linkify'>[msg]</span></span>"
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C.holder.rights & (R_ADMIN|R_CCIAA))
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
if (check_rights(R_ADMIN|R_MOD|R_CCIAA, 0, M) && M.client.aooc_mute_holder_check() == FALSE)
|
||||
to_chat(M, "<font color='#960018'><span class='ooc'>" + create_text_tag("aooc", "Antag-OOC:", M.client) + " <EM>[get_options_bar(src, 0, 1, 1)](<A HREF='?_src_=holder;adminplayerobservejump=\ref[src.mob]'>JMP</A>):</EM> <span class='message'>[msg]</span></span></font>")
|
||||
to_chat(M, "<font color='#960018'><span class='ooc'>" + create_text_tag("A-OOC", M.client) + " <EM>[get_options_bar(src, 0, 1, 1)](<A HREF='?_src_=holder;adminplayerobservejump=\ref[src.mob]'>JMP</A>):</EM> <span class='message linkify'>[msg]</span></span></font>")
|
||||
else if (M.mind && M.mind.special_role && M.client)
|
||||
to_chat(M, "<font color='#960018'><span class='ooc'>" + create_text_tag("aooc", "Antag-OOC:", M.client) + " <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
|
||||
to_chat(M, "<font color='#960018'><span class='ooc'>" + create_text_tag("A-OOC", M.client) + " <EM>[display_name]:</EM> <span class='message linkify'>[msg]</span></span></font>")
|
||||
|
||||
log_ooc("(ANTAG) [key] : [msg]",ckey=key_name(mob))
|
||||
|
||||
|
||||
@@ -27,6 +27,6 @@
|
||||
if (!msg)
|
||||
return
|
||||
|
||||
say_dead_direct("<span class='name'>[stafftype]([src.holder.fakekey ? src.holder.fakekey : src.key])</span> says, <span class='message'>\"[msg]\"</span>")
|
||||
say_dead_direct("<span class='name'>[stafftype]([src.holder.fakekey ? src.holder.fakekey : src.key])</span> says, <span class='message linkify'>\"[msg]\"</span>")
|
||||
|
||||
feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -24,16 +24,16 @@
|
||||
set category = null
|
||||
|
||||
if(!src.holder)
|
||||
to_chat(src, "<font color='red'>Only Admins may use this command.</font>")
|
||||
to_chat(src, "<span class='warning'>Only Admins may use this command.</span>")
|
||||
return
|
||||
|
||||
var/client/target = input(src,"Choose somebody to grant access to the server's runtime logs (permissions expire at the end of each round):","Grant Permissions",null) as null|anything in clients
|
||||
if(!istype(target,/client))
|
||||
to_chat(src, "<font color='red'>Error: giveruntimelog(): Client not found.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: giveruntimelog(): Client not found.</span>")
|
||||
return
|
||||
|
||||
target.verbs |= /client/proc/getruntimelog
|
||||
to_chat(target, "<font color='red'>You have been granted access to runtime logs. Please use them responsibly or risk being banned.</font>")
|
||||
to_chat(target, "<span class='warning'>You have been granted access to runtime logs. Please use them responsibly or risk being banned.</span>")
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -81,13 +81,13 @@ var/intercom_range_display_status = 0
|
||||
|
||||
for(var/obj/machinery/camera/C1 in CL)
|
||||
if(C1.c_tag == null)
|
||||
output += "<li><font color='red'>null c_tag for sec camera at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc])</font></li>"
|
||||
output += "<li><span class='warning'>null c_tag for sec camera at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc])</span></li>"
|
||||
for(var/obj/machinery/camera/C2 in CL)
|
||||
if(C1 != C2)
|
||||
if(C1.c_tag == C2.c_tag)
|
||||
output += "<li><font color='red'>c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]</font></li>"
|
||||
output += "<li><span class='warning'>c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]</span></li>"
|
||||
if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y)
|
||||
output += "<li><font color='red'>FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||
output += "<li><span class='warning'>FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</span></li>"
|
||||
if(C1.loc == C2.loc)
|
||||
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||
var/turf/T = get_step(C1,turn(C1.dir,180))
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
else if(isicon(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
var_value = "\icon[var_value]"
|
||||
var_value = "[icon2html(var_value, usr)]"
|
||||
default = "icon"
|
||||
|
||||
else if(istype(var_value,/atom) || istype(var_value,/datum))
|
||||
|
||||
@@ -239,7 +239,7 @@ var/list/VVdynamic_lock = list(
|
||||
|
||||
else if(isicon(variable))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
variable = "\icon[variable]"
|
||||
variable = "[icon2html(variable, usr)]"
|
||||
default = "icon"
|
||||
|
||||
else if(istype(variable,/atom) || istype(variable,/datum))
|
||||
@@ -458,7 +458,7 @@ var/list/VVdynamic_lock = list(
|
||||
|
||||
else if(isicon(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
var_value = "\icon[var_value]"
|
||||
var_value = "[icon2html(var_value, usr)]"
|
||||
class = "icon"
|
||||
|
||||
else if(istype(var_value,/atom) || istype(var_value,/datum))
|
||||
@@ -520,7 +520,7 @@ var/list/VVdynamic_lock = list(
|
||||
|
||||
else if(isicon(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
var_value = "\icon[var_value]"
|
||||
var_value = "[icon2html(var_value, usr)]"
|
||||
default = "icon"
|
||||
|
||||
else if(istype(var_value,/atom) || istype(var_value,/datum))
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
return
|
||||
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
msg = "<span class='notice'>\icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]</span>"
|
||||
msg = "<span class='notice'>[icon2html(cross, src)] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]</span>"
|
||||
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
|
||||
@@ -190,12 +190,12 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
if(!usr.client.holder)
|
||||
to_chat(usr, "<font color='red'>Error: cmd_admin_mute: You don't have permission to do this.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: cmd_admin_mute: You don't have permission to do this.</span>")
|
||||
return
|
||||
if(!M.client)
|
||||
to_chat(usr, "<font color='red'>Error: cmd_admin_mute: This mob doesn't have a client tied to it.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: cmd_admin_mute: This mob doesn't have a client tied to it.</span>")
|
||||
if(M.client.holder)
|
||||
to_chat(usr, "<font color='red'>Error: cmd_admin_mute: You cannot mute an admin/mod.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: cmd_admin_mute: You cannot mute an admin/mod.</span>")
|
||||
if(!M.client) return
|
||||
if(M.client.holder) return
|
||||
|
||||
@@ -430,7 +430,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
break
|
||||
|
||||
if(!G_found)//If a ghost was not found.
|
||||
to_chat(usr, "<font color='red'>There is no active key like that in the game or the person is not currently a ghost.</font>")
|
||||
to_chat(usr, "<span class='warning'>There is no active key like that in the game or the person is not currently a ghost.</span>")
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned.
|
||||
@@ -629,7 +629,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
command_announcement.Announce("[reportbody]", reporttitle, new_sound = 'sound/AI/commandreport.ogg', msg_sanitized = 1);
|
||||
if("No")
|
||||
to_world("<span class='warning'>New [current_map.company_name] Update available at all communication consoles.</span>")
|
||||
to_world(sound('sound/AI/commandreport.ogg'))
|
||||
sound_to(world, ('sound/AI/commandreport.ogg'))
|
||||
|
||||
log_admin("[key_name(src)] has created a command report: [reportbody]",admin_key=key_name(usr))
|
||||
message_admins("[key_name_admin(src)] has created a command report", 1)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
establish_db_connection(dbcon)
|
||||
if (!dbcon.IsConnected())
|
||||
to_chat(usr, "<font color='red'>Error: warn(): Database Connection failed, reverting to legacy systems.</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: warn(): Database Connection failed, reverting to legacy systems.</span>")
|
||||
usr.client.warn_legacy(warned_ckey)
|
||||
return
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
feedback_add_details("admin_verb", "WARN-DB")
|
||||
if (C)
|
||||
to_chat(C, "<font color='red'><BIG><B>You have been warned by an administrator.</B></BIG><br>Click <a href='byond://?src=\ref[src];warnview=1'>here</a> to review and acknowledge them!</font>")
|
||||
to_chat(C, "<span class='warning'><BIG><B>You have been warned by an administrator.</B></BIG><br>Click <a href='byond://?src=\ref[src];warnview=1'>here</a> to review and acknowledge them!</span>")
|
||||
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] for: [warning_reason].")
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
/client/proc/warn_legacy(warned_ckey)
|
||||
if (!warned_ckey)
|
||||
to_chat(usr, "<font color='red'>Error: warn_legacy(): No ckey passed!</font>")
|
||||
to_chat(usr, "<span class='warning'>Error: warn_legacy(): No ckey passed!</span>")
|
||||
return
|
||||
|
||||
var/datum/preferences/D
|
||||
@@ -72,14 +72,14 @@
|
||||
else D = preferences_datums[warned_ckey]
|
||||
|
||||
if(!D)
|
||||
to_chat(src, "<font color='red'>Error: warn_legacy(): No such ckey found.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: warn_legacy(): No such ckey found.</span>")
|
||||
return
|
||||
|
||||
if(++D.warns >= MAX_WARNS) //uh ohhhh...you'reee iiiiin trouuuubble O:)
|
||||
ban_unban_log_save("[ckey] warned [warned_ckey], resulting in a [AUTOBANTIME] minute autoban.")
|
||||
if(C)
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban.")
|
||||
to_chat(C, "<font color='red'><BIG><B>You have been autobanned due to a warning by [ckey].</B></BIG><br>This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.</font>")
|
||||
to_chat(C, "<span class='warning'><BIG><B>You have been autobanned due to a warning by [ckey].</B></BIG><br>This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.</span>")
|
||||
qdel(C)
|
||||
else
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban.")
|
||||
@@ -87,7 +87,7 @@
|
||||
feedback_inc("ban_warn",1)
|
||||
else
|
||||
if(C)
|
||||
to_chat(C, "<font color='red'><BIG><B>You have been warned by an administrator.</B></BIG><br>Further warnings will result in an autoban.</font>")
|
||||
to_chat(C, "<span class='warning'><BIG><B>You have been warned by an administrator.</B></BIG><br>Further warnings will result in an autoban.</span>")
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)]. They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
else
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] (DC). They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
var/atom/A = D
|
||||
if(A.icon && A.icon_state)
|
||||
sprite = icon(A.icon, A.icon_state)
|
||||
to_chat(usr, browse_rsc(sprite, "view_vars_sprite.png"))
|
||||
send_rsc(usr, sprite, "view_vars_sprite.png")
|
||||
|
||||
to_chat(usr, browse_rsc('code/js/view_variables.js', "view_variables.js"))
|
||||
send_rsc(usr, 'code/js/view_variables.js', "view_variables.js")
|
||||
|
||||
var/html = {"
|
||||
<html>
|
||||
|
||||
Reference in New Issue
Block a user