/client/verb/ooc(msg as text) set name = "OOC" set category = "OOC" if(say_disabled) //This is here to try to identify lag problems usr << "Speech is currently admin-disabled." return if(!mob) return if(IsGuestKey(key)) src << "Guests may not use OOC." return msg = sanitize(msg) if(!msg) return if(!(prefs.toggles & CHAT_OOC)) src << "You have OOC muted." return if(!holder) if(!config.ooc_allowed) src << "OOC is globally muted." return if(!config.dooc_allowed && (mob.stat == DEAD)) usr << "OOC for dead mobs has been turned off." return if(prefs.muted & MUTE_OOC) src << "You cannot use OOC (muted)." return if(handle_spam_prevention(msg,MUTE_OOC)) return if(findtext(msg, "byond://")) src << "Advertising other servers is not allowed." log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]") message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return log_ooc("[mob.name]/[key] : [msg]") var/ooc_style = "everyone" if(holder && !holder.fakekey) ooc_style = "elevated" if(holder.rights & R_MOD) ooc_style = "moderator" if(holder.rights & R_DEBUG) ooc_style = "developer" if(holder.rights & R_ADMIN) ooc_style = "admin" for(var/client/target in clients) if(target.prefs.toggles & CHAT_OOC) var/display_name = src.key if(holder) if(holder.fakekey) if(target.holder) display_name = "[holder.fakekey]/([src.key])" else display_name = holder.fakekey if(holder && !holder.fakekey && (holder.rights & R_ADMIN) && config.allow_admin_ooccolor && (src.prefs.ooccolor != initial(src.prefs.ooccolor))) // keeping this for the badmins target << "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]" else target << "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]" /client/verb/looc(msg as text) set name = "LOOC" set desc = "Local OOC, seen only by those in view." set category = "OOC" if(say_disabled) //This is here to try to identify lag problems usr << "Speech is currently admin-disabled." return if(!mob) return if(IsGuestKey(key)) src << "Guests may not use OOC." return msg = sanitize(msg) if(!msg) return if(!(prefs.toggles & CHAT_LOOC)) src << "You have LOOC muted." return if(!holder) if(!config.looc_allowed) src << "LOOC is globally muted." return if(!config.dooc_allowed && (mob.stat == DEAD)) usr << "OOC for dead mobs has been turned off." return if(prefs.muted & MUTE_OOC) src << "You cannot use OOC (muted)." return if(handle_spam_prevention(msg, MUTE_OOC)) return if(findtext(msg, "byond://")) src << "Advertising other servers is not allowed." log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]") message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return log_ooc("(LOCAL) [mob.name]/[key] : [msg]") var/mob/source = mob.get_looc_source() var/list/heard = get_mobs_or_objects_in_view(7, source, 1, 0) var/display_name = key if(holder && holder.fakekey) display_name = holder.fakekey if(mob.stat != DEAD) display_name = mob.name for(var/client/target in clients) if(target.prefs.toggles & CHAT_LOOC) var/prefix = "" var/admin_stuff = "" var/send = 0 if(target in admins) admin_stuff += "/([key])" if(target != src) admin_stuff += "([admin_jump_link(mob, target.holder)])" if(target.mob in heard) send = 1 if(isAI(target.mob)) prefix = "(Core) " else if(isAI(target.mob)) // Special case var/mob/living/silicon/ai/A = target.mob if(A.eyeobj in hearers(7, source)) send = 1 prefix = "(Eye) " if(!send && (target in admins)) send = 1 prefix = "(R)" if(send) target << "" + create_text_tag("looc", "LOOC:", target) + " [prefix][display_name][admin_stuff]: [msg]" /mob/proc/get_looc_source() return src /mob/living/silicon/ai/get_looc_source() if(eyeobj) return eyeobj return src