В теме 1 сообщение

Название районов пишется под радаром в нижнем левом углу в виде TextDraw`a. Если место зоны неизвестно - пишет "Неизвестно". Каким макаром вписывать координаты, объясню в конце урока.

Спойлер

 

Ко всем глобальным переменным (new):

new Text:TDZona[MAX_PLAYERS];
 
enum ZoneInfo
{
    Float:zMin_x,
    Float:zMin_y,
    Float:zMax_x,
    Float:zMax_y,
    zName[30]
};
new ZoneName[][ZoneInfo] = {
    {1722.9976, 2243.8809, 1800.4734, 2314.0176, "Автобаза"},//Оставил просто для примера
    {1906.2468, 2219.3777, 1944.9504, 2253.3904, "Автошкола"}//Оставил просто для примера
};

В OnPlayerConnect:

TDZona[playerid] = TextDrawCreate(10.000000, 427.000000, "-");
TextDrawBackgroundColor(TDZona[playerid], 1182971135);
TextDrawFont(TDZona[playerid], 1);
TextDrawLetterSize(TDZona[playerid], 0.500000, 1.600000);
TextDrawColor(TDZona[playerid], -520093697);
TextDrawSetOutline(TDZona[playerid], 1);
TextDrawSetProportional(TDZona[playerid], 1);

В OnPlayerDisconnect:
 

TextDrawDestroy(TDZona[playerid]);

В Паблик OnPlayerSpawn:

TextDrawShowForPlayer(playerid, TDZona[playerid]);

В секундный таймер (В КРАЙНЕМ СЛУЧАЕ в OnPlayerUpdate):

UpdateZonaPlayer(playerid);

В конец мода:

forward UpdateZonaPlayer(playerid);
public UpdateZonaPlayer(playerid)
{
    new Float:coord[3];
    GetPlayerPos(playerid, coord[0], coord[1], coord[2]);
    for(new z = 0; z != sizeof(ZoneName); z ++)
    {
        if((coord[0] <= ZoneName[z][zMax_x] && coord[0] >= ZoneName[z][zMin_x]) && (coord[1] <= ZoneName[z][zMax_y] && coord[1] >= ZoneName[z][zMin_y]))
         {
            TextDrawSetString(TDZona[playerid], ZoneName[z][zName]);
            break;
        }
        else
        {
            TextDrawSetString(TDZona[playerid], "Неизвестно");
        }
    }
    return 1;
}
Спойлер

Координаты нужно снимать в виде квадрата. Для этого нужно снять в левом верхнем углу, это будет min_x, min_y и в правом нижнем углу, это будет max_x, max_y. Аналогично как и с функцией PlayerToKvadrat. Координаты вписывайте внимательно, смотрите какая X и Y меньше или больше. В массиве ZoneName идет с минимальной к максимальной. Т.е сначало две минимальные координаты, а потом две максимальные.

Картинку вам на всякий случай:

Screenshot_29.png

Автор: Amfy.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • HostX_
      От HostX_
      Доброго времени суток!
       
      Ищу маппера для SA-MP проекта в стилистике выживания и постапокалипсиса. Важно уметь создавать атмосферные и аутентичные локации.
       
      Возможно как разовое, так и долгосрочное сотрудничество. Писать только с примерами своих работ.
       
      Discord: hostmoney
      Почта:  host@obscur.tech
    • Vova_Zenko
      От Vova_Zenko
      Подскажите пожалуйста. 
      В моде авто для фракции не через мод вписаны, а покупаются в автосалоне и хранятся в базе данных MySQL. 
      В полиции есть эвакуатор, но с цветографикой гражданского. Хочу добавить две цветографики. towtruck.txd(гражданский) и towtruck1.txd(ДПС). 
      В базе данных есть строка cPaintJob, там тоже менял значение, результата 0.
      Как сделать, чтобы допустим администратор смог поменять цветографику?