Эта функция возвращает INVALID_VEHICLE_ID, если в транспорте нет водителя
Вид для печати
Эта функция возвращает INVALID_VEHICLE_ID, если в транспорте нет водителя
Всем привет х2. Имеются 4 точки и их координаты (высоту пока не беру в расчёт) образующие прямоугольник. Как узнать стоит ли игрок в этом прямоугольнике?
Если проверка нужна на постоянной основе (та же GreenZone, где нельзя драться), то подойдёт вариант, что предоставили выше.
А вообще вычислить можно по формуле:
Где:PHP код:
(p_x <= max_x && p_x >= min_x) && (p_y <= max_y && p_y >= min_y)
p_x - Позиция игрока относительно X координаты
p_y - Позиция игрока относительно Y координаты
Ну а "max_x/min_x" и прочее и так понятно. Можно сделать как-то так:
Собственно, если игрок внутри квадрата - вернёт 1. Иначе 0PHP код:
stock IsPlayerInRectangle(playerid, Float:min_x, Float:min_y, Float:max_x, Float:max_y)
{
new Float: p_x,
Float: p_y,
Float: p_z;
GetPlayerPos(playerid, p_x, p_y, p_z);
return (p_x <= max_x && p_x >= min_x) && (p_y <= max_y && p_y >= min_y);
}
Как я понял, это для красивого, аккуратного квадрата? А если прямоугольник повёрнут и т.д.? Зоны не вариант ибо для машин запиливаю, их края и есть прямоугольник (хотя можно подумать про AttachDynamicAreaToVehicle).
Добавлено: А не.. Там вообще всё плохо..
Код:*** Streamer Plugin: AttachDynamicAreaToVehicle: Only circles and spheres may be attached to vehicles
Допустим есть отрезок чисел 0..100
1) Нужно загадать число в этом отрезке
2) Нужно найти минимальное и максимальное число для проверки на интервал в этом же отрезке
Как грамотно такой рандом можно оформить? Подскажет кто?):popcorn:
Скорее всего имеется ввиду что-то вроде этого:
PHP код:
new array[] = {44, 51, 22, 53};
printf("random: %d", GetArrayRandom(array));
printf(" min: %d", GetArrayMin(array));
printf(" max: %d", GetArrayMax(array));
PHP код:
stock GetArrayRandom(array[], const size = sizeof(array))
{
return array[ random(size) ];
}
stock GetArrayMax(array[], const size = sizeof(array))
{
new
max = array[0],
i = 1;
while (i < size) {
if (max < array[i]) {
max = array[i];
}
i++;
}
return max;
}
stock GetArrayMin(array[], const size = sizeof(array))
{
new
min = array[0],
i = 1;
while (i < size) {
if (min > array[i]) {
min = array[i];
}
i++;
}
return min;
}
UPD: только сейчас понял это не то что мне нужно,
ziggi, мне надо чтобы минимальное и максимальное число находили рандомы,
а находили так чтобы первое число было минимальным, а второе максимальным,
а третье число для проверки попало ли оно в этот отрезок =)
То есть что то вроде
Минимальное число из рандома
Максимальное число из рандома
Простое любое число находящееся на отрезке
Допустим запустил функцию она сгенерировала 2 числа мин, макс, далее генерирует любое число от 0-100
В итоге такую проверку хочу:
PHP код:
//Отрезок 0..100
//Пусть randmin будет определено из отрезка как 12
//Пусть randmax будет определено из отрезка как 35
//Пусть randnumber будет определено из отрезка как 30
switch(randnumber)
{
case randmin..randmax: //Ура рандомное число попало в рандом =)
}
//Пусть randmin будет определено из отрезка как 52
//Пусть randmax будет определено из отрезка как 66
//Пусть randnumber будет определено из отрезка как 77
switch(randnumber)
{
case randmin..randmax: //Увы рандомное число НЕ попало в рандом =(
}
//P.S. Длину между минимальным и максимальным рандомом тоже хотелось бы видеть в настройках