Files
2015-05-26 18:12:25 +01:00

124 lines
3.4 KiB
Plaintext

//print an error message to world.log
// On Linux/Unix systems the line endings are LF, on windows it's CRLF, admins that don't use notepad++
// will get logs that are one big line if the system is Linux and they are using notepad. This solves it by adding CR to every line ending
// in the logs. ascii character 13 = CR
/var/global/log_end= world.system_type == UNIX ? ascii2text(13) : ""
/proc/error(msg)
msg_scopes("## ERROR: [msg]")
world.log << "## ERROR: [msg][log_end]"
#define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].")
//print a warning message to world.log
/proc/warning(msg)
msg_scopes("## WARNING: [msg]")
world.log << "## WARNING: [msg][log_end]"
//print a testing-mode debug message to world.log
/proc/testing(msg)
msg_scopes("## TESTING: [msg]")
world.log << "## TESTING: [msg][log_end]"
/proc/log_admin(text)
admin_log.Add(text)
if (config.log_admin)
diary << "\[[time_stamp()]]ADMIN: [text][log_end]"
/proc/log_debug(text)
if (config.log_debug)
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
for(var/client/C in admins)
if(C.holder.rights & (R_DEV|R_DEBUG|R_MOD))
if(C.prefs.toggles & CHAT_DEBUGLOGS)
C << "DEBUG: [text]"
/proc/log_game(text)
if (config.log_game)
diary << "\[[time_stamp()]]GAME: [text][log_end]"
/proc/log_vote(text)
if (config.log_vote)
diary << "\[[time_stamp()]]VOTE: [text][log_end]"
/proc/log_access(text)
if (config.log_access)
diary << "\[[time_stamp()]]ACCESS: [text][log_end]"
/proc/log_say(text)
if (config.log_say)
diary << "\[[time_stamp()]]SAY: [text][log_end]"
/proc/log_ooc(text)
if (config.log_ooc)
diary << "\[[time_stamp()]]OOC: [text][log_end]"
/proc/log_whisper(text)
if (config.log_whisper)
diary << "\[[time_stamp()]]WHISPER: [text][log_end]"
/proc/log_emote(text)
if (config.log_emote)
diary << "\[[time_stamp()]]EMOTE: [text][log_end]"
/proc/log_attack(text)
if (config.log_attack)
diary << "\[[time_stamp()]]ATTACK: [text][log_end]" //Seperate attack logs? Why? FOR THE GLORY OF SATAN!
/proc/log_adminsay(text)
if (config.log_adminchat)
diary << "\[[time_stamp()]]ADMINSAY: [text][log_end]"
/proc/log_adminwarn(text)
if (config.log_adminwarn)
diary << "\[[time_stamp()]]ADMINWARN: [text][log_end]"
/proc/log_pda(text)
if (config.log_pda)
diary << "\[[time_stamp()]]PDA: [text][log_end]"
/proc/log_misc(text)
diary << "\[[time_stamp()]]MISC: [text][log_end]"
//SoundScopes extra stuffs
//I'm sending debug messages through here for when an admin log is made at the same time.
//What's the point in making 2 recorded logs for one thing.
/proc/msg_scopes(var/msg, tell_devs = 0, override = 0, var/client = null)
if(client)
var/client/C = client
if(!C || !C.holder)
return
if(C.holder.hide_activity)
return
if(tell_devs)
msg = "DEBUG: [msg]"
else
msg = "[time_stamp()] <span class=\"prefix\">Scopes Log [tell_devs]:</span> <span class=\"message\">[msg]</span>"
for(var/client/C in admins)
if(R_DEV & C.holder.rights)
if(tell_devs)
if(((C.prefs.toggles & CHAT_DEBUGLOGS) || (override)) && !(C.holder.rights & R_ADMIN))
C << msg
if(R_ADMIN & C.holder.rights)
if(C.prefs.toggles & CHAT_SCOPES_DEBUG)
C << msg
/proc/msg_scopes_list(var/thing, var/name = "No name set")
if(!thing)
return
var/output = "[name]: "
for(var/line in thing)
output += "[line]"
output += " :: "
msg_scopes(output)