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

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

    Привязка игроков к определенной местности.

    Здравствуйте, я новичок в pawno, не могу реализовать привязку игроков к местности, думаю можно как нибудь через IsPlayerToKvadrat, но не понимаю как именно. Что по советуете? Пример: Чтобы игроки не могли покидать город, а при столкновении с границей их не пускало дальше и немного отбрасывало назад от неё. Заранее спасибо.

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    29.08.2017
    Сообщений
    11
    Репутация:
    0 ±
    Огромное спасибо, даже не знал об этой функции)

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Только учти, что это ограничение можно будет обойти читами :)
    То бишь, надеяться на то, что эта функция не даст игроку, например, выбраться из тюрьмы - не стоит. Для подобных случаев лучше ввести дополнительные проверки координат. Например, можно воспользоваться функционалом стримера и создать динамическую зону.
    Собственно, вот все существующие функции по созданию динамических зон:
    PHP код:
    native STREAMER_TAG_AREA CreateDynamicCircle(Float:xFloat:yFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCylinder(Float:xFloat:yFloat:minzFloat:maxzFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicSphere(Float:xFloat:yFloat:zFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicRectangle(Float:minxFloat:minyFloat:maxxFloat:maxyworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCuboid(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCube(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITYFloat:maxz FLOAT_INFINITYmaxpoints sizeof pointsworldid = -1interiorid = -1playerid = -1priority 0); 
    А их описание можешь нагуглить
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    29.08.2017
    Сообщений
    11
    Репутация:
    0 ±
    То есть как я понял, если брать SetPlayerWorldBounds то его надо совмещать с прямоугольником и обширную проверку лепить уже через stock(распихивая по нужным вызовом включай таймеры), или же можно по месть только в PlayerSpawn? p.s Спасибо что помог :)

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

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

    А если используешь динамические зоны, дабы со стороны сервера можно было отследить выход за пределы зоны, то у стримера есть специальные автовызываемые функции на этот случай:
    PHP код:
    OnPlayerEnterDynamicArea
    OnPlayerLeaveDynamicArea 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  9. Пользователь сказал cпасибо:
    Слава КПСС (05.10.2017)
  10. #7
    Аватар для Слава КПСС
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.08.2017
    Сообщений
    11
    Репутация:
    0 ±
    Я решил испробовать на практике SetPlayerWorldBounds, и понял что для читеров хуже наказания, чем данная функция не будет. xD
    Уверяю проверка через прямоугольник будет не нужна. :)

  11. #8
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Нужна, ибо читеры могут включить NOP на SetPlayerWorldBounds и им будет побоку какие ограничения вы к ним примените.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    Нужна, ибо читеры могут включить NOP на SetPlayerWorldBounds и им будет побоку какие ограничения вы к ним примените.
    Так же, как и обычный AirBreak не даст откидывать назад
    Да и вообще, для кого я писал это? -_-
      Открыть/закрыть
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Только учти, что это ограничение можно будет обойти читами :)
    То бишь, надеяться на то, что эта функция не даст игроку, например, выбраться из тюрьмы - не стоит. Для подобных случаев лучше ввести дополнительные проверки координат. Например, можно воспользоваться функционалом стримера и создать динамическую зону.
    Собственно, вот все существующие функции по созданию динамических зон:
    PHP код:
    native STREAMER_TAG_AREA CreateDynamicCircle(Float:xFloat:yFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCylinder(Float:xFloat:yFloat:minzFloat:maxzFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicSphere(Float:xFloat:yFloat:zFloat:sizeworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicRectangle(Float:minxFloat:minyFloat:maxxFloat:maxyworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCuboid(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicCube(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1priority 0);
    native STREAMER_TAG_AREA CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITYFloat:maxz FLOAT_INFINITYmaxpoints sizeof pointsworldid = -1interiorid = -1playerid = -1priority 0); 
    А их описание можешь нагуглить


    SetPlayerWorldBounds просто отправляет данные о новых границах мира, которые впоследствии устанавливаются игровым движком. Сервер никак эти данные впоследствии не проверяет и не контролирует. А раз всё происходит искючительно на стороне клиента, то и изменить эти данные клиент может легко при желании.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  13. #10
    Аватар для Слава КПСС
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.08.2017
    Сообщений
    11
    Репутация:
    0 ±
    Ну раз говорите надо - значит буду делать прямоугольник:)

 

 

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

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

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

Ваши права

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