# Magic Bank

Сначала прочитайте статью [Установка модификации](https://workshop-guide.magicbyte.ru/workshop/ustanovka-modifikacii).

## Файлы модификации

В архиве с модификацией можно найти следующие файлы:

* Папка DZB - в этой папке содержатся файлы конфигурации и локализации модификации. Помещается в папку профиля сервера.
* Папка MagicBank - в этой папке содержится pbo-файл модификации.
* Файл ConfigConvert.html - конвертер файлов данных игроков из других модификаций-банкингов. Открывается с помощью браузера.

## Конвертирование файлов данных игроков

Чтобы конвертировать файлы данных игроков от старой модификации, необходимо запустить ConfigConvert.html, после чего в браузере откроется вкладка с конвертером. Сначала нужно выбрать, файлы какой модификации конвертировать, после чего нужно нажать на кнопку "выбрать файлы" и выбрать файлы данных игроков (можно выбрать несколько файлов).

![](https://2909774895-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5GELIejIJQv0W9HfglUO%2Fuploads%2FXiJS5pyk6OW9HnOowGLp%2Fimage.png?alt=media\&token=3db89e4f-c92a-42ff-91bb-c803475137b0)

После подтверждения выбора файлов, конвертер автоматически преобразует все файлы в формат, используемый модификацией Magic Bank, и предложит сохранить архив с ними. Если какие-то файлы не удастся преобразовать, они будут проигнорированы.

## Добавление банкоматов

Модификация добавляет 3 стандартных банкомата, представленных класснеймами: DZB\_ATMTinkoff, DZB\_ATMMagicBank, DZB\_ATMKramtsovBank. Для их работы достаточно создать их в мире в любом удобном месте.

## Логи модификации

Модификация ведёт логи всех совершаемых игроками операций. Логи попадают в папку *профиль\_сервера/DZB/logs.* Каждый лог имеет название *DayZBank\_год\_месяц\_день\_час\_минута\_секунда.txt.* Дата и время в названии соответствуют времени запуска модификации. Вся информация в логе соответствует операциям, совершённым после этого времени.&#x20;

## Конфигурация мода

Файл конфигурации мода находится по пути *профиль\_сервера/DZB/config.json*. В приведённом ниже файле конфигурации используются комментарии (символ '//' и следующие после них слова). Используемый формат (JSON) не поддерживает комментарии, поэтому данные файлы не могут быть использованы в качестве файлов конфигурации.

```json5
{
	"Commission": 0.3, //Комиссия, взымаемая при переводе другому игроку 
	"OperationDelay": 5, // Задержка между действиями (снять/пополнить/перевести) в секундах
	"CurrencyConversionRate": { //Список поддерживаемой валюты в формате "класснейм": стоимость_единицы
		"kr_money_rub10": 10, //Один kr_money_rub10 стоит 10 ед. валюты
		"kr_money_rub50": 50, //Один kr_money_rub50  стоит 50 ед. валюты
		"kr_money_rub100": 100, //Один kr_money_rub100 стоит 100 ед. валюты
		"kr_money_rub500": 500, //Один kr_money_rub500 стоит 500 ед. валюты
		"kr_money_rub1000": 1000, //Один kr_money_rub1000 стоит 1000 ед. валюты
		"kr_money_rub2000": 2000, //Один kr_money_rub2000 стоит 2000 ед. валюты
		"kr_money_rub5000": 5000, //Один  kr_money_rub5000 стоит 5000 ед. валюты
	},
	"Account": { //Настройки счёта игрока
		"DefaultCurrencyLimit": 10000, //Стандартный лимит счёта
		"InitialAmount": 1000 //Изначальный баланс счёта
	},
	"Payday": //Настройки системы зарплаты
	{
		"Enable": true, //Вкл/Выкл систему
		"AccumulatePlaytime": true, //Вкл/выкл накопления отыгранного времени
		"Interval": 60, //Сколько времени (в секундах) нужно отыграть, чтобы получить зарплату
		"BasePay": 1000 //Стандартная зарплата
	}
}
```

## Файл данных игрока

Файлы данных игроков находится в папке *профиль\_сервера/DZB/users*. Название файла совпадает со SteamID64 игрока. В приведённом ниже файле конфигурации используются комментарии (символ '//' и следующие после них слова). Используемый формат (JSON) не поддерживает комментарии, поэтому данные файлы не могут быть использованы в качестве файлов конфигурации.

**Важно: изменения в файле данных игрока применяются, только когда игрок не находится на сервере. Изменения, сделанные, пока игрок находится на сервере, отменяются.**

```json5
{
	"AccumulatedPlaytime": 8, //Отыгранное время с прошлой зарплаты (в секундах)
	"Amount": 13000, //Баланс счёта
	"PayModifiers": { //Модификаторы зарплаты игрока в формате "уникальное_название": сумма
		"Example": 500 //Увеличивает зарплату игрока на 500
	},
	"LimitModifiers": { //Модификаторы лимита счёта игрока в формате "уникальное_название": сумма
		"Test": 1000, //Увеличивает лимит счёта игрока на 1000
		"Test2": 2000 //Увеличивает лимит счёта игрока ещё на 2000
	}
}
```

### Модификаторы лимита счёта

В отличие от других модификаций, Magic Bank использует не одно поле бонуса лимита счёта, а систему модификаторов. Это позволяет совмещать несколько бонусов и легко отличать их, а также другим даёт других модам возможность добавлять свои бонусы, не конфликтуя с другими бонусами. Каждый модификатор должен иметь уникальное (для этого игрока) название.

Лимит счёта игрока равен: стандартный лимит счёта + сумма модификаторов. Для файла данных и конфига выше лимит счёта этого игрока будет равен: 10000 + 1000 + 2000 = 13000.

### Модификаторы зарплаты игрока

Аналогично модификатором счёта, модификация также добавляет модификаторы зарплаты. Сумма модификаторов добавляется к **каждой** зарплате игрока. Название каждого модификатора должно быть уникальным.

Зарплата игрока равна: базовая зарплата + сумма модификаторов. Для файла данных и конфига выше зарплата игрока равна: 1000 + 500 = 1500.
