Skip to content

Commit

Permalink
Update readmes
Browse files Browse the repository at this point in the history
  • Loading branch information
ArKaNeMaN committed Dec 1, 2023
1 parent 972da6a commit 4530d4f
Show file tree
Hide file tree
Showing 9 changed files with 240 additions and 92 deletions.
2 changes: 1 addition & 1 deletion readme/default-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- [SpawnItems](extensions/modules/spawn-items.md) - Выдача предметов при спавне
- [WeaponMenu](extensions/modules/weapon-menu.md) - Оружейное меню
- [VipInTab](extensions/modules/vip-in-tab.md) - Надпись VIP в таблице счёта игроков
- Vampire - Вампиризм
- [Vampire](extensions/modules/vampire.md) - Вампиризм

## Ограничения

Expand Down
59 changes: 28 additions & 31 deletions readme/extensions/modules/spawn-health.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,41 @@
# SpawnHealth

Модуль, выдающий игроку при спавне дополнительные хп и/или броню.
Выдача игроку при спавне здоровья и/или брони.

## Параметры

| Название | Тип | По умолчанию\* | Описание |
| :-------- | :------------- | :------------- | :------------------------------------------------------------------------------------------- |
| SetHealth | `true`/`false` | `false` | Если `true` - здоровье будет установлено в указанное значение, а если `false` - добавлено |
| Health | Ц.Число | 0 | Количество здоровья, которое будет установлено/добавлено |
| MaxHealth | Ц.Число | Нет | Максимальное количество здоровья, выше которого оно не будет добавлено при `SetHealth: true` |
| | | | |
| SetArmor | `true`/`false` | `false` | Если `true` - брони будет установлена в указанное значение, а если `false` - добавлена |
| Armor | Ц.Число | 0 | Количество брони, которое будет установлена/добавлена |
| Helmet | `true`/`false` | `false` | Выдавать ли шлем вместе с бронёй |
| MaxArmor | Ц.Число | Нет | Максимальное количество брони, выше которого она не будет добавлена при `SetArmor: true` |
| | | | |
| Limits | Массив лимитов | Нет | Условия, при выполнении которых здоровье и броня будут выданы |

## Пример

```json
{
"Module": "SpawnHealth",
"Module": "SpawnHealth",

"Limits": {
"Limit": "Round",
"Min": 2
},
"Limits": {
"Limit": "Round",
"Min": 2
},

"SetHealth": true,
"Health": 110,
"SetHealth": true,
"Health": 110,

"SetArmor": false,
"Armor": 50,
"MaxArmor": 100,
"Helmet": true
"SetArmor": false,
"Armor": 50,
"MaxArmor": 100,
"Helmet": true
}
```

## Параметры

- `SetHealth` - Способ выдачи очков здоровья:
- `true` - сравнять с указанным;
- `false` - добавить к текущему.
- `Health` - Кол-во очков здоровья
- `MaxHealth` - Максимальное кол-во очков брони при добавлении
- Игнорируется, если `SetHealth: true`.

- `SetArmor` - Способ выдачи брони:
- `true` - сравнять с указанным;
- `false` - добавить к текущему.
- `Armor` - Кол-во брони
- `MaxArmor` - Максимальное кол-во очков брони при добавлении
- Игнорируется, если `SetArmor: true`.
- `Helmet` - Выдавать ли шлем:
- `true` - выдавать;
- `false` - не выдавать.
- `Limits` - условия, при выполнении которых здоровье и броня будут установлены.
Начиная со второго раунда игроку с этой привилегией в начале каждого раунда будет устанавливаться по 110 здоровья, а также добавляться шлем и 50 брони, но не более 100.
55 changes: 29 additions & 26 deletions readme/extensions/modules/spawn-items.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,40 @@

_Данный модуль использует контроллер предметов (`VipM-ItemsController`), поставляемый в комплекте с системой привилегий._

## Параметры

| Название | Тип | По умолчанию\* | Описание |
| :------- | :------------------- | :------------- | :---------------------------------------------------- |
| Items | Массив предметов\*\* | - | Предметы, который будут выдаваться |
| Limits | Массив лимитов | Нет | Условия, при выполнении которых предметы будут выданы |

