From 71658fceb3f70ab604dda00a92df8c78bca6f36f Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Tue, 3 Sep 2024 00:58:07 -0700 Subject: [PATCH] [MIRROR] admin env messages (#8894) Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- code/modules/admin/admin_verb_lists_vr.dm | 4 +- code/modules/env_message/env_message.dm | 65 ++++++++++++++++++++++ icons/effects/env_message.dmi | Bin 291 -> 377 bytes 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index 5fa50a1c26..7257641016 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -200,7 +200,9 @@ var/list/admin_verbs_spawn = list( /client/proc/map_template_load_on_new_z, /client/proc/eventkit_open_mob_spawner, /client/proc/generic_structure, //VOREStation Add - /client/proc/generic_item //VOREStation Add + /client/proc/generic_item, //VOREStation Add + /client/proc/create_gm_message, + /client/proc/remove_gm_message ) var/list/admin_verbs_server = list( diff --git a/code/modules/env_message/env_message.dm b/code/modules/env_message/env_message.dm index f5e62b133c..10a9ca8f02 100644 --- a/code/modules/env_message/env_message.dm +++ b/code/modules/env_message/env_message.dm @@ -113,3 +113,68 @@ var/global/list/env_messages = list() var/answer = tgui_alert(src, "Do you want to remove your env message?", "Env Message", list("Yes", "No")) if(answer == "Yes") clear_env_message(src.ckey) + +//GM tool version + +/obj/effect/env_message/admin + name = "Map message" + icon = 'icons/effects/env_message.dmi' + icon_state = "env_message_red" + +/client/proc/create_gm_message() + set name = "Map Message - Create" + set desc = "Create an ooc message in the environment for other players to see." + set category = "Fun.Event Kit" //CHOMPEdit + + if(!check_rights(R_FUN)) + return + + if(isnewplayer(mob)) + to_chat(src, "You must spawn or observe to place messages.") + return + + if(!get_turf(mob) || !src.ckey) + return + + var/new_message = sanitize(tgui_input_text(src, "Type in your message. It will be displayed to players who hover over the spot where you are right now.", "Env Message")) + + if(!new_message) + return + + var/ourturf = get_turf(mob) + + var/obj/effect/env_message/EM = locate(/obj/effect/env_message) in ourturf + + if(!EM) + EM = new /obj/effect/env_message/admin(ourturf) + EM.add_message(src.ckey, new_message) + + log_game("[key_name(src)] created an Env Message: [new_message] at ([EM.x], [EM.y], [EM.z])") + +/client/proc/remove_gm_message() + set name = "Map Message - Remove" + set desc = "Remove any env/map message." + set category = "EventKit" + + if(!istype(src) || !src.ckey) + return + + if(!check_rights(R_FUN)) + return + + var/list/all_map_messages = list() + for(var/obj/effect/env_message/A in world) + all_map_messages |= A.combined_message + + if(!all_map_messages.len) + to_chat(src, "There are no map or env messages.") + return + + var/mob/chosen_message = tgui_input_list(src, "Which message do you want to remove?", "Make contact", all_map_messages) + if(!chosen_message) + return + + for(var/obj/effect/env_message/EM in world) + if(EM.combined_message == chosen_message) + qdel(EM) + log_game("[key_name(src)] deleted an Env Message that contained other players' entries at ([EM.x], [EM.y], [EM.z])") diff --git a/icons/effects/env_message.dmi b/icons/effects/env_message.dmi index 87440a20ad267f6a89e8a9044d96f378009383d2..bb899e6c40ed4dece22dc542d4cc1ce94489c701 100644 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQq@%<5hX6E#mPmP1tppJc?=8{ zb4pKHbF~@>xIMJm+$I0^X!vY5rRgHOSUFQnG(%3Xy#J<~v(=h?pU~kSn~l$;ynLkc z(PqKLaMP9bUo0IKXM3{tMV~nDQ8sg7;D+T)B+(C9~jc(3azIo4=-+wddM*UBr z$2kdV-sWOcwPRy*c(s7e*y-uw7?RQWc7`F}VFdw}^MUgwU$W)z3i>I#ZqXn1s_B&h zw={wduupQo_I8Uzp5%vV`eZfQqD~4W{3yc|uxOY^k-wCeTGOu## zr#Ib~)pWf#*F|2x`}HoDr%BbZ^4%=peco2jd7oLOfzQEM zXTdcA{)N{B$``0vME!qbzTma>gE!0nom~>2bP#R>NTo7k34;{p0_F=X;vX1K^ovD4 TUS;?X=m`c-S3j3^P6kI%Q%`;fN^pNMHV&~+X zsG$5WmJZ1;JX!nFPt>dIK67Ek553<C>b<++|Njv*1P$uYJdc{w+%DQXCcS7ttTQSIgm nW;a=bR}F#eJyr<|WEmKyN^^hwqJJt2XfcDQtDnm{r-UW|<+OG6