PDA

Просмотр полной версии : Строительные хитрости и трюки


TEST

krechet
29.10.2012, 20:40
В этой теме описываем различные способы строительства в мирах. Приветствуются методики, позволяющие заткнуть прораба. Я тоже здесь запишу свои находки, кроме самой опасной :)

Единственное, что могу сказать про ту опасную технологию - она основана на усовершенствованной методике Хаоса по блокированию доступа на какую-либо территорию. В результате танцев с бубном - удалось сделать так, чтобы никто, кроме определённого гражданства не мог попасть на выбранный участок. Причём для того, у кого есть доступ переход не заметен, а для остальных можно сделать так, чтобы они просто стукались о невидимую стену, или же перемещались куда угодно. Никакой шифт при этом не помогает. Был правда глюк, позволяющий проникнуть на территорию просто поставив рядом телепорт-таран. Впрыгнуть ему конечно не удавалось, но при возвращении по телепорту назад - человек спокойно оставался внутри участка. Пришлось пойти на двойную хитрость, после этого вся история телепортов стиралась напрочь.

Более того - можно сделать так, чтобы незваные гости попадали при соприкосновении с невидимой стеной в своеобразную "тюрьму". Выйти из этой тюрьмы можно либо по собственному сохранённому телепорту, либо переместившись в какой-то мир через вкладку Миры. Также может выйти из этой тюряги тот, кто имеет привы первого. Многих вообще выбрасывало из миров при попадании в такую карусель. Именно карусель - ведь при соприкосновением с невидимой блокирующей стеной, юзера начинает колбасить по страшной силе, вокруг всё мелькает с огромной скоростью.

krechet
29.10.2012, 20:50
Начну с первой хитрости:

ИСТОРИЯ ТЕЛЕПОРТОВ

Чтобы попавший в телепорт юзер не вернулся обратно (с помощью стрелок в браузере), в командах прописываем не teleport, а teleportx
Это верно как для абсолютных, так и для относительных телепортов. То есть координаты, в которых находился юзер до телепортации - в истории телепортов не сохраняются. Это один из вариантов сбить историю телепортов. Есть ещё один - более действенный и опасный, позволяющий "забыть" браузеру все предыдущие координаты. Но об этом говорить не буду - каждый пусть додумывается сам :)

krechet
29.10.2012, 21:24
ПЕРЕКЛЮЧАТЕЛЬ МУЗЫКИ

Немного не доработан, но может кому-то и в таком виде понадобится.

create sign i=on q=64 bcolor=gold color=white;at VRT ::20, name D,color blue;activate name w, web reset name=D global,web url=http://activew.ucoz.ru/mp3/inna-amazing.wav.mp3 vol=100 radius=150 global,color red global

Эта команда автономна, то есть её можно ставить на таблички для текста (в Диптауне это к примеру sign3.rwx), в пределах видимости на каждую табличку отдельно. Пользоваться нужно таким образом:
1. При нажатии на табличку её обод становится красным, при этом запускается потоковая музыка (песня)
2. В 20-ю секунду каждой минуты красный обод таблички сбрасывается в синий цвет.
3. Можно нажать на другую табличку (но только после возвращения красного обода в синий цвет). При этом любая включённая песня прекращается и включается та, на которую нажали. Для этого разные таблички имеют разные ссылки на песни.

Принцип действия такой:
1. Изначально табличка не имеет никакого имени
2. Триггер at VRT ::20 каждую минуту даёт табличке имя D и меняет цвет каймы на синий
3. При нажатии на табличку ей присваивается имя w, красный цвет обода, и в то же время сбрасывается музыка на табличках, которые в данный момент имеют имя D. А на активируемой табличке включается музыка по ссылке, которая написана на этой табличке. То есть каждую минуту все таблички принимают имя D и синий цвет обода, поэтому надо дождаться этого момента, чтобы включить следующую песню. Так как нажимаемая кнопка принимает имя w, то сброс на неё не действует и включается музыка, а цвет обода становится красным.

krechet
29.10.2012, 21:59
ИСПОЛЬЗОВАНИЕ ТАЙМЕРА ДЛЯ УПРАВЛЕНИЯ НЕСКОЛЬКИМИ ОБЪЕКТАМИ (Технологию показал JiSt)

