Перевод : Jerk (Балан Сергей) djJerk@mail.ru
Советы и уловки от St. Patrick
ОБРАТИТЕ ВНИМАНИЕ!
Текст статьи писался под Thief 2. Я старался подобное проделывать и для Thief 1, но вполне вероятно, что что-то работать не будет. В первую очередь это касается раздела "Замки".
СОДЕРЖАНИЕ
ДВЕРИ
Секретные Двери
Создание новых секретных дверей
ЗАМКИ
Цифровые кодовые замки
Двери
Секретные Двери
Сначала, выберите дверь (секретную, обычно), которую вы хотите использовать. Можете использовать команду “find_obj 3x6secret-door”.
Затем разместите дверь в надлежащей кисти. Не забудьте выровнять со стеной (или полом). Фактически, секретная дверь просто создана. Но вы как игрок можете запросто открыть и увидеть ее. Поэтому, давайте изменим некоторые свойства.
-
Сначала, давайте изменим внешний вид этой двери. Выбираем дверь и нажимаем. "Properties". Теперь добавляем новое свойство “Shape” -> “TxtRepl r0”. В окне введите путь к нужной текстуре, например: если вы используете текстуру “mwood02” из семейства rescor_2, то вам нужно ввести: “fam\rescor_2\mwood02” (fam - файл, где хранятся все текстуры). [Thief 1 - в диалоге TxtRepl r0 вводите: “fam\rescore\mwood02”]. Теперь портализируем и видим, что дверь имеет туже текстуру, что и стена. Если вы используете “light_bright”, то вы увидите, что дверь темнее, чем стена. Не пугайтесь - это просто потому, что вы не используете освещение.
-
Итак, у нас есть секретная дверь, но вы до сих пор можете легко открыть ее. Поэтому, давайте сделаем так, чтобы дверь открывалась рычагом. Создадим любые два рычага, которые вам понравятся (они находятся в “Gizmo” -> “Switches”, либо используйте команду “find_obj smallArcingUnlabelled”). [Thief 1 - “find_obj ArcingUnlabelled”]. Разместим их по обе стороны двери на стенах или в любом другом нужном вам месте. Запишите или запомните их номера и номер двери. Выберите первый рычаг (вообще-то, нет разницы - какой именно первый) и кликните на кнопке “Links”. Далее нажмите “Add” и в списке “Flavor” выберите “ControlDevice” (без тильды "~"). В поле “From” введите номер рычага и в поле “To” - номер двери. Нажмите ОК. Этим вы сообщили, что рычаг открывает нашу дверь. Идем дальше. Теперь выберите второй рычаг и нажмите “Links”. Нажав “Add”, в списке “Flavor” выбираете “FrobProxy”, в поле “From” - номер первого рычага, в поле “To” - номер второго рычага. Теперь выберите только что созданную связь и нажмите кнопку “Data”. В появившемся диалоге выберите “AllowDirect”. Теперь вернитесь в DromEd. Вообще-то, второй рычаг не открывает дверь, а вместо этого посылает команду первому.
- Давайте посмотрим, что у нас есть. Дверь может открываться и закрываться, пара рычагов может управлять ею. Как вы видите, дверь до сих пор можно открыть вручную, как любую другую дверь. Давайте устраним этот "баг". Заходим в свойства двери и добавляем новое - “Engine Features” -> “FrobInfo”. В появившемся меню в первом поле "World Action" убираем “Script” и добавляем “Ignore”. Возвращаемся в DromEd. Теперь дверь могут открыть только рычаги.
- [ТОЛЬКО THIEF 2] И последняя вещь. Если вы хотите, чтобы дверь была секретом, и в игре выводилось сообщение "Найден Секрет", сделаем следующее. В свойствах двери добавляем “S” -> “Scripts”. В появившемся окне удалите все скрипты, имеющиеся в полях. Далее введите в первом поле “TrackHid”, а во втором - “TrigDoorOpen”. Вы должны убедиться что галочка в “Don’t Inherit” не установлена. Теперь добавьте свойство “Dark Gamesys” -> “Stats” и измените на “Hidden”.
Создание новых секретных дверей
Секретная дверь - хороший объект для секретных дверей :-). Но вы можете сделать так, чтобы любой объект был дверью. Возьмем, к примеру, кровать. Допустим, у нас есть секретный коридор под полом и мы хотим, чтобы он был потайным, но не желаем использовать дверь. Мы хотим, чтобы постель служила дверью, которая отодвигается при нажатии на некоторый рычаг. Давайте так и сделаем.
-
Я предполагаю, что у вас уже есть секретный коридор и отверстие в полу, ведущее туда. Теперь создадим постель и разместим ее на отверстием. Возьмем “A Bed-Victorian1”. Не забудьте поставить ее прямо на пол. [Thief 1 - используйте для примера "furniture->bedparts->conbed"]
- Теперь откройте свойства постели и добавьте “Door” -> “Translating”. В появившемся окне измените следующие поля:
- “Open position” на ширину постели. Узнать ее вы можете здесь в поле "Size X" : “Physics” -> “Model” -> “Dimensions”. Для моей постели ширина равна 5. Здесь указывается, на какую длину постель будет отодвигаться.
- “Base speed” на 2.00. Это скорость открывания двери. Вы можете свободно увеличить или уменьшить ее.
- “Axis” на “X-axis”. Указывается, по какой оси дверь будет открываться.
- Добавьте свойство “Engine Features” -> “FrobInfo” и отредактируйте его. Измените “World action” на “Ignore”. Это сообщит игре, что вы не хотите открывать дверь (в нашем случае - постель) как любые другие двери. Постель будет не активна в игре. В будущем, если вам понадобиться, чтобы постель открывалась как другие двери, то в “World action” должно стоять "Script", без “Ignore”.
- Добавьте “S” -> “Scripts” и заполните первое поле строкой “StdDoor”.
- Теперь постельная дверь (прикольно, да?) готова для использования. Давайте добавим рычаг. Создайте любой понравившийся вам рычаг и отредактируйте его связи. Добавьте связь “ControlDevice” в поле “From” которой находится номер рычага, а в “To” - номер постели-двери. Вот и все - постель-дверь готова для использования. Если вам нужен второй рычаг, то сделайте так, как описано в разделе Секретный Двери.
- И последнее. Наша постель не имеет звуков, поэтому давайте добавим один из стандартных звуков. Добавьте свойство “Schema" -> "Class Tags” и введите “DoorType Slide1”. Это сообщит игре, что постель на самом деле - дверь и нужны звуки последней. Если вы хотите увидеть другие звуки, идите в Объектную Иерархию, найдите там "Sound" -> "Schema" -> “Doors”, где и будет список всех звуков.
Замки
Цифровые кодовые замки
[ТОЛЬКО THIEF 2]
Помните второй уровень Thief2 с цифровыми кодовыми замками? Хотите сделать такое же и для вашего уровня? Так чего же вы ждете - за работу!
- Я надеюсь, у вас уже есть секретная дверь. Теперь вам нужно создать десять кнопок (по одной для каждого номера) и разместить их в любом желаемом месте. Класс кнопок находиться здесь: "physical" -> "gizmo" -> "switches" -> "buttons" -> "NumberButton". Войдите в свойства каждой кнопки и добавьте свойство "Trap" -> "Quest Var". В окне вам нужно ввести имя переменной кода. Введите что-то типа “secret_code”. В этой переменной будет записан код. Ее мы используем позже. Также добавьте свойство "Shape" -> "TxtRepl r0" и введите “obj\txt\buttonX”, где X - номер кнопки (от 0 до 9).
- Продолжаем. Создайте Одометр (устройство, отображающее текущий введенный код) ("physical" -> "gizmo" -> "Gauge" -> "Odometer") и разместите его в любом месте. Если вы не хотите, чтобы игрок видел то, что он вводит, поместите одометр куда-нибудь в стену. Выберите одометр и зайдите в его свойства и добавьте "Trap" -> "Quest Var", где введите то же имя переменной, что и в кнопках (в нашем случае - “secret_code”).
- Создаем “QuestVarTrigger” ("fnord" -> "TrapTrig" -> "QuestVarTrigger") и размещаем его возле секретной двери (для легкого доступа позже). Добавляем свойство "Trap" -> "Quest Var" и вводим следующее: “"XXXX:secret_code”, где XXXX - код, и secret_code - имя переменной. Заметьте, что кавычка необходима в начале строки. Это должно выглядить примерно так (здесь код - 3333):
Это автоматически проверяет схожесть переменной и введенного кода. Создайте ControlDevice связь (Flavor) от (From) этого триггера к (To) секретной двери.
- Эта часть - необязательна. Если вы хотите создать секретный код только для одной двери, вы можете пропустить это. Разместите маркер ("fnord" -> "Marker"). Добавьте связь ScriptParams от номера маркера к номеру QuestVarTrigger с данными (Data) - “CodeRelay”.
- Зайдите в диалог связей одометра и добавьте новую ссылку: Flavor – “ScriptParams”, From – номер одометра, To – номер маркера (или номер QuestVarTrigger, если вы не использовали маркер). И введите данные - “CodeRelay”.
Вот и все. Наш кодовый замок готов для использования. Теперь на счет необязательной части. Маркер нужен для переключения нескольких дверей, как во второй миссии Thief2. При добавлении другой двери, нужно создать еще один QuestVarTrigger и создать такую же связь ScriptParams от маркера к выбранному QuestVarTrigger с данными “CodeRelay”. Узнать больше об QuestVarTrigger можно из официальной документации “Traps & Triggers”.
Перейти: На главную / В подраздел "Полезные советы" / В начало