Quote:
//DOOR MUST HAVE BOUNDING BOX FLAG ENABLED!!!!!!!


Your door is actually using the POLYGON flag not a bounding box.
Both player and doors should not use POLYGON but actual BBoxs

Quote:
my.dist_to_ground


What and where is this skill set? If you know?

Code:
if(vec_dist(door_handle.x, player.x) < 100 && my.pan == closed_pan){
			set(me, PASSABLE);



Your setting the door passable, is the gravity trace using IGNORE_PASSABLE flag? You actually should not set the door passable. What might be happening is a timing error. You set the door passable, then walk in to it, the reset passable - making it solid. That will cause the player bbox to be in the door as well as the gravity trace to be in the door. Gravity trace hitting inside a door will cause a negative trace return, which would cause the player to fly upward.

Code:
c_scan(my.x, my.pan, vector(360, 180, door_range), IGNORE_ME | SCAN_ENTS); // each door scans around it, trying to detect the player
		if (you) // detected an entity?



This scan should also IGNORE_PASSABLE or IGNORE_PASSENTS
Also after the '''if(you)''' you need to do another check for either the '''player''' pointer or some or id var, otherwise the scan can be trigger by others. - Although that is a potential problem not a real one at the moment.

Code:
while(key_enter){wait(1);}


not sure why the nested loop to wait.

EDITED HEAVILY
Mal

Last edited by Malice; 09/09/15 21:20.