diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 630ce54261..33cc2c6e20 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -456,8 +456,10 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA return /mob/proc/transfer_ckey(mob/new_mob, send_signal = TRUE) - if(!ckey || !new_mob) - CRASH("transfer_ckey() called [ckey ? "" : "on a ckey-less mob[new_mob ? "" : " and "]"][new_mob ? "" : "without a valid mob target"]!") + if(!new_mob || (!ckey && new_mob.ckey)) + CRASH("transfer_ckey() called [new_mob ? "on ckey-less mob with a player mob as target" : "without a valid mob target"]!") + if(!ckey) + return SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src) if (client && client.prefs && client.prefs.auto_ooc) if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob)) @@ -964,4 +966,4 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/setMovetype(newval) . = ..() - update_movespeed(FALSE) \ No newline at end of file + update_movespeed(FALSE)