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

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±

    определение позиции объекта

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



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




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

    Статус
    Оффлайн
    Регистрация
    29.09.2014
    Сообщений
    61
    Репутация:
    44 ±
    PHP код:
    stock ObjectOnPoint(Float:robjectidFloat:xFloat:yFloat: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 - проверяемая точка

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

    PHP код:
    if(ObjectOnPoint(10.02221024.02000.015.0)) print("Объект находится в проверяемой области");
    else print(
    "Объект не находится в проверяемой области"); 

  3. Пользователь сказал cпасибо:
    Profyan (30.04.2015)
  4. #3
    Аватар для Profyan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±
    Цитата Сообщение от NewGreen Посмотреть сообщение
    PHP код:
    stock ObjectOnPoint(Float:robjectidFloat:xFloat:yFloat: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 - проверяемая точка

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

    PHP код:
    if(ObjectOnPoint(10.02221024.02000.015.0)) print("Объект находится в проверяемой области");
    else print(
    "Объект не находится в проверяемой области"); 
    Спасибо тебе



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




 

 

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

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

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

Ваши права

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