LofZ Опубликовано 29 сентября, 2006 Жалоба Поделиться Опубликовано 29 сентября, 2006 Книга некая ( или существо/непись/любой предмет) внезапно появляется после определенного события, которое зафиксировано в дневнике. Это полезно:- чтобы создавать эффект внезапности и новизны: «вдруг из столицы приезжает старый дядюшка Нереварина». - если не хотите, чтобы игрок преждевременно нашел данный предмет или убил нужного непися. Итак: 1.Создайте нужный предмет или персонаж с уникальным ИД и разместите его в мире игры. 2. При необходимости создайте новую запись журнала, после которой должен появиться предмет. 3. Повесьте на него следующий скрипт. Смысл скрипта в том, чтобы делать объект, на котором он висит, неактивным, то есть невидимым для игрока: begin awake-book ; скрипт о том, что когда Нереварину во сне начал являться Дагот Ур, в одном доме внезапно появилась некая книжка. ; автор – LofZ, sefy.narod.ru short once if ( MenuMode == 1 )returnendif if ( once == 1 )returnendif if (GetJournalIndex "A1_Dreams" < 1 )disable; Примечание: записи журнала – это только один тип условий. Хотя он и самый распространенный, условия можно ставить какие угодно. ; Например if ( player -> gethealth < 50 ) – если у игрока здоровье < 50 пунктов; if ( GameHour >= 0 ), if ( GameHour < 6 ) – если на дворе ночь от полуночи до 6 утра (до рассвета). ; не забывайте, что каждый блок if должна закрывать строчка endif. endif if ( once == 0 )if ( GetJournalIndex "A1_Dreams" >= 1 )enableset once to 1 ; обратите внимание на условие вначале – когда (once == 1), скрипт не выполняется, т.е. «невидимая пелена» с книги спадает. endifendif end Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 12 апреля, 2009 Жалоба Поделиться Опубликовано 12 апреля, 2009 (изменено) Еще несколько конкретных примеров под конкретные нужды, чтоб не мучаться =) Предполагается, что каждый из приведенных скриптов будет прикреплен непосредственно к самому объекту, коорый должен исчезнуть/появится. 1. Простейший пример, когда "по умолчанию" объекта нет, но в определенный момент он должен появится:begin AppearScript short once if ( once == 0 ) set once to 1 disable elseif ( once == 1 ) if ( getjournalindex "1a_MyQuest" == 15 ) enable set once to 2 endif endif end 2. Когда объект "по умолчанию" есть, но на определенном этапе должен исчезнуть. Особенно применимо к НПС, которые после выполнения квеста должны "уйти" из локации. Причем исчезнет объект не прямо на глазах у Игрока, а только когда тот вернется в ячейку в следующий раз.begin DissappearScript short once if ( once == 0 ) if ( getjournalindex "1a_MyQuest" >= 31 ) if ( CellChanged == 1 ) disable set once to 1 endif endif endif end 3. Скрипт для объектов, которые днем есть, а ночью - нет.Если у для ваших нужд ночное время длятся от 0 часов до 6 утра, то скрипт будет более простым. (См. этот топик)begin day_and_night short daytime if ( gamehour < 22.00 ); время измеряется от 0 до 23 часов, поэтому чтобы корректно отделить день от ночи надо это учитывать if ( gamehour > 6.00 ) set daytime to 1; день else set daytime to 0; ночь endif else set daytime to 0; ночь endif if ( daytime == 0 ) if ( getdisabled == 0 ); чтобы disable выпонилось только 1 раз, а не каждый фрейм disable endif elseif ( daytime == 1 ) if ( getdisabled == 1 ); чтобы enable выпонилось только 1 раз, а не каждый фрейм enable endif endif end Изменено 12 апреля, 2009 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Daedroth_CH Опубликовано 9 июня, 2013 Жалоба Поделиться Опубликовано 9 июня, 2013 Вот хороший вариант для дисабла/енабла: Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения