hab da etwas ganz altes rausgekramt:
TurnAroundPoint( Float:turn_around_x, Float:turn_around_y, Float:cur_x, Float:cur_y, Float:t_degrees, &Float:ret_newx, &Float:ret_newy ) // by D0erf|er
{
// new x pos cos(degrees)*vector_x - sin(degrees)*vector_y + turn_around_x
ret_newx=(floatcos(t_degrees, degrees)*(cur_x-turn_around_x))-(floatsin(t_degrees, degrees)*(cur_y-turn_around_y))+turn_around_x;
// new y pos sin(degrees)*vector_x + cos(degrees)*vector_y + turn_around_y
ret_newy=(floatsin(t_degrees, degrees)*(cur_x-turn_around_x))+(floatcos(t_degrees, degrees)*(cur_y-turn_around_y))+turn_around_y;
return 1;
}
ein wenig Mathe
turn_around_x & turn_around_y: um diesen Punkt wird gedreht
cur_x & cur_y: das Objekt Position die gedreht werden soll
t_degrees: um wie viel Grad gedreht werden soll
ret_newx & ret_newy: die neue Position
Anwendung:
// Beispiel Objekt: CreateObject(1234, 1000.0, 2000.0 , 3000.0, 0.0, 0.0, 0.0);
new Float:neues_X, Float:neues_Y;
TurnAroundPoint( 0.0, 0.0, 1000.0, 2000.0, 90.0, neues_X, neues_Y ); // 0.0, 0.0 = Der Punkt um den gedreht wird || 1000.0, 2000.0 = Die Position des Beispiel Objektes || 90.0 = Drehung um 90 Grad || neues_X, neues_Y = Die neue Position
So wie du es benötigst:
Du ersetzt alle "CreateObject" mit "CreateObjectYO" und setzt die 3 define-Werte so wie du sie brauchst, anschließend startest du den Server und schon hast du die neue Map in deiner server_log.txt (nur noch raus kopieren und in den Server einfügen)
#define TURN_AROUND_x 0.0
#define TURN_AROUND_y 0.0
#define TURN_Rotation 90.0
stock CreateObjectYO(mid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
new Float:neues_X, Float:neues_Y;
TurnAroundPoint( TURN_AROUND_x, TURN_AROUND_y, x, y, TURN_Rotation, neues_X, neues_Y );
printf("CreateObject(%d, %f, %f, %f, %f, %f, %f);", mid, neues_X, neues_Y, z, rx, ry, rz+TURN_Rotation);
}