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

    Статус
    Оффлайн
    Регистрация
    23.02.2018
    Сообщений
    7
    Репутация:
    0 ±

    Автомобили

    Здравствуйте подскажите пожалуйста уже всю голову сломал.Вообщем такая ситуация делаю прикрепление трейлера к авто.Если авто занято и переменная равна true то тогда идет пропуск. Если же свободно идет прилепление. Возникает проблема что если два авто рядом и одно занято а 2 свободно , и ты находишься за занятым то прикрепляет рядом стоящее которое не занято путем телепорта сзади моего авто. меняю дистанцию помогает но если авто стоит слишком близко к другому авто они все ровно попадаю в радиус. Подскажите как исправить

    код:

    PHP код:
                                    if(gVehicleMove[i] == true) continue;
                            new 
    Float:angle,Float:distance,Float:x,Float:y,Float:z;
                            
    GetVehicleModelInfo(GetVehicleModel(i), 1xdistancez);
                            
    distance distance/0.1;
                            
    GetVehiclePos(ixyz);
                            
    GetVehicleZAngle(iangle);
                            
    -= (distance floatsin(-angle+180degrees));
                            
    -= (distance floatcos(-angle+180degrees));
                            new 
    Float:Distance GetPlayerDistanceFromPoint(playeridx,y,z);
                            
                            if(
    Distance <= 3.2 && != && GetVehicleModel(i) == 420 && GetPVarInt(playerid"trailerid") != i)
                            {
                                
                                
    SendClientMessage(playerid,-1,"Вы присоединили авто.");
                                
    AttachTrailerToVehicle(im);
                                
    gVehicleMove[i] = true;
                
                                
    SetPVarInt(playerid"trailerid",i);
                                break;
                                
                            }
                        } 
    p.s Или подскажите как реализовать проверку что авто находиться сзади буксировщика на минимальном расстоянии
    Последний раз редактировалось region127; 27.02.2018 в 18:05.

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

    Статус
    Оффлайн
    Регистрация
    18.01.2018
    Сообщений
    128
    Репутация:
    15 ±
    За место Distance попробуй использовать
    PHP код:
    IsPlayerInRangeOfPoint(playeridFloat:rangeFloat:xFloat:yFloat:z
    поиграйся с радиусом и найдешь ту золотую середину, которую тебе нужно

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

    Статус
    Оффлайн
    Регистрация
    23.02.2018
    Сообщений
    7
    Репутация:
    0 ±
    К сожалению не оцень подходит т.к если авто стоят в одной линии в радиус попадают те что слева и справа

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так а если учитывать, находится ли автомобиль именно позади того транспортного средства, за которым сидит игрок?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    23.02.2018
    Сообщений
    7
    Репутация:
    0 ±
    Подскажи пожалуйста реализацию?)Сейчас сделано дистанция до капота авто.

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

    Статус
    Оффлайн
    Регистрация
    18.01.2018
    Сообщений
    128
    Репутация:
    15 ±
    Можно использовать функцию GetPlayerCameraTargetVehicle, она возвращает ид машины на которую смотрит игрок.

    Узнаете ИД машины на которую смотрит игрок
    Узнаете координаты этой машины
    Проверяете позицию игрока

  7. #7
    Аватар для region127
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.02.2018
    Сообщений
    7
    Репутация:
    0 ±
    Не очень удобно, не всегда срабатывает т.к игрок не всегда посмотрит на авто

  8. #8
    Аватар для pawnoholic
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.01.2018
    Сообщений
    128
    Репутация:
    15 ±
    Что вы вообще хотите сделать?
    Не совсем понял...

  9. #9
    Аватар для region127
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.02.2018
    Сообщений
    7
    Репутация:
    0 ±
    Подцепить авто буксиром(id - 525) если есть оно занято то не подцепляется. проблема в радиусе или дистанции. в радиус и попадает рядом стоящий свободный автомобиль и он телепортируется на занятый(а занятый находиться сзади буксира в котором вы и сидите))

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от region127 Посмотреть сообщение
    Подскажи пожалуйста реализацию?)Сейчас сделано дистанция до капота авто.
    Тут тригонометрия нужна, с которой я не сильно уже дружу.
    Можно сделать максимально просто, но менее надёжно: взять функцию определения позиции багажника (в интернете можешь найти самописанные) и уже искать ближайшее к этой точке авто, устанавливая радиус проверки буквально в 1 метр от получившихся координат. Останется лишь подогнать расстояние от центра автомобиля (там это в формуле указано и легко меняется), если вдруг будет определять координаты слишком близко к тягачу
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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