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

    Статус
    Оффлайн
    Регистрация
    01.01.2016
    Адрес
    minsk
    Сообщений
    40
    Репутация:
    2 ±

    Нужна функция проверки нахождения авто указанной модели в указанном радиусе

    есть ли функция которая проверяет если ли в радиусе машина с определённым ид?

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Нет, но можно сделать цикл по машинам и проверять через IsPlayerInRangeOfPoint (если проверяется расстояние до игрока) или через VectorSize узнать до неё дистанцию, предварительно узнавая позицию машины и подставляя её в эти функции
    Последний раз редактировалось Nexius_Tailer; 16.06.2017 в 01:19.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А под ID, что имеется ввиду? ID созданной машины или ID модели машины?
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    01.01.2016
    Адрес
    minsk
    Сообщений
    40
    Репутация:
    2 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    А под ID, что имеется ввиду? ID созданной машины или ID модели машины?
    ид модели машины

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Сначала хотел написать сам функцию, но потом вдруг вспомнил, что в теме vehicle foreach (итераторы автомобилей) выложена нужная Вам функция. Если, конечно не используете foreach, могу написать без него.

    P.S: это не точная функция, которая Вам нужна. Она возвращает ид машины, которая находится в заданной дистанции, а вам надо конкретную.
    Последний раз редактировалось $continue$; 16.06.2017 в 01:43.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    01.01.2016
    Адрес
    minsk
    Сообщений
    40
    Репутация:
    2 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Сначала хотел написать сам функцию, но потом вдруг вспомнил, что в теме vehicle foreach (итераторы автомобилей) выложена нужная Вам функция. Если, конечно не используете foreach, могу написать без него.

    P.S: это не точная функция, которая Вам нужна. Она возвращает ид машины, которая находится в заданной дистанции, а вам надо конкретную.
    Пишите

  7. #7
    Аватар для Витёк
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.09.2015
    Сообщений
    215
    Репутация:
    1 ±
    если под себя переделать то получиш что хочеш
    Код:
    CMD:getveh(playerid, params[])
    {
        extract params -> new Float:radius; else
            return SendClientMessage(playerid, 0xFF4530FF, !"[Подсказка]: /getveh [Радиус]");
    
        static const
            str_y[] = "В радиусе %.0f м. обнаружено %i тс...",
            str_n[] = "В радиусе %.0f м. транспортных средств не обнаружено";
    
        new
            Float:x,
            Float:y,
            Float:z,
    
            rand = random(2),
            numberofauto,
    
            string[sizeof str_n];
    
        if (radius > 1000.0)
            return SendClientMessage(playerid, 0xFF4530FF, !"Максимальное расстояние 1000 метров");
    
        if (!rand)
            return SendClientMessage(playerid, 0xFF4530FF, !"Сбой в системе!");
        
        for (new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
        {
            GetVehiclePos(i, x, y, z);
            RemovePlayerMapIcon(playerid, i);
    
            if (GetPlayerDistanceFromPoint(playerid, x, y, z) <= radius)
            {
                numberofauto ++;
                SetPlayerMapIcon(playerid, i, x, y, z, 55, 0, MAPICON_LOCAL);
            }
        }
    
        if (numberofauto)
        {
            SendClientMessage(playerid, 0x99dd32AA, !"[Данные получены]...");
            format(string, sizeof(string), str_y, radius, numberofauto);
            SendClientMessage(playerid, 0xc8d8e3AA, string);
            SendClientMessage(playerid, 0x48aacbAA, !"[Радар]: Транспорт обозначен");
        }
        else
        {
            SendClientMessage(playerid, 0x99dd32AA, !"[Данные получены]...");
            format(string, sizeof(string), str_n, radius);
            SendClientMessage(playerid, 0xc8d8e3AA, string);
        }
    
        return 1;
    }
    Автор: m1n1vv
    Разработка •  • Ч Е Р Н О Б Ы Л Ь •  • Выживание в припяти •

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    stock IsVehicleModelInRadius(vehiclemodelFloat:radiusFloat:xFloat:yFloat:z)
    {
        if(!(
    400 <= vehiclemodel <= 611))
            return 
    0;
        for (new 
    1GetVehiclePoolSize(); <= ji++)
        {
            if(
    GetVehicleModel(i) != vehiclemodel)
                continue;
            if(
    floatcmp(radiusGetVehicleDistanceFromPoint(ixyz) != -1)
                return 
    1;
        }
        return 
    0;

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

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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