ID:271882
 
I've been wondering...
How would you make it to where there is a verb, that allows you to take control of someone... control their body and see in their view... but not trading commands.
And make it last like 40 seconds...sleep(400)
You can use either <code>mob.key</code> or <code>client.mob</code>. Both are built-in variables you can read about in the reference. As for waiting 40 seconds, sleep(400) would suffice.
In response to DivineO'peanut
That will have some unfortunate consequences. First is that it calls Login() and Logout (which people will tend to use for connecting and disconnecting instead of client/New() and client/Del() as they should). Second is that it makes it difficult to restrict access to verbs.

I suggest that you instead override input to control a separate mob when necessary. As such:

mob/var/possess

client/Move(newloc)
if(mob.possess)
return mob.possess.Move(newloc)
else
return ..()

mob/verb/possess(var/mob/M)
possess = M
client.eye = M
client.perspective = EYE_PERSPECTIVE
sleep(400)
possess = null
client.eye = src
client.perspective = EYE_PERSPECTIVE
In response to Garthor
I tested that Garthor, there becomes a 2 errors

vcn x.dm:4:error:possess:undefined var
vcn x.dm:5:error:possess.Move:undefined var
In response to Marcmacman
Maybe the var is connected to the mob, but not the client
In response to Marcmacman
My bad: that should be mob.possess in both cases.