Hallo allerseits,
mein Problem ist das mein Player nicht auf dem Model laufen kann. Er läuft immer so nen meter übern Boden.
Hier ist erstmal der Code:
Code:
FUNCTION handle_gravity() {
	
trace_mode = ignore_me+ignore_passable+use_box;
	result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));
	IF (result < 3) {
		IF (my.jumping_mode == 0) {
			my.force_z = -1 * result;
			IF (key_space == 0 && space_press == 1) { space_press = 0; }
			IF (key_space == 1 && space_press == 0 && my.movement_mode == 0 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
				space_press = 1;
				my.jumping_mode = 1;
				my.force_z = 30;
				my.blendframe = jump;
				my.animate2 = 0;
				my.animblend = blend;
			}
		}
		IF (my.jumping_mode == 2 || my.jumping_mode == 3) { my.jumping_mode = 0; }
	} ELSE {
		IF (my.jumping_mode == 2) {
			IF (result > 120) {
				my.animate = 60;
				my.jumping_mode = 3;
			} ELSE {
				my.jumping_mode = 0;
			}
		}
		IF (my.jumping_mode == 3 && result <= 120) { my.jumping_mode = 0;	}
		IF (my.jumping_mode == 0 && my.movement_mode == 0) {
			IF (result > 120 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
				my.jumping_mode = 3;
				my.blendframe = fall;
				my.animate2 = 0;
				my.animblend = blend;
			}
		}
		my.force_z -= my.gravity * time;
		my.force_z = max(-15,my.force_z);
		IF (my.movement_mode == 2) { my.force_z = 0; }
	}
 	my.velocity_z += (time * my.force_z) - (min(time*0.7,1) * my.velocity_z);
	my.move_z = my.velocity_z * time;
}


Es liegt an dieser stelle:

trace_mode = ignore_me+ignore_passable+use_box;
result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));


wenn ich diese durch das hier ersetze:

result = c_trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000),ignore_me|ignore_passable);


dann kann er auf dem Model laufen aber kann nicht springen oder sonstiges.

MFG Noobi

Last edited by Noobi; 06/12/09 12:51.