19.02.2016, 17:20 
	
	
	PHP код:
stock GetPlayerTheoreticAngle(playerid)
{
    new Float:MindAngle = 0.0, Float:angle2 = 0.0;
    if(IsPlayerConnected(playerid))
    {
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        new Float:dis = floatsqroot(floatpower(floatabs(floatsub(x, Drifting[playerid][pPos][0])), 2)+floatpower(floatabs(floatsub(y, Drifting[playerid][pPos][1])), 2));
        if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), angle2);
        else GetPlayerFacingAngle(playerid, angle2);
        if(Drifting[playerid][pPos][0] >= x)
        {
            new Float:tmp = (x >= Drifting[playerid][pPos][0]) ? (x - Drifting[playerid][pPos][0]) : (Drifting[playerid][pPos][0] - x), Float:sin = asin(tmp / dis);
            if(Drifting[playerid][pPos][1] >= y) MindAngle = floatadd(floatsub(floatadd(sin, 90), floatmul(sin, 2)), 90.0);
              else MindAngle = floatsub(floatadd(sin, 180), 180.0);
        }
        else
        {
             if(Drifting[playerid][pPos][1] < y)
            {
                new Float:tmp2 = (y >= Drifting[playerid][pPos][1]) ? (y - Drifting[playerid][pPos][1]) : (Drifting[playerid][pPos][1] - y), Float:sin = acos(tmp2 / dis);
                   MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
               }
               else
               {
                   new Float:tmp = (x >= Drifting[playerid][pPos][0]) ? (x - Drifting[playerid][pPos][0]) : (Drifting[playerid][pPos][0] - x), Float:sin = asin(tmp / dis);
                  MindAngle = floatadd(sin, 180);
                  }
            }
        }
    return (!MindAngle) ? (angle2) : (MindAngle);
    } 


