Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±

    Метки на радаре

    Всем привет. Я уверен в том, что этот вопрос задавался несколько десятков (а может и сотен) раз, да и ответ на этот вопрос давался столько же, но, к сожалению, конкретно этого вопроса я не нашёл на просторах этого форума (да и в поисковой системе тоже что-то не удалось найти). Так вот, всё опишу ниже.

    Что я делал до того, как задать этот вопрос:
    PHP код:
    ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED); 
    После всего этого метка начала действительно пропадать, но уже ближе к концу самой пирамиды (чистый new.pwn), а это довольно-таки многовато для меня. Как уменьшить это расстояние?

    И я так и не понял, за что отвечает функция LimitPlayerMarkerRadius? В Wiki написано, что устанавливает радиус этой метки, а на стороннем портале пишут следующее: "Функция определяет, на каком расстоянии будет виден маркер.".

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

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

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    PawnoNoob (10.07.2016)
  4. #3
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Самым лучшим способом будет просто взять и проверить, не?
    Не уверен, что кто-то из форумчан часто работал с этой функцией и даст тебе точный ответ
    Вот именно, что проверял, да и не раз, результата вообще никакого не заметил, ставил и 10.0, и 20.0. Эффекта по-моему вообще никакого нет.

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

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    LimitPlayerMarkerRadius - устанавливает радиус (расстояние игрока от другого игрока, при котором появится метка на карте) показа метки

    В Wiki написано, что устанавливает радиус этой метки
    и

    "Функция определяет, на каком расстоянии будет виден маркер."
    имеется ввиду одно и то же
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  6. Пользователь сказал cпасибо:
    PawnoNoob (10.07.2016)
  7. #5
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    LimitPlayerMarkerRadius - устанавливает радиус (расстояние игрока от другого игрока, при котором появится метка на карте) показа метки



    и



    имеется ввиду одно и то же
    Хм, эти две функции нужно использовать вместе? Типа:
    PHP код:
    ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
    LimitPlayerMarkerRadius(например50.0); 
    Или как-то по-другому?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Вот именно, что проверял, да и не раз, результата вообще никакого не заметил, ставил и 10.0, и 20.0. Эффекта по-моему вообще никакого нет.
    Сам я с этой функцией работал, примерно, году в 13-ом последний раз и, как мне помнится, тоже не добился желаемого успеха.

    Если ничего не получится, можешь попробовать сделать свой костыль в виде прикрепления к каждому игроку динамической зоны и использовании вот такой функции:
    PHP код:
    stock TogglePlayerOnMapForPlayer(playeridshowplayeridbool:visibleSetPlayerMarkerForPlayer(playeridshowplayerid, (GetPlayerColor(showplayerid) | 0xFF) - (visible 0x00 0xFF));
    //Функцию набросал прямо тут и не уверен, что угадал с правильностью playerid и showplayerid 
    То бишь, игрок один игрок зашёл в зону другого и для того, кто зашёл:
    PHP код:
    TogglePlayerOnMapForPlayer(playeridgiveplayeridtrue);// playerid - кто зашёл в зону, giveplayerid - к кому зашли в зону
    // Покажет иконку showplayerid для playerid 
    И когда вышел
    PHP код:
    TogglePlayerOnMapForPlayer(playeridgiveplayeridfalse); 
    Так сможешь чуть ли не прямо в игре регулировать расстояние прорисовки иконок.

    Позже, мб, инк напишу с этой системой, если никто не опередит и если SetPlayerMarkerForPlayer вообще работает
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  9. Пользователь сказал cпасибо:
    PawnoNoob (10.07.2016)
  10. #7
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Стоит немного поискать и можно найти подобные сообщения где-то ещё

  11. Пользователь сказал cпасибо:
    PawnoNoob (11.07.2016)
  12. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Я изучил работу этих маркеров и выяснил, что значение PLAYER_MARKERS_MODE_STREAM отвечает за отображение маркеров игроков в стриме (как очевидно из названия), а маркеры в зоне стрима отрисовываются на стороне клиента.

    Значение PLAYER_MARKERS_MODE_GLOBAL запускает функцию постоянного обновления маркеров раз в 2.5 секунды. Именно в эту функцию идёт значение, переданное с помощью LimitPlayerMarkerRadius (значение, кстати, идёт в квадрате, видимо изначально Kye хотел обойтись без sqrt в вычислении расстояния, но потом забыл убрать возведение в квадрат).

    То есть за отрисовку маркеров игроков в стриме отвечает клиент, а в глобале - сервер, именно поэтому при покидании зоны стрима иконка на карте появляется не сразу.

    Из-за того, что клиент автоматически удаляет глобальный маркер при входе в стрим, исправить работу стандартных маркеров не представляется возможным. Хотя что стоит добавить вызов функции обновления маркеров при входе/выходе игрока в/из стрима, что исправит задержку между появлениями маркеров, и что стоит добавить передачу расстояния из LimitPlayerMarkerRadius в клиент и поставить одну небольшую проверку на расстояние? Эх...

    Кстати, функция SetPlayerMarkerForPlayer - всего лишь SetPlayerColorForPlayer, то есть эта функция изменяет цвет одного игрока для другого.

    Отвечаю на вопрос автора:
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    И я так и не понял, за что отвечает функция LimitPlayerMarkerRadius?
    Функция LimitPlayerMarkerRadius отвечает за расстояние (точнее за квадрат расстояния) на котором будет отрисовываться маркеры игроков, которые находятся вне стрима. Эту функцию имеет смысл использовать только в режиме PLAYER_MARKERS_MODE_GLOBAL.
    Последний раз редактировалось ziggi; 11.07.2016 в 02:57.

  13. 3 пользователя(ей) сказали cпасибо:
    DeimoS (11.07.2016) Nash_Brigers (11.07.2016) PawnoNoob (11.07.2016)
  14. #9
    Аватар для DeimoS
    Модератор?

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

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

    Steve Pavlina

  15. Пользователь сказал cпасибо:
    PawnoNoob (11.07.2016)
  16. #10
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так я и хотел работать с иконками путём изменения цвета одного игрока для другого. Точнее, изменения насыщенности, которая отвечает за прозрачность иконки на радаре.
    Дак я ничего и не говорю, это единственный вариант.

  17. Пользователь сказал cпасибо:
    PawnoNoob (11.07.2016)
 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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