Предположим, мы запускали перемещение разных предметов по клику. А потом им всем разом надо придать первоначальное положение. Можно было бы вписать в командную строку какой-нибудь таблички имя каждого объекта и дать им команду перемещения на микроскопическую дистанцию. Но командная строка объекта не вместит столько символов. Выход предложил Джист.

1. Какому нибудь активируемому объекту вписываем вот что: activate timer tt 100 loop=1 reset global
2. Допустим следующие команды мы поделили на 3 других объекта-пустышки, управляющими нашими перемещёнными объектами. Команды в каждой пустышке будут выглядеть так:


at tm tt 1,move 0 0.5 0 name=a1;at tm tt 2,move 0 0.5 0 name=a2;at tm tt 3,move 0 0.5 0 name=a3;at tm tt 4,move 0 0.5 0 name=a4
at tm tt 1,move 0 0.5 0 name=b1;at tm tt 2,move 0 0.5 0 name=b2;at tm tt 3,move 0 0.5 0 name=b3;at tm tt 4,move 0 0.5 0 name=b4
at tm tt 1,move 0 0.5 0 name=c1;at tm tt 2,move 0 0.5 0 name=c2;at tm tt 3,move 0 0.5 0 name=c3;at tm tt 4,move 0 0.5 0 name=c4

То есть 12 объектов, которые мы двигали возвращаются в исходную точку. Иэтих объектов - a1, a2, a3, a4 , также b и с (с такими же номерами).
Для этого объект, на который мы жмём для сброса 12-ти объектов, оснащается таймером с длительностью задержки 100 миллисекунд и действующий глобально. На объектах-пустышках установлены триггеры, задействующие этот таймер. Чтобы применить триггер к каждому имени перемещаемого объекта - на объекте пустышке этот триггер разделяется на несколько частей. Каждая часть использует имя таймера с порядковым номером. На других объектах-пустышках порядковые номера могут повторяться.

krechet
30.10.2012, 21:03
Для предыдущего сообщения дополнение от ftb:
в первой строчке желательно добавить что это для случая когда невозможно дать объектам одинаковые имена
То есть, например, мы двигаем несколько экранов по отдельности, запуская их по нажатию на другой объект, служащий в данном случае в качестве кнопки. А раз кнопка включает только отдельный объект, значит надо дать экрану отдельное имя. Поэтому экранам давать одинаковые имена нельзя, но возвращать их все в исходное положение нужно одновременно.

krechet
31.10.2012, 20:23
Ещё дополнение к сообщению #4
В команде activate timer tt 100 loop=1 reset global имя таймера tt не обязательно должно быть таким. Имена можно придумывать разные, главное, чтобы в объектах-пустышках имена были такими же

krechet
31.10.2012, 20:42
ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ ПОКАЗА САЙТОВ В 3D-окне В ГЛОБАЛЬНОМ РЕЖИМЕ

Может применяться, например, во время коллективного изучения чего-либо. При этом тот, кто находится рядом с кнопками, управляющими включением-выключением может запустить глобальный показ какого-либо сайта. В этом случае сайт занимает всё пространство, в котором обычно мы видим трёхмерный мир.

Чтобы закрыть сайт, существует как минимум два варианта. Во-первых, каждый может закрыть его индивидуально, нажав на крестик, в большинстве случаев появляющийся в левом верхнем углу браузера. Во-вторых, сайт можно выключить так же глобально, нажав на кнопку с соответствующей командой. Естественно, чтобы закрыть глобально сайты, тот, кто нажимает на эту кнопку должен локально выключить этот сайт у себя.

Теперь о самой технологии:

Для глобального включения используем два объекта. Желательно, чтобы эти объекты являлись табличками для текста.
Объект 1. В него прописываем такую команду: activate timer TRR 100 loop=1 reset global
Объект 2. А туда вот такую: at tm TRR 1,url http://msdn.microsoft.com/ru-ru/library/wt3s3k55.aspx target=aw_3d

