Pretorius Опубликовано 29 июня, 2010 Жалоба Поделиться Опубликовано 29 июня, 2010 Впервые раз встретился с такой проблемой: приведенный ниже стартовый скрипт вроде бы работает, однако есть проблема: по его выполнении, он должен отключиться и запустить другой скрипт; это исполняется, но почему-то при попытке сохранить игру, эти данные не записываются в сэйве (при открытии сохраненной игры OegnitrScript действует, причем его переменные снова равны нулям, как если бы он и не исполнялся; а DarkIntroScript наоборот не исполняется - смотрел через sv в консоли). В чем же может быть причина этой ошибки - в самом скрипте или в чем-то еще? begin OegnitrScript short buttonshort controlvarshort darkInfoshort darkMessageshort doOnceshort permitOnce if ( doOnce == 1 ) if ( ScriptRunning, OegnitrScript == 1 ) set doOnce to 0 StartScript, DarkIntroScript StopScript, OegnitrScript endifendif if ( GetJournalIndex "A1_1_FindSpyMaster" > 0 ) if ( permitOnce != 1 ) set permitOnce to 1 endifendif if ( darkMessage == 1 ) if ( GetPCSleep == 0 ) set darkInfo to 1 set darkMessage to 0 endifendif if ( darkInfo == 1 ) if ( controlvar == 0 ) MessageBox "Вы стремительно летите на северо-восток Вварденфелла, словно увлеченные таинственной силой!! На окраине Шигорада, среди многочисленных скал, Ваш полет замедляется, и Вы замечаете странную статую, словно исходящую из скалы... Внезапно, глаза статуи вспыхивают золотым светом - и Вы поражаетесь коснувшейся Вас силы, решая во что бы то ни стало обрести ее!!", "Проснуться" set darkInfo to 0 set controlvar to 1 endif endifendif if ( controlvar == 1 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) set controlvar to 2 endifelseif ( controlvar == 2 ) if ( doOnce == 0 ) journal 1_1_1_3_b 5 set controlvar to 0 set doOnce to 1 endifendif if ( permitOnce == 1 ) if ( GetPCSleep == 1 ) if ( darkMessage == 0 ) set darkMessage to 1 endif endifendif end OegnitrScript Ссылка на комментарий Поделиться на другие сайты Поделиться
Kane Опубликовано 29 июня, 2010 Жалоба Поделиться Опубликовано 29 июня, 2010 (изменено) очевидно же. У всех твоих переменных стоит 1. Изначально все переменные имеют значение 0.т.е например эта часть не сработает не при каких условияхif ( doOnce == 1 ) if ( ScriptRunning, OegnitrScript == 1 ) set doOnce to 0 StartScript, DarkIntroScript StopScript, OegnitrScript endif endif Изменено 29 июня, 2010 пользователем Kane Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 30 июня, 2010 Жалоба Поделиться Опубликовано 30 июня, 2010 (изменено) Kane,нет, там нет ошибки, просто разные блоки вразных местах Pretoriusесли скрипт стартовый, то есть помещен в StartScripts, он инициализируется при каждом запуске игры. Не исключено, что после остановки-перезапуска все переменные объявляются сначала, а следовтально равны 0. Попробуй запустить свой первый скрипт не через меню стартовых скриптов а в игре в ходе сюжета: в диалоге, с объекта, рядом с которым находиться игрок и т.п. либо если уж никак, то ставь проверку на индекс журнала, как условие для работы всех блоков скрипта: if ( GetJoutnalIndex, "1_1_1_3_b" < 5 ) ;все блоки скрипта endifВ этом случае будет уже не важно что там обнуляется, а что нет =) Изменено 30 июня, 2010 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Kane Опубликовано 30 июня, 2010 Жалоба Поделиться Опубликовано 30 июня, 2010 нет, там нет ошибки, просто разные блоки вразных местахВ таком случае, это тоже может вызывать ошибку. Неупорядоченные блоки иногда не срабатывают в Морре. Ссылка на комментарий Поделиться на другие сайты Поделиться
Клоунский Раб Отаку Опубликовано 1 июля, 2010 Жалоба Поделиться Опубликовано 1 июля, 2010 (изменено) особенно не стал копаться в коде,но т.к. скриптовый язык морровинда оч похож(ИМХО) на C#,то надо сначало установить какое либо значение переменной,прежде чем его использовать,т.к. поидее морра читает скрипт сверху вниз. Изменено 1 июля, 2010 пользователем acercomp Ссылка на комментарий Поделиться на другие сайты Поделиться
Kane Опубликовано 1 июля, 2010 Жалоба Поделиться Опубликовано 1 июля, 2010 морра читает скрипт сверху внизТак и есть, кстати. Со скриптами Облы с этим проще. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти