ID:178867
 
Okay, I can get it to where you can enter the car. But when you exit, it just creates a new mob and you "log" back in.

mob/kid
Login()
usr.loc = locate(2,2,1)
world << "[usr] logs in!"
..()
mob/var
truemob
om
mob/car
icon = 'icons.dmi'
icon_state = "car"
var/passengers
om
verb/enter()
set src in oview(1)
if(usr.loc == src)
usr << "You are already in the car!"
else
usr.Move(src)
usr.truemob = usr.client.mob
src.om = usr.client.mob
usr.client.mob = src
verb/exit()
usr.loc = src.loc
usr.client.mob = src.om
<dm>

Thanks in advance. Oh, and how would I handle passengers?
This would probably benefit from some client variables because those stay with the player no matter what mob he/she is in.

client
var/mob/truemob
mob/car/verb
enter()
set src in oview(1)
if(client) //sees if car is being driven already
usr.Move(src)
usr.client.eye = src
usr.client.perspective = EYE_PERSPECTIVE
usr.verbs += /mob/car/verb/exit
return
usr.Move(src)
usr.client.truemob = usr
usr.client.mob = car
exit()
if(istype(usr,/mob/car))
client.truemob.Move(loc)
client.mob = client.truemob
else
usr.Move(loc.loc)
usr.client.eye = usr
usr.verbs -= /mob/car/verb/exit


I haven't tested it but the principle of it should work. You may have to iron out a few kinks though.

Also, Login() is called whenever a client is "logged in" to a mob so you should probably have an initialization client var that signals that the mob has already been logged in.
In response to English
I still get the login errors that I did before. (when you exit, it "logs" you back in)
In response to Sariat
client
var/initial = 1
mob
Login()
..()
if(client.initial)
initial = 0
//other login stuff here.