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

    Статус
    Оффлайн
    Регистрация
    01.11.2016
    Адрес
    Очень Далеко
    Сообщений
    37
    Репутация:
    1 ±

    Как запретить игрокам посещение территории

    Всем привет. Хочу закрыть от посещения несколько городов, но не знаю как это сделать. Хотелось бы что бы когда игрок зашел на территорию где ему не желательно находиться, он умирал. Ну например: Игрок зашел в СФ, а там нельзя ему быть и он автоматически умерает

  2. #2
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Можно, конечно, воспользоваться функцией SetPlayerWorldBounds, которая уже есть в SA:MP. Однако, для неё нет никого паблика или функции, которые бы позволили определить состояние игрока. Хотя вы можете сверять данные, но это не рационально.
    Альтернативой может послужить плагин streamer с его динамическими зонами. Ко всему прочему, он добавляет callback-функции, определяющие состояние игрока в этих зонах.

  3. #3
    Аватар для Max_Tolk
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.11.2016
    Адрес
    Очень Далеко
    Сообщений
    37
    Репутация:
    1 ±
    Ну мне не обязательно что бы они умирали, достаточно что бы они просто не могли войти

  4. #4
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Max_Tolk Посмотреть сообщение
    Ну мне не обязательно что бы они умирали, достаточно что бы они просто не могли войти
    В официальной вики по SA:MP написано: "игрок не сможет выйти за пределы, его будет отталкивать".

    Players can not go out of the boundaries (they will be pushed back in).

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

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

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

    Steve Pavlina

  6. #6
    Аватар для Max_Tolk
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.11.2016
    Адрес
    Очень Далеко
    Сообщений
    37
    Репутация:
    1 ±
    Я как раз там ничего не хочу делать, просто все основные постройки будут в ЛС и не хотелось бы что бы игроки бегали по "пустым городам" да и смотреться будет глупо

    - - - Добавлено - - -

    Ну как я понял мне надо установить координаты в которых игрок будет находиться, а если за них зайдет его будет отталкивать

  7. #7
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Max_Tolk Посмотреть сообщение
    Я как раз там ничего не хочу делать, просто все основные постройки будут в ЛС и не хотелось бы что бы игроки бегали по "пустым городам" да и смотреться будет глупо

    - - - Добавлено - - -

    Ну как я понял мне надо установить координаты в которых игрок будет находиться, а если за них зайдет его будет отталкивать
    Да. Либо же воспользоваться плагином streamer.

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

    Статус
    Оффлайн
    Регистрация
    01.11.2016
    Адрес
    Очень Далеко
    Сообщений
    37
    Репутация:
    1 ±
    А стримером как?

    - - - Добавлено - - -

    PHP код:
    forward IsPlayerInArea();
    public 
    isPlayerInArea()
    {
            new 
    Float:XFloat:YFloat:Z;
            for(new 
    i=0MAX_PLAYERSi++)
            {
                    
    GetPlayerPos(iXYZ);
                    if(
    >= 2150.241 && <= 2500.678 && <= 401.121 && >= 37.669)
                    {
                            
    SetPlayerHealth(i0); 
                    }
            }

    Так?

    - - - Добавлено - - -

    Только у меня ошибку выдает я не знаю почему
    (411) : warning 235: public function lacks forward declaration (symbol "isPlayerInArea")

  9. #9
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Max_Tolk Посмотреть сообщение
    А стримером как?

    - - - Добавлено - - -

    PHP код:
    forward IsPlayerInArea();
    public 
    isPlayerInArea()
    {
            new 
    Float:XFloat:YFloat:Z;
            for(new 
    i=0MAX_PLAYERSi++)
            {
                    
    GetPlayerPos(iXYZ);
                    if(
    >= 2150.241 && <= 2500.678 && <= 401.121 && >= 37.669)
                    {
                            
    SetPlayerHealth(i0); 
                    }
            }

    Так?

    - - - Добавлено - - -

    Только у меня ошибку выдает я не знаю почему
    (411) : warning 235: public function lacks forward declaration (symbol "isPlayerInArea")
    Нет. Как я уже сказал выше, что streamer добавляет собственные callback-функции. С помощью них вы сможете определить состояние игрока относительно вашей зоны.
    Т.е. вам придётся создать какую-то область, и в ней определять положение игрока, используя функции OnPlayerEnterDynamicArea / OnPlayerLeaveDynamicArea. Хотя в вашем случае понадобится лишь OnPlayerLeaveDynamicArea.

    Области имеются разных типов:
    PHP код:
    native STREAMER_TAG_AREA CreateDynamicCircle(Float:xFloat:yFloat:sizeworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicCylinder(Float:xFloat:yFloat:minzFloat:maxzFloat:sizeworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicSphere(Float:xFloat:yFloat:zFloat:sizeworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicRectangle(Float:minxFloat:minyFloat:maxxFloat:maxyworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicCuboid(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicCube(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1);
    native STREAMER_TAG_AREA CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITYFloat:maxz FLOAT_INFINITYmaxpoints sizeof pointsworldid = -1interiorid = -1playerid = -1); 

  10. Пользователь сказал cпасибо:
    Max_Tolk (04.11.2016)
  11. #10
    Аватар для KrutoyKrosch
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2016
    Сообщений
    301
    Репутация:
    7 ±
    Можно еще через SAMP_Zone_Editor, так удобней

  12. Пользователь сказал cпасибо:
    Max_Tolk (04.11.2016)
 

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

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

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

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

Ваши права

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