HERE IS MY SCRIPT:

Code:
var climb = 0;
var allow_climb = 0;
var ladder_movement[3];
var ladder_normal[3];
var _result;
var dir1[3];
var dir2[3];
var pos1[3];
var pos2[3];
var pos3[3];
var trace_coords;

function ladder_event()
{
	if(you)
	{
		if(you == player)
		{
			my.enable_impact = off;	//prevent the event to be triggered again and again during climbing
			vec_set(my.skill21,player.x);	//store the players position
			while(1)
			{
				proc_late();
				climb = 1;
				vec_set(player.x,my.skill21);	//place it at the stored position to prevent the normal movement
				my.skill30 = c_move(player,ladder_movement,nullvector,ignore_passable|ignore_passents|glide);	//move the player up or down
				if(camera.tilt > - 40)
				{
					ladder_movement.z = 25 * (key_w - key_s)*time_step;
			   } 
			   if(camera.tilt < - 40)
			   {
			   	ladder_movement.z = 25 * (key_s - key_w)*time_step;
			   }
			   ladder_movement.x = 0;
			   ladder_movement.y = 25*(key_a - key_d)*time_step;
			   
			   vec_set(pos1,my.x);
			   vec_set(pos2,vector(1,0,0)); 
			   vec_rotate(pos2,my.pan); 
			   vec_add(pos2,my.x);
			   vec_set(pos3,vector(0,0,1)); 
			   vec_rotate(pos3,my.pan); 
			   vec_add(pos3,my.x);
			   vec_diff(dir1,pos1,pos2); 
			   vec_diff(dir2,pos2,pos3);
			   vec_cross(ladder_normal,dir1,dir2);  
			   vec_normalize(ladder_normal,1);
			   _result = (vec_dot(player.x,ladder_normal)-vec_dot(my.x,ladder_normal))/sqrt( vec_dot(ladder_normal,ladder_normal) );
			   
			   vec_set(trace_coords.x, vector(400, 0, 0)); 
			   vec_rotate(trace_coords.x, player.pan);
			   vec_add(trace_coords.x, player.x);
			   
			   c_trace(player.x, trace_coords.x, IGNORE_ME | GLIDE); 
			   if(trace_hit){allow_climb = 1;}else{allow_climb = 0;}
			   if(allow_climb == 0 || _result < my.min_y || _result > my.max_y || key_space == 1)	
				{
					climb = 0;
					break;	
				}
				vec_set(my.skill21,player.x);	
				
				wait(1);
			}
			climb = 0;
			wait(-0.1);	
			my.enable_impact = on;	
		}
	}
}

action ladder()
{
	my.enable_impact = on;
	my.event = ladder_event;
	my.polygon = on;
	c_setminmax(me);
}


But as I sad, not that good...is there any way to make trace wider?? please help...


Looking for free stuff?? Take a look here: http://badcom.at.ua
Support me on: https://boosty.to/3rung