From 15e8b7e5f7b8f1cc23aab0117eb6bd5215c222fa Mon Sep 17 00:00:00 2001 From: Lzimann Date: Fri, 3 Mar 2017 22:03:13 -0300 Subject: [PATCH] Adds a way to see a persons's individual logs for the round. --- code/datums/emotes.dm | 1 + code/modules/admin/admin.dm | 3 +- code/modules/admin/topic.dm | 11 +++++++ .../admin/verbs/indidivual_loggings.dm | 30 +++++++++++++++++++ code/modules/client/verbs/ooc.dm | 1 + code/modules/mob/living/living_defines.dm | 2 -- code/modules/mob/mob_defines.dm | 5 +++- tgstation.dme | 3 +- 8 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 code/modules/admin/verbs/indidivual_loggings.dm diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 1f17abbae1c..3959f6cb32c 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -64,6 +64,7 @@ var/global/list/emote_list = list() else user.visible_message(msg) log_emote("[key_name(user)] : [msg]") + user.emote_log += "\[[time_stamp()]\] [msg]" /datum/emote/proc/select_message_type(mob/user) . = message diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 24ee7c1ae33..fb926931192 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -82,7 +82,8 @@ var/global/BSACooldown = 0 body += "

" body += "Traitor panel | " body += "Narrate to | " - body += "Subtle message" + body += "Subtle message | " + body += "Individual Round Logs" if (M.client) if(!isnewplayer(M)) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 389ed32aff9..7c4270b4eba 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1820,6 +1820,17 @@ var/mob/M = locate(href_list["subtlemessage"]) usr.client.cmd_admin_subtle_message(M) + else if(href_list["individuallog"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["individuallog"]) in mob_list + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + + show_individual_logging_panel(M, href_list["log_type"]) + else if(href_list["traitor"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/indidivual_loggings.dm b/code/modules/admin/verbs/indidivual_loggings.dm new file mode 100644 index 00000000000..3bdfd54e66d --- /dev/null +++ b/code/modules/admin/verbs/indidivual_loggings.dm @@ -0,0 +1,30 @@ +/proc/show_individual_logging_panel(mob/M, type = "attack") + if(!M || !ismob(M)) + return + var/dat = "
Attack log | " + dat += "Say log | " + dat += "Emote log | " + dat += "OOC log | " + dat += "Refresh
" + + dat += "
" + + switch(type) + if("attack") + dat += "
Attack logs of [key_name(M)]

" + for(var/entry in M.attack_log) + dat += "[entry]

" + if("say") + dat += "
Say logs of [key_name(M)]

" + for(var/entry in M.say_log) + dat += "[entry] [M.say_log[entry]]

" + if("emote") + dat += "
Emote logs of [key_name(M)]

" + for(var/entry in M.emote_log) + dat += "[entry]

" + if("ooc") + dat += "
OOC logs of [key_name(M)]

" + for(var/entry in M.ooc_log) + dat += "[entry]

" + + usr << browse(dat, "window=invidual_logging;size=600x480") \ No newline at end of file diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index bbbf67e9fe2..adaff6db0fb 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -52,6 +52,7 @@ return log_ooc("[mob.name]/[key] : [raw_msg]") + mob.ooc_log += "\[[time_stamp()]\] [raw_msg]" var/keyname = key if(prefs.unlock_content) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 3d95b2bb756..3caabec5ff9 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -54,8 +54,6 @@ var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. - var/list/say_log = list() //a log of what we've said, with a timestamp as the key for each message - var/bubble_icon = "default" //what icon the mob uses for speechbubbles var/last_bumped = 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index b00302473dd..94dddb381aa 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -26,7 +26,10 @@ var/computer_id = null var/lastattacker = null var/lastattacked = null - var/attack_log = list( ) + var/list/attack_log = list() + var/list/say_log = list() //a log of what we've said, with a timestamp as the key for each message + var/list/ooc_log = list() + var/list/emote_log = list() var/obj/machinery/machine = null var/other_mobs = null var/disabilities = 0 //Carbon diff --git a/tgstation.dme b/tgstation.dme index 036930f50ce..e0e5dcba18a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -14,7 +14,7 @@ // BEGIN_INCLUDE #include "_maps\__MAP_DEFINES.dm" -#include "_maps\tgstation2.dm" +#include "_maps\runtimestation.dm" #include "code\_compile_options.dm" #include "code\world.dm" #include "code\__DATASTRUCTURES\heap.dm" @@ -974,6 +974,7 @@ #include "code\modules\admin\verbs\diagnostics.dm" #include "code\modules\admin\verbs\fps.dm" #include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\indidivual_loggings.dm" #include "code\modules\admin\verbs\machine_upgrade.dm" #include "code\modules\admin\verbs\manipulate_organs.dm" #include "code\modules\admin\verbs\map_template_loadverb.dm"