var/global/normal_ooc_colour = "#002eb8" /client/verb/ooc(msg as text) set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite set category = "OOC" if(!mob) return if(IsGuestKey(key)) src << "Guests may not use OOC." return msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN))) if(!msg) return if(!(prefs.toggles & CHAT_OOC)) src << "\red You have OOC muted." return if(!(holder && holder.rights && (holder.rights & R_MOD))) if(!ooc_allowed) src << "\red OOC is globally muted" return if(!dooc_allowed && (mob.stat == DEAD)) usr << "\red OOC for dead mobs has been turned off." return if(prefs.muted & MUTE_OOC) src << "\red 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/display_colour = normal_ooc_colour if(holder && !holder.fakekey) display_colour = "#0099cc" //light blue if(holder.rights & R_MOD && !(holder.rights & R_ADMIN)) display_colour = "#184880" //dark blue else if(holder.rights & R_ADMIN) if(config.allow_admin_ooccolor) display_colour = src.prefs.ooccolor else display_colour = "#b82e00" //orange for(var/client/C in clients) if(C.prefs.toggles & CHAT_OOC) var/display_name = src.key if(holder) if(holder.fakekey) if(C.holder) display_name = "[holder.fakekey]/([src.key])" else display_name = holder.fakekey C << "OOC: [display_name]: [msg]" /* if(holder) if(!holder.fakekey || C.holder) if(holder.rights & R_ADMIN) C << "OOC: [key][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" else if(holder.rights & R_MOD) C << "OOC: [src.key][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" else C << "OOC: [src.key]: [msg]" else C << "OOC: [holder.fakekey ? holder.fakekey : src.key]: [msg]" else C << "OOC: [src.key]: [msg]" */ /proc/toggle_ooc() ooc_allowed = !( ooc_allowed ) if (ooc_allowed) world << "The OOC channel has been globally enabled!" else world << "The OOC channel has been globally disabled!" /proc/auto_toggle_ooc(var/on) if(config.auto_toggle_ooc_during_round && ooc_allowed != on) toggle_ooc() /client/proc/set_ooc(newColor as color) set name = "Set Player OOC Colour" set desc = "Set to yellow for eye burning goodness." set category = "Server" normal_ooc_colour = newColor /client/verb/looc(msg as text) set name = "LOOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite set desc = "Local OOC, seen only by those in view." set category = "OOC" if(!mob) return if(IsGuestKey(key)) src << "Guests may not use OOC." return msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN))) if(!msg) return if(!(prefs.toggles & CHAT_LOOC)) src << "\red You have LOOC muted." return if(!(holder && holder.rights && (holder.rights & R_MOD))) if(!ooc_allowed) src << "\red LOOC is globally muted" return if(!dooc_allowed && (mob.stat == DEAD)) usr << "\red LOOC for dead mobs has been turned off." return if(prefs.muted & MUTE_OOC) src << "\red You cannot use LOOC (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 LOOC: [msg]") message_admins("[key_name_admin(src)] has attempted to advertise in LOOC: [msg]") return log_ooc("(LOCAL) [mob.name]/[key] : [msg]") var/list/heard = get_mobs_in_view(7, src.mob) var/mob/S = src.mob var/display_name = S.key if(S.stat != DEAD) display_name = S.name // Handle non-admins for(var/mob/M in heard) if(!M.client) continue var/client/C = M.client if(C in admins) if(C.holder.rights | R_MENTOR) continue //they are handled after that if(C.prefs.toggles & CHAT_LOOC) if(holder) if(holder.fakekey) if(C.holder) display_name = "[holder.fakekey]/([src.key])" else display_name = holder.fakekey C << "LOOC: [display_name]: [msg]" // Now handle admins display_name = S.key if(S.stat != DEAD) display_name = "[S.name]/([S.key])" for(var/client/C in admins) if(C.holder.rights | R_MENTOR) if(C.prefs.toggles & CHAT_LOOC) var/prefix = "(R)LOOC" if (C.mob in heard) prefix = "LOOC" C << "[prefix]: [display_name]: [msg]"