Ссылка на сайт может быть любая. Можно ставить несколько таких пар объектов с разными ссылками. Первый объект предназначен для активации таймера, причём имя TTR не обязательно должно быть таким. Можно выбрать любое имя, главное, чтобы во втором объекте имя после триггера at tm было таким же, как и в первом объекте. И ещё - во втором объекте после имени обязательно должна стоять цифра, даже если триггер один. target=aw_3d означает, что сайт будет открываться в 3D-окне. Для разных сайтов имена пар таймер-триггер должны быть разными.

Чтобы не запутаться, куда жать и куда вписывать ссылку, можно поступить так. Записываем на объект-табличку, на которую надо жать для вызова сайта, например, такие слова: WWW global. А на объекте, предназначенном для вставки ссылки пишем название самого сайта. И так для каждой пары объектов.

В следующем сообщении опишу способ, как глобально закрывать сайт.

krechet
31.10.2012, 20:57
Глобально закрыть любой из открытых сайтов можно с помощью всего одной пары объектов. Вписываем в них такие команды:
Объект 1. activate timer RR1 100 loop=1 reset global
Объект 2. at tm RR1 1,teleportx +0 +0 +0a

Как видим, первый объект с таймером по имени RR1 и с задержкой 100 миллисекунд, запускает триггер at tm с таким же именем и обязательным номером после имени (даже если триггер в команде один). Этот триггер активирует относительный телепорт с нулевыми координатами. Благодаря этому телепорту у всех сбрасываются открытые в 3D-окне сайты.

В качестве первого объекта может быть табличка с надписью, например, "Сброс WWW global". А второй объект может быть любым.

У этой пары объектов, применяющихся в данном случае для сброса открытых сайтов, может быть ещё и боевое применение :) Попробуйте после команды teleport выставить другие координаты, и не обязательно относительные. Главное, чтобы они были в пределах одного мира. Эффект усилится, если вместо teleport написать teleportx

krechet
01.11.2012, 13:20
БОРЬБА С ПРОРАБОМ (СТРОИТЕЛЬНЫМ ИНСПЕКТОРОМ) :)

Если планируется поставить рядом много объектов с одинаковыми командами - можно воспользоваться описанным ниже способом.

Предположим, нужно построить высотный дом. Разумеется, при этом некоторые стены должны быть одинаковыми и иметь также одинаковые команды. Пусть стеной является объект wall00_10.rwx, и в каждый из этих объектов нужно вставить такие команды: create texture floor47a, scale 1 5 1. А теперь такая информация: каждый символ в команде прибавляет по 0,01%. То есть, чем больше символов в ячейке (независимо от высоты или глубины), тем быстрее мы доберёмся до 100%, при которых прораб начнёт устраивать истерику.

Вывод напрашивается сам собой - а нельзя ли самим стенам дать одинаковое имя, а команду прописать в единственном объекте, и заставить эту команду работать на наши стены? Оказывается можно. Выглядит это так. В сами стены вписывам только такую строку: create name a3, а в объект, где будет прописана команда для стен пишем вот что: create texture floor47a name=a3, scale 1 5 1 name=a3. То есть команда назначается объектам с именем a3.

Некоторые особенности такого подхода:
1. Объект с командой может быть любым, назовём его триггерным объектом.
2. Для каждой группы именуемых объектов должен быть свой триггерный объект, в крайнем случае, если вместится команда, то и для нескольких групп именуемых объектов может быть один триггерный объект.
3. Каждой группе именуемых объектов нужно давать своё имя.
4. Имена желательно давать короткие.
5. Такая команда в триггерном объекте не будет работать нормально: create texture floor47a, scale 1 5 1 name=a3, так как текстурой покроется сам триггерный объект, а масштабирование уже применится к объекту с именем а3. То есть каждое действие должно быть направленно именно на именованные объекты.
6. Располагать триггерный объект желательно не дальше 30 метров от группы именованных объектов. Если больше 30 метров - то может получиться, что пользователь, выставивший видимость 30 метров не увидит действия команды на объектах.
7. Радиус видимости расчитывается только по горизонтали. По вертикали можно даже до 700 метров ввысь (и, наверно и вглубь) отдалять триггерный объект от группы именуемых объектов. Но лучше этим не злоупотреблять и отдалять по вертикали триггерный и именованные объекты не более 100 - 150 метров.

В итоге получалось сэкономить до 20%.

TAG.Hosting — Хостинг сайтов и Регистрация Доменов