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

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±

    Как найти квадрат из позиции игрока.

    Нужно сделать создание гангзоны из того места, где стоит игрок.
    Нужна функция типа GetPlayerKvadrat.

    Код:
    CMD:zone(playerid, params[])
    {
        new Float: bzX;
        new Float: bzY;
        new Float: bzZ;
        GetPlayerPos(playerid, bzX, bzY, bzZ);
    	myzone[playerid] = GangZoneCreate(?, ?, ?, ?);
    	return 1;
    }

  2. #2
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Вроде разобрался.

    PHP код:
    CMD:bzon(playerid)
    {
        new 
    Float:bzX,Float:bzY,Float:bzZ;
        
    GetPlayerPos(playeridbzXbzYbzZ);
        
    battlezone[playerid] = CreateDynamicRectangle(bzX-100.0bzY-100.0bzX+100.0bzY+100.000, -1);
        
    myzone[playerid] = GangZoneCreate(bzX-100.0bzY-100.0bzX+100.0bzY+100.0);
        
    GangZoneShowForAll(myzone[playerid],COLOR_RED);
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Спасибо, что поделились решением.

  5. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Jackal Посмотреть сообщение
    Вроде разобрался.

    PHP код:
    CMD:bzon(playerid)
    {
        new 
    Float:bzX,Float:bzY,Float:bzZ;
        
    GetPlayerPos(playeridbzXbzYbzZ);
        
    battlezone[playerid] = CreateDynamicRectangle(bzX-100.0bzY-100.0bzX+100.0bzY+100.000, -1);
        
    myzone[playerid] = GangZoneCreate(bzX-100.0bzY-100.0bzX+100.0bzY+100.0);
        
    GangZoneShowForAll(myzone[playerid],COLOR_RED);
        return 
    1;

    Выглядит более-менее правильно, но в чём смысл создавать динамический регион (CreateDynamicRectangle)?
    Вы его вообще как-нибудь используете? И удаляете ли вы регион при выходе игрока с сервера? (я так понимаю, именно при выходе игрока нужно убирать регион, раз индексация сделана по ID игрока, иначе каждый игрок сможет бесконтрольно создавать регионы, пока сервер не зависнет)
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Да, использую регион в случае входа или выхода игрока из него вывожу ему SCM. Насчет удаления при дисконнекте, возможно не обратил бы на это должное внимание, благодарю.

  8. #6
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Jackal Посмотреть сообщение
    Да, использую регион в случае входа или выхода игрока из него вывожу ему SCM. Насчет удаления при дисконнекте, возможно не обратил бы на это должное внимание, благодарю.
    Чуть не забыл, во время повторного использовани команды регион тоже нужно удалять (либо вообще запретить повторное использование). Иначе ID старого региона будет перезаписан ID нового региона, а старый так и потеряется, а заодно ещё и появится возможность флудом командой насоздавать кучу регионов и повесить сервер.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #7
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Чуть не забыл, во время повторного использовани команды регион тоже нужно удалять (либо вообще запретить повторное использование). Иначе ID старого региона будет перезаписан ID нового региона, а старый так и потеряется, а заодно ещё и появится возможность флудом командой насоздавать кучу регионов и повесить сервер.
    Да, спасибо ещё раз, замечал то же самое с таймерами, после освобождения из КПЗ, игрока несколько раз "освобождало" т.к. таймер выставлялся несколько раз после смерти в КПЗ. Сделал удаление и сразу повторное выставление цикличного посекундного таймера, а потом и вовсе переделал под не цикличный.

    С созданием региона есть переменная на проверку - создан регион уже или нет. Пока не закончится время в таймере, нельзя создать регион повторно. Также по истечении времени регион удаляю.
    Последний раз редактировалось Jackal; 09.10.2015 в 20:15.

 

 

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

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

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

Ваши права

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