Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 8 из 8
  1. #1
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2145 ±

    SetPlayerFacingPos - повернуть игрока к указанным координатам

    Описание:
    Поворачивает игрока лицом к указанным координатам.

    Параметры:
    playerid - ID поворачиваемого игрока
    Float:x, Float:y - координаты, к которым будет повёрнут игрок

    Возвращаемое значение:
    Функция возвращает 1, если игрок подключен, иначе - 0.

    Код:
    PHP код:
    stock SetPlayerFacingPos(playeridFloat:xFloat:y)
    {
    // by Daniel_Cortez \\ pro-pawn.ru
        
    static Float:axFloat:ayFloat:az;
        if(
    GetPlayerPos(playeridaxayaz) == 0)
            return 
    0;
        return 
    SetPlayerFacingAngle(playeridatan2(y-ayx-ax)-90.00);

    Пример использования:
    PHP код:
    CMD:setfacingpos(playeridparams[])
    {
        
    extract params -> new Float:xFloat:y; else
            return 
    SendClientMessage(playerid, -1"Использование: /setfacingpos [x] [y]");
        return 
    SetPlayerFacingPos(playeridxy);

    Автор: Daniel_Cortez

    Специально для Pro-Pawn.ru
    Копирование данной статьи на других ресурсах без разрешения автора запрещено.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  2. 5 пользователя(ей) сказали cпасибо:
    Edwin (08.06.2015)franked (17.02.2016)Londlem (01.05.2015)Nazarik (01.05.2015)vovandolg (06.07.2016)
  3. #2
    Аватар для Nazarik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.09.2013
    Адрес
    Ukraine | Lvov
    Сообщений
    21
    Репутация:
    11 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение

    Параметры:
    playerid - ID поворачиваемого игрока
    Float:x, Float:y, Float:z - координаты, к которым будет повёрнут игрок
    Ошибочка в описании.

  4. Пользователь сказал cпасибо:
    Daniel_Cortez (01.05.2015)
  5. #3
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2145 ±
    Цитата Сообщение от Nazarik Посмотреть сообщение
    Ошибочка в описании.
    Исправлено, thx.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  6. #4
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Если это возможно, то хотелось бы узнать на счёт функции "atan2", а именно: что она из себя представляет? Почему именно она использована в этом коде? Когда её полезно использовать?

    P.S.: На данный вопрос можно не отвечать, хочу узнать принцип действия, ибо я ни разу не использовал данную функцию, а подробной информации о данной функции я, к сожалению так и не нашёл.

    И почему была инициализирована переменная "a", ведь можно было обойтись без неё?
    Последний раз редактировалось Londlem; 01.05.2015 в 23:49.

  7. #5
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2145 ±
    Это арктангенс от двух параметров, представляющих собой координаты точки.
    Принцип работы можно рассмотреть на следующем рисунке:
    Функция atan2 возвращает угол точки (A;B) относительно центра координат (0;0). Угол измеряется в градусах.
    Таким образом можно получить угол между двумя точками.
    И да, в SetPlayerFacingPos я отнял от полученного угла ещё 90 градусов. Это связано с тем, что в GTA:SA ось X почему-то вывернута разработчиками в противоположную сторону и углы поворота имеют совсем другие значения со смещением в -90.

    P.S.: Немного обновил функцию.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  8. 2 пользователя(ей) сказали cпасибо:
    franked (17.02.2016)Londlem (02.05.2015)
  9. #6
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    560
    Репутация:
    272 ±
    extract params -> new Float:x, Float:y; else
    Я чего-то не знаю?

  10. #7
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2145 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    Я чего-то не знаю?
    http://forum.sa-mp.com/showthread.php?t=570927 (см. раздел "extract")

    Странно, что этим до сих пор никто не пользуется, в то время, как скоро уже будет готов sscanf3.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  11. Пользователь сказал cпасибо:
    $continue$ (11.05.2015)
  12. #8
    Аватар для Edwin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    188
    Репутация:
    20 ±
    Вот спасибки, как раз ломал голову над изобретением чего-то подобного
    Про позицию Z, кстати, почему-то не подумал. Благодарствую, сэр

 

 

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

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

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

Ваши права

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