mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] cleans up some logging (#9855)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
a1e163731d
commit
c1cd7dc3f0
@@ -535,7 +535,7 @@
|
||||
//Make an announcement and log the person entering storage.
|
||||
control_computer.frozen_crew += "[to_despawn.real_name], [to_despawn.mind.role_alt_title] - [stationtime2text()]"
|
||||
control_computer._admin_logs += "[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) at [stationtime2text()]"
|
||||
log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.")
|
||||
log_and_message_admins("([to_despawn.mind.role_alt_title]) entered cryostorage.", to_despawn)
|
||||
|
||||
//VOREStation Edit Start
|
||||
var/depart_announce = TRUE
|
||||
|
||||
@@ -256,7 +256,7 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
|
||||
/obj/effect/step_trigger/death/Trigger(var/atom/movable/A)
|
||||
if(isliving(A))
|
||||
to_chat(A, span_danger("[deathmessage]"))
|
||||
log_and_message_admins("[A] [deathalert]")
|
||||
log_and_message_admins("[deathalert]", A)
|
||||
qdel(A)
|
||||
|
||||
/obj/effect/step_trigger/death/train_lost
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
user.visible_message(span_warning("[user] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!"),span_notice("You begin swap minds with [M]!"))
|
||||
if(do_after(user,35 SECONDS,M))
|
||||
if(user.mind && M.mind && M.stat != DEAD && user.stat != DEAD)
|
||||
log_and_message_admins("[user.ckey] used a Bodysnatcher to swap bodies with [M.ckey]")
|
||||
log_and_message_admins("[user.ckey] used a Bodysnatcher to swap bodies with [M.ckey]", user)
|
||||
to_chat(user,span_notice("Your minds have been swapped! Have a nice day."))
|
||||
var/datum/mind/user_mind = user.mind
|
||||
var/datum/mind/prey_mind = M.mind
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
/// Inject a ghost into this mob. Assumes you've done all sanity before this point.
|
||||
/mob/living/simple_mob/proc/ghost_join(mob/observer/dead/D)
|
||||
log_and_message_admins("[key_name_admin(D)] joined [src] as a ghost [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("joined [src] as a ghost [ADMIN_FLW(src)]", D)
|
||||
active_ghost_pods -= src
|
||||
|
||||
// Move the ghost in
|
||||
@@ -163,7 +163,7 @@
|
||||
target.ghostjoin_icon()
|
||||
last_used = world.time
|
||||
charges--
|
||||
log_and_message_admins("[key_name_admin(user)] used a denecrotizer to tame/offer a simplemob to ghosts: [target]. [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("used a denecrotizer to tame/offer a simplemob to ghosts: [target]. [ADMIN_FLW(src)]", user)
|
||||
target.visible_message("[target]'s eyes widen, as though in revelation as it looks at [user].", runemessage = "eyes widen")
|
||||
if(charges == 0)
|
||||
icon_state = "[initial(icon_state)]-o"
|
||||
@@ -185,7 +185,7 @@
|
||||
target.see_invisible = initial(target.see_invisible)
|
||||
target.update_icon()
|
||||
visible_message("[target] lifts its head and looks at [user].", runemessage = "lifts its head and looks at [user]")
|
||||
log_and_message_admins("[key_name_admin(user)] used a denecrotizer to revive a simple mob: [target]. [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("used a denecrotizer to revive a simple mob: [target]. [ADMIN_FLW(src)]", user)
|
||||
if(!target.mind) //if it doesn't have a mind then no one has been playing as it, and it is safe to offer to ghosts.
|
||||
target.ghostjoin = 1
|
||||
active_ghost_pods |= target
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if(!shuttle_tag)
|
||||
shuttle_tag = auto_detect_shuttle(M) // We don't have a preset tag, so lets try to auto-link.
|
||||
if(shuttle_tag && M.set_shuttle_tag(shuttle_tag))
|
||||
log_and_message_admins("[key_name_admin(usr)] built a [M] for [shuttle_tag] at [ADMIN_COORDJMP(M)]")
|
||||
log_and_message_admins("built a [M] for [shuttle_tag] at [ADMIN_COORDJMP(M)]", usr)
|
||||
M.ping("[M] auto-links with shuttle [shuttle_tag]")
|
||||
|
||||
// Return shuttle_tag of shuttle of current area
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
createStealthKey()
|
||||
if(isnewplayer(mob))
|
||||
mob.name = new_key
|
||||
log_and_message_admins("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]")
|
||||
log_and_message_admins("has turned stealth mode [holder.fakekey ? "ON" : "OFF"]", usr)
|
||||
feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
#define MAX_WARNS 3
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
if(!check_rights_for(ui.user.client, R_SPAWN))
|
||||
return
|
||||
|
||||
log_and_message_admins("[key_name(user)] used player effect: [action] on [target.ckey] playing [target.name]")
|
||||
log_and_message_admins("used player effect: [action] on [target.ckey] playing [target.name]", user)
|
||||
|
||||
switch(action)
|
||||
|
||||
@@ -714,7 +714,7 @@
|
||||
new chosen_NIF(Tar)
|
||||
else
|
||||
new /obj/item/nif(Tar)
|
||||
log_and_message_admins("[key_name(user)] Quick NIF'd [Tar.real_name] with a [input_NIF].")
|
||||
log_and_message_admins("Quick NIF'd [Tar.real_name] with a [input_NIF].", user)
|
||||
|
||||
if("resize")
|
||||
user.client.resize(target)
|
||||
@@ -814,7 +814,7 @@
|
||||
var/reply = tgui_input_text(target, "An admin has sent you a message: [message]", "Reply")
|
||||
if(!reply)
|
||||
return
|
||||
log_and_message_admins("[key_name(target)] replied to [user]'s message: [reply].")
|
||||
log_and_message_admins("replied to [user]'s message: [reply].", target)
|
||||
|
||||
if("stop-orbits")
|
||||
//CHOMPEdit Start
|
||||
|
||||
@@ -1600,7 +1600,7 @@
|
||||
usr.on_mob_jump()
|
||||
usr.forceMove(T)
|
||||
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_and_message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]")
|
||||
log_and_message_admins("jumped to [key_name_admin(M)]", usr)
|
||||
else
|
||||
to_chat(usr, span_filter_adminlog("This mob is not located in the game world."))
|
||||
|
||||
|
||||
@@ -47,5 +47,5 @@
|
||||
else
|
||||
new /obj/item/nif(H)
|
||||
|
||||
log_and_message_admins("[key_name(src)] Quick NIF'd [H.real_name] with a [input_NIF].")
|
||||
log_and_message_admins("Quick NIF'd [H.real_name] with a [input_NIF].", src)
|
||||
feedback_add_details("admin_verb","QNIF") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -88,7 +88,7 @@ Eventkit verb to be used to spawn the obj/effect/landmarks defined under code\ga
|
||||
for(var/obj/effect/landmark/event_trigger/ET in others_list)
|
||||
ET.delete_me = TRUE
|
||||
qdel(ET)
|
||||
log_and_message_admins("[src.ckey] deleted all of [other_ckey]'s event triggers while [other_ckey] was active")
|
||||
log_and_message_admins("[src.ckey] deleted all of [other_ckey]'s event triggers while [other_ckey] was active", src)
|
||||
return
|
||||
var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK", "CONFIRM", list("Go Back", "Delete all my event triggers"), autofocus = FALSE)
|
||||
if(!confirm || confirm == "Go Back")
|
||||
@@ -96,7 +96,7 @@ Eventkit verb to be used to spawn the obj/effect/landmarks defined under code\ga
|
||||
for(var/obj/effect/landmark/event_trigger/ET in others_list)
|
||||
ET.delete_me = TRUE
|
||||
qdel(ET)
|
||||
log_and_message_admins("[src.ckey] deleted all of [other_ckey]'s event triggers. [other_ckey] was either inactive or disconnected at this time.")
|
||||
log_and_message_admins("[src.ckey] deleted all of [other_ckey]'s event triggers. [other_ckey] was either inactive or disconnected at this time.", src)
|
||||
else if(istype(choice, /obj/effect/landmark/event_trigger))
|
||||
var/obj/effect/landmark/event_trigger/ET = choice
|
||||
var/decision = tgui_alert(src, "Teleport to Landmark or Delete it?", "Manage [ET]", list("Teleport", "Delete"), autofocus = FALSE)
|
||||
@@ -118,11 +118,11 @@ Eventkit verb to be used to spawn the obj/effect/landmarks defined under code\ga
|
||||
Only proceed if you are absolutely certain.", "Force Delete", list("Confirm", "Cancel")) == "Confirm")
|
||||
ET.delete_me = TRUE
|
||||
qdel(ET)
|
||||
log_and_message_admins("[src.ckey] tried to delete event trigger [ET.name] while [other_ckey] is active.")
|
||||
log_and_message_admins("[src.ckey] tried to delete event trigger [ET.name] while [other_ckey] is active.", src)
|
||||
return
|
||||
var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK FROM DELETING [ET.name]", "CONFIRM", list("Go Back", "Delete it!"), autofocus = FALSE)
|
||||
if(!confirm || confirm == "Go Back")
|
||||
return
|
||||
ET.delete_me = TRUE
|
||||
qdel(ET)
|
||||
log_and_message_admins("[src.ckey] tried to deleted event trigger [ET.name], [other_ckey] is either disconnected or inactive.")
|
||||
log_and_message_admins("[src.ckey] tried to deleted event trigger [ET.name], [other_ckey] is either disconnected or inactive.", src)
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
var/fake_lightning = result == "Yes (Cosmetic)"
|
||||
|
||||
lightning_strike(get_turf(usr), fake_lightning)
|
||||
log_and_message_admins("[key_name(src)] has caused [fake_lightning ? "cosmetic":"harmful"] lightning to strike at their position ([src.mob.x], [src.mob.y], [src.mob.z]). \
|
||||
(<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[src.mob.x];Y=[src.mob.y];Z=[src.mob.z]'>JMP</a>)")
|
||||
log_and_message_admins("has caused [fake_lightning ? "cosmetic":"harmful"] lightning to strike at their position ([src.mob.x], [src.mob.y], [src.mob.z]). \
|
||||
(<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[src.mob.x];Y=[src.mob.y];Z=[src.mob.z]'>JMP</a>)", src)
|
||||
|
||||
#define LIGHTNING_REDIRECT_RANGE 28 // How far in tiles certain things draw lightning from.
|
||||
#define LIGHTNING_ZAP_RANGE 1 // How far the tesla effect zaps, as well as the bad effects from a direct strike.
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
to_chat(usr, span_danger("[target] was recently reset, you must wait until module selection has been completed before continuing modifying."))
|
||||
continue
|
||||
|
||||
log_and_message_admins("[key_name(src)] has used MODIFYROBOT ([modification_choice]) on [key_name(target)].")
|
||||
log_and_message_admins("has used MODIFYROBOT ([modification_choice]) on [key_name(target)].", usr)
|
||||
feedback_add_details("admin_verb","MODIFYROBOT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
switch(modification_choice)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
CONFIG_SET(flag/panic_bunker, !CONFIG_GET(flag/panic_bunker))
|
||||
|
||||
log_and_message_admins("[key_name(usr)] has toggled the Panic Bunker, it is now [(CONFIG_GET(flag/panic_bunker) ? "on":"off")].")
|
||||
log_and_message_admins("has toggled the Panic Bunker, it is now [(CONFIG_GET(flag/panic_bunker) ? "on":"off")].", src)
|
||||
if (CONFIG_GET(flag/panic_bunker) && (!SSdbcore.IsConnected())) //CHOMPEdit TGSQL
|
||||
message_admins("The database is not connected! Panic bunker will not work until the connection is reestablished.")
|
||||
feedback_add_details("admin_verb","PANIC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
CONFIG_SET(flag/paranoia_logging, !CONFIG_GET(flag/paranoia_logging))
|
||||
|
||||
log_and_message_admins("[key_name(usr)] has toggled Paranoia Logging, it is now [(CONFIG_GET(flag/paranoia_logging) ? "on":"off")].")
|
||||
log_and_message_admins("has toggled Paranoia Logging, it is now [(CONFIG_GET(flag/paranoia_logging) ? "on":"off")].", src)
|
||||
if (CONFIG_GET(flag/paranoia_logging) && (!SSdbcore.IsConnected())) //CHOMPEdit TGSQL
|
||||
message_admins("The database is not connected! Paranoia logging will not be able to give 'player age' (time since first connection) warnings, only Byond account warnings.")
|
||||
feedback_add_details("admin_verb","PARLOG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
CONFIG_SET(flag/ip_reputation, !CONFIG_GET(flag/ip_reputation))
|
||||
|
||||
log_and_message_admins("[key_name(usr)] has toggled IP reputation checks, it is now [(CONFIG_GET(flag/ip_reputation) ? "on":"off")].")
|
||||
log_and_message_admins("has toggled IP reputation checks, it is now [(CONFIG_GET(flag/ip_reputation) ? "on":"off")].", src)
|
||||
if (CONFIG_GET(flag/ip_reputation) && (!SSdbcore.IsConnected())) //CHOMPEdit TGSQL
|
||||
message_admins("The database is not connected! IP reputation logging will not be able to allow existing players to bypass the reputation checks (if that is enabled).")
|
||||
feedback_add_details("admin_verb","IPREP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -1071,7 +1071,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
human_cryopods[listname] = CP
|
||||
|
||||
//Gotta log this up here before they get ghostized and lose their key or anything.
|
||||
log_and_message_admins("[key_name(src)] admin cryo'd [key_name(M)].")
|
||||
log_and_message_admins("admin cryo'd [key_name(M)].", src)
|
||||
feedback_add_details("admin_verb","ACRYO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
if(ishuman(M))
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(!smite_choice)
|
||||
return
|
||||
|
||||
log_and_message_admins("[key_name(src)] has used SMITE ([smite_choice]) on [key_name(target)].")
|
||||
log_and_message_admins("has used SMITE ([smite_choice]) on [key_name(target)].", src)
|
||||
feedback_add_details("admin_verb","SMITE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
switch(smite_choice)
|
||||
@@ -214,7 +214,7 @@
|
||||
return
|
||||
|
||||
to_chat(target,"You've been hit by bluespace artillery!")
|
||||
log_and_message_admins("[key_name(target)] has been hit by Bluespace Artillery fired by [key_name(user ? user : usr)]")
|
||||
log_and_message_admins("has been hit by Bluespace Artillery fired by [key_name(user ? user : usr)]", target)
|
||||
|
||||
target.setMoveCooldown(2 SECONDS)
|
||||
|
||||
|
||||
@@ -104,14 +104,14 @@
|
||||
var/datum/db_query/query = SSdbcore.NewQuery("UPDATE erro_player SET discord_id = :t_discord_id WHERE ckey = :t_ckey", list("t_discord_id" = sql_discord, "t_ckey" = sql_ckey)) //CHOMPEdit TGSQL
|
||||
if(query.Execute())
|
||||
to_chat(src, span_notice("Registration complete! Thank you for taking the time to register your Discord ID."))
|
||||
log_and_message_admins("[ckey] has registered their Discord ID. Their Discord snowflake ID is: [their_id]") //YW EDIT
|
||||
log_and_message_admins("[ckey] has registered their Discord ID. Their Discord snowflake ID is: [their_id]", src) //YW EDIT
|
||||
admin_chat_message(message = "[ckey] has registered their Discord ID. Their Discord is: <@[their_id]>", color = "#4eff22") //YW EDIT
|
||||
notes_add(ckey, "Discord ID: [their_id]")
|
||||
world.VgsAddMemberRole(their_id)
|
||||
qdel(query) //CHOMPEdit TGSQL
|
||||
else
|
||||
to_chat(src, span_warning("There was an error registering your Discord ID in the database. Contact an administrator."))
|
||||
log_and_message_admins("[ckey] failed to register their Discord ID. Their Discord snowflake ID is: [their_id]. Is the database connected?")
|
||||
log_and_message_admins("[ckey] failed to register their Discord ID. Their Discord snowflake ID is: [their_id]. Is the database connected?", src)
|
||||
qdel(query) //CHOMPEdit TGSQL
|
||||
return
|
||||
//VOREStation Add End
|
||||
@@ -450,7 +450,7 @@
|
||||
|
||||
//Log it
|
||||
if(CONFIG_GET(flag/paranoia_logging)) //We don't block, but we want paranoia log messages
|
||||
log_and_message_admins("[key] at [address] has bad IP reputation: [ip_reputation]. Will be kicked if enabled in config.")
|
||||
log_and_message_admins("[key] at [address] has bad IP reputation: [ip_reputation]. Will be kicked if enabled in config.", null)
|
||||
else //We just log it
|
||||
log_admin("[key] at [address] has bad IP reputation: [ip_reputation]. Will be kicked if enabled in config.")
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@
|
||||
dir = dt.dir
|
||||
log_admin("[src] has been placed at [loc], [x],[y],[z]")
|
||||
else
|
||||
log_and_message_admins("[src] tried to move itself but its target pick list was empty, so it was not moved. (<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
|
||||
log_and_message_admins("[src] tried to move itself but its target pick list was empty, so it was not moved. (<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)", null)
|
||||
|
||||
/obj/move_trader_landmark //You need to place the trader somewhere in the world and enable the 'move_trader' var. When the trader initializes, it will make a list of these landmarks and then move itself.
|
||||
name = "trader mover"
|
||||
|
||||
@@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
|
||||
playsound(src, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
log_and_message_admins("[key_name_admin(usr)] activated a bluespace capsule at [get_area(T)]!")
|
||||
log_and_message_admins("activated a bluespace capsule at [get_area(T)]!", usr)
|
||||
if(above_location)
|
||||
template.add_roof(above_location)
|
||||
template.annihilate_plants(deploy_location)
|
||||
|
||||
@@ -196,23 +196,23 @@
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/dark_purple/ex_act(severity)
|
||||
log_and_message_admins("[src] ignited due to a chain reaction with an explosion.")
|
||||
log_and_message_admins("ignited due to a chain reaction with an explosion.", src)
|
||||
ignite()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/dark_purple/fire_act(datum/gas_mixture/air, temperature, volume)
|
||||
log_and_message_admins("[src] ignited due to exposure to fire.")
|
||||
log_and_message_admins("ignited due to exposure to fire.", src)
|
||||
ignite()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/dark_purple/bullet_act(var/obj/item/projectile/P, var/def_zone)
|
||||
if(P.damage_type && P.damage_type == BURN && P.damage) // Most bullets won't trigger the explosion, as a mercy towards Security.
|
||||
log_and_message_admins("[src] ignited due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].")
|
||||
log_and_message_admins("ignited due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].", src)
|
||||
ignite()
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/dark_purple/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W) && W.force && W.damtype == BURN)
|
||||
log_and_message_admins("[src] ignited due to being hit with a burning weapon ([W]) by [key_name(user)].")
|
||||
log_and_message_admins("ignited due to being hit with a burning weapon ([W]) by [key_name(user)].", src)
|
||||
ignite()
|
||||
else
|
||||
..()
|
||||
@@ -656,29 +656,29 @@
|
||||
say(pick("Sacrifice...!", "Sssss...", "Boom...!"))
|
||||
set_AI_busy(TRUE)
|
||||
sleep(2 SECONDS)
|
||||
log_and_message_admins("[src] has suicide-bombed themselves while trying to kill \the [L].")
|
||||
log_and_message_admins("has suicide-bombed themselves while trying to kill \the [L].", src)
|
||||
explode()
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/oil/ex_act(severity)
|
||||
log_and_message_admins("[src] exploded due to a chain reaction with another explosion.")
|
||||
log_and_message_admins("exploded due to a chain reaction with another explosion.", src)
|
||||
explode()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/oil/fire_act(datum/gas_mixture/air, temperature, volume)
|
||||
log_and_message_admins("[src] exploded due to exposure to fire.")
|
||||
log_and_message_admins("exploded due to exposure to fire.", src)
|
||||
explode()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/oil/bullet_act(obj/item/projectile/P, def_zone)
|
||||
if(P.damage_type && P.damage_type == BURN && P.damage) // Most bullets won't trigger the explosion, as a mercy towards Security.
|
||||
log_and_message_admins("[src] exploded due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].")
|
||||
log_and_message_admins("exploded due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].", src)
|
||||
explode()
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/oil/attackby(obj/item/W, mob/living/user)
|
||||
if(istype(W) && W.force && W.damtype == BURN)
|
||||
log_and_message_admins("[src] exploded due to being hit with a burning weapon ([W]) by [key_name(user)].")
|
||||
log_and_message_admins("exploded due to being hit with a burning weapon ([W]) by [key_name(user)].", src)
|
||||
explode()
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
pred_body.ooc_notes_maybes = pred_ooc_maybes
|
||||
pred_body.ooc_notes_style = pred_ooc_style
|
||||
//CHOMPEdit End
|
||||
log_and_message_admins("[pred_body] is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].")
|
||||
log_and_message_admins("is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].", pred_body)
|
||||
pred_body.absorb_langs()
|
||||
pred_body.prey_controlled = FALSE
|
||||
qdel(src)
|
||||
@@ -318,7 +318,7 @@
|
||||
pred_brain.real_name = pred.real_name
|
||||
pred.ckey = pred_brain.prey_ckey
|
||||
pred.prey_controlled = TRUE
|
||||
log_and_message_admins("[pred] is now controlled by [pred.ckey], they were taken over via prey domination, and were originally controlled by [pred_brain.pred_ckey].")
|
||||
log_and_message_admins("is now controlled by [pred.ckey], they were taken over via prey domination, and were originally controlled by [pred_brain.pred_ckey].", pred)
|
||||
if(delete_source)
|
||||
qdel(prey)
|
||||
|
||||
@@ -602,6 +602,6 @@
|
||||
pred_brain.real_name = pred.real_name
|
||||
pred.ckey = pred_brain.prey_ckey
|
||||
pred.prey_controlled = TRUE
|
||||
log_and_message_admins("[pred] is now controlled by [pred.ckey], they were taken over via pred submission, and were originally controlled by [pred_brain.pred_ckey].")
|
||||
log_and_message_admins("is now controlled by [pred.ckey], they were taken over via pred submission, and were originally controlled by [pred_brain.pred_ckey].", pred)
|
||||
if(delete_source)
|
||||
qdel(prey)
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
L.pulledby.stop_pulling()
|
||||
stop_pulling()
|
||||
original_ckey = ckey
|
||||
log_and_message_admins("[key_name_admin(src)] has swapped bodies with [key_name_admin(L)] as a morph at [get_area(src)] - [COORD(src)].")
|
||||
log_and_message_admins("has swapped bodies with [key_name_admin(L)] as a morph at [get_area(src)] - [COORD(src)].", src)
|
||||
new /mob/living/simple_mob/vore/morph/dominated_prey(L.vore_selected, L.ckey, src, L)
|
||||
else
|
||||
to_chat(src, span_warning("\The [L] declined your request for control."))
|
||||
@@ -362,13 +362,13 @@
|
||||
parent_morph.forceMove(get_turf(src))
|
||||
parent_morph.ckey = parent_morph.original_ckey
|
||||
prey_body.ckey = prey_ckey
|
||||
log_and_message_admins("[key_name_admin(prey_body)] used the OOC escape button to get out of [key_name_admin(parent_morph)]. They have been returned to their original bodies. [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("used the OOC escape button to get out of [key_name_admin(parent_morph)]. They have been returned to their original bodies. [ADMIN_FLW(src)]", prey_body)
|
||||
else
|
||||
parent_morph.forceMove(get_turf(prey_body))
|
||||
parent_morph.ckey = parent_morph.original_ckey
|
||||
prey_body.ckey = prey_ckey
|
||||
prey_body.forceMove(parent_morph.vore_selected)
|
||||
log_and_message_admins("[key_name_admin(prey_body)] and [key_name_admin(parent_morph)] have been returned to their original bodies. [get_area(src)] - [COORD(src)].")
|
||||
log_and_message_admins("and [key_name_admin(parent_morph)] have been returned to their original bodies. [get_area(src)] - [COORD(src)].", prey_body)
|
||||
qdel(src)
|
||||
|
||||
#undef MORPH_COOLDOWN
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
user.visible_message(span_notice("[user] smashes [src] on [comp]"),
|
||||
span_info("You smash [src] on [comp], christening a new landable ship named [S.name]"),
|
||||
span_notice("You hear glass shattering"))
|
||||
log_and_message_admins("[key_name_admin(user)] Created a new shuttle [S.name]. [ADMIN_JMP(comp_turf)]")
|
||||
log_and_message_admins("Created a new shuttle [S.name]. [ADMIN_JMP(comp_turf)]", user)
|
||||
spawn(1 SECOND)
|
||||
playsound(comp_turf, 'sound/voice/Serithi/Shuttlehere.ogg', 75, 0)
|
||||
qdel(src)
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
/obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj)
|
||||
. = ..()
|
||||
if(!going_kaboom && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)))
|
||||
log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered an Abductor Core explosion at [x],[y],[z] via projectile.")
|
||||
log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered an Abductor Core explosion at [x],[y],[z] via projectile.", Proj.firer)
|
||||
asplod()
|
||||
|
||||
/obj/machinery/power/rtg/abductor/attack_hand(var/mob/living/user)
|
||||
@@ -308,7 +308,7 @@
|
||||
/obj/machinery/power/rtg/kugelblitz/bullet_act(obj/item/projectile/Proj)
|
||||
. = ..()
|
||||
if(istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) && Proj.damage >= 20)
|
||||
log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered a kugelblitz core explosion at [x],[y],[z] via projectile.")
|
||||
log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered a kugelblitz core explosion at [x],[y],[z] via projectile.", Proj.firer)
|
||||
asplod()
|
||||
|
||||
/obj/machinery/power/rtg/reg
|
||||
|
||||
@@ -739,7 +739,7 @@
|
||||
|
||||
in_chamber.on_hit(M)
|
||||
if(in_chamber.damage_type != HALLOSS && !in_chamber.nodamage)
|
||||
log_and_message_admins("[key_name(user)] commited suicide using \a [src]")
|
||||
log_and_message_admins("commited suicide using \a [src]", user)
|
||||
user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]", sharp = TRUE)
|
||||
user.death()
|
||||
else if(in_chamber.damage_type == HALLOSS)
|
||||
|
||||
@@ -432,7 +432,7 @@
|
||||
infect_chance = 0
|
||||
infect_chance += (targets.len-1)*10 //Extra 10% per extra target
|
||||
if(prob(infect_chance))
|
||||
log_and_message_admins("[loc] infected [target]'s [eo.name] with \the [src].")
|
||||
log_and_message_admins("[loc] infected [target]'s [eo.name] with \the [src].", usr)
|
||||
infect_limb(eo)
|
||||
|
||||
//75% chance to spread a virus if we have one
|
||||
|
||||
@@ -546,7 +546,7 @@
|
||||
if(prob(75))
|
||||
AM.forceMove(src)
|
||||
if(istype(AM, /obj/item/holder/micro) || istype(AM, /mob/living))
|
||||
log_and_message_admins("[AM] was thrown into \the [src]")
|
||||
log_and_message_admins("[AM] was thrown into \the [src]", null)
|
||||
visible_message("\The [AM] lands in \the [src]!")
|
||||
//flush() //Away they go! //Uncomment this for proper autoflush. Compromising with autopull to avoid possible disposal dunking abuse
|
||||
//flush = 1 //1984. No autoflush, no autopull. Leaving this here incase someone wants to revisit this in the future when the mood on this changes
|
||||
@@ -569,7 +569,7 @@
|
||||
if(prob(75))
|
||||
I.forceMove(src)
|
||||
if(istype(I, /obj/item/holder/micro))
|
||||
log_and_message_admins("[I.name] was thrown into \the [src]")
|
||||
log_and_message_admins("[I.name] was thrown into \the [src]", null)
|
||||
for(var/mob/M in viewers(src))
|
||||
M.show_message("\The [I] lands in \the [src].", 3)
|
||||
else
|
||||
|
||||
@@ -266,14 +266,14 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
|
||||
return
|
||||
|
||||
if(cid && !isnum(cid) && !(cid == ""))
|
||||
log_and_message_admins("[key_name(owner)] - bancheck with invalid cid! ([cid])")
|
||||
log_and_message_admins("- bancheck with invalid cid! ([cid])", owner)
|
||||
|
||||
if(ip && !findtext(ip, new/regex(@"^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$")) && !(ip == ""))
|
||||
log_and_message_admins("[key_name(owner)] - bancheck with invalid ip! ([ip])")
|
||||
log_and_message_admins("- bancheck with invalid ip! ([ip])", owner)
|
||||
|
||||
var/list/ban = world.IsBanned(key = ckey, address = ip, computer_id = cid)
|
||||
if(ban)
|
||||
log_and_message_admins("[key_name(owner)] has a cookie from a banned account! (Cookie: [ckey], [ip], [cid])")
|
||||
log_and_message_admins("has a cookie from a banned account! (Cookie: [ckey], [ip], [cid])", owner)
|
||||
|
||||
//Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
|
||||
// exporting it as text, and then parsing the base64 from that.
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
///// If user clicked on themselves
|
||||
if(src == G.assailant && is_vore_predator(src))
|
||||
if(istype(victim) && !victim.client && !victim.ai_holder)
|
||||
log_and_message_admins("[key_name_admin(src)] attempted to eat [key_name_admin(G.affecting)] whilst they were AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to eat [key_name_admin(G.affecting)] whilst they were AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", src)
|
||||
if(feed_grabbed_to_self(src, G.affecting))
|
||||
qdel(G)
|
||||
return TRUE
|
||||
@@ -134,10 +134,10 @@
|
||||
///// If user clicked on their grabbed target
|
||||
else if((src == G.affecting) && (attacker.a_intent == I_GRAB) && (attacker.zone_sel.selecting == BP_TORSO) && (is_vore_predator(G.affecting)))
|
||||
if(istype(victim) && !victim.client && !victim.ai_holder) //Check whether the victim is: A carbon mob, has no client, but has a ckey. This should indicate an SSD player.
|
||||
log_and_message_admins("[key_name_admin(attacker)] attempted to force feed themselves to [key_name_admin(G.affecting)] whilst they were AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to force feed themselves to [key_name_admin(G.affecting)] whilst they were AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", attacker)
|
||||
if(!G.affecting.feeding)
|
||||
to_chat(user, span_vnotice("[G.affecting] isn't willing to be fed."))
|
||||
log_and_message_admins("[key_name_admin(src)] attempted to feed themselves to [key_name_admin(G.affecting)] against their prefs ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to feed themselves to [key_name_admin(G.affecting)] against their prefs ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", src)
|
||||
return FALSE
|
||||
|
||||
if(attacker.feed_self_to_grabbed(attacker, G.affecting))
|
||||
@@ -149,18 +149,18 @@
|
||||
///// If user clicked on anyone else but their grabbed target
|
||||
else if((src != G.affecting) && (src != G.assailant) && (is_vore_predator(src)))
|
||||
if(istype(victim) && !victim.client && !victim.ai_holder)
|
||||
log_and_message_admins("[key_name_admin(attacker)] attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] whilst [key_name_admin(G.affecting)] was AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] whilst [key_name_admin(G.affecting)] was AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", attacker)
|
||||
var/mob/living/carbon/victim_fed = src
|
||||
if(istype(victim_fed) && !victim_fed.client && !victim_fed.ai_holder)
|
||||
log_and_message_admins("[key_name_admin(attacker)] attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] whilst [key_name_admin(src)] was AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] whilst [key_name_admin(src)] was AFK ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", attacker)
|
||||
|
||||
if(!feeding)
|
||||
to_chat(user, span_vnotice("[src] isn't willing to be fed."))
|
||||
log_and_message_admins("[key_name_admin(attacker)] attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] against predator's prefs ([src ? ADMIN_JMP(src) : "null"])")
|
||||
log_and_message_admins("attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] against predator's prefs ([src ? ADMIN_JMP(src) : "null"])", attacker)
|
||||
return FALSE
|
||||
if(!(G.affecting.devourable))
|
||||
to_chat(user, span_vnotice("[G.affecting] isn't able to be devoured."))
|
||||
log_and_message_admins("[key_name_admin(attacker)] attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] against prey's prefs ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])")
|
||||
log_and_message_admins("attempted to feed [key_name_admin(G.affecting)] to [key_name_admin(src)] against prey's prefs ([G.affecting ? ADMIN_JMP(G.affecting) : "null"])", attacker)
|
||||
return FALSE
|
||||
if(attacker.feed_grabbed_to_other(attacker, G.affecting, src))
|
||||
qdel(G)
|
||||
@@ -626,7 +626,7 @@
|
||||
SetSleeping(0) //Wake up instantly if asleep
|
||||
for(var/mob/living/simple_mob/SA in range(10))
|
||||
LAZYSET(SA.prey_excludes, src, world.time)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [key_name(B.owner)] ([B.owner ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[B.owner.x];Y=[B.owner.y];Z=[B.owner.z]'>JMP</a>" : "null"])")
|
||||
log_and_message_admins("used the OOC escape button to get out of [key_name(B.owner)] ([B.owner ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[B.owner.x];Y=[B.owner.y];Z=[B.owner.z]'>JMP</a>" : "null"])", src)
|
||||
|
||||
B.owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed.
|
||||
if(!ishuman(B.owner))
|
||||
@@ -641,14 +641,14 @@
|
||||
if(confirm != "Okay" || loc != belly)
|
||||
return
|
||||
//Actual escaping
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [key_name(pred)] (BORG) ([pred ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[pred.x];Y=[pred.y];Z=[pred.z]'>JMP</a>" : "null"])")
|
||||
log_and_message_admins("used the OOC escape button to get out of [key_name(pred)] (BORG) ([pred ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[pred.x];Y=[pred.y];Z=[pred.z]'>JMP</a>" : "null"])", src)
|
||||
belly.go_out(src) //Just force-ejects from the borg as if they'd clicked the eject button.
|
||||
|
||||
//You're in an AI hologram!
|
||||
else if(istype(loc, /obj/effect/overlay/aiholo))
|
||||
var/obj/effect/overlay/aiholo/holo = loc
|
||||
holo.drop_prey() //Easiest way
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [key_name(holo.master)] (AI HOLO) ([holo ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[holo.x];Y=[holo.y];Z=[holo.z]'>JMP</a>" : "null"])")
|
||||
log_and_message_admins("used the OOC escape button to get out of [key_name(holo.master)] (AI HOLO) ([holo ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[holo.x];Y=[holo.y];Z=[holo.z]'>JMP</a>" : "null"])", src)
|
||||
|
||||
//You're in a capture crystal! ((It's not vore but close enough!))
|
||||
else if(iscapturecrystal(loc))
|
||||
@@ -657,7 +657,7 @@
|
||||
crystal.bound_mob = null
|
||||
crystal.bound_mob = capture_crystal = 0
|
||||
clear_fullscreen(ATOM_BELLY_FULLSCREEN) // CHOMPedit
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [crystal] owned by [crystal.owner]. [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("used the OOC escape button to get out of [crystal] owned by [crystal.owner]. [ADMIN_FLW(src)]", src)
|
||||
|
||||
//You've been turned into an item!
|
||||
else if(tf_mob_holder && isvoice(src) && istype(src.loc, /obj/item))
|
||||
@@ -680,28 +680,28 @@
|
||||
//CHOMPEdit End
|
||||
if(istype(src.loc, /obj/item/clothing)) //Are they in clothes? Delete the item then revert them.
|
||||
qdel(item_to_destroy)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to revert back to their original form from being TFed into an object.")
|
||||
log_and_message_admins("used the OOC escape button to revert back to their original form from being TFed into an object.", src)
|
||||
revert_mob_tf()
|
||||
else //Are they in any other type of object? If qdel is done first, the mob is deleted from the world.
|
||||
forceMove(get_turf(src))
|
||||
qdel(item_to_destroy)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to revert back to their original form from being TFed into an object.")
|
||||
log_and_message_admins("used the OOC escape button to revert back to their original form from being TFed into an object.", src)
|
||||
revert_mob_tf()
|
||||
|
||||
//You've been turned into a mob!
|
||||
else if(tf_mob_holder)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to revert back to their original form from being TFed into another mob.")
|
||||
log_and_message_admins("used the OOC escape button to revert back to their original form from being TFed into another mob.", src)
|
||||
revert_mob_tf()
|
||||
|
||||
else if(istype(loc, /obj/item/holder/micro) && (istype(loc.loc, /obj/machinery/microwave)))
|
||||
forceMove(get_turf(src))
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of a microwave.")
|
||||
log_and_message_admins("used the OOC escape button to get out of a microwave.", src)
|
||||
|
||||
else if(istype(loc, /obj/structure/gargoyle) && loc:was_rayed)
|
||||
var/obj/structure/gargoyle/G = loc
|
||||
G.can_revert = TRUE
|
||||
qdel(G)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to revert back from being petrified.")
|
||||
log_and_message_admins("used the OOC escape button to revert back from being petrified.", src)
|
||||
|
||||
//CHOMPEdit - In-shoe OOC escape. Checking voices as precaution if something akin to obj TF or possession happens
|
||||
else if(!istype(src, /mob/living/voice) && istype(src.loc, /obj/item/clothing/shoes))
|
||||
@@ -715,13 +715,13 @@
|
||||
if(F.food_inserted_micros)
|
||||
F.food_inserted_micros -= src
|
||||
src.forceMove(get_turf(F))
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of a food item.")
|
||||
log_and_message_admins("used the OOC escape button to get out of a food item.", src)
|
||||
|
||||
else if(src.alerts["leashed"])
|
||||
var/obj/screen/alert/leash_pet/pet_alert = src.alerts["leashed"]
|
||||
var/obj/item/leash/owner = pet_alert.master
|
||||
owner.clear_leash()
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of a leash.")
|
||||
log_and_message_admins("used the OOC escape button to get out of a leash.", src)
|
||||
|
||||
//Don't appear to be in a vore situation
|
||||
else
|
||||
@@ -784,7 +784,7 @@
|
||||
|
||||
if(!prey.devourable)
|
||||
to_chat(user, span_vnotice("They aren't able to be devoured."))
|
||||
log_and_message_admins("[key_name_admin(src)] attempted to devour [key_name_admin(prey)] against their prefs ([prey ? ADMIN_JMP(prey) : "null"])")
|
||||
log_and_message_admins("attempted to devour [key_name_admin(prey)] against their prefs ([prey ? ADMIN_JMP(prey) : "null"])", src)
|
||||
return FALSE
|
||||
if(prey.absorbed || pred.absorbed)
|
||||
to_chat(user, span_vwarning("They aren't aren't in a state to be devoured."))
|
||||
@@ -858,10 +858,10 @@
|
||||
|
||||
var/mob/living/carbon/victim = prey // Check for afk vore
|
||||
if(istype(victim) && !victim.client && !victim.ai_holder && victim.ckey)
|
||||
log_and_message_admins("[key_name_admin(pred)] ate [key_name_admin(prey)] whilst the prey was AFK ([pred ? ADMIN_JMP(pred) : "null"])")
|
||||
log_and_message_admins("ate [key_name_admin(prey)] whilst the prey was AFK ([pred ? ADMIN_JMP(pred) : "null"])", pred)
|
||||
var/mob/living/carbon/victim_pred = pred // Check for afk vore
|
||||
if(istype(victim_pred) && !victim_pred.client && !victim_pred.ai_holder && victim_pred.ckey)
|
||||
log_and_message_admins("[key_name_admin(pred)] ate [key_name_admin(prey)] whilst the pred was AFK ([pred ? ADMIN_JMP(pred) : "null"])")
|
||||
log_and_message_admins("ate [key_name_admin(prey)] whilst the pred was AFK ([pred ? ADMIN_JMP(pred) : "null"])", pred)
|
||||
|
||||
// Inform Admins
|
||||
if(pred == user)
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
return
|
||||
if(isvoice(inserted_mob) || W.loc == src) //Sanity.
|
||||
return
|
||||
log_and_message_admins("[user] has just placed [inserted_mob] into a mob transformation machine.", user)
|
||||
log_and_message_admins("has just placed [inserted_mob] into a mob transformation machine.", user)
|
||||
else
|
||||
to_chat(user, span_notice("You cannot put \the [W] into the machine. ((The micro must be connected to the server.))"))
|
||||
return
|
||||
@@ -268,7 +268,7 @@
|
||||
return
|
||||
if(isvoice(inserted_mob) || W.loc == src)
|
||||
return
|
||||
log_and_message_admins("[user] has just placed [inserted_mob] into a mob transformation machine.", user)
|
||||
log_and_message_admins("has just placed [inserted_mob] into a mob transformation machine.", user)
|
||||
user.drop_item() //Dropping a grab destroys it.
|
||||
//Grabs require a bit of extra work.
|
||||
//We want them to drop their clothing/items as well.
|
||||
@@ -507,7 +507,7 @@
|
||||
return
|
||||
if(isvoice(inserted_mob) || W.loc == src) //This is a sanity check to keep them from entering it multiple times.
|
||||
return
|
||||
log_and_message_admins("[user] has just placed [inserted_mob] into an item transformation machine.", user)
|
||||
log_and_message_admins("has just placed [inserted_mob] into an item transformation machine.", user)
|
||||
else
|
||||
to_chat(user, span_notice("You cannot put \the [W] into the machine. ((The micro must be connected to the server.))"))
|
||||
return
|
||||
@@ -536,7 +536,7 @@
|
||||
return
|
||||
if(isvoice(inserted_mob) || W.loc == src)
|
||||
return
|
||||
log_and_message_admins("[user] has just placed [inserted_mob] into an item transformation machine.", user)
|
||||
log_and_message_admins("has just placed [inserted_mob] into an item transformation machine.", user)
|
||||
user.drop_item() //Dropping a grab destroys it.
|
||||
//Grabs require a bit of extra work.
|
||||
//We want them to drop their clothing/items as well.
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
if(!M.vore_active)
|
||||
add_verb(M, /mob/living/simple_mob/proc/animal_nom)
|
||||
M.ghostjoin_icon()
|
||||
log_and_message_admins("[key_name_admin(user)] used a sapience potion on a simple mob: [M]. [ADMIN_FLW(src)]")
|
||||
log_and_message_admins("used a sapience potion on a simple mob: [M]. [ADMIN_FLW(src)]", user)
|
||||
playsound(src, 'sound/effects/bubbles.ogg', 50, 1)
|
||||
qdel(src)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user