BQL: различия между версиями

черновик перевода
 
Примеры: добавлена минута молчания
 
(не показаны 3 промежуточные версии этого же участника)
Строка 7: Строка 7:
<code>forall QUERY do COMMAND</code>
<code>forall QUERY do COMMAND</code>


''Не совсем, что означает "B" в BQL. Кто-то предлагал расшифровывать первую букву как "bad', "badmin" или "better"''
''Не совсем ясно, что означает "B" в BQL. Кто-то предлагал расшифровывать первую букву как "bad', "badmin" или "better"''


== Запросы ==
== Запросы ==
Строка 24: Строка 24:
* Не все запросы выполняются одинаково быстро. Лучше всего начинать перечисление условий выборки с фильтра <code>with <comp</code> или любого другого фильтра, который наиболее точно находит искомое (наподобие <code>tagged</code>, <code>mindful</code> или <code>alive</code>), так как этим фильтрам не нужно проверять каждую сущность в игре на соответствие условиям. Будьте точны: используйте фильтры так, чтобы они выбирали как можно меньшее количество сущностей. ''Вы же не хотите, чтобы из-за вашей попытки сделать из каждого мыла разумное существо, сервер тормознулся на несколько секунд?''
* Не все запросы выполняются одинаково быстро. Лучше всего начинать перечисление условий выборки с фильтра <code>with <comp</code> или любого другого фильтра, который наиболее точно находит искомое (наподобие <code>tagged</code>, <code>mindful</code> или <code>alive</code>), так как этим фильтрам не нужно проверять каждую сущность в игре на соответствие условиям. Будьте точны: используйте фильтры так, чтобы они выбирали как можно меньшее количество сущностей. ''Вы же не хотите, чтобы из-за вашей попытки сделать из каждого мыла разумное существо, сервер тормознулся на несколько секунд?''


== Запросы движка ==
=== Запросы движка ===


Данные фильтры предоставляются RobustToolbox'ом (движок, на котором сделана ss14) и доступны во всех играх, которые сделаны на нём:
Данные фильтры предоставляются RobustToolbox'ом (движок, на котором сделана ss14) и доступны во всех играх, которые сделаны на нём:
Строка 45: Строка 45:
* <code>above</code> выбирает все сущности над данном типом тайла.
* <code>above</code> выбирает все сущности над данном типом тайла.


== Запросы SS14 ==
=== Запросы SS14 ===


Это дополнительные фильтры, доступные в Space Station 14:
Это дополнительные фильтры, доступные в Space Station 14:
Строка 65: Строка 65:
* ...
* ...


=== Примеры ===
== Примеры ==


* Зарядить все батареи:<br><code>forall with Battery do setbatterypercent $ID 100</code>
* Зарядить все батареи:<br><code>forall with Battery do setbatterypercent $ID 100</code>
Строка 71: Строка 71:
* Выдать всему, кто зовётся "Walter White" lung cancer:<br><code>forall named "Walter White" do invokeverb self "Lung Cancer"</code>
* Выдать всему, кто зовётся "Walter White" lung cancer:<br><code>forall named "Walter White" do invokeverb self "Lung Cancer"</code>
* Взорвать всех и каждого (не надо это делать):<br><code>forall with Body do invokeverb $ID "Explode"</code>
* Взорвать всех и каждого (не надо это делать):<br><code>forall with Body do invokeverb $ID "Explode"</code>
* Удалить все ghost-роли:<br><code>forall with GhostTakeoverAvailable do rmcomp $ID GhostTakeoverAvailable; rmcomp $ID Mind</code>
* День полного доступа:<br><code>forall with AccessReader do rmcomp $ID AccessReader</code>
* Выставить всем игрокам форму мима:<br><code>forall with Mind prototyped MobHuman do setoutfit $ID MimeGear; rmcomp $ID Speech</code>
* Объявить минуту молчания:<br><code>forall with Humanoid do addreagent $ID chemicals MuteToxin 30</code>
Источник — https://station14.ru/wiki/BQL