Ни-Ра-Ли-Кен Опубликовано 8 сентября, 2007 Жалоба Поделиться Опубликовано 8 сентября, 2007 (изменено) У меня не работают скрипты, если в них присутствует больше одного блока if-endifНапример: begin portal_container_script if ( getjournalindex "ST_qu_02" < 20 ) ;блок 1 disableelse enableendif if ( hassoulgem "atronach_storm" == 1 ) ;блок 2 set ZA_portal_enable_gl to 1 endif end Убираешь один блок - другой действует. В чём дело? Изменено 8 сентября, 2007 пользователем Vile Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 8 сентября, 2007 Жалоба Поделиться Опубликовано 8 сентября, 2007 в порядке условийв неуточненности условия развесить скрипт на два объекта - первый телепорт, на него второй блок, второй объект активатор, с условием при вхождении игрока в ячейку или например расстояние от игрока, и ему навесить энейбо/дизейбл контейнера далее, если это контейнер, скрипт надо на onActivate поставить переменная ZA_portal_enable_gl глобальная? если нет - она не объявлена в скрипте и озвучь техзадание на скрипт, а то без описания его действия неясно, может все как раз наоборот работает, а логика нарушена Ссылка на комментарий Поделиться на другие сайты Поделиться
Ни-Ра-Ли-Кен Опубликовано 8 сентября, 2007 Автор Жалоба Поделиться Опубликовано 8 сентября, 2007 (изменено) Кладёшь в контейнер камень с душой грозового атронаха - портал появляется. Вынимаешь - исчезает. Глобальная переменная ZA_portal_enable_gl отвечает за то, существует ли портал ( не контейнер, дверь) А контейнер должен появиться после журнальной записи "ST_qu_02" >= 20развесить скрипт на два объектаНе совсем понял, можешь поподробнее объяснить? :1anim_al: Изменено 8 сентября, 2007 пользователем Vile Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 8 сентября, 2007 Жалоба Поделиться Опубликовано 8 сентября, 2007 (изменено) ну вообще-то в скрипте может быть в десять раз больше блоков if endf, чем в привиденном скрипте. Ошибку нужно искать в самом скрипте. у тебя контейнер, энейблится после 20, и дизейблится до 20 каждый фрэйм! short OneTime if ( OneTime == 0 ) disable set OneTime to 1 elseif ( GetJournalIndex, "ST_qu_02" > 20 ) if ( OneTime == 1 ) enable set OneTime to 2 endif endif а функция hassoulgem может применятся на контейнеры? Изменено 8 сентября, 2007 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 8 сентября, 2007 Жалоба Поделиться Опубликовано 8 сентября, 2007 ясненька самый простой способ - без контейнера, портал появляется в момент добавления журнальной записи ST_qu_02" >= 20, в рузульт диалога записать энейбл портала и потом проверять наличие камня при onActivate самого портала, и удалять еслу надо с сундуком, во первых сундук надо задисейблить разово1. в момент добавления квеста в результ диалога ID_сундуа->disable2. илив скрипт сундука вначале пихнутьshort once if ( once == 0 ) if ( GetJournalIndex "ST_qu_02" < 20 ) disable Set once to 1 endif endifсундук разово отключится потом когда квест войдет в стадию 20, там в результ добавить ID_сундуа->enable теперь портал, он будет всегда, но неактивен, впрочем его тоже мона задизейблить до поры до времени так же как и сундук иif ( onActivate == 1) if ( ("ID_сундука" -> GetItemCount, "atronach_storm") > 0 ) //проверка на наличие гема в сундуке Player -> Position, float_enum_x, float_enum_y, float_enum_z, float_enum_zRot или Player -> PositionCell, float_enum_x, float_enum_y, float_enum_z, float_enum_zRot, “cellID” если телепортить в итерьер, а не в мир else return endif endif второй вариант с твоей глобальной переменной, но геморою там большетак как нету функции "при закрытии чего-либо (сундука)" то проверку на наличие в нем гема надо навесить на активатор рядомif ( ("ID_сундука" -> GetItemCount, "atronach_storm") > 0 ) set ZA_portal_enable_gl to 1 else set ZA_portal_enable_gl to 0 endifправда все равно непонятно зачем переменная, может лучше сам портал тогда энаблить/дисейблить как сундук? все проще Ссылка на комментарий Поделиться на другие сайты Поделиться
Ни-Ра-Ли-Кен Опубликовано 9 сентября, 2007 Автор Жалоба Поделиться Опубликовано 9 сентября, 2007 :1anim_ah: :1anim_ah: :1anim_ah: Господа, вы уж меня простите, но я аццки тупанул: в скрипте я указал if ( hassoulgem "atronach_storm" == 1 ), а когда тестировал плагин, поймал душу призванного атронаха, а у него ИД другой. :1anim_be: А вообще скрипт работает. :bk: Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 9 сентября, 2007 Жалоба Поделиться Опубликовано 9 сентября, 2007 Господа, вы уж меня простите, но я аццки тупанул: в скрипте я указал if ( hassoulgem "atronach_storm" == 1 ), а когда тестировал плагин, поймал душу призванного атронаха, а у него ИД другой. :1anim_be: А вообще скрипт работает. Чтож, хорошо, но enable и disable лучше выпонять один раз... =) Ссылка на комментарий Поделиться на другие сайты Поделиться
UraXa Опубликовано 6 октября, 2007 Жалоба Поделиться Опубликовано 6 октября, 2007 (изменено) и ещё.. добавь рабочесть с другими ID астронархов(тоже грозовых) Изменено 6 октября, 2007 пользователем UraXa Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти