есть ли функция которая проверяет если ли в радиусе машина с определённым ид?
есть ли функция которая проверяет если ли в радиусе машина с определённым ид?
Нет, но можно сделать цикл по машинам и проверять через IsPlayerInRangeOfPoint (если проверяется расстояние до игрока) или через VectorSize узнать до неё дистанцию, предварительно узнавая позицию машины и подставляя её в эти функции
Последний раз редактировалось Nexius_Tailer; 16.06.2017 в 01:19.
Не хотите постоянно проверять обновления моих скриптов?
Подключите его последним, после всех остальных
Nexius's Update Checker
А под 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
Сначала хотел написать сам функцию, но потом вдруг вспомнил, что в теме 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
если под себя переделать то получиш что хочеш
Автор: m1n1vvКод: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; }
Разработка • • Ч Е Р Н О Б Ы Л Ь • • Выживание в припяти •
Вернёт 1, если одно авто с указанным ID модели находится в указанном радиусе.PHP код:
stock IsVehicleModelInRadius(vehiclemodel, Float:radius, Float:x, Float:y, Float:z)
{
if(!(400 <= vehiclemodel <= 611))
return 0;
for (new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
{
if(GetVehicleModel(i) != vehiclemodel)
continue;
if(floatcmp(radius, GetVehicleDistanceFromPoint(i, x, y, z) != -1)
return 1;
}
return 0;
}
Работоспособность не проверял
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)