...nun aber doch, Ventilator dein Code macht genau den Fehler den ich meine. Schau mal was ich gemacht habe, ich habe den Start verzögert, damit du siehst das sobald die rotation beginnt cube2 nicht mehr auf dem winkel ist den er sollte.

Code:
#include <acknex.h>

var vStart=0;

void cube2()
{
	vec_set(my.pan, vector(random(360), random(360), random(360)));
	vec_set(my.scale_x, vector(0.5, 0.5, 2));

	VECTOR position_offset;
	ANGLE angle_offset;	
	vec_set(position_offset, my.x);
	vec_to_ent(position_offset, you);
	ang_diff(angle_offset, my.pan, you.pan);
	while(!vStart){wait(1);}
	while(1)
	{
		vec_set(my.x, position_offset);
		vec_rotate(my.x, you.pan);
		vec_add(my.x, you.x);
		
		vec_set(my.pan, you.pan);
		ang_rotate(my.pan, angle_offset);
		
		wait(1);
	}
}

void cube1()
{

	vec_set(my.pan, vector(random(360), random(360), random(360)));
	ent_create(CUBE_MDL, vector(100, 0, 20), cube2);
	wait(-3);
	vStart=1;
	while(1)
	{
		vec_add(my.pan, vector(2 * time_step, 0.5 * time_step, time_step));
		wait(1);
	}
}

void main()
{
	randomize();
	level_load("");
	ent_create(CUBE_MDL, vector(100, 0, 0), cube1);
}