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

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

    Время до прибытия

    Здравствуйте, я например создал объект -

    parus[0] = createobject(...), вывел потом через moveobject(parus.., в итоге он у меня переехал на заданные координаты, все успешно.
    Как узнать время в минутах, за какое время он доехал?

    Знаю, можно использовать это

    Код:
    new movetime = MoveObject(obj, 0.0, 0.0, 10.0, 2.00);
            format(string, sizeof(string), "* Объект передвинулся за %d миллисекунд.", movetime);
            SendClientMessage(playerid, 0xFF000000, string);
    Но если не ошибаюсь, только parus[0] можно узнать только в одну сторону, как узнать через сколько parus[0] доедет обратно? по функции movetime выше.

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

    Статус
    Оффлайн
    Регистрация
    06.10.2015
    Сообщений
    83
    Репутация:
    0 ±
    Цитата Сообщение от Killer Посмотреть сообщение
    Здравствуйте, я например создал объект -

    parus[0] = createobject(...), вывел потом через moveobject(parus.., в итоге он у меня переехал на заданные координаты, все успешно.
    Как узнать время в минутах, за какое время он доехал?

    Знаю, можно использовать это

    Код:
    new movetime = MoveObject(obj, 0.0, 0.0, 10.0, 2.00);
            format(string, sizeof(string), "* Объект передвинулся за %d миллисекунд.", movetime);
            SendClientMessage(playerid, 0xFF000000, string);
    Но если не ошибаюсь, только parus[0] можно узнать только в одну сторону, как узнать через сколько parus[0] доедет обратно? по функции movetime выше.
    Максимум можно устанавливать скорость движения обьекту.
    Но из уроков алгебры, расчет времени исходит из формулы
    Время=Скорость/Расстояние.
    А обратно он будет двигаться с той же скоростью, с которой двигался и раньше.

  3. #3
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    MoveObject вроде возвращает все время движения объекта в милисекундах

  4. #4
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Такая проблема у меня, есть код:

    Код:
    public OnDynamicObjectMoved(objectid)
    {
       if(objectid == korablport[0] && Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"test");
          TOTALCIS -= 200;
          SetTimer("@ex_tanker",300000,true);
          Waytype = 0;
       }
       else if(objectid == korablport[0] && !Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"ïðèåõàë.");
          start_tanker = 5, stop_tanker = 0, tanker_adstart = 1, tanker_advent = 0,
    	  Waytype = 1;
       }
       return true;
    }
    Почему-то баг случается, иногда эти текста при конечной остановке пишутся вместе. Что такое?

  5. #5
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Цитата Сообщение от Killer Посмотреть сообщение
    Такая проблема у меня, есть код:

    Код:
    public OnDynamicObjectMoved(objectid)
    {
       if(objectid == korablport[0] && Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"test");
          TOTALCIS -= 200;
          SetTimer("@ex_tanker",300000,true);
          Waytype = 0;
       }
       else if(objectid == korablport[0] && !Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"ïðèåõàë.");
          start_tanker = 5, stop_tanker = 0, tanker_adstart = 1, tanker_advent = 0,
    	  Waytype = 1;
       }
       return true;
    }
    Почему-то баг случается, иногда эти текста при конечной остановке пишутся вместе. Что такое?
    а ты после выполнения условия поставь return 1 в каждом блоке кода

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    А то что в условии присутствует else , что само по себе исключает возможность единоразово вызывать оба учатска кода.
    Скорее всего OnDynamicObjectMoved срабатывает дважды.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

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

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Я пытался вывести через print.
    Принцип работы: объект выехал в точку назначения, ему написал текст. Когда уже прибыл назад, то естественно тоже пишется текст.

    Итог, как вывелось через print.

    Код:
    [16:48:40]  ex2
    [16:55:06]  ex
    [16:58:55]  ex2
    [17:01:02]  ex
    Но в каком-то месте, положение объекта меняется, и он уже едет обратно (через ex)

    Код

    Код:
    public OnDynamicObjectMoved(objectid)
    {
       if(objectid == korablport[0] && ! Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"test");
          TOTALCIS -= 200;
          SetTimer("@ex_tanker",300000,true);
          Waytype = 1;
          printf ( " ex2" ) ;
          return true;
       }
       if(objectid == korablport[0] && Waytype)
       {
          SendClientMessageToAll(0xf6CF04Bff,"ïðèåõàë.");
          start_tanker = 5, stop_tanker = 0, tanker_adstart = 1, tanker_advent = 0,
    	  Waytype = 0;
    	  printf( " ex" );
    	  return true;
       }
       return true;
    }
    Я уже не знаю что мне делать.

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Исправил, это уже мой косяк. Таймер на повторе был..

 

 

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

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

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

Ваши права

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