ID:159441
 
turf
Fire
Entered(mob/M)
while(src.loc == M.loc)
sleep(30)
M<<"You got burned by the intencive flames"
M.hp -= 5


Well....i don't really know how to check if the player is standing on the fire.....so can anyone fill me in?
If a mob* entered a turf, then the mob is in the turf (or on it, if you prefer). Its location (and loc) is the turf. Therefore, you'd simply check if the mob's loc was still the turf. You should spawn() off such delayed matters and loops in movement procs, to let the main movement process a chance to continue running and finish (as well as the function that invoked Move() in the first place). Personally, I'd also put the effect in its own proc (which spawn()s its own code).
If you want to check if the player is at any /turf/Fire and not a specific/current one, you can check his loc's type for that with the istype() proc. Whatever your code will finally look like in the end, take care so you don't end up starting multiple loops when a player walks through a bunch of /turf/Fire turfs.

*: There is no guarantee that what entered a turf will always be a mob <small>(even if you define the argument var as of /mob type, this has no bearing on its actual value)</small>, as objs are also capable of moving, and commonly do in games (for example, projectiles and items thrown by players). This can lead to various errors if not accounted for - for example, in your case, you are likely to get a runtime error whenever an obj moves into a fire type, saying it could not find the "hp" var on it (as objs don't have it (presumably)). To circumvent this, whenever an object's type is not certain enough so accessing properties of it won't be problematic, make sure you confirm the object as of a given type before treating it as such. For example, validate the Entered() argument is indeed a mob (f.ex. an ismob() call) before you treat it as one and affect its HP.