mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-31 00:49:06 +01:00
Adds preference for seeing LOOC from ghosts (#11577)
This commit is contained in:
@@ -57,6 +57,7 @@
|
||||
#define CHAT_GHOSTRADIO 0x2000
|
||||
#define SHOW_TYPING 0x4000
|
||||
#define CHAT_NOICONS 0x8000
|
||||
#define CHAT_GHOSTLOOC 0x10000
|
||||
|
||||
#define PARALLAX_SPACE 0x1
|
||||
#define PARALLAX_DUST 0x2
|
||||
@@ -65,7 +66,7 @@
|
||||
#define FLOATING_MESSAGES 0x10
|
||||
#define HOTKEY_DEFAULT 0x20
|
||||
|
||||
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC)
|
||||
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC|CHAT_GHOSTLOOC)
|
||||
|
||||
//Sound effects toggles
|
||||
#define ASFX_AMBIENCE 1
|
||||
|
||||
@@ -396,6 +396,7 @@
|
||||
var/list/tagname_to_class = list(
|
||||
"OOC" = "ooc",
|
||||
"LOOC" = "looc",
|
||||
"ALOOC" = "adminlooc",
|
||||
"DEV" = "dev",
|
||||
"ADMIN" = "admin",
|
||||
"MOD" = "mod",
|
||||
|
||||
@@ -86,6 +86,9 @@
|
||||
if(!(prefs.toggles & CHAT_LOOC))
|
||||
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
|
||||
return
|
||||
if(mob.stat == DEAD && !(prefs.toggles & CHAT_GHOSTLOOC))
|
||||
to_chat(src, "<span class='danger'>You have observer LOOC muted.</span>")
|
||||
return
|
||||
|
||||
if(!holder)
|
||||
if(!config.looc_allowed)
|
||||
@@ -138,6 +141,8 @@
|
||||
var/admin_stuff
|
||||
for(var/client/target in clients)
|
||||
if(target.prefs.toggles & CHAT_LOOC)
|
||||
if(mob.stat == DEAD && !(target.prefs.toggles & CHAT_GHOSTLOOC))
|
||||
continue
|
||||
admin_stuff = ""
|
||||
var/display_remote = 0
|
||||
if (target.holder && ((R_MOD|R_ADMIN) & target.holder.rights))
|
||||
|
||||
@@ -100,7 +100,8 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/fix_player_list,
|
||||
/client/proc/reset_openturf,
|
||||
/client/proc/toggle_aooc,
|
||||
/client/proc/force_away_mission
|
||||
/client/proc/force_away_mission,
|
||||
/client/proc/alooc
|
||||
)
|
||||
var/list/admin_verbs_ban = list(
|
||||
/client/proc/unban_panel,
|
||||
@@ -421,7 +422,8 @@ var/list/admin_verbs_mod = list(
|
||||
/client/proc/print_logout_report,
|
||||
/client/proc/check_ai_laws, /*shows AI and borg laws*/
|
||||
/client/proc/aooc,
|
||||
/client/proc/toggle_aooc
|
||||
/client/proc/toggle_aooc,
|
||||
/client/proc/alooc
|
||||
)
|
||||
|
||||
var/list/admin_verbs_dev = list( //will need to be altered - Ryan784
|
||||
@@ -1298,3 +1300,66 @@ var/list/admin_verbs_cciaa = list(
|
||||
log_and_message_admins("reset the forced away mission.")
|
||||
else
|
||||
log_and_message_admins("forced the following away mission: [mission_name].")
|
||||
|
||||
/client/proc/alooc(msg as text)
|
||||
set name = "Admin LOOC"
|
||||
set desc = "Admin Local OOC, seen only by those in view, regardless of their LOOC preferences."
|
||||
set category = "Admin"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD))
|
||||
return
|
||||
|
||||
if(!mob)
|
||||
return
|
||||
|
||||
msg = sanitize(msg)
|
||||
msg = process_chat_markup(msg, list("*"))
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
log_ooc("(ADMIN LOCAL) [mob.name]/[key] : [msg]",ckey=key_name(mob))
|
||||
|
||||
var/mob/source = src.mob
|
||||
var/list/messageturfs = list() //List of turfs we broadcast to.
|
||||
var/list/messagemobs = list() //List of living mobs nearby who can hear it
|
||||
|
||||
for(var/turf in range(world.view, get_turf(source)))
|
||||
messageturfs += turf
|
||||
if(isAI(source))
|
||||
var/mob/living/silicon/ai/AI = source
|
||||
for(var/turf in range(world.view, get_turf(AI.eyeobj)))
|
||||
messageturfs += turf
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
if(!M.client || istype(M, /mob/abstract/new_player))
|
||||
continue
|
||||
if(isAI(M))
|
||||
var/mob/living/silicon/ai/AI = M
|
||||
if(get_turf(AI.eyeobj) in messageturfs)
|
||||
messagemobs += M
|
||||
continue
|
||||
if(get_turf(M) in messageturfs)
|
||||
messagemobs += M
|
||||
|
||||
var/display_name = source.key
|
||||
if(holder && holder.fakekey)
|
||||
display_name = holder.fakekey
|
||||
|
||||
msg = process_chat_markup(msg, list("*"))
|
||||
|
||||
var/prefix
|
||||
var/admin_stuff
|
||||
for(var/client/target in clients)
|
||||
admin_stuff = ""
|
||||
var/display_remote = FALSE
|
||||
if (target.holder && ((R_MOD|R_ADMIN) & target.holder.rights))
|
||||
display_remote = TRUE
|
||||
if(display_remote)
|
||||
prefix = "(R)"
|
||||
admin_stuff += "/([source.key])"
|
||||
if(target != source.client)
|
||||
admin_stuff += "(<A HREF='?src=\ref[target.holder];adminplayerobservejump=\ref[mob]'>JMP</A>)"
|
||||
if(target.mob in messagemobs)
|
||||
prefix = ""
|
||||
if((target.mob in messagemobs) || display_remote)
|
||||
to_chat(target, "<span class='ooc'><span class='adminlooc'>" + create_text_tag("ALOOC", target) + " <span class='prefix'>[prefix]</span><EM>[display_name][admin_stuff]:</EM> <span class='message linkify'>[msg]</span></span></span>")
|
||||
@@ -91,6 +91,7 @@
|
||||
"<b>Ghost ears:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTEARS]'><b>[(pref.toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]</b></a><br>",
|
||||
"<b>Ghost sight:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTSIGHT]'><b>[(pref.toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]</b></a><br>",
|
||||
"<b>Ghost radio:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTRADIO]'><b>[(pref.toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]</b></a><br>",
|
||||
"<b>Observer LOOC:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTLOOC]'><b>[(pref.toggles & CHAT_GHOSTLOOC) ? "Visible" : "Hidden"]</b></a><br>",
|
||||
"<b>Space Parallax:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_SPACE]'><b>[(pref.toggles_secondary & PARALLAX_SPACE) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Space Dust:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_DUST]'><b>[(pref.toggles_secondary & PARALLAX_DUST) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Progress Bars:</b> <a href='?src=\ref[src];paratoggle=[PROGRESS_BARS]'><b>[(pref.toggles_secondary & PROGRESS_BARS) ? "Yes" : "No"]</b></a><br>",
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
|
||||
/client/verb/listen_looc()
|
||||
set name = "Show/Hide LOOC"
|
||||
set name = "Show/Hide LOOC (All)"
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles seeing Local OutOfCharacter chat"
|
||||
prefs.toggles ^= CHAT_LOOC
|
||||
@@ -121,6 +121,19 @@
|
||||
to_chat(src, "You will [(prefs.toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel.")
|
||||
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/listen_ghostlooc()
|
||||
set name = "Show/Hide LOOC (Observers)"
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles seeing Local OutOfCharacter chat from observing players"
|
||||
if(!(prefs.toggles & CHAT_LOOC)) //Don't need to disable ghost LOOC if you've disabled all LOOC
|
||||
to_chat(src, SPAN_NOTICE("You already have the LOOC channel hidden!"))
|
||||
return
|
||||
prefs.toggles ^= CHAT_GHOSTLOOC
|
||||
prefs.save_preferences()
|
||||
|
||||
to_chat(src, "You will [(prefs.toggles & CHAT_GHOSTLOOC) ? "now" : "no longer"] see messages on the LOOC channel from observing/ghosted players.")
|
||||
feedback_add_details("admin_verb","TGLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/client/verb/toggle_chattags()
|
||||
set name = "Show/Hide Chat Tags"
|
||||
|
||||
@@ -250,7 +250,7 @@ a.popt {text-decoration: none;}
|
||||
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #a4bad6;}
|
||||
|
||||
/* ADD HERE FOR BOLD */
|
||||
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
|
||||
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .adminlooc, .admin, .medal, .yell {font-weight: bold;}
|
||||
|
||||
/* ADD HERE FOR ITALIC */
|
||||
.italic, .italics, .emote {font-style: italic;}
|
||||
@@ -269,6 +269,7 @@ em {font-style: normal; font-weight: bold;}
|
||||
.tag {color: #fff; border-radius: 15px; font-size: 80%; padding-left: 4px; padding-right: 4px;}
|
||||
.ooc_tag {background-color: #3c5dc0;}
|
||||
.looc_tag {color: #000; background-color: #46b2b2;}
|
||||
.adminlooc_tag {color: #000; background-color: #3bae6e;}
|
||||
.dev_tag {background-color: #2c7731;}
|
||||
.admin_tag {background-color: #9611d4;}
|
||||
.mod_tag {background-color: #663a0e;}
|
||||
@@ -286,6 +287,7 @@ em {font-style: normal; font-weight: bold;}
|
||||
|
||||
.ooc .everyone {color: #3c5dc0;}
|
||||
.ooc .looc {color: #6699CC;}
|
||||
.ooc .adminlooc {color: #3BBF6E;}
|
||||
.ooc .elevated {color: #2e78d9;}
|
||||
.ooc .moderator {color: #184880;}
|
||||
.ooc .developer {color: #2c7731;}
|
||||
|
||||
@@ -247,7 +247,7 @@ a.popt {text-decoration: none;}
|
||||
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;}
|
||||
|
||||
/* ADD HERE FOR BOLD */
|
||||
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
|
||||
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .adminlooc, .admin, .medal, .yell {font-weight: bold;}
|
||||
|
||||
/* ADD HERE FOR ITALIC */
|
||||
.italic, .italics, .emote {font-style: italic;}
|
||||
@@ -266,6 +266,7 @@ em {font-style: normal;font-weight: bold;}
|
||||
.tag {color: #fff; border-radius: 15px; font-size: 80%; padding-left: 4px; padding-right: 4px;}
|
||||
.ooc_tag {background-color: #002eb8;}
|
||||
.looc_tag {color: #000; background-color: #46b2b2;}
|
||||
.adminlooc_tag {color: #000; background-color: #3bae6e;}
|
||||
.dev_tag {background-color: #2c7731;}
|
||||
.admin_tag {background-color: #9611d4;}
|
||||
.mod_tag {background-color: #663a0e;}
|
||||
@@ -283,6 +284,7 @@ em {font-style: normal;font-weight: bold;}
|
||||
|
||||
.ooc .everyone {color: #002eb8;}
|
||||
.ooc .looc {color: #6699CC;}
|
||||
.ooc .adminlooc {color: #3bae6e;}
|
||||
.ooc .elevated {color: #2e78d9;}
|
||||
.ooc .moderator {color: #184880;}
|
||||
.ooc .developer {color: #2c7731;}
|
||||
|
||||
@@ -20,6 +20,7 @@ em {font-style: normal;font-weight: bold;}
|
||||
|
||||
.ooc .everyone {color: #002eb8;}
|
||||
.ooc .looc {color: #6699CC;}
|
||||
.ooc .adminlooc {color: #3BBF6E;}
|
||||
.ooc .elevated {color: #2e78d9;}
|
||||
.ooc .moderator {color: #184880;}
|
||||
.ooc .developer {color: #1b521f;}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
author: Doxxmedearly
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Added the option to hide LOOC from ghosts/observers only. Check Show/Hide LOOC (Observers) in the Preferences tab, or the Observers LOOC setting under the Global tab in character setup. You do not need to toggle this if you already have regular LOOC disabled."
|
||||
- rscadd: "Adds Admin LOOC for mods/admins, which functions as LOOC but displays regardless of a person's LOOC preferences. Has a slightly different color to LOOC."
|
||||
Reference in New Issue
Block a user