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 87440a20ad..bb899e6c40 100644 Binary files a/icons/effects/env_message.dmi and b/icons/effects/env_message.dmi differ