_\* - если указано "-", то параметр является обязательным._
_\*\* - предметы, зарегистрированные в [контроллере предметов](/readme/items.md)_

## Пример

```json
{
"Module": "SpawnItems",

"Limits": {
"Limit": "Round",
"Min": 2
"Module": "SpawnItems",

"Limits": {
"Limit": "Round",
"Min": 2
},

"Items": [
{
"Type": "Weapon",
"Name": "weapon_deagle",
"GiveType": "Replace"
},

"Items": [
{
"Type": "Weapon",
"Name": "weapon_deagle",
"GiveType": "Replace"
},
{
"Type": "Weapon",
"Name": "weapon_hegrenade"
},
"File:Items/DefuseKit"
]
{
"Type": "Weapon",
"Name": "weapon_hegrenade",
"GiveType": "Add"
}
]
}
```

## Параметры

- `Limits` - условия, при выполнении которых предметы будут выданы.
- `Items` - список выдаваемых предметов.

## Примечание

За доступные типы предметов и за их параметры отвечают плагины-расширения для контроллера предемтов.
Начиная со второго раунда игроку с такой привилегией будут выдаваться дигл и осколочная граната.
36 changes: 36 additions & 0 deletions readme/extensions/modules/vampire.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# SpawnHealth

Выдача очков здоровья за убийство игрока.

## Параметры

| Название | Тип | По умолчанию\* | Описание |
| :-------- | :------------- | :------------- | :------------------------------------------------------------------ |
| MaxHealth | Ц.Число | Нет | Максимальное кол-во здоровья, выше которого оно не будет выдаваться |
| ByKill | Ц.Число | 0 | Сколько очков здоровья будет выдаваться за обычное убийство |
| ByHead | Ц.Число | = ByKill | Сколько очков здоровья будет выдаваться за убийство в голову |
| ByKnife | Ц.Число | = ByKill | Сколько очков здоровья будет выдаваться за убийство ножом |
| ByGrenade | Ц.Число | = ByKill | Сколько очков здоровья будет выдаваться за убийство гранатой |
| Limits | Массив лимитов | Нет | Условия, при которых очки здоровья будут выданы |

## Пример

```json
{
"Module": "Vampire",

"ByKill": 5,
"ByHead": 7,
"ByKnife": 10,

"MaxHealth": 100
}
```

Игрок с данной привилегией получит:

- 7 ХП за убийство в голову;
- 10 ХП за убийство ножом;
- 5 ХП за любое другое убийство.

Также, игрок не будет получать очки здоровья выше 100 единиц.
25 changes: 14 additions & 11 deletions readme/extensions/modules/vip-in-tab.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
# VipInTab

Модуль позволяет выводить для игрока статус VIP в TAB-таблице.

## Параметры

| Название | Тип | По умолчанию\* | Описание |
| :------- | :------------- | :------------- | :------------------------------------------------------------------------------ |
| Enabled | `true`/`false` | - | Нужно ли отображать VIP статус |
| Override | `true`/`false` | `false` | Должен ли VIP статус перекрывать дргие статусы, такие как `Bomb`, `Dead` и т.д. |

_\* - если указано "-", то параметр является обязательным._

## Пример

```json
{
"Module": "VipInTab",
"Module": "VipInTab",

"Enabled": true,
"Override": true
"Enabled": true,
"Override": false
}
```

## Параметры

- `Enabled` - будет ли отображаться статус VIP в таблице счёта.
- _Если честно, хз зачем этот параметр нужен :)_
- `Override` - будет ли статус VIP перекрывать остальные статусы типа `Bomb`, `Dead` и т.д.
- `true` - будет;
- `false` - не будет.
8 changes: 5 additions & 3 deletions readme/extensions/modules/weapon-menu.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# WeaponMenu

## Пример

Примеры можно посмотреть в стандартных настройках.
Меню с различными предметами.

## Параметры

Expand Down Expand Up @@ -55,3 +53,7 @@
Если параметр `Title` не указан, пункт будет работать как пропуск строки.

Если параметр `UseCounter` не указан, по умолчанию счётчик будет учитываться.

## Пример

