Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: UICompass

Показано с 1 по 5 из 5

  1. #1
    V.I.P

    Аватар для m1n1vv

    Статус: Оффлайн
    Регистрация:06.02.2015
    Сообщений:195
    Репутация:149 [+/-] 

    UICompass

    UICompass v0.7


    Данный инклуд предназначен для реализации компаса с стиле PUBG. Он выводит нынешнее направление включая три предыдущих и последующих.

    Все направления в шкале кратны максимальному шагу, MAX_UICOMPASS_STEP. Направление выводится с интервалом. Например при [41 - 47] выведет 45. Поддерживается только нечетное количество TD!

    Реализация TD на вашей стороне.


    • RoundCompassDirection - округляет направление до кратного round.

      PHP код:
      RoundCompassDirection(Float:angleround); 
      • Float:angle - нынешнее направление игрока
      • round - делает число кратным указанному значению

    • CreateCompassString - создает строку с направлением игрока.

      PHP код:
      CreateCompassString(angleround); 
      • angle - направление игрока полученное из RoundCompassDirection
      • round - делает число кратным указанному значению

    • CompassHeadingNorth - определяет, в каком из TD будет выведено "N".

      PHP код:
      CompassHeadingNorth(angle); 
      • angle - направление игрока полученное из RoundCompassDirection


    Директивы По умолчанию Описание
    MAX_UICOMPASS_TD 7 Количество TD, которое будет использоваться в Вашем компасе
    MIN_UICOMPASS_STEP 5 Минимальный шаг компаса
    MAX_UICOMPASS_STEP 15 Максимальный шаг компаса


    Применение:

    Создаем коллбэк для таймера.



    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(playeridangle);

        
    //Получаем максимальный шаг компаса
        
    result RoundCompassDirection(angle);

        
    //Получаем минимальный шаг компаса
        
    direction RoundCompassDirection(angleMIN_UICOMPASS_STEP);

        
    //Узнаем, в каком TD будет выведено "N"
        
    north CompassHeadingNorth(result);

        
    //Три предыдущих направления
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][0], CreateCompassString(result step_3));
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][1], CreateCompassString(result step_2));
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][2], CreateCompassString(result step_1));

        
    //Нынешнее направление
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][3], CreateCompassString(result));

        
    //Три последующих направления
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][4], CreateCompassString(result step_1));
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][5], CreateCompassString(result step_2));
        
    PlayerTextDrawSetString(playeridtd_uicompass[playerid][6], CreateCompassString(result step_3));

        
    //Выводим направление кратное минимальному шагу
        
    PlayerTextDrawSetString(playeridtd__compass_dir[playerid], CreateCompassString(directionMIN_UICOMPASS_STEP));

        
    //Устанавливаем всем TD изначальный цвет (Готов выслушать предложения по упрощению)
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][0], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][0]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][1], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][1]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][2], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][2]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][3], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][3]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][4], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][4]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][5], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][5]);
        
    PlayerTextDrawColor(playeridtd_uicompass[playerid][6], 0xFFFFFFFF);
        
    PlayerTextDrawShow(playeridtd_uicompass[playerid][6]);
        
        
    //Устанавливаем нужному TD желтый цвет, где будет выведено "N"
        
    if (<= north MAX_UICOMPASS_TD)
        {
            
    PlayerTextDrawColor(playeridtd_uicompass[playerid][north], 0xFFFF00FF);
            
    PlayerTextDrawShow(playeridtd_uicompass[playerid][north]);
        }

        return 
    1;

    Версия: v0.7
    Автор: m1n1vv
    Скачать/Репозиторий: https://github.com/m1n1vv/UICompass
  2. 7 пользователей сказали cпасибо m1n1vv за это полезное сообщение:

    #Rips (13.12.2017), Iwka (13.12.2017), iWors (14.12.2017), Nexius_Tailer (13.12.2017), Richie56 (14.12.2017), Undercover (13.12.2017), whale (13.12.2017)

  3. #2
    V.I.P

    Аватар для m1n1vv

    Статус: Оффлайн
    Регистрация:06.02.2015
    Сообщений:195
    Репутация:149 [+/-] 
    UICompass v0.4

    • Изменены названия двух функций:

      • GetDirectionCompass > RoundCompassDirection;
      • CompassSetString > CreateCompassString.

    • Внесены небольшие изменения в работу инклуда.
  4. #3
    V.I.P

    Аватар для m1n1vv

    Статус: Оффлайн
    Регистрация:06.02.2015
    Сообщений:195
    Репутация:149 [+/-] 
    v0.5, v0.6

    • Добавлена возможность изменения минимального шага. По умолчанию было 15.
      За это отвечает директива: UICOMPASS_STEP;
    • Внесены небольшие изменения;
    • Переписана функция: CompassHeadingNorth.
  5. #4
    V.I.P

    Аватар для m1n1vv

    Статус: Оффлайн
    Регистрация:06.02.2015
    Сообщений:195
    Репутация:149 [+/-] 
    v0.7

    • Добавлена поддержка вывода минимального шага. Который кратный 5;
    • У RoundCompassDirection и CreateCompassString появился новый параметр: round;
    • Новые макросы: MIN_UICOMPASS_STEP, MAX_UICOMPASS_STEP.


    ---------- Сообщение добавлено в 09:59 ---------- Предыдущее сообщение добавлено в 09:57 ----------

    v0.7

    • Добавлена поддержка вывода минимального шага. Который кратный 5;
    • У RoundCompassDirection и CreateCompassString появился новый параметр: round;
    • Новые макросы: MIN_UICOMPASS_STEP, MAX_UICOMPASS_STEP.
  6. #5
    V.I.P

    Аватар для m1n1vv

    Статус: Оффлайн
    Регистрация:06.02.2015
    Сообщений:195
    Репутация:149 [+/-] 
    Вот что умудрился сделать

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения