Руководство по регулярным выражениям (Regex): различия между версиями

Материал из SS220 Paradise Wiki (SS13)
Перейти к навигации Перейти к поиску
Нет описания правки
мНет описания правки
 
(не показано 19 промежуточных версий 2 участников)
Строка 1: Строка 1:
==Вступление==
Regex (сокр. от Regular expressions - Регулярные выражения) - это способ поиска подтекста в тексте. Он позволит вам искать более сложные выражения и даст вам больше свободы в выборе того, что выделить. Однако он немного сложен для полного понимания за один раз. Смотрите ниже примеры использования строк regex. По умолчанию в игре Regex нечувствителен к регистру.
Настройка двигателя - это сложный процесс, поэтому не работайте один, лучше с командой инженеров, чтобы быть уверенным в том, что процесс включения пройдет гладко. Если вы не уверены в своих возможностях при настройке этого двигателя, и нет никого, кто мог бы вам помочь, подумайте сначала о настройке [[Solars|солнечных панелей]], чтобы у станции была энергия, а вы могли проводить процесс обучения в своем собственном темпе.


Работа с атмосферой кажется фантастикой для большинства людей, но просто внимательное ознакомление с [[Guide to Atmospherics|данным руководством]] очень поможет в ней разобраться.
Полезным инструментом для тестирования вашей regex-строки является [https://regex101.com/ '''этот сайт.''']
==Настройка==
Чтобы открыть окно настроек Regex нажмите шестеренку в окне чата. И в появившемся списке кликните <code>Highlight string</code>'''.'''
[[Файл:Regex1.png|без|обрамить|Как добраться до Regex]]
Игра предоставляет вам два способа использования системы регулярных выражений.
===Простой способ===
[[Файл:Regex2.png|мини|591x591пкс|Пример простого ввода]]


==Принцип работы стандартной схемы==
Убедитесь, что чекбокс <code>Enable Regex</code> выключен. И просто вводите, в одно из полей, через пробел, желаемые слова, которые хотите выделить в чате. Этот способ наиболее элементарный. Но имеет недостатки.  
И так, основная задача двигателя суперматерии (далее СМ) это выработка электроэнергии для станции, путем поглощения [https://ru.wikipedia.org/wiki/Излучение_Хокинга излучения Хокинга] сборщиками радиации (radiation collector). В основе двигателя лежит кристалл суперматерии (suprermatter shard), который при бомбардировке лучом эмиттера, в большом объеме, производит:


* Радиацию - которую мы будем поглощать сборщиками радиации;
Существует непреодолимый недостаток системы Regex, на текущий момент, это выделение части букв из других слов. Например введя слово '''маг,''' он будет выделять часть слова '''<mark>Маг</mark>омед, бу<mark>маг</mark>а''' и любых других слов содержащих указанную последовательность букв. А также чувствителен к орфографическим ошибкам. Если вы зададите для выделения слово '''детектив,''' а в чате будет написано '''декектив,''' то оно выделено не будет.
* Тепло - которое будет нагревать все газы в камере и кристалл;
* Плазму (plasma) - которую мы будем выводить из камеры;


* Кислород (oxygen) - в небольшом количестве, и его мы тоже будем выводить.
Отчасти, справиться с этими недостатками можно используя регулярные выражения ниже.


Как выглядит стандартный цикл работы СМ:
===Сложный способ===
Сложный способ подразумевает использование синтаксиса регулярных выражений. Все доступные регулярные выражения представлены в справочнике [https://www.byond.com/docs/ref/#/{notes}/regex '''BYOND Regex''']. Также вы можете посмотреть на [https://www.youtube.com/results?search_query=regex '''YouTube руководства по Regex'''], что существенно упростит понимание нижеописанного.


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


==Меры предосторожности==
'''в[^ ]+п[^ ]+р''' - хорошее регулярное выражение для выделения слова '''вампир.'''
При нахождении в зоне СМ вам необходимо носить мезонные очки (meson goggles), которые вы можете найти повсюду в шкафчиках инженерного отдела, в противном случае при взгляде на кристалл вы можете увидеть галлюцинации, что нанесут вам существенный вред.


Носить РИГи или радиационный костюм (radiation suit) необязательно, если только вы не собираетесь заходить непосредственно в камеру с кристаллом.
Разберём это выражение подробнее:


Если же, по каким либо причинам вы решите войти в камеру с кристаллом, вам необходим будет противорадиационный костюм, ничто иное не обеспечит должной защиты от радиации. А лучше, вообще не искать причин заходить в камеру с кристаллом. Благо стандартная схема настройки не требует заходить в нее. В противном случае, вас облучит, вы получите повреждения от токсинов, будете облучать других сотрудников.
'''[^ ]''' - выражение которое ищет любой символ исключая пробел


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


==Настройка СМ для самых маленьких==
Фактически для данное выражение можно представить так: '''в*п*р''' где, * - это любые символы (кроме пробела), в любом количестве.
Настроить и запустить СМ не сильно сложнее, чем теслу или сингулярность. Поэтому если вы имеете опыт в самостоятельной настройке теслы или сингулярности, то справитесь и с СМ.  
[[Файл:Regex3.png|без|обрамить|Пример работы Regex рассчитанный на слово "вампир"]]


'''В данном руководстве важно соблюсти строгую последовательность действий для успешного запуска.'''
==== Комбинация Regex выражений ====
Если вы решите создать много Regex выражений для названий антагонистов и их сленг-синонимов, то строк представленных в окне Regex вам не хватит. Для решения указанной проблемы можно комбинировать множество выражений в одной строке:


Задачи по настройке можно безопасно распараллелить для двух сотрудников: один выполняет пункты с 1 по 9, другой заправляет коллекторы (10й пункт).
Пример комбинирования для слов '''вампир''' и '''генокрад:''' (в[^ ]+п[^ ]+р|[^ ]+н[^ ]+к[^ ]+д)


В списке ниже '''<u>цифра из списка = цифре на картинке выше</u>'''.
==== Таблица готовых Regex выражений ====
{| class="wikitable" style="text-align: center;"
|+Таблица с регулярными выражениями для наиболее часто употребляемых слов
(будет пополняться, возможно)
|- style="font-weight: bold; text-align: center; background-color: chocolate; color: white;"
| style="width: 250pt; center;" |Слово для выделения
| style="width: 150pt; center;" |Regex синтакс
|-
!'''генокрад'''
|[^ ]+н[^ ]+к[^ ]+д
|-
!'''вампир'''
|в[^ ]+п[^ ]+р
|}


# Убеждаемся, что центральная помпа '''включена и давление установлено на максимум''' (4500 kpa).
===Настройка цвета выделения===
# '''Включаем фильтр, устанавливаем максимальное давление выключаем фильтрацию всех газов''' (нажимаем nothing). Смесь будет проходить, через фильтр без фильтрации.
В нижней части окна предоставлена возможность изменить цвет выделения слов. Ввод цвета производится в [[google:цвет+шестнадцатеричный+код|'''шестнадцатеричной системе (HEX)''']]. Цвета можно подобрать по этой [[ColorPalette|'''ссылке''']].
# '''Включаем помпу,''' ведущую в охлаждающие радиаторы космоса '''и устанавливаем максимальное давление''' .
[[Категория:Руководства]]
# Убеждаемся эти две помпы выключены и выключаем фильтр.
# Убеждаемся что, этот фильтр '''включен и настроен на азот (N2), устанавливаем максимальное давление'''. Он оставит в системе охлаждения только азот, остальное выведет в космос.
# Убеждаемся, что эта помпа '''выключена'''.
# Стоит открутить портативные скруббер (Portable Air Scrubber) и помпу (Portable Air Pump) гаечным ключом, необязательно.
# '''Обе канистры с азотом (Canister: [N2]) прикрепляем к портам (connector port) охлаждающего контура''' с помощью гаечного ключа.
# '''Включите обе помпы, ниже портов, и установите максимальное давление'''. Контур охлаждения начнет заполняться азотом (nitrogen).
# Возьмите из хранилища (tank storage unit), вверху слева, баллон с плазмой (plasma tank). Вставьте этот баллон в канистру с плазмой ниже (Canister [Toxin (Plasma)). Нажмите на канистру рукой и в открывшемся интерфейсе '''установите на регуляторе канистры (regulator) максимальное выходное давление''' (1013 kpa). Переведите клапан в положение '''open'''. Когда баллон с плазмой заполнится, '''закройте клапан (closed)''' и вытащите наполненный баллон с плазмой (eject). Прикрутите сборщик радиации (Radiation Collector Array) гаечным ключом, вставьте в него баллон с плазмой. Нажмите на сборщик радиации рукой, выдвинется решетка сборщика. Сборщик готов к работе. Аналогично, заполните оставшиеся сборщики баллонами с плазмой и включите их.
#'''Включаем обе помпы в камере, давление устанавливаем на максимум.'''
#Настраиваем воздушную сигнализацию активной зоны (supermatter engine air alarm). Разблокируйте сигнализацию вашей ID картой. В интерфейсе воздушной сигнализации на вкладке "Vent Control", для каждой вентиляционной помпы, Pressure Checks устанавливаем Internal. А на вкладке "Scrubber Control" для каждой вытяжки устанавливаем Range: Extended, режим (state) переводим из Scrubbing в Siphoning. [[Файл:SM_AirAlarm_Vent.png|350x350пкс|граница]][[Файл:SM_AirAlarm_Scrub.png|350x350пкс|граница]]<br />
#
 
====Газовый контур====
#Установите каждый насос (pump), представленный на картинке зелёным цветом, а также фильтры (filter), также окрашенные в зеленый, на выходную мощность 4500 кПа. В качестве альтернативы можно заменить насосы (pump) обычными трубами (фильтры заменять трубами настоятельно не рекомендуется).
#После этого вы захотите отключить газовые насосы, обведённые на картинке красным (забыв, что именно так вы разгоните двигатель суперматерии).
 
===Настройка СМ на Delta Station===
 
====Газовый контур====
 
#Сперва убедитесь, что все насосы обозначенные красным цветом выключены. Затем установите 2 балона с азотом (обозначены зеленым справа) на предусмотренные порты (обозначены зеленым справа от двери в активную зону).  Как альтернативу канистрам с азотом вы можете использовать прямую подачу азота из атмосферного отсека. Достаточно будет установки давления в 100-150 кПа на насосе (обозначен оранжевым цветом).
#Следующим шагом включите на полную мощность фильтр отходов (обозначен зеленым справа вверху), настроив его на фильтрацию азота (N2), чтобы все газы кроме азота уходили дальше по трубе в космос, а сам азот возвращался в контур по трубе в бок.
#Включите на полную мощность фильтр сборщика газов (обозначен синим слева от двери в активную зону), настроив его на пропуск всех газов (Nothing). Либо вы можете выбрать какой-то интересующий вас газ, кроме охладителя и выбрать его. В таком случае вам понадобятся пустые канистры для его сбора, они стоят неподалеку (обозначены синим слева) - просто подключите их к портам (так же обозначены синим).
#Открутите портативные скраббер и помпу от портов (обозначены бордовым справа)
#Включите на полную мощность насосы обозначенные зеленым цветом. Контур начнет заполнятся азотом.
 
===Сборщики радиации===
Возьмите плазменные баллоны и поместите их в радиационные сборщики (radiation collector) непосредственно за пределами камеры СМ, а затем включите их, чтобы можно было производить электроэнергию. Как правило, рекомендуется заполнять эти резервуары полностью, например, с помощью канистры с плазмой (1012кПа - это максимум в маленьком баллоне). Если они не заполнены, будьте готовы к тому, что вам придётся их заменять в течении смены, хотя это не приведет к отслоению СМ или подобным событиям само по себе, отдел ксенобиологии будет очень недоволен нехваткой энергии.
 
===Запуск двигателя===
 
#Теперь приступите к настройке воздушной сигнализации активной зоны (supermatter engine air alarm).
#Нажмите на "vent controls" и установите мощность каждой вентиляции на 2000, а также убедитесь, что они установлены на BLOWING. Если существует риск отслаивания суперматерии или при сифоне скрабберов стоит установить вентиляции на 0, а также на режим INTERNAL.
#Следом, нажмите на "scrubber controls" и установите всем скрубберам очистку всех газов. (Отклонение от этого приведёт к накоплению горячих газов в камере. Если вы хотите, как написано в пункте 2 настроить вентиляции на 0 и на INTERNAL, то скрубберы должны настраиваться на "siphon", а радиус на "extended")
#Установите вход SMESов на максимальное значение, а выход - чуть ниже него. Имейте в виду, что эмиттеры питаются от SMESов, поэтому если они не обеспечивают достаточной мощностью станцию и эмиттеры, то последние перестанут стрелять.
#При желании, вы можете подключить больше эмиттеров и отражателей.
#Включите эмиттеры и наблюдайте за тем, как происходит волшебство. Рекомендуется активировать по одному эмиттеру за раз и наблюдать за последствиями, прежде чем включать больше.
 
==Техническое обслуживание==
СРП предписывают, что если эмиттеры стреляют, то двигатель должен находиться под постоянным контролем. Кроме того, необходимо периодически проверять, правильно ли настроены фильтры, насосы и воздушная сигнализация. Проконсультируйтесь с другим инженерно-техническим персоналом, если обнаружена нестандартная конфигурация.
===Чек-лист монитора СМ===
 
#Убедитесь, что давление ниже 500 кПа.
#Убедитесь, что температура ниже 310 кельвинов.
#Убедитесь, что коэффициент энергетической эффективности (EER) менее 3000 МэВ/см3.
#Убедитесь, что первичный охлаждающий газ (обычно N2) составляет более 90%.
 
===Что если EER слишком высокий===
 
#Выключите все эмиттеры.
#Слейте немного газа, чтобы ограничить газ в контуре. Сделайте так, чтобы нижние фильтры не пропускали никакой газ, и не имели при этом внешнего входа. Не делайте этого слишком долго, иначе не хватит охлаждающих газов для СМ, чтобы она стабилизировалась. Если используется любой другой газ, кроме N2, влейте большое количество N2. Это легче всего сделать, отфильтровав использованный газ, например, чистый CO2, при закачке вместо него N2, и отфильтровав N2 обратно в камеру, до тех пор, пока СМ не станет стабильной. Имейте в виду, что слишком большое количество любого газа, будет вызывать более высокое излучение энергии, поэтому не допускайте, чтобы объем также уменьшился.
 
===Что если давление слишком высокое===
 
#Выключите все эмиттеры.
#Убедитесь, что все насосы и фильтры работают на максимуме. Убедитесь, что все сифоны рядом с СМ установлены на "siphon", а радиус на "extended". Убедитесь, что все вентиляции рядом с СМ установлены на максимум.
#С помощью анализаторов определите давление в контуре охлаждение и состав газов.
#Если в системе слишком много азота, настройте фильтры на N2 и слейте излишки в канистры.
#Если в голубых трубах газ отличный от азота, то проверьте настройки фильтров.
 
===Что если температура слишком высокая===
 
#Выключите все эмиттеры.
#Убедитесь, что все насосы и фильтры работают на максимуме. Убедитесь, что все скрабберы рядом с СМ установлены на "siphon", а радиус на "extended". Убедитесь, что все вентиляции рядом с СМ установлены на максимум.
#Влейте холодный N2 в контур охлаждающих газов, чтобы снизить температуру. (При правильной настройке скрабберы должны автоматически выкачать новый газ, при попадании в камеру СМ)
 
==Расслоение==
<q>Помогите...</q>
 
Несмотря на то, что это может вызвать достаточную панику, расслоение СМ обычно длительный процесс и даёт время, чтобы его можно было зафиксировать, или, по крайней мере, ограничить повреждения. Выполните шаги "технического обслуживания", перечисленные выше, для всех трех видов - тепла, энергии и давления, перед тем как попытаться использовать крайнюю меру, приведённую ниже.
 
При слишком большой мощности, температуре или давлении кристалл начинает терять целостность. Если он достигнет нуля, он расслоится.
 
===Показатели, приводящие к расслоению===
 
#При достижении EER 5000 МэВ/см3 / 1800 молей газа в контуре/при слишком большом давлении в камере - начнётся расслоение.
#При достижении EER выше 5000 МэВ/см3, СМ станет излучать дуги и вызывать аномалии. Это явный признак расслоения.
#При слишком большом излучении энергии кристалл будет создавать больше газа, что может привести к возгоранию и увеличению температуры, подкреплённому повреждением суперматерии.
#По мере приближения к фактическому событию расслоения, вы регулярно будете слышать автоматические предупреждения, чтобы успеть стабилизировать кристалл.
#Когда ваше время закончится, то кристал расслаивается и произойдёт одна из трёх вещей. Если в камере было более 1800 молей газа - суперматерия схлопнется в самый опасный подвид сингулярности. Если EER был больше 5000 МэВ/см3, то СМ превратится в теслу, если ни первое, ни второе не превышало верхнюю границу, то произойдёт достаточно сильный взрыв.
 
===Аномалии===
Если, как было сказано выше, значение МэВ/см3 будет выше 5000, СМ будет порождать определенные аномалии:
 
*Gravitational: притягивает находящихся рядом живых существ, а также предметы.
*Flux: бьёт током всё до чего коснётся.
*Pyro: наполняет комнату горящей плазмой и порождает враждебных красных и оранжевых слаймов.
 
Излучение, исходящее от кристалла, и галлюцинации будут увеличиваться.
 
===Точка невозврата===
 
Если обычные шаги по техническому обслуживанию не увенчались успехом и суперматерия прошла точку невозврата. Существуют некоторые заключительные шаги по ограничению последствий расслоения. Прежде всего, взрыв - это единичное событие, хотя и большое, но не продолжающееся, как это происходит при тесле или сингулярности. Первое, что вы должны сделать, это убедиться, что условия для возникновения теслы или сингулярности не выполняются. Во-вторых, вы захотите ограничить взрыв СМ, предполагая, что вам удалось воспрепятствовать возникновению вышеописанных событий. Тесла порождается, если EER выше 5000 МэВ/см3, который будет быстро падать, если у СМ нет газа для излучения энергии. С другой стороны, сингулярность нуждается в определенной плотности газа, которого не будет, если нет газа. Взрыв основан на типе, а также на количестве газа вокруг кристалла. Все это достигается одним действием, высасываем через дыру в полу, сделанную через RCD.
 
#Наденьте что-нибудь с огнестойкостью и магнитные ботинки (Это не гарантирует, что вы выживите, но может помочь вам выжить достаточно долго, чтобы быть героем, которого помнят только призраки).
#Убедитесь, что магнитные ботинки включены (Если вы этого не сделаете, вы будете засасываться в кристалл и испаритесь).
#УБЕДИТЕСЬ, ЧТО МАГНИТНЫЕ БОТИНКИ ВКЛЮЧЕНЫ (Нет, серьезно, вы исчезните)
#Используйте RCD для деконструкции пола под СМ (Вам нужно использовать ALT + ЛКМ по полу, иначе при применении RCD по суперматерии - RCD исчезнет)
#'''БЕГИ''' (Если можешь)
 
==Саботаж==
'''Если вы не антаг с целью на угон (hijack), то вы определенно должны использовать ahelp, прежде чем связываться с двигателем СМ.'''

Текущая версия от 23:55, 4 декабря 2021

Regex (сокр. от Regular expressions - Регулярные выражения) - это способ поиска подтекста в тексте. Он позволит вам искать более сложные выражения и даст вам больше свободы в выборе того, что выделить. Однако он немного сложен для полного понимания за один раз. Смотрите ниже примеры использования строк regex. По умолчанию в игре Regex нечувствителен к регистру.

Полезным инструментом для тестирования вашей regex-строки является этот сайт.

Настройка

Чтобы открыть окно настроек Regex нажмите шестеренку в окне чата. И в появившемся списке кликните Highlight string.

Как добраться до Regex

Игра предоставляет вам два способа использования системы регулярных выражений.

Простой способ

Пример простого ввода

Убедитесь, что чекбокс Enable Regex выключен. И просто вводите, в одно из полей, через пробел, желаемые слова, которые хотите выделить в чате. Этот способ наиболее элементарный. Но имеет недостатки.

Существует непреодолимый недостаток системы Regex, на текущий момент, это выделение части букв из других слов. Например введя слово маг, он будет выделять часть слова Магомед, бумага и любых других слов содержащих указанную последовательность букв. А также чувствителен к орфографическим ошибкам. Если вы зададите для выделения слово детектив, а в чате будет написано декектив, то оно выделено не будет.

Отчасти, справиться с этими недостатками можно используя регулярные выражения ниже.

Сложный способ

Сложный способ подразумевает использование синтаксиса регулярных выражений. Все доступные регулярные выражения представлены в справочнике BYOND Regex. Также вы можете посмотреть на YouTube руководства по Regex, что существенно упростит понимание нижеописанного.

Ниже будут приведены полезные для игры примеры.

в[^ ]+п[^ ]+р - хорошее регулярное выражение для выделения слова вампир.

Разберём это выражение подробнее:

[^ ] - выражение которое ищет любой символ исключая пробел

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

Фактически для данное выражение можно представить так: в*п*р где, * - это любые символы (кроме пробела), в любом количестве.

Пример работы Regex рассчитанный на слово "вампир"

Комбинация Regex выражений

Если вы решите создать много Regex выражений для названий антагонистов и их сленг-синонимов, то строк представленных в окне Regex вам не хватит. Для решения указанной проблемы можно комбинировать множество выражений в одной строке:

Пример комбинирования для слов вампир и генокрад: (в[^ ]+п[^ ]+р|[^ ]+н[^ ]+к[^ ]+д)

Таблица готовых Regex выражений

Таблица с регулярными выражениями для наиболее часто употребляемых слов (будет пополняться, возможно)
Слово для выделения Regex синтакс
генокрад [^ ]+н[^ ]+к[^ ]+д
вампир в[^ ]+п[^ ]+р

Настройка цвета выделения

В нижней части окна предоставлена возможность изменить цвет выделения слов. Ввод цвета производится в шестнадцатеричной системе (HEX). Цвета можно подобрать по этой ссылке.