Примеры можно посмотреть в стандартных настройках.
15 changes: 8 additions & 7 deletions readme/items.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
```jsonc
{
"Type": "<ItemType>",
"Name": "<ItemName>",

"<Param1>": "",
/* ... */
"<ParamN>": []
"<ParamKey1>": "<ParamValue1>",
// ...
"<ParamKeyN>": "<ParamValueN>"
}
```

- `<ItemType>` - название типа предмета. Определяется плагином-расширением, регистрирующим тип предмета.
- `<ParamX>` - какой-либо параметр предмета. Названия и типы параметров определяются плагином-расширением, добавляющим тип предмета.
- Поле `Name` необязательно, зависит от типа предмета.
- `<ItemType>` - название типа предмета, зарегистрированного в контроллере предметов.
- `<ParamKeyX>` - ключ параметра предмета. Список доступных параметров ищите в описании к соответствующему типу предметов.
- `<ParamValueN>` - значение параметра. Значение должно соответствовать типу параметра\*.

*\* - JSON поддерживает следующие типы данных:*

## Для авторов расширений предметов

Expand Down
96 changes: 96 additions & 0 deletions readme/json.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Памятка по формату JSON

Ниже приведена некоторая информация про JSON, которая поможет при настройке системы привилегий и не только.

## Типы данных

JSON поддерживает следующие типы данных:

- Числа (целые и дробные) - `123` или `1.23`;
- Строки - `"qwe"`;
- Булевые - `true`/`false`;
- Массивы - `[1, 2]`, могут содержать в себе значения любого типа разделённые запятой;
- Обьекты - `{"k1": "v1", "k2": 2}`, могут содержать в себе пары типа ключ:значение, где ключ - строка, а значение может быть любого типа.

Примеры:

```jsonc
{
"Строка": "qwe",
"Целое число": 123,
"Дробное число": 1.23,
"Булево значение": false,
"Массив": [
"ewq",
321,
{
"Булево значение 2": true
}
],
"Обьект": {
"Строка 2": "rty",
"Целое число 2": 456
}
}
```

_Примечание: периодически возникают ошибки из-за лишних или недостающих скобок у обьектов и массивов, следите за тем, чтобы все открытые скобки были закрыты._

_Примечание: Значения типа `123` и `"123"` не являются взаимозаменяемыми, то есть, если ожидается числовое значение, то при указании второго варианта может возникнуть непредвиденная ошибка. Подобные ситуации могут обрабатываться на уровне кода, но в любом случае лучше использовать типы правильно._

## Запятые

**Очень важно!**

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

Где запятые **нужны**:

- Между элементами массивов `[1, 2]`
- Между парами ключ:значение в обьектах `{"k1": 1, "k2": "v2"}`

Где запятые **не нужны**:

- После последнего элемента массива `[1, 2,]`
- После последней пары ключ:значение в обьекте `{"k1": 1, "k2": "v2",}`

## Отступы и пробелы

Формат JSON абсолютно не чувствителен к отступам, пробелам и пустым строкам.

```jsonc
// Пример 1:
{
"key1": "value 1",
"Key2": true,

"key3": 321
}

// Пример 2:
{"key1":"value 1","Key2":true,"key3":321}
```

Оба примера спарсятся абсолютно одинаково. Разница лишь в том, что первый пример более удобен для восприятия человеком.

Хоть сам формат JSON не чувствителен к отсупам, но очень желательно соблюдать отступы для вложенных значений, так как это

Единственное место, где JSON учитывает пробелы - внутри строковых значений.

## Инструменты

Ниже приведены некоторые инструменты, которые позволят найти или не допустить ошибок при работе с JSON.

### Visual Studio Code

[Скачать](https://code.visualstudio.com/)

Бесплатный мощный текстовый редактор, предназначенный для редактирования кода. Из коробки имеет поддержку многих языков, в том числе JSON.

В ходе редактирования JSON-файла будет подсвечивать допущенные синтаксические ошибки, а также, при нажатии сочетания Shift+Alt+F может отформатировать файл, исправив в нём отступы.

### JSONLint

[Открыть](https://jsonlint.com/)

Если нет желания скачивать VSCode, можно проверять JSON-файл на наличие синтаксических ошибок при помощи этого сайта. Также, сайт может помочь исправить отступы.
Loading

0 comments on commit 4530d4f

Please sign in to comment.