You are not logged in.
Pages: 1
Вставляю код из Руководства по скриптингу в конец оригинального main и прописываю
create_thread @NRG_500
перед последней end_thread. То есть последние строки выглядят так:
:HOTDOGV_716 jump @HOTDOGV_77 create_thread @NRG_500 end_thread
В данном случае мотоцикл не появляется.
Если вставляю создание потока в ряд с остальными (то есть примерно на 950 строке), а сам код прямо перед --Mission 0--, то игра вылетает при загрузке. Что в коде неверно?
:NRG_500 wait 100 thread 'NRG' Model.Load(#NRG500) 038B: load_requested_models :NRG_510 Wait 100 If and Model.Available(#NRG500) jf @NRG_510 30@ = Car.Create(#NRG500, 2034.2462, 994.1775, 10.8203 ) ///////////// Код выгрузки модели :NRG_520 wait 100 if AND Car.Wrecked(30@) jf @NRG_520 Car.Destroy(30@) Car.RemoveReferences(30@) Model.Destroy(#NRG500) end_thread
Last edited by Dan (11-05-2007 13:50)
Offline
В данном случае мотоцикл не появляется.
потому что игра никогда не прийдет на команду create_thread. Перед ней стоит jump, и нет меток. Добавлять потоки нужно не после внешних скриптов, а перед миссиями.
Если вставляю создание потока в ряд с остальными (то есть примерно на 950 строке), а сам код прямо перед --Mission 0--
вот это правильная вставка.
Ты начал новую игру? При загрузке сейвов игра будет вылетать.
Offline
не начал. я знал что после редактирования скриптов приходится начинать заново, но думал только после каких-то существенных модификаций. почему игре такое мелкое изменение не нравится-то?
Offline
Ну, не вдаваясь в детали, скажу - любой новый опкод меняет всю дальнейшую структуру кода, все последующие опкоды смещаются на какое-то количество байт вперед или назад (если, наоборот, существующий опкод удалить). При загрузке сейва игра восстанавливает указатели в потоках на те позиции, которые были при сохранении (обычно это команда wait 0), а т.к. опкоды были смещены, то указатель вполне может указывать, например, на середину опкода, что при парсинге скрипта неминуемо вызовет ошибку игры.
Есть технология, позволяющая добавлять такие потоки как этот, без начала новой игры. Поищи на gtaforums.com или missions.gtamaps.net по слову Darkpact.
Offline
технология есть, но, увы, код не хочет компилироваться ни mission builder'ом (как сказано в ридми), ни sanny builder'ом.
Offline
Offline
вопрос: код из того поста куда вставлять?
та версия, что я качал, являлась декомпилированным мэйном, в нее разве вставлять?
Offline
Я никогда не этим не пользовался. Нужно заменить в mission 0 (в оригинальном декомпилированном майне) тот код, что идет в версии Darkpact под MB на тот, что написан для SB. После этого вставляешь команду create_thread @NRG500 в то место, где это положено, а сам поток перед mission 0.
Offline
Pages: 1