PDA

Просмотр полной версии : [Вопрос] определение позиции объекта



Profyan
30.04.2015, 20:12
Здравствуйте.Столкнулся с такой проблемой: когда перемещаю объект, то мне нужно знать находится ли он в определенной области или нет. DynamicAreas реагируют только на игрока.Остался один вариант: ежесекундно сравнивать координаты.Вот только проблема,( в тригонометрии почти не шарю), у нас могут быть значения X и Y как положительными так и отрицательными.Поэтому сравнить не знаю как. Подскажите пожалуйста.

NewGreen
30.04.2015, 20:43
stock ObjectOnPoint(Float:r, objectid, Float:x, Float:y, Float:z)
{
new Float:tx,Float:ty,Float:tz;
GetObjectPos(objectid,tx,ty,tz);
tx = (tx-x);
ty = (ty-y);
tz = (tz-z);
if(((tx <= r) && (tx >= -r)) && ((ty <= r) && (ty >= -r)) && ((tz <= r) && (tz >= -r)))
{
return true;
}
return false;
}

r - радиус проверки
objectid - id объекта
x, y, z - проверяемая точка

Не проверял на работоспособность, но должно работать, пример работы:



if(ObjectOnPoint(10.0, 222, 1024.0, 2000.0, 15.0)) print("Объект находится в проверяемой области");
else print("Объект не находится в проверяемой области");

Profyan
30.04.2015, 20:49
stock ObjectOnPoint(Float:r, objectid, Float:x, Float:y, Float:z)
{
new Float:tx,Float:ty,Float:tz;
GetObjectPos(objectid,tx,ty,tz);
tx = (tx-x);
ty = (ty-y);
tz = (tz-z);
if(((tx <= r) && (tx >= -r)) && ((ty <= r) && (ty >= -r)) && ((tz <= r) && (tz >= -r)))
{
return true;
}
return false;
}

r - радиус проверки
objectid - id объекта
x, y, z - проверяемая точка

Не проверял на работоспособность, но должно работать, пример работы:



if(ObjectOnPoint(10.0, 222, 1024.0, 2000.0, 15.0)) print("Объект находится в проверяемой области");
else print("Объект не находится в проверяемой области");


Спасибо тебе