i have it <3
https://youtu.be/KatbVupcbYM

grin
work steps:

1. i have merge the level in the MED to my player model
2. i make a climb animation for one height
3. write in all frames, the position of the master bone and then delete the position of the master bone in all frames and set it to the same position (only XYZ, not pan tilt roll).
4.save the model
5. in the SED in the HeroXYCollision i add this

Code:
VECTOR climb1_bones_pos[11];
	vec_set(climb1_bones_pos[0],vector(0,0,0));
	vec_set(climb1_bones_pos[1],vector(0.75,0,2.875));
	vec_set(climb1_bones_pos[2],vector(5.875,0,7.375));
	vec_set(climb1_bones_pos[3],vector(7.25,0,13.87));
	vec_set(climb1_bones_pos[4],vector(10.25,0,14.37));
	vec_set(climb1_bones_pos[5],vector(10.25,0,13.37));
	vec_set(climb1_bones_pos[6],vector(10.25,0,14));
	vec_set(climb1_bones_pos[7],vector(10.37,0,15.5));
	vec_set(climb1_bones_pos[8],vector(11.35,0,22.55));
	vec_set(climb1_bones_pos[9],vector(12.36,0,31.03));
	vec_set(climb1_bones_pos[10],vector(15.62,0,31.87));
	
	VECTOR climb1_to_pos[10];
	var ci;
	for (ci=0; ci<10; ci++) // repeat 10 times
	{
		vec_diff (climb1_to_pos[ci],climb1_bones_pos[ci],climb1_bones_pos[ci+1]);
	}



6.
in the end of the while loop in the same function i add this
Code:
if(key_q)
		{

			if(climb_percent < 10 &&  climb_percent >= 0)
			climb_frame = 0;
			if(climb_percent < 20 &&  climb_percent >= 10)
			climb_frame = 1;
			if(climb_percent < 30 &&  climb_percent >= 20)
			climb_frame = 2;		
			if(climb_percent < 40 &&  climb_percent >= 30)
			climb_frame = 3;		
			if(climb_percent < 50 &&  climb_percent >= 40)
			climb_frame = 4;		
			if(climb_percent < 60 &&  climb_percent >= 50)
			climb_frame = 5;		
			if(climb_percent < 70 &&  climb_percent >= 60)
			climb_frame = 6;		
			if(climb_percent < 80 &&  climb_percent >= 70)
			climb_frame = 7;
			if(climb_percent < 90 &&  climb_percent >= 80)
			climb_frame = 8;		
			if(climb_percent < 100 && climb_percent >= 90)
			climb_frame = 9;		
			
			
			
			
			
			
			//derzeitige position
			
			
			
			
			//ziel position
			
			if(climb_percent == 0 ||climb_percent == 10 ||climb_percent == 20 ||climb_percent == 30 ||climb_percent == 40 ||climb_percent == 50 ||climb_percent == 60 ||climb_percent == 70 ||climb_percent == 80 ||climb_percent == 90)
			{
				vec_set(hero_temp1, my.x);
				vec_set(hero_temp2, my.x);
				vec_set(climb1_to_pos_temp, climb1_to_pos[climb_frame]);
				vec_add(hero_temp2, 	vec_rotate(climb1_to_pos_temp, my.parent.pan));
				lerp_time = 0;
			}
			
			
			if(lerp_time <= 10)
			vec_lerp(hero_climb,hero_temp1,hero_temp2,-lerp_time*0.1);
			lerp_time+=1;
			if(climb_percent < 100)
			vec_set(my.x,vector(hero_climb.x,hero_climb.y,hero_climb.z+0.32));
			
			//		climb_dist = vec_dist(hero_temp1,hero_temp2);
			
			DEBUG_VAR(lerp_time,80);
			
			//wenn var mode auf 0 ist dann ist die animation linear und geht von 0 bis 100 und alles über 100 bleibt stehen
			ent_animate(my.parent,"climp", climb_percent ,0);
			climb_percent += 1;
			TX_Pvec(hero_climb);
			
		}
		else
		{
			climb_percent = 0;
			
		}


7. and by this line

Code:
my.z = heroEnt.z + Z_BBOX_SIZE - 8;



i change to this
Code:
if(!key_q)
my.z = heroEnt.z + Z_BBOX_SIZE - 8;




later i change key_q to a variable =)

Last edited by tagimbul; 03/21/16 16:42.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos