ID:170799
 
#define D #define
D IC icon
D ICS icon_state
D T turf


obj/house{IC='blah.dmi';Entered(atom/M){if(ismob(M)){M.loc=locate(1,1,1)}}}


I get a few errors:
loading TestDefine.dme
TestDefine.dm:14:error:.loc:undefined type path
TestDefine.dm:14:mob :warning: unused label

TestDefine.dmb - 1 error, 1 warning (double-click on an error to jump to it)

Basically, when they Enter the house...they move to a different loc. If your wondering why I put it on one line I am testing out the define stuff. Since all of the source, is on one line...it could be a lot of things that cause the problem, but when I take out the whole entered() thing and put click and then change M to usr it works fine.
I believe the problem here is that you're using an obj rather than a turf. Entered() is called when something enters that atom's contents. Unfortunately, when you move over an object, you don't enter it's contents, you enter the contents of the turf underneath it (actually, if I recall right, you enter the area's contents, but since it's some sort of special case, it's as if you entered the turf's contents. I may be wrong about this, though... but I digress). Anyhow, try changing that to turf/house, and see what happens.
Did you post all your code? When I compile that exact snippet I get a "cannot change constant value" error, which can be removed by changing atom/M to atom/movable/M.

Just for the record, when I made BLOB! for the 2002 4k contest, I wrote the source longhand first to get my procs working properly, then I condensed it. There's no point in writing code in such an obscure format before you troubleshoot it.
In response to Shadowdarke
Nope, changing it to atom/movable/M still didn't work. Also, I didn't post the whole code...should I? It messed the board up...what the hell:

#define D #define

D L Login()
D S src
D M mob
D P proc
D CC CreateChar
D IC icon
D ICS icon_state
D T turf
D Pa ..()
D C Click()

mob/L{S<<"Hello";S<<"Test";CC();Pa}mob/proc/CC(){S<<"Test2"}world{T=/turf/Grass;M=/mob/player}obj/house{IC='blah.dmi';Enter(atom/movable/M){if(ismob(M)){M.loc=locate(1,1,1)}}}mob/player{IC='Blah.dmi';ICS = "Man";density=1}turf/Grass{IC='Grass.dmi'}


Also, it is kind of fun writing it short haha, makes it..like smaller and I don't have to flip around different .dm's. The one bad thing is that I have to constantly look at what the different abbreviations I used, like some of them don't make sense. Especially the one's you guys did for the 4k challenge when they were random letters.
In response to Igmolicious
Well you may be right, i'm not sure. Either way...I get the same error though. Thanks anyway.
Yeah, I guess I didn't read your error message the first time through. Whoops. Anyhow, according to your later post, M is defined as mob and then you try to use it as a handle for an atom. Whoops. Hopefully this helps ya.
In response to Igmolicious
Whoops, overlooked that Thanks!

Also, you were right about the turf contents thing, so yeah thanks again.
In response to N1ghtW1ng
Out of curiousity, why are you trying to do that? There isn't another 4k challenge, is there?
In response to Wizkidd0123
Nah, but when Gug gave us our subscriptions that we were suppose to have, I was looking at different sources of games that were advanced like the 4k challenge participants. I was trying to decipher them and it was going pretty well so I decided to try and make my own.