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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для PawnoNoob
    Пользователь

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

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

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

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

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

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

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

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

    Steve Pavlina

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

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

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

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

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

    "Функция определяет, на каком расстоянии будет виден маркер."
    имеется ввиду одно и то же

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

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



    и



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

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

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от 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 вообще работает
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,034
    Репутация:
    702 ±
    Я изучил работу этих маркеров и выяснил, что значение 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Кстати, функция SetPlayerMarkerForPlayer - всего лишь SetPlayerColorForPlayer, то есть эта функция изменяет цвет одного игрока для другого.
    Так я и хотел работать с иконками путём изменения цвета одного игрока для другого. Точнее, изменения насыщенности, которая отвечает за прозрачность иконки на радаре.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

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

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

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

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

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

Ваши права

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