Плагин ShopLeveled
ShopLeveled - Магазины с прокачкой уровней доверия, в плагине можно добавлять новые вещи и улучшать уровень доверия жителя.
Last updated
ShopLeveled - Магазины с прокачкой уровней доверия, в плагине можно добавлять новые вещи и улучшать уровень доверия жителя.
Last updated
Доступен к покупке здесь -
Список доступных плейсхолдеров:
%mls_level% – Уровень игрока
%mls_exp% – Количество опыта игрока.
%mls_level_exp% – Нужно до следующего уровня.
%mls_next_level% – Следующий уровень.
%mls_next_levelf% – Отличие от `%mls_next_level%`: Eсли следующий уровень последний, то он выдаст “Максимальный”.
%mls_booster% – Текущий бустер игрока (Выдаст имя если есть, если нету вернёт “Отсутствует”).
%mls_booster_count% – Число бустеров на складе.
%mls_completed_quests% – Число выполненных квестов игрока.
Список команд:
[mixlshop.admin.*] /lshop <Название магазина> (Игрок) – Открыть меню указанного магазина.
/lshop list – Список доступны магазинов
/lshop ver – Получить информацию о текущей версии плагина
/booster – Открыть меню бустеров.
[mixlshop.booster] /abooster give <Игрок> <Бустер> – Выдать игроку бустер.
/qstats – Просмотреть статистику квестов/уровней/опыта
Название trait’a: mixLeveledShop – Чтобы наложить трейт вам надо:
Выбрать нужного НПС-а
Ввести команду /trait mixLeveledShop
Зайти в конфиг
Поменять значение с default на нужное вам название магазина.
Пример мультистраничного меню (menu/buy.yml)
YAML:
title: "{shopName}&r > Покупка"
layout:
- "$ $ $ $ B $ $ $ $"
- "# # # $ $ $ # # #"
- "@ @ @ @ @ @ @ @ @"
- "@ @ @ @ @ @ @ @ @"
- "# # < # _ # > # #"
static:
'#':
stack:
type: "BLUE_STAINED_GLASS_PANE"
meta:
name: " "
'$':
stack:
type: "WHITE_STAINED_GLASS_PANE"
meta:
name: " "
plugin:
'B':
type: "BALANCE"
stack:
type: "GOLD_NUGGET"
meta:
name: "&7Текущий баланс продавца: &6{balance} ❖"
'_':
type: "BACK"
stack:
type: "BARRIER"
meta:
name: "&c✖ &9&nНазад&c ✖"
navigation:
next:
id: '>'
has-next:
stack:
type: "ARROW"
meta:
name: "&7Следующая страница &8»"
not-next:
stack:
type: "BLUE_STAINED_GLASS_PANE"
meta:
name: " "
previous:
id: '<'
has-next:
stack:
type: "ARROW"
meta:
name: "&8«&7 Предыдущая страница"
not-next:
stack:
type: "BLUE_STAINED_GLASS_PANE"
meta:
name: " "
filler:
id: '@'
empty:
stack:
type: "GRAY_STAINED_GLASS_PANE"
meta:
name: "&9&nНету предмета!"
fill:
default:
stack:
meta:
# No need to provide type, it'll take it
# from your shop item
# Original item name will be overwritten
# name: "" # Uncomment if you need rename somehow item
# ----------------------
# Lore will be appended
lore:
- " "
- "{description}"
- " "
- " &9╔ &7Цена: &6{price} &8(-{percentage}%) &6❖"
- " &9╚ &7Наличие: §7(§4{current}§7/&a{max}&7)"
- " "
- " &7&o(( Нажмите чтобы купить ))"
low-level:
stack:
meta:
type: "BARRIER"
name: "&9Невозможно купить!"
lore:
- " "
- "&7Вы пока не можете позволить купит себе"
- "&7этот предмет, так как у вас низкий"
- "&7уровень доверия!"
- " "
- "&7Вам нужен: &9{requiredLevel} уровень"
- " "
Пример обычного меню (menu/main-menu.yml)
YAML:
title: "{shopName}"
layout:
- "1 2 2 X X X 2 2 1"
- "1 2 A X B X C 2 1"
- "1 2 2 X X X 2 2 1"
static:
'1':
stack:
type: "BLUE_STAINED_GLASS_PANE"
meta:
name: " "
'2':
stack:
type: "WHITE_STAINED_GLASS_PANE"
meta:
name: " "
plugin:
'A':
type: "BUY"
stack:
type: "EMERALD"
meta:
name: "&9&nКупить&6 ❖"
lore:
- " "
- "&7Тут можно купить различные товары,"
- "&7которые есть у «{shopName}&7»!"
- " "
- "&7&o (( Нажмите, чтобы посмотреть ассортимент ))"
'B':
type: "QUESTS"
stack:
type: "EXPERIENCE_BOTTLE"
meta:
name: "&9&nКвесты"
lore:
- " "
- "&7Повышайте свой уровень доверия выполняя"
- "&7задания."
- " "
'C':
type: "SELL"
stack:
type: "CHEST"
meta:
name: "&9&nПродать&6 ❖"
lore:
- " "
- "&7Здесь вы сможете продать различные"
- "&7предметы этому торговцу."
- " "
- "&7&o (( Нажмите, чтобы посмотреть ассортимент ))"
Языковой файл (language/ru.yml)
YAML:
prefix: "&7[&9DevShopLeveled&7]"
defaults:
rejoin: "Перезайдите на сервер! Возможно ваши данные не прогрузились поэтому это требует перезахода на сервер!"
wait-until-click: "&7[&9Guard&7] Подождите перед тем как кликать!"
unknown-shop: "{prefix} Невозможно найти магазин с идентификатором: &9{name}"
traders:
shops:
buy:
low-balance: "{prefix} На вашем счёте недостаточно средств для покупки этого предмета, вам надо &6{price} ❖&7, у вас есть &6{balance} ❖&7!"
inventory-full: "{prefix} Ваш инвентарь переполнен, пожалуйста очистите его перед покупкой!"
not-available: "{prefix} Товара нет в наличии, вы не можете его купить!"
successfully: "{prefix} Вы успешно купили &9{type}&7 x &9{amount}&7, за &6{price}&7!"
sell:
low-balance: "{prefix} На счёте продавца недостаточно средств для покупки данного товара, зайдите к нему позже!"
invalid-item: "{prefix} У вас нету &9{type}&7 x &9{amount}&7, для продажи!"
storage-full: "{prefix} Складской отдел с этим предмет переполнен! Подойдите позже."
successfully: "{prefix} Вы успешно продали &9{type}&7 x &9{amount}&7, за &6{price}&7!"
quests:
already-complete: "{prefix} Вы уже выполнили этот квест!"
took-success: "{prefix} Вы успешно взяли квест &9&n{name}&7!"
already-took: "{prefix} Вы уже взяли этот квест!"
low-level: "{prefix} У вас слишком низкий уровень доверия, подойдите позже!"
roots:
auto-complete: "{prefix} Этот компонент выполняется автоматически!"
already-complete: "{prefix} Вы уже выполнили этот компонент!"
requirement:
successfully-complete: "{prefix} Вы успешно выполнили Компонент &8#&9{id}&7!"
bring-item:
invalid-material: |-
&7У вас нету нужного материала в инвентаре, вернитесь позже!
&7У вас есть &9{type}&7: &9{current}/{required}
experience:
added: "{prefix} Вам был добавлен опыт, в размере &2&n{experience}&7!"
booster:
expired: "{prefix} У вас истёк бустер &9&n{name}&7!"
inactive: "{prefix} У вас нету активного бустера на данный момент!"
active-info: "{prefix} До конца действия бустера осталось: &9{time}"
has-active: "{prefix} Вы не можете активировать этот бустер пока другой активен!"
same-active: "{prefix} У вас уже действует этот бустер!"
successfully-activated: "{prefix} Вы успешно активировали бустер &9&n{boosterName}&7 (Будет действовать: &9{time}&7)"
commands:
not-player: "{prefix} Вы должны быть игроком!"
permission-denied: "{prefix} У вас недостаточно прав для выполнения данной команды!"
user-not-load: "{prefix} Игрок ещё не успел прогрузится!"
admin:
reload: "{prefix} Вы успешно перезагрузили плагин! (Заняло: &9{took}&7)"
success-open: "{prefix} Вы успешно открыли магазин &9{shopName}&7!"
success-open-other: "{prefix} Вы успешно открыли магазин &9{shopName}&7 для игрока &9{playerName}&7!"
list:
header: "{prefix} Список магазинов: "
delimiter: "&7, "
placeholder: "{name}&7 &9&o({rawName})"
admin-booster:
success: "{prefix} Вы успешно выдали бустер &9{name}&7, игроку &9{playerName}&7!"
unknown: "{prefix} Неизвестный бустер: &9{name}"
list:
header: "{prefix} Список бустеров: "
delimiter: "&7, "
placeholder: "{name}&7 &9&o({rawName})"
user:
stats: |-
&7
&7 Всего выполнено квестов: &9{completed}
&7 Уровень: &9{level} &7({nextLevel})
&7 Опыта: &9{currentExperience}&7/&9{levelExperience}
&7
config.yml
YAML:
# --
# Блок mysql:
# По стандарту будет использовать
# SQL файл, если понадобиться подключить
# к базе, всё что нужно сделать это просто
# поставить use на true
# --
# Блок cache:
# Тут можно просто настроить синхронизацию с помощью
# redis'a, в связи с тем что всё кэшируется,
# вы можете как использовать редис для этого так и обычную
# локальную дату.
# --
# Блок level:
# {current}, {next}, {previous}, {price}
# --
# Блок refill:
# every > Кол-во тиков (Long значение)
mysql:
use: false
host: "localhost"
port: 3306
user: "root"
pass: "password"
data: "leveled_shops"
use-ssl: false
cache:
use: false
host: "127.0.0.1"
port: 6379
use-auth: false
user: "myuser"
pass: "mypassword"
use-ssl: false
level:
exp-formula: "{current} * 300"
max-level: 50
refill:
every: 3600000
redeposit:
every: 3600000
sum: 5000
YAML:
# Увеличение конвертируется в проценты!
# финальное значение = {начальное значение} + (({начальное значение} * {умножаемое}) / 100)
# Пример:
# 150 + ((150 * 50) / 100) = 225 < Это будет то число опыта которое упадёт на баланс
# time обозначать в секундах!
boosters:
"xHalf":
name: "Обычный бустер"
mul: 50
time: 86400
"x2":
name: "Необычный бустер"
mul: 100
time: 43200
"x3":
name: "Эпический бустер"
mul: 200
time: 21600
"x4":
name: "Легендарный бустер"
mul: 300
time: 10800
YAML:
# Формат регистрации:
# "farmer":
# name: "&8&lФермер" # Название которое будет везде отображаться
# initial-balance: 200000 # Начальный баланс
registered-shops:
"farmer":
name: "&8&lФермер"
initial-balance: 200000
"alchemist":
name: "&8&lАлхимик"
initial-balance: 200000
"gunsmith":
name: "&8&lОружейник"
initial-balance: 200000
buy.yml
YAML:
# Формат:
# "<Id>":# <options>
items: "1":
stack:
type: STONE
meta:
name: "Name"
lore:
- "Some lore"
# Uncomment if need
# -----------------
# flags:
# - HIDE_ATTRIBUTES
# enchants:
# - DURABILITY:1
# potion-effects:
# "EFFECT_NAME":
# amplifier: ""
# duration: ""
options:
level: 1
price: 650
initial: 200
refill: 1
max: 200
sell.yml
YAML:
# Формат:
# "<Id>":
# <options>
items: "1":
stack:
type: POTION
meta:
name: "Name"
lore:
- "&7Особое зелье!"
# Uncomment if need
# -----------------
# flags:
# - HIDE_ATTRIBUTES
# enchants:
# - DURABILITY:1
potion-effects:
"LUCK":
amplifier: 10
duration: 3000
options:
level: 1
price: 460
quests.yml
YAML:
quests:
'1':
name: "Укратитель зомби"
description:
- "§fТут рядом со мной, бродят много"
- "§fзомбаков, я бы не хотел от них подхватить"
- "§fчего заразного, я готов дать тебе §6150 ❖"
- "§fесли ты немного очстишь мир от них."
- " "
- "§fЗадача:"
- "§8- §fУбить 15 зомби"
- " "
- "§fНаграда: §6100 опыта + 150 ❖"
complete:
- "exp: 100"
- "cmd: money give {0} 150"
- "msg: §7Вы успешно выполнили квест §6§nУкратитель зомби§7!"
required-level: 1
requirements:
'1':
type: "kill-mob"
description:
- " "
- "&fВы убили всего зомби: &6{0}&8/&215"
- " "
var: "ZOMBIE"
count: 15
'2':
name: "Укратитель скелетов"
description:
- "§fМне жутко страшно при виде"
- "§fэтих костлявых недозомби,"
- "§fя буду благодарен если ты"
- "§fприкончишь парочку."
- " "
- "§fЗадача:"
- "§8- §fУбить 25 скелетов"
- " "
- "§fНаграда: §6100 опыта + 200 ❖"
complete:
- "exp: 100"
- "cmd: money give {0} 200"
- "msg: §7Вы успешно выполнили квест §6§nУкратитель скелетов§7!"
required-level: 1
requirements:
'1':
type: "kill-mob"
description:
- " "
- "&fВы убили всего скелетов: &6{0}&8/&225"
- " "
var: "SKELETON"
count: 25
'3':
name: "Помощник"
description:
- "§fБуду благодарен если ты мне принесёшь"
- "§fнемного ресурсов на продажу, а то у меня"
- "§fуже совсем всё плохо с ними..."
- " "
- "§fЗадача:"
- "§8- §fПринести 10 буханок хлеба"
- "§8- §fПринести 10 стогов сена"
- " "
- "§fНаграда: §6100 опыта + 240 ❖"
complete:
- "exp: 100"
- "cmd: money give {0} 240"
- "msg: §7Вы успешно выполнили квест §6§nПомощник§7!"
required-level: 2
requirements:
'1':
type: "bring-item"
description:
- " "
- "&fВы принесли буханок: &6{0}&8/&210"
- " "
var: "BREAD"
count: 10
'2':
type: "bring-item"
description:
- " "
- "&fВы принесли стогов сена: &6{0}&8/&210"
- " "
var: "HAY_BLOCK"
count: 10