PHP код:
forward UICompassTimer(playerid);
public UICompassTimer(playerid)
{
static const
step_1 = MAX_UICOMPASS_STEP * 1,
step_2 = MAX_UICOMPASS_STEP * 2,
step_3 = MAX_UICOMPASS_STEP * 3;
static
north,
result,
direction,
Float:angle;
//Узнаем направление игрока
GetPlayerFacingAngle(playerid, angle);
//Получаем максимальный шаг компаса
result = RoundCompassDirection(angle);
//Получаем минимальный шаг компаса
direction = RoundCompassDirection(angle, MIN_UICOMPASS_STEP);
//Узнаем, в каком TD будет выведено "N"
north = CompassHeadingNorth(result);
//Три предыдущих направления
PlayerTextDrawSetString(playerid, td_uicompass[playerid][0], CreateCompassString(result - step_3));
PlayerTextDrawSetString(playerid, td_uicompass[playerid][1], CreateCompassString(result - step_2));
PlayerTextDrawSetString(playerid, td_uicompass[playerid][2], CreateCompassString(result - step_1));
//Нынешнее направление
PlayerTextDrawSetString(playerid, td_uicompass[playerid][3], CreateCompassString(result));
//Три последующих направления
PlayerTextDrawSetString(playerid, td_uicompass[playerid][4], CreateCompassString(result + step_1));
PlayerTextDrawSetString(playerid, td_uicompass[playerid][5], CreateCompassString(result + step_2));
PlayerTextDrawSetString(playerid, td_uicompass[playerid][6], CreateCompassString(result + step_3));
//Выводим направление кратное минимальному шагу
PlayerTextDrawSetString(playerid, td__compass_dir[playerid], CreateCompassString(direction, MIN_UICOMPASS_STEP));
//Устанавливаем всем TD изначальный цвет (Готов выслушать предложения по упрощению)
PlayerTextDrawColor(playerid, td_uicompass[playerid][0], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][0]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][1], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][1]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][2], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][2]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][3], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][3]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][4], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][4]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][5], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][5]);
PlayerTextDrawColor(playerid, td_uicompass[playerid][6], 0xFFFFFFFF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][6]);
//Устанавливаем нужному TD желтый цвет, где будет выведено "N"
if (0 <= north < MAX_UICOMPASS_TD)
{
PlayerTextDrawColor(playerid, td_uicompass[playerid][north], 0xFFFF00FF);
PlayerTextDrawShow(playerid, td_uicompass[playerid][north]);
}
return 1;
}
Автор: