Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. Для начала повторим основное правило. Игрок всегда находится в какой-нибудь одной активной комнате. Если он выходит из этой комнаты, он попадает в другую. > Вы всегда можете получить объект комнаты, в которой находится игрок, при помощи функции ''%%salet.here()%%'' ===== Комнаты как куски текста ===== Комнаты всегда объявляются одинаковым образом. В самом простом виде это выглядит так: <code> room "pirate", dsc: """ Капитан Блад улыбается и быстро вытаскивает саблю. Резким движением капитан срезает кошелёк с ничего не подозревающего прохожего, рассыпая монеты, а затем делает шаг в сторону, превращаясь обратно в обычного зеваку. * [Вмешаться](intervene) * [Наблюдать дальше](watch) """ </code> Давайте разберём это объявление. ''%%room%%'' - это название функции room(), которая объявляет собственно комнату. Вы можете написать свою функцию, которая будет называться по-другому и делать объекты другого типа. ''%%"pirate"%%'' - это **ID комнаты**. По этой строке вы можете обратиться к этой комнате. По умолчанию ID должен содержать только латинские буквы, символы ''%%_-%%'' и цифры. (Это меняется в ядре Salet через параметр ''%%salet.linkRe%%'') > Например, код ''%%salet.getRoom("pirate")%%'' вернёт объект комнаты, код ''%%salet.goTo("pirate")%%'' перенесёт в неё игрока, а код ''%%salet.isVisited("pirate")%%'' расскажет, посещал ли уже игрок эту комнату. ''%%dsc%%'' - это //свойство комнаты.// Вы можете объявить сколько угодно свойств; конкретно свойство ''%%dsc%%'' задаёт //описание комнаты.// Это тот текст, который видит игрок каждый раз, когда входит в комнату. Текст задан внутри тройных кавычек ''%%"""%%'' и обрабатывается в формате Markdown. Текст ''%%dsc%%'' содержит ссылки, которые ведут на другие комнаты. Если после клика на ссылку игрок переходит в другую комнату, то весь текст предыдущей комнаты стирается - игрок уже ушёл оттуда. Вы можете запретить стирать текст предыдущей комнаты, указав у комнаты свойство ''%%clear: false%%'' Если вы запретите стирать, то текст останется, но все ссылки в нём исчезнут - станут обычным текстом, потому что игрок больше не может действовать в прошлом. Это поведение тоже можно изменить при помощи "клейких" ссылок. Также см. главу [[ru:guide:actions|Действия]], в которой описываются ссылки, действующие внутри текущей комнаты. ==== Классы ссылок ==== Ссылка не обрабатывается Salet, если у неё есть класс ''%%raw%%'', например: ''%%<a href="out" class="raw">Наружу</a>%%''. Она не стирается при переходе в другую комнату, если у неё есть класс ''%%sticky%%''. Ссылка стирается после первого клика, если у неё есть класс ''%%once%%''. Вместо того, чтобы вручную писать HTML код каждый раз, когда вам нужна особая ссылка, вы можете сделать функцию CoffeeScript и вставлять её прямо в текст: <code> textlink = (content, ref) -> return "<a href='./_writer_#{ref}' class='once'>#{content}</a>" ... dsc = "Привет #{textlink('всем', 'all')}" </code> ===== Комнаты как локации ===== <code> room "milkroom", dsc: """ ### Мраморный зал Вы находитесь в просторной комнате, выточенной внутри огромной горы молочного камня. Пол и стены замусорены подписями и знаками от предыдущих посетителей. """ </code> С другой стороны, в Salet есть модель мира. И по этой модели, комната уже похожа на реальное строение из стен, пола и потолка. Комнаты связываются между собой //путями// и могут содержать //элементы.// Они следят за тем, когда игрок выходит и входит в них. ==== Элементы ==== Элементы задаются в свойстве ''%%units%%''. Подробнее см. [[ru:guide:units|отдельную главу.]] ==== Пути ==== Пути - это особый вид ссылок, который введён для упрощения навигации. Вместо того, чтобы объявлять объект или делать ссылку, которая при нажатии будет вести в другую комнату, достаточно объявить свойство ''%%ways%%'' и добавить туда ID комнаты, в которую возможно выйти: <code> ways: ["plaza"] title: "Мраморный зал" </code> Salet автоматически проходит по массиву ''%%ways%%'' и выводит ссылки на каждую комнату при помощи их свойств ''%%title%%''. Так, если в комнате ''%%plaza%%'' задано свойство ''%%title: "Площадь"%%'', то вместо ID ''%%plaza%%'' будет выведено именно "Площадь". Названия комнат могут быть функцией, т.е. зависеть от текущего состояния игры. ru/guide/rooms.txt Последнее изменение: 2021/01/24 10:42 — 127.0.0.1