| Сначала вам необходимо сделать из примов дверь, которую вы поставите
в своем доме. После где-нибудь на стене дома создайте кнопку из прима,
например, в виде маленького кубика.
Принцип действия создаваемых нами дверей будет следующим: вы
нажимаете на кнопку, которая посылает сообщение двери, та открывается,
вы проходите, и через 60 секунд дверь сама автоматически закрывается.
Отмечу, что из-за ограничений Linden Lab на функции перемещения дверь
может менять свое местоположение только в пределах десяти метров.
Ну, а теперь переходим к делу. Сначала создадим кнопку.
Зайдите в режим редактирования "Edit" прима кнопки, перейдите в
раздел "Content", нажмите там "New Script" - появится файл "New Script". Кликните два раза на этом файле - откроется окно редактирования
скрипта. Удалите все, что там написано, и вставьте скрипт кнопки
default { touch_start(integer total_number) { llSay(2501, "openbox2"); } }
Далее в редакторе скрипта нажмите кнопку "Save", подождите пока
скрипт откомпилируется, после чего закройте все окна редактирования.
Ну, вот, ваша кнопка готова.
Теперь необходимо вставить скрипт в дверь-
integer Handle;
default { state_entry() { Handle = llListen(2501, "", NULL_KEY, ""); // start listening
} listen(integer channel, string name, key id, string message) { vector vopen=<0.643,177.622,48.885>; vector vclose=<0.643,187.062,48.885>;
if (message == "openbox2") { llSetPos(vopen); llSleep(60.0); llSetPos(vclose); } else { if (message == "closebox2") { llSetPos(vclose); }
} } }
Проделаем для двери все то же самое, что мы делали для кнопки для
того, чтобы вставить скрипт. Но перед нажатием кнопки "Save" вам будет
необходимо проставить в скрипте правильные позиции именно вашей двери.
Этих позиций всего две:
- дверь открыта ("vector vopen");
- дверь закрыта ("vector vclose").
Нужные координаты вы можете посмотреть в свойствах самой двери в режиме редактирования в разделе "Object". Двигая дверь вручную в режиме редактирования, можно получить
координаты открытой и закрытой двери, после чего их необходимо записать
в вышеуказанные переменные.
В примере кнопка и дверь общаются на канале 2501, это число вы можете изменить в обоих
скриптах на любое другое, кроме нуля. Если же вы решите воспользоваться
именно нулем, то сообщения кнопки будут слышать все рядом находящиеся
резиденты, ведь ноль - это общий канал чата.
Не ставьте и слишком большое число - количество каналов ограничено.
Постарайтесь расположить кнопку не слишком далеко от двери, иначе дверь может просто ее не "услышать".
Команду на открытие/закрытие двери можно дать и вручную, написав в чате:
/2501openbox2 (или /2501closebox2 – но дверь должна сама автоматически закрываться, эта возможность оставлена на всякий случай).
Имена команд - openbox2 и closebox2 - можно менять на свои команды
так же, как и номер канала, например, на "openmydoor". Главное, не
забудьте сделать это в обоих скриптах!
| |