Плагин ShopLeveled
ShopLeveled - Магазины с прокачкой уровней доверия, в плагине можно добавлять новые вещи и улучшать уровень доверия жителя.
Доступен к покупке здесь - https://mcdev.su/product/shopleveled/
pageКвесты (Готовый пресет)pageФермер (Готовый пресет)pageАлхимик (Готовый пресет)pageОружейник (Готовый пресет)Список основных компонентов плагина
Список доступных плейсхолдеров:
%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
- boosters.yml
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
- Папка с магазинами
- registery.yml
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
- Папка с магазином (В примере фигурирует Фермер "farmer")
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
Last updated