diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 47daf9254fa..ee7a1bfa9b9 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -99,7 +99,7 @@ var/canmove = 1.0 var/eye_stat = null//Living, potentially Carbon - + var/name_archive //For admin things like possession var/timeofdeath = 0.0//Living var/cpr_time = 1.0//Carbon diff --git a/code/game/vials.dm b/code/game/vials.dm index 0e27b6b6ee6..9e127e4baba 100644 --- a/code/game/vials.dm +++ b/code/game/vials.dm @@ -271,6 +271,18 @@ /proc/possess(obj/O as obj in world) set name = "Possess Obj" set category = "Object" + var/turf/T = get_turf(O) + + if(T) + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])", 1) + else + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location", 1) + + if(!usr.control_object) //If you're not already possessing something... + usr.name_archive = usr.real_name + usr.loc = O usr.real_name = O.name usr.name = O.name @@ -281,10 +293,17 @@ set name = "Release Obj" set category = "Object" //usr.loc = get_turf(usr) + + if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object + usr.real_name = usr.name_archive + usr.name = usr.real_name + usr.update_clothing() //So the name is updated properly + usr.loc = O.loc // Appear where the object you were controlling is -- TLE usr.client.eye = usr usr.control_object = null + /proc/givetestverbs(mob/M as mob in world) set desc = "Give this guy possess/release verbs" set category = "Debug"