Перейти к содержанию

Несколько блоков if-endif


Рекомендуемые сообщения

У меня не работают скрипты, если в них присутствует больше одного блока if-endif

Например:

 

begin portal_container_script

 

if ( getjournalindex "ST_qu_02" < 20 ) ;блок 1

disable

else

enable

endif

 

if ( hassoulgem "atronach_storm" == 1 ) ;блок 2

set ZA_portal_enable_gl to 1

endif

 

end

 

Убираешь один блок - другой действует. В чём дело?

Изменено пользователем Vile
Ссылка на комментарий
Поделиться на другие сайты

в порядке условий

в неуточненности условия

 

развесить скрипт на два объекта - первый телепорт, на него второй блок, второй объект активатор, с условием при вхождении игрока в ячейку или например расстояние от игрока, и ему навесить энейбо/дизейбл контейнера

 

далее, если это контейнер, скрипт надо на onActivate поставить

 

переменная ZA_portal_enable_gl глобальная? если нет - она не объявлена в скрипте

 

и озвучь техзадание на скрипт, а то без описания его действия неясно, может все как раз наоборот работает, а логика нарушена

Ссылка на комментарий
Поделиться на другие сайты

Кладёшь в контейнер камень с душой грозового атронаха - портал появляется. Вынимаешь - исчезает. Глобальная переменная ZA_portal_enable_gl отвечает за то, существует ли портал ( не контейнер, дверь) А контейнер должен появиться после журнальной записи "ST_qu_02" >= 20

развесить скрипт на два объекта

Не совсем понял, можешь поподробнее объяснить? :1anim_al:

Изменено пользователем Vile
Ссылка на комментарий
Поделиться на другие сайты

ну вообще-то в скрипте может быть в десять раз больше блоков 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 может применятся на контейнеры?

Изменено пользователем TJ
Ссылка на комментарий
Поделиться на другие сайты

ясненька

 

самый простой способ - без контейнера, портал появляется в момент добавления журнальной записи ST_qu_02" >= 20, в рузульт диалога записать энейбл портала и потом проверять наличие камня при onActivate самого портала, и удалять еслу надо

 

с сундуком, во первых сундук надо задисейблить разово

1. в момент добавления квеста в результ диалога ID_сундуа->disable

2. или

в скрипт сундука вначале пихнуть

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

правда все равно непонятно зачем переменная, может лучше сам портал тогда энаблить/дисейблить как сундук? все проще

Ссылка на комментарий
Поделиться на другие сайты

:1anim_ah: :1anim_ah: :1anim_ah:

 

Господа, вы уж меня простите, но я аццки тупанул: в скрипте я указал if ( hassoulgem "atronach_storm" == 1 ), а когда тестировал плагин, поймал душу призванного атронаха, а у него ИД другой. :1anim_be:

А вообще скрипт работает. :bk:

Ссылка на комментарий
Поделиться на другие сайты

Господа, вы уж меня простите, но я аццки тупанул: в скрипте я указал if ( hassoulgem "atronach_storm" == 1 ), а когда тестировал плагин, поймал душу призванного атронаха, а у него ИД другой. :1anim_be:

А вообще скрипт работает.

 

Чтож, хорошо, но enable и disable лучше выпонять один раз... =)

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...