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

Материал из SS220 Paradise Wiki (SS13)
Перейти к навигации Перейти к поиску
Нет описания правки
мНет описания правки
 
(не показано 15 промежуточных версий 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> выключен. И просто вводите, в одно из полей, через пробел, желаемые слова, которые хотите выделить в чате. Этот способ наиболее элементарный. Но имеет недостатки.  
Двигатель суперматерии, более сложен в настройке и требует больше инженерного опыта в сравнении с "теслой" или "сингой", но он куда безопаснее, для станции, в сравнении с последними. При настройке СМ по стандартной схеме ниже, саботаж кристалла может обеспечит лишь его взрыв. '''Взрыв кристалла повлечет уничтожение отдела СМ, но не всей станции''', в отличие от выхода сингулярности или теслы за пределы зоны содержания. Учитывайте это, в начале смены, при выборе основного источника энергии для станции.


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


* Радиацию - которую мы будем поглощать сборщиками радиации;
Отчасти, справиться с этими недостатками можно используя регулярные выражения ниже.
* Тепло - которое будет нагревать все газы в камере и кристалл;
* Плазму (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 вам не хватит. Для решения указанной проблемы можно комбинировать множество выражений в одной строке:


Задачи по настройке можно безопасно распараллелить для двух сотрудников: один выполняет пункты все пункты кроме 10, другой заправляет сборщики радиации (10й пункт).'''Список ниже является последовательностью действий, которую начинающим следует выполнять строго по указанному порядку.''' Для информативности, в списке ниже '''цифра из списка = цифре на картинке выше'''.
Пример комбинирования для слов '''вампир''' и '''генокрад:''' (в[^ ]+п[^ ]+р|[^ ]+н[^ ][^ ])
# Убеждаемся, что центральная помпа '''включена и давление установлено на максимум''' (4500 kPa).
# '''Включаем фильтр, устанавливаем максимальное давление выключаем фильтрацию всех газов''' (выбираем nothing). Смесь будет проходить, через фильтр без фильтрации.
# '''Включаем помпу,''' ведущую в охлаждающие радиаторы космоса '''и устанавливаем максимальное давление''' .
# Убеждаемся эти две помпы и фильтр выключены.
# Убеждаемся что, этот фильтр '''включен и настроен на азот (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''', режим переводим из Scrubbing в '''Siphoning'''. <br />[[Файл:SM_AirAlarm_Vent.png|350x350пкс|граница]][[Файл:SM_AirAlarm_Scrub.png|350x350пкс|граница]]<br />
#Помпу, которую вы настроили п.1 теперь '''выключаем'''.
#Убедитесь, что всё выше сделано верно и приступайте к запуску. Возьмите один из эмиттеров (Emitter) слева сверху и установите на место (желтый круг на схеме), поверните эмиттер в сторону кристалла, закрепите его гаечным ключом к полу, примените сварку. Включайте (если не начнет стрелять, то пересоберите эмиттер).
#Осталось настроить два смеса (SMES), в нижней правой части СМ, просто включите и установите Target Input на максимум, а Target Output на 180.
Если вы заполнили и включили все сборщики радиации, то после запуска можно рассчитывать на 2 МВт электроэнергии.
#


==Техническое обслуживание==
==== Таблица готовых 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 синтакс
|-
!'''генокрад'''
|[^ ]+н[^ ]+к[^ ]+д
|-
!'''вампир'''
|в[^ ]+п[^ ]+р
|}


#Убедитесь, что давление ниже 500 кПа.
===Настройка цвета выделения===
#Убедитесь, что температура ниже 3000 кельвинов.
В нижней части окна предоставлена возможность изменить цвет выделения слов. Ввод цвета производится в [[google:цвет+шестнадцатеричный+код|'''шестнадцатеричной системе (HEX)''']]. Цвета можно подобрать по этой [[ColorPalette|'''ссылке''']].
#Убедитесь, что коэффициент энергетической эффективности (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). Цвета можно подобрать по этой ссылке.