ID:1765783
 
(See the best response by Lummox JR.)
mob/var
tmp/objmove=null
mob/proc
Control_Dragon()
var/obj/L=new/obj/Dragon(loc)
L.owner=src
L.dir=dir
objmove=L
walk(L,dir)
freeze = 1
invisibility = 10
client.perspective = EYE_PERSPECTIVE
client.eye = L
client
North()
if(mob.objmove)
mob.objmove.dir=NORTH
return
mob.dir=NORTH
..()
South()
if(mob.objmove)
mob.objmove.dir=SOUTH
return
mob.dir=SOUTH
..()
East()
if(mob.objmove)
mob.objmove.dir=EAST
return
mob.dir=EAST
..()
West()
if(mob.objmove)
mob.objmove.dir=WEST
return
mob.dir=WEST
..()


Pretty much what I'm trying to do, is make a technique that creates a dragon for you, turns you invisible, sets your perspective to the dragon, and allows you to control your dragon's movement while halting your own. Everything works properly, aside from the dragon's direction not turning when I try to move it. I'm sure there is something blaring obvious I'm doing wrong, I'm just not seeing it. I want to accomplish this in a way where I don't have to search through the world for the dragon. Help on this would be greatly appreciated ^.^
Try defining objmove as mob/var/obj/objmove.
You could try to call the step() proc for the object.
Example: step(mob.objmove, NORTH)
I believe it sets the dir for you.
if(mob.objmove)
mob.objmove.dir=NORTH
step(mob.objmove,NORTH)
return


This makes the dragon step NORTH, but it doesn't make it's direction north.
Best response
Your code calls walk() to get the dragon moving. Changing its dir or calling step() will not change its walk instruction; you'd need to call walk() again to do that.

If you follow Reformist's advice, all you need to do is remove the walk() call from when you first control the dragon. Letting step() handle it for you is what you want; it should set the dragon's dir as he said.
I see. Alright fellas, I appreciate the help