Автор Тема: Двигатель авто в Vice City.  (Прочитано 3468 раз)

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичок
  • *****
  • Сообщений: 176
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Двигатель авто в Vice City.
« : Январь 14, 2015, 06:37:36 pm »
Вот возник вопрос: как заставить работать двигатель авто, когда Tommy пассажиром?
I know everything and nothing...

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Двигатель авто в Vice City.
« Ответ #1 : Январь 14, 2015, 09:01:37 pm »
Чтобы двигатель включился, когда томми сел пассажиром?
Попробуй
03A2: set_vehicle $ID action 9
wait 0
03A2: set_vehicle $ID action 0
Если не выйдет - wait по-больше попробуй. Если опять нет - то через память как-нибудь придется
« Последнее редактирование: Январь 14, 2015, 09:03:50 pm от Shaggy »

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичок
  • *****
  • Сообщений: 176
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: Двигатель авто в Vice City.
« Ответ #2 : Январь 15, 2015, 09:40:14 am »
Суть wait здесь в чем?
I know everything and nothing...

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Двигатель авто в Vice City.
« Ответ #3 : Январь 15, 2015, 11:56:43 am »
wait здесь лишь на основе моих знаний игры. Как правило, если выполнять 2 противоречивых действия без wait-а - результата не будет никакого(например, чтобы в катсцене выключить черные рамки, нужно сначала включить, а потом выключить widescreen. Если это сделать без хотя бы нулевого wait-а - черные рамки не выключатся). Т.е., по моим прогнозам, если этот способ хоть немного рабочий - то лишь с wait-ом, а без него с машиной не произойдет абсолютно ничего. Конечно, я могу ошибаться, т.к. это всё теория.

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичок
  • *****
  • Сообщений: 176
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: Двигатель авто в Vice City.
« Ответ #4 : Январь 15, 2015, 02:25:23 pm »
Немного оффтопа. Wait используется для выполнения опкодов, а также для прерывания на заданное кол-во времени. Что это значит: пока игра не встретит wait, все опкоды не будут применены, а также если не будет wait игра встанет на паузу (черный экран). По сути обязательное условие. Исключение составляет конец скрипта. По идее wait надо назвать так: "execute_with_timer". Благодаря wait мы имеем склейку опкодов, т.е. это гарантирует, при отсутствии ошибок, последовательное применение данных опкодов за один раз (конечно за одну и ту же долю секунду это не произодет по понятным причинам). Из этого расчета и строится весь скрипт. Например, мы хотим применить какие-то задачи для актера, при условии что это выполнимо, можно писать, без проверки что актер жив, сколько угодно опкодов для актера. НО в самом начале  необходимо поставить проверку, далее когда наши условия будут удовлетворены, ставим wait, и что происходит, начинается обработка опкодов и применение их. Так устроен движок, а именно, все активные потоки, включая main, проходят по этапно от wait к wait. Движок проверяет, найден wait идем дальше, нету в потоке wait и поток завершился игра встает на паузу, что мы наблюдаем при неграматном скриптинге.

Еще офтоп. Вообще это плохо, что нету встроенной проверки обхода ошибок - предсказуемого поведения при наличии ошибок. Это обеспечило бы скриптеру фору по времени и не пришлось бы перезапускать все, но это не сделано и скорей всего не так просто, поэтому ошибки целиком и полностью перекладываются на руки скириптера.
I know everything and nothing...

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Двигатель авто в Vice City.
« Ответ #5 : Январь 15, 2015, 08:36:48 pm »
Ну, примерно это я и имел в виду

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Двигатель авто в Vice City.
« Ответ #6 : Январь 15, 2015, 10:00:03 pm »
Так что - получилось? Мне просто самому интересно(запишу на будущее), а тестировать нет времени(сейчас готовлю один занятный мод)

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичок
  • *****
  • Сообщений: 176
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Re: Двигатель авто в Vice City.
« Ответ #7 : Январь 15, 2015, 10:15:40 pm »
Нет не проверял, тоже типа занят))).
I know everything and nothing...

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Двигатель авто в Vice City.
« Ответ #8 : Январь 17, 2015, 09:40:04 pm »
Я попробовал переписать этот опкод в виде функции, там вроде все просто, но у меня что-то неадекватное происходит с машиной. Из всех цифр у меня сработало только значение 3, включился какой-то автопилот, при 2 машина поехала под землей, остальные цифры выключают звук, но по-моему вместе со звуками окружающего мира, включают стоп-сигналы, вобщем что-то паранормальное.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Двигатель авто в Vice City.
« Ответ #9 : Январь 17, 2015, 10:05:14 pm »
Игрок не должен быть за рулем(управлять машиной). В идеале - тачка актера:
Actions
0 - Brake without lights
1 - Brake with lights
2 - Brake without lights
3 - Reverse
4 - Turn left wide
5 - Turn right wide
7 - Drive forward and turn left
8 - Drive forward and turn right
9 - Drive forward
10 - Turn left slightly
11 - Turn right slightly
13 - Reverse and turn left
14 - Reverse and turn right
19 - Turn left slightly, flash the rear lights
20 - Turn left slightly, switch rear lights on for 4 seconds
21 - Turn right slightly, switch rear lights for 4 seconds
22 - Drive back
23 - Drive forward very fast
24 - Switch lights on at animation time