Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Sash.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    12.07.2018
    Сообщений
    15
    Репутация:
    0 ±

    Как создать пикап/маркер рядом с авто?

    Всем привет, подскажите как создается такой маркер? https://imgur.com/a/yGHrUVU
    (Т.е конкретно рядом с авто, в желаемом месте загрузки)
    Должен использоваться для загрузки/разгрузки рабочего авто.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вот готовая функция

    1. stock GetCoordBootVehicle(vehicleid, &Float:x, &Float:y, &Float:z)
    2. {
    3. new Float:angle,Float:distance;
    4. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, x, distance, z);
    5. distance = distance/2 + 0.1;
    6. GetVehiclePos(vehicleid, x, y, z);
    7. GetVehicleZAngle(vehicleid, angle);
    8. x += (distance * floatsin(-angle+180, degrees));
    9. y += (distance * floatcos(-angle+180, degrees));
    10. return 1;
    11. }


    Как можно увидеть, через GetVehicleModelInfo узнаётся размер модели авто по оси y (от багажника до капота). Далее результат делится на 2, дабы получить расстояние от центра до багажника/капота. Ну а дальше идёт получение позиции авто на карте и вычисление координат перед багажником при помощи тригонометрии.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. 3 пользователя(ей) сказали cпасибо:
    Boulevard_Picard (02.08.2018) DrumYum (27.07.2018) Sash. (27.07.2018)
  4. #3
    Аватар для DrumYum
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2014
    Сообщений
    11
    Репутация:
    1 ±
    Поворот транспорта можно узнать через GetVehicleZAngle, а смещение (offset) относительно координат транспорта можно получить через GetVehicleModelInfo, либо вручную подобрать

    UPD: извиняюсь, загрузил страницу до появления ответа выше

  5. Пользователь сказал cпасибо:
    DeimoS (27.07.2018)
  6. #4
    Аватар для Sash.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    12.07.2018
    Сообщений
    15
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот готовая функция

    1. stock GetCoordBootVehicle(vehicleid, &Float:x, &Float:y, &Float:z)
    2. {
    3. new Float:angle,Float:distance;
    4. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, x, distance, z);
    5. distance = distance/2 + 0.1;
    6. GetVehiclePos(vehicleid, x, y, z);
    7. GetVehicleZAngle(vehicleid, angle);
    8. x += (distance * floatsin(-angle+180, degrees));
    9. y += (distance * floatcos(-angle+180, degrees));
    10. return 1;
    11. }


    Как можно увидеть, через GetVehicleModelInfo узнаётся размер модели авто по оси y (от багажника до капота). Далее результат делится на 2, дабы получить расстояние от центра до багажника/капота. Ну а дальше идёт получение позиции авто на карте и вычисление координат перед багажником при помощи тригонометрии.
    Спасибо, как всегда выручил! Все получилось!

  7. #5
    Аватар для Sash.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    12.07.2018
    Сообщений
    15
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот готовая функция

    1. stock GetCoordBootVehicle(vehicleid, &Float:x, &Float:y, &Float:z)
    2. {
    3. new Float:angle,Float:distance;
    4. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, x, distance, z);
    5. distance = distance/2 + 0.1;
    6. GetVehiclePos(vehicleid, x, y, z);
    7. GetVehicleZAngle(vehicleid, angle);
    8. x += (distance * floatsin(-angle+180, degrees));
    9. y += (distance * floatcos(-angle+180, degrees));
    10. return 1;
    11. }


    Как можно увидеть, через GetVehicleModelInfo узнаётся размер модели авто по оси y (от багажника до капота). Далее результат делится на 2, дабы получить расстояние от центра до багажника/капота. Ну а дальше идёт получение позиции авто на карте и вычисление координат перед багажником при помощи тригонометрии.
    А возможно ли реализовать следующее:
    Появился маркер с одной стороны авто,игрок встал на него-произошло действие и маркер удалился. После него появился следующий, но с небольшим смещением по какой-либо оси, опять игрок встает и выполняется действие, после чего маркер удаляется и появляется следующий.
    Как можно такое реализовать?
    Последний раз редактировалось Sash.; 27.07.2018 в 21:53.

  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Sash. Посмотреть сообщение
    А возможно ли реализовать следующее:
    Появился маркер с одной стороны авто,игрок встал на него-произошло действие и маркер удалился. После него появился следующий, но с небольшим смещением по какой-либо оси, опять игрок встает и выполняется действие, после чего маркер удаляется и появляется следующий.
    Как можно такое реализовать?
    Эмм, точно так же, рассчитывая координаты вокруг авто?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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