mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 09:43:00 +01:00
Compare commits
1 Commits
1.12
...
dev-alchem
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f4096cf1d |
344
.gitignore
vendored
344
.gitignore
vendored
@@ -1,330 +1,42 @@
|
||||
# Eclipse stuff
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings
|
||||
|
||||
### Eclipse template
|
||||
# netbeans
|
||||
/nbproject
|
||||
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
# we use maven!
|
||||
/build.xml
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
# maven
|
||||
/target
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
# vim
|
||||
.*.sw[a-p]
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
# various other potential build files
|
||||
/build
|
||||
/bin
|
||||
/dist
|
||||
/manifest.mf
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
/world
|
||||
|
||||
# CDT- autotools
|
||||
.autotools
|
||||
# Mac filesystem dust
|
||||
*.DS_Store
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
||||
|
||||
# Annotation Processing
|
||||
.apt_generated/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
### Android template
|
||||
# Built application files
|
||||
*.apk
|
||||
*.ap_
|
||||
|
||||
# Files for the ART/Dalvik VM
|
||||
*.dex
|
||||
|
||||
# Java class files
|
||||
*.class
|
||||
|
||||
# Generated files
|
||||
gen/
|
||||
out/
|
||||
|
||||
# Gradle files
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
# Proguard folder generated by Eclipse
|
||||
proguard/
|
||||
|
||||
# Log Files
|
||||
*.log
|
||||
|
||||
# Android Studio Navigation editor temp files
|
||||
.navigation/
|
||||
|
||||
# Android Studio captures folder
|
||||
captures/
|
||||
|
||||
# IntelliJ
|
||||
# intellij
|
||||
*.iml
|
||||
.idea/workspace.xml
|
||||
.idea/tasks.xml
|
||||
.idea/gradle.xml
|
||||
.idea/assetWizardSettings.xml
|
||||
.idea/dictionaries
|
||||
.idea/libraries
|
||||
.idea/caches
|
||||
|
||||
# Keystore files
|
||||
# Uncomment the following line if you do not want to check your keystore files in.
|
||||
#*.jks
|
||||
|
||||
# External native build folder generated in Android Studio 2.2 and later
|
||||
.externalNativeBuild
|
||||
|
||||
# Google Services (e.g. APIs or Firebase)
|
||||
google-services.json
|
||||
|
||||
# Freeline
|
||||
freeline.py
|
||||
freeline/
|
||||
freeline_project_description.json
|
||||
|
||||
# fastlane
|
||||
fastlane/report.xml
|
||||
fastlane/Preview.html
|
||||
fastlane/screenshots
|
||||
fastlane/test_output
|
||||
fastlane/readme.md
|
||||
### Dropbox template
|
||||
# Dropbox settings and caches
|
||||
.dropbox
|
||||
.dropbox.attr
|
||||
.dropbox.cache
|
||||
### Windows template
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Dump file
|
||||
*.stackdump
|
||||
|
||||
# Folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
### Maven template
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
dependency-reduced-pom.xml
|
||||
buildNumber.properties
|
||||
.mvn/timing.properties
|
||||
.mvn/wrapper/maven-wrapper.jar
|
||||
### NetBeans template
|
||||
nbproject/private/
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
### macOS template
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
### Linux template
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
### GPG template
|
||||
secring.*
|
||||
|
||||
### Gradle template
|
||||
.gradle
|
||||
/build/
|
||||
|
||||
# Ignore Gradle GUI config
|
||||
gradle-app.setting
|
||||
|
||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||
!gradle-wrapper.jar
|
||||
|
||||
# Cache of project
|
||||
.gradletasknamecache
|
||||
|
||||
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
||||
# gradle/wrapper/gradle-wrapper.properties
|
||||
### SBT template
|
||||
# Simple Build Tool
|
||||
# http://www.scala-sbt.org/release/docs/Getting-Started/Directories.html#configuring-version-control
|
||||
|
||||
dist/*
|
||||
lib_managed/
|
||||
src_managed/
|
||||
project/boot/
|
||||
project/plugins/project/
|
||||
.history
|
||||
.cache
|
||||
.lib/
|
||||
### Example user template template
|
||||
### Example user template
|
||||
|
||||
# IntelliJ project files
|
||||
.idea
|
||||
out
|
||||
gen### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# IntelliJ
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
# Project Stuff
|
||||
/src/main/resources/mcMMO
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
### Kotlin template
|
||||
# Compiled class file
|
||||
# Log file
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
# Other Libraries
|
||||
*.jar
|
||||
*.war
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
### Java template
|
||||
# Compiled class file
|
||||
# Log file
|
||||
# BlueJ files
|
||||
# Mobile Tools for Java (J2ME)
|
||||
# Package Files #
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
# Atlassian Stuff
|
||||
/atlassian-ide-plugin.xml
|
||||
|
||||
385
Changelog.txt
385
Changelog.txt
@@ -7,399 +7,24 @@ Key:
|
||||
! Change
|
||||
- Removal
|
||||
|
||||
Version 2.2.0
|
||||
mcMMO has a new config system (WIP)
|
||||
mcMMO for Bukkit no longer requires Spigot in order to play, you can now use Bukkit instead (WIP)
|
||||
mcMMO is now abstracted from the Bukkit API in order to support more platforms (WIP)
|
||||
mcMMO has changed from using maven to gradle!
|
||||
mcMMO is now a gradle project (this makes it much easier for us to support older versions of MC and other APIs)
|
||||
|
||||
Version 2.1.12
|
||||
Salvage config entries are no longer case sensitive
|
||||
Fixed a bug where Fishing was not rewarding vanilla XP orbs
|
||||
|
||||
Version 2.1.11
|
||||
Fixed a bug where Rupture was using the wrong permission node (new permission node: mcmmo.ability.swords.rupture)
|
||||
|
||||
Version 2.1.10
|
||||
Fishing command did an oopsie
|
||||
Endstone now gives the same XP as Stone (update your experience.yml)
|
||||
|
||||
Version 2.1.9
|
||||
Fixed a bug where grabbing the version of WG would throw classnotdefined errors
|
||||
|
||||
Version 2.1.8
|
||||
mcMMO now checks for WG 7 before attempting to use the WG API
|
||||
Made some optimizations for our WG integration
|
||||
Fixed a bug where Bite chance for Master Angler was displaying too many decimal places
|
||||
Fixed a bug where Abilities didn't check for permission nodes before activating
|
||||
MaxBonusLevel now has specific entries for Standard and Retro in advanced.yml
|
||||
MaxBonusLevel for Critical Strikes changed from 75/750 to 100/1000
|
||||
MaxBonusLevel of Dodge changed from 80/800 to 100/1000
|
||||
MaxBonusLevel of Rupture changed from 20/200 to 100/1000
|
||||
MaxBonusLevel of Counter Attack changed from 60/600 to 100/1000
|
||||
|
||||
Version 2.1.7
|
||||
Fixed an almost 6 year old bug where Salvage materials did not have a defined material count so they defaulted to 2 (which could lead to shovels giving back more diamonds than normal)
|
||||
Added spam detection for Unarmed's bonus damage and disarm
|
||||
Corrected an error where master angler for retro only required level 150 instead of 500 (update your skillranks.yml)
|
||||
Fixed a bug where Players could see hidden party members in the party member listings
|
||||
(API) Added addXpFromBlocks to ExperienceAPI to help make adding XP for a player easier
|
||||
(API) Added addXpFromBlocksBySkill to ExperienceAPI to help make adding XP for a player easier
|
||||
(API) Added addXpFromBlock to ExperienceAPI to help make adding XP for a player easier
|
||||
(API) Added addXpFromBlockBySkill to ExperienceAPI to help make adding XP for a player easier
|
||||
|
||||
Version 2.1.6
|
||||
Fixed a bug where Arcane Salvage could never fail
|
||||
Recolored some lines in the locale related to failure from white to red
|
||||
Fixed a bug where Salvage was giving back too many resources
|
||||
SubSkillFailure renamed to SubSkillFailed in config.yml
|
||||
SubSkillFailed now sends copies to chat by default
|
||||
SubSkillFailed no longer sends messages to the action bar by default
|
||||
|
||||
Version 2.1.5
|
||||
mcMMO no longer ignores cancelled events relating to the player left or right clicking
|
||||
|
||||
Version 2.1.4
|
||||
Fixed a bug where Alchemy didn't gain XP
|
||||
Fixed a bug where Archery gained XP from mob spawned entities
|
||||
Fixed a display bug with Roll on /acrobatics command
|
||||
Fixed a display bug for bite chance on Fishing
|
||||
Fixed a display bug for treasure drop chances on Fishing
|
||||
Fixed a display bug for Arcane Forging on Repair
|
||||
Fixed a display bug for Super Repair on Repair
|
||||
Fixed a display bug for Repair Mastery on Repair
|
||||
Fixed a display bug for Second Smelt on Smelting
|
||||
Repair Mastery now uses a rank system
|
||||
Super Repair now uses a rank system
|
||||
Changed the stat for bite chance to be more clear that its additive chance
|
||||
Fixed Styling for the /salvage command
|
||||
Temporarily disabled Flux Mining
|
||||
Removed XP from entities that target endermite to prevent easy exploitation (Credits to TheBentoBox for the tip!) [Can be turned off in experience.yml]
|
||||
Fixed a bug where static chance skills like Arcane Salvage were using incorrect calculations for success
|
||||
Advanced Salvage now uses a rank system
|
||||
Arcane Salvage now goes by your rank to determine the maximum amount of materials salvaged and is no longer percentage based
|
||||
Fixed a bug where Iron Arm was checking for Iron Grip to be unlocked instead of itself
|
||||
(Plugin Compatibility) mcMMO no longer ignores cancelled block place events (this is to prevent XP gains from placed blocks)
|
||||
(Plugin Compatibility) mcMMO now ignores cancelled events relating to the player left or right clicking
|
||||
(Locale) Changed the string for "Salvage.Ability.Bonus.1" to fit the new material recovery mechanics of Salvage
|
||||
(Config) Added a toggle for the new endermite enderman xp farm fix in experience.yml "ExploitFix.EndermanEndermiteFarms"
|
||||
(Config) Cleaned up some leftover 'unlocklevel' settings, this stuff is now handled in skillranks.yml
|
||||
(Config) Removed Salvage.MaxPercentage
|
||||
(Config) Removed Salvage.MaxPercentageChance
|
||||
(Config) Added Salvage.ArcaneSalvage.MaxBonusLevel
|
||||
(Config) Added Salvage.ArcaneSalvage.MaxChance
|
||||
|
||||
Version 2.1.3
|
||||
Temporarily removed the unarmed no-item pickup feature until its fixed
|
||||
|
||||
Version 2.1.2
|
||||
(Compatibility) mcMMO now deals custom damage type for all damage sources to be more compatible with other plugins (such as anti-cheat)
|
||||
(Perks) Fixed a bug where the Lucky perk wasn't adding to success
|
||||
(Skills) mcMMO will now listen to cancelled events to remove our temporary enchantments from tools
|
||||
(Skills) Fixing a bug where Shake didn't calculate success correctly
|
||||
(Skills) Fixed a bug where Arcane Forging didn't calculate success and failure correctly
|
||||
(Skills) Fixed a bug where Salvage didn't calculate success and failure correctly
|
||||
(Skills) Fixed a bug where Flux Mining didn't calculate success correctly
|
||||
(Skills) Fixed a bug where Shake didn't calculate correctly
|
||||
(Skills) Fixed a bug where Pummel didn't calculate correctly
|
||||
(Skills) Tree Feller now works on Mushroom Stems
|
||||
(Skills) Fixed a bug where magic chance would show as null
|
||||
(Skills) Fixed a bug where Trap percentages were added to Fishing even though they no longer exist
|
||||
(Skills) Magic Hunter now uses a rank system
|
||||
(Skills) Fixed a bug where Magic Hunter would work without treasure hunter
|
||||
(Skills) As long are you are empty handed mcMMO will no longer put items into your hands
|
||||
(Skills) Improved the styling on /smelting
|
||||
(Skills) Iron Arm Style can now reach a bonus damage of 10 (up from 8)
|
||||
(Skills) Iron Arm Style now uses a rank system
|
||||
(Skills) Iron Grip now uses a rank system
|
||||
(Skills) Disarm now uses a rank system
|
||||
(Skills) Arrow Deflect now uses a rank system
|
||||
(Skills) Flux Mining is now a passive effect when you mine ore instead of requiring a special pickaxe
|
||||
(Skills) Removed the Flux Mining mcMMO Pickaxe Item
|
||||
(Style) Locked skills now are styled differently in the skill command display
|
||||
(Experience) Phantoms have been added to the default experience.yml with a value of 4.0 (update your config!)
|
||||
(Experience) Default XP value for witch set to 0.1 instead of 0.0
|
||||
(Experience) Default XP value for ender dragon set to 1.0 instead of 0.0
|
||||
(Style) Added @ symbol styling for hover tooltips to the locale
|
||||
(Style) Added the skill names in the skill commands display to the locale so it can now be edited and styled
|
||||
(Experience) Renamed Grass to Grass_Block in treasures.yml to allow grass to give items again (update your configs manually or delete to regen)
|
||||
(Experience) Wood blocks now give XP and are affected by Tree Feller (6 sided bark blocks)
|
||||
(API) Moved XPGainReason from skills to experience package
|
||||
(API) Added XpGainSource for tracking sources of XP
|
||||
(API) You can now specify XpGainSource when adding xp to players
|
||||
(Config) The Extra Stats option for XP bars now overrides the setting for updating XP bars every time XP is gained
|
||||
(Config) Added an option for Party XP gains to not update XP bars
|
||||
(Config) Added an option for Passive XP gains to not update XP bars (smelting/brewing)
|
||||
(Config) Added warnings if mcMMO finds a MaxBonusLevel of 0 for any skill that incorporates RNG
|
||||
(Config) Removed config options for Iron Arm
|
||||
(Config) Removed the options related to the Flux Mining Item
|
||||
(Config) Second Smelt has a max activation chance of 50% instead of 100% (you can update your configs or gen new ones to get this change)
|
||||
|
||||
Version 2.1.1
|
||||
= Fixed an issue where excavation wasn't using the correct permission node
|
||||
= Added protection against AFK fishing
|
||||
= Acrobatics now uses much better anti-exploit detection
|
||||
|
||||
Version 2.1.0
|
||||
+ mcMMO now features XP bars! Configurable in experience.yml
|
||||
+ Locale files now support & codes for colors and formatting!
|
||||
+ Prevented exploits involving blocks made from entities (snowmen, etc..)
|
||||
+ Added JSON integration to all Skill Commands
|
||||
+ Added config setting to enable or disable old mcMMO skill scaling (General.RetroMode) this is on by default for existing installs
|
||||
+ You can now disable specific skills in coreskills.yml without the need for permissions
|
||||
+ Added links to mcMMO related websites to various commands
|
||||
+ Certain elements of mcMMO's UI have been restyled
|
||||
+ Added the tagline "Overhaul Era" to various locations until 3.0.0 comes out
|
||||
+ You can now disable mcMMO completely for specific worlds via world_blacklist.txt in /plugins/mcMMO/
|
||||
+ (WorldGuard) mcMMO now supports worldguard, you can use the flags "mcmmo" and "mcmmo-xp" on regions (they default to on unless otherwise specified)
|
||||
! (Scoreboards) Scoreboards are now disabled by default, I don't like them. You can turn them back on in config.yml
|
||||
+ (Sounds) Rolling now plays a sound (Graceful Roll has a different sound :) )
|
||||
+ (Sounds) Activating Super abilities plays a sound (other plays can hear this)
|
||||
+ (Sounds) Skill Unlock Notifications have sounds
|
||||
+ (Sounds) Readying a tool for a super ability now plays a sound
|
||||
+ (Sounds) Bleed DOT now plays a sound
|
||||
+ (Experience) mcMMO now notifies you when you progress in a skill!
|
||||
+ (Experience) Coral (blocks) now give Mining XP
|
||||
+ (Experience) Coral (plants) now give Herbalism XP
|
||||
+ (Experience) Blue Ice now gives Mining XP
|
||||
+ (Experience) Dolphins now give combat XP
|
||||
+ (Experience) Drowned mobs now count towards combat XP
|
||||
+ (Experience) You can now set guaranteed minimum values for XP gained if diminishing returns are enabled, this value defaults to 5% (experience.yml)
|
||||
+ (Events) Starting an XP event will now use the title API (toggle this in advanced.yml)
|
||||
+ (Sound) Volume and Pitch of sounds can now be configured in the new sounds.yml file
|
||||
+ (MySQL) Added support for SSL for MySQL/MariaDB (On by default)
|
||||
! (Skills) Taming's Gore now uses Rupture Rank 1 for its DoT calculations
|
||||
! (Skills) Sword's Bleed has been renamed to Rupture
|
||||
! (Skills) Sword's Rupture no longer has an internal hard coded limit
|
||||
! (Skills) Sword's Serrated Strikes now uses your Rupture rank to determine the damage/ticks for its bleed effect.
|
||||
! (Skills) Sword's Rupture now ticks four times as fast
|
||||
! (Skills) Sword's Rupture now refreshes bleed duration instead of adding duration when applying bleed to the same target
|
||||
! (Skills) Sword's Rupture will now deal lethal damage
|
||||
= (Skills) Fixed a bug where Rupture would apply an incorrect amount of bleed ticks
|
||||
! (Skills) Sword's Rupture now reaches its max proc chance at level 20 (200 in Retro)
|
||||
! (Skills) Sword's Rupture now has a max chance to proc of 33% instead of 70%
|
||||
! (Skills) Sword's Rupture now deals 50% more damage at above Rank 3 and can last much longer! The base damage for Bleed has been increased as well (update your advanced.yml admins)
|
||||
! (Skills) Sword's Rupture no longer triggers invincibility frames when damaging your opponent
|
||||
= (Skills) Furnaces now give XP to the last person to modify their inventory instead of the first person to open them
|
||||
+ (Skills) Ability Lengths now have a default skill cap at which they stop increasing in length, configurable in advanced.yml (endurance perks extend this limit)
|
||||
+ (Skills) Added a new subskill to some skills 'Understanding The Art' this adds nothing new, but tracks benefits that increase together that seemed unrelated, which was previously a bit obfuscated.
|
||||
+ (Skills) Tool alerts now are sent to the Action Bar
|
||||
+ (Skills) Super Ability activation alerts are now sent to the Action Bar
|
||||
+ (Skills) Certain Skill messages are now sent to the Action Bar
|
||||
+ (Skills) Added some missing information to skill stats
|
||||
+ (Config) Skill Rank requirements are now defined in skillranks.yml you cannot add or remove ranks from this file
|
||||
+ (Config) Added option to use SSL for MySQL in config.yml
|
||||
+ (Config) Added option to disable the new URL links to config.yml
|
||||
+ (Config) New config file added coreskills.yml
|
||||
+ (Config) Added rank settings for the new Woodcutting skill
|
||||
+ (Config) Added configurable parameters for the new Tree Feller
|
||||
+ (Config) Added retro toggle for Tree Feller
|
||||
+ (Config) Added toggle to disable all scoreboards
|
||||
+ (Chat) Added ability for admins to spy on party chat (off unless toggled on)
|
||||
+ (Commands) Added new info command /mmoinfo or /mcinfo
|
||||
+ (Commands) Added toggle command /mcchatspy
|
||||
+ (API) Added many missing SubSkills to SubSkillType class
|
||||
+ (Permissions) Added permission node mcmmo.commands.mcchatspy & mcmmo.commands.mcchatspy.others
|
||||
+ (Permissions) Added permission nodes for Harvest Lumber, Splinter, Nature's Bounty, and Bark Surgeon
|
||||
+ (Permissions) Added mcmmo.commands.mmoinfo for the new mmoinfo/mcinfo command
|
||||
! (Permissions) Call of the wild now uses mcmmo.ability.taming.callofthewild instead of mcmmo.ability.taming.callofthewild.all
|
||||
+ (Locale) Added locale strings for new Woodcutting abilities
|
||||
+ (Locale) Added locale strings for mcchatspy command
|
||||
+ (Locale) Added locale strings for JSON integration
|
||||
+ (Locale) Added locale strings for Taming's Pummel SubSkill
|
||||
+ (Locale) Added locale strings for Unarmed's Block Cracker SubSkill
|
||||
- (Locale) Removed localizations with the following codes for being almost empty: id, HR_hr, et_EE, lv, lt, no, pl_PL, pt_PT, tr_TR
|
||||
- (Config) Removed SkillShot's IncreaseLevel & IncreasePercentage (replaced by RankDamageMultiplier)
|
||||
- (Config) Removed AxeMastery's MaxBonus & MaxBonusLevel (replaced by RankDamageMultiplier)
|
||||
= (Events) Fixed bug where XP rate could be a negative number
|
||||
= (Experience) Fixed a bug where you could set a players levels into the negative and bad things would happen
|
||||
= (Plugin Compatibility) mcMMO now fires new custom events relating to changes it makes to player scoreboards, plugin authors can listen to these events to improve compatibility
|
||||
= (Items) Chimaera Wing now tracks cooldowns between sessions for players (no more disconnect abuse)
|
||||
= (Skills) Added missing mushroom blocks to experience.yml defaults
|
||||
= (Skills) Tridents will no longer be considered unarmed
|
||||
= (MySQL) You can now inspect offline players
|
||||
= (MySQL) When converting from MySQL to flatfile mcMMO will now properly include all users in the conversion process
|
||||
= (Commands) '/mcMMO help' no longer displays the other/special commands category to players lacking permissions
|
||||
+ (Party) Parties can now have size limits (configurable in config.yml), party size is unlimited by default
|
||||
+ (Party) You can now turn on Friendly Fire for parties in config.yml
|
||||
+ (Debug Stick) The Debug stick can now tell you about properties of a block related to Excavation
|
||||
! (Deaths) Fixed the bug where mob names would be replaced by hearts
|
||||
! (Experience) The XP values of fish are now based on their rarity and have been drastically changed
|
||||
! (Experience) Skills now start at level 1 (configurable in advanced.yml)
|
||||
! (Item) Improved some of the messages sent to the player regarding the Chimaera Wing
|
||||
! (Party) Party member list will only include members of the party that you can see (aren't vanished)
|
||||
! (Skills) Excavation Treasure Hunter is renamed to Archaeology
|
||||
! (Skills) Swords no longer require blocking with a shield to trigger counter attacks
|
||||
! (Skills) Stripping wood and right clicking on stripped wood will no longer ready your Axe
|
||||
! (Skills) Some skill level rank requirements have changed
|
||||
! (Skills) Green Thumb now uses a rank system
|
||||
! (Skills) Farmer's Diet & Fisherman's Diet now use a rank system
|
||||
! (Skills) Fixed an edge case bug where Blast Mining wouldn't inform the player that it was on cooldown
|
||||
! (Skills) mcMMO skills will now be on a scale from 1-100 instead of 0-1000 (for existing mcMMO installs this is opt-in and off by default)
|
||||
! (Skills) Skill Super Powers now use a rank system, almost all of them unlocking first at level 10
|
||||
! (Skills) Acrobatics' Roll exploit detection was tweaked to still allow for Roll to trigger even if it rewards no XP
|
||||
! (Skills) Acrobatics' Roll & Gracefull Roll are now considered the same skill (both mechanics are still there)
|
||||
! (Skills) Woodcutting's Double Drop subskill is now named Harvest Lumber
|
||||
! (Skills) Archery's Skill Shot now uses a rank system
|
||||
! (Skills) Swords' Bleed now uses a rank system
|
||||
! (Skills) Swords' Counter Attack now uses a rank system
|
||||
! (Skills) Axe's Axe Mastery now uses a rank system
|
||||
! (Skills) Axe's Impact now uses a rank system
|
||||
! (Skills) Herbalism's Farmer's Diet now uses a rank system
|
||||
! (Skills) Herbalism's Green Thumb now uses a rank system
|
||||
! (Skills) Shake now uses a rank system
|
||||
! (Skills) Flux Mining now uses a rank system
|
||||
! (Skills) Removed traps from fishing
|
||||
! (Skills) Dodge now uses a rank system
|
||||
! (Skills) Arrow Retrieval now uses a rank system
|
||||
! (Skills) Axes' Critical Strikes now uses a rank system
|
||||
! (Skills) Axes' Greater Impact now uses a rank system
|
||||
! (Skills) Taming's Beast Lore now uses a rank system
|
||||
! (Skills) Taming's Gore now uses a rank system
|
||||
! (Skills) Taming's Call of the Wild now uses a rank system
|
||||
! (Skills) Taming's Pummel now uses a rank system
|
||||
! (Kraken) Removed everything involving the kraken
|
||||
= (Skills) Shake now sends custom damage types for better nocheat compat
|
||||
! (Config) Unarmed.IronArm in advanced.yml is now Unarmed.IronArmStyle
|
||||
! (Config) Unarmed.Deflect in advanced.yml is now Unarmed.ArrowDeflect
|
||||
! (Config) Swords.Counter in advanced.yml is now Swords.CounterAttack
|
||||
! (Config) Archery.Retrieve in advanced.yml is now Archery.ArrowRetrieval
|
||||
! (Config) Axes.CriticalHit in advanced.yml is now Axes.CriticalStrikes
|
||||
! (Config) Archery's Skill Shot now uses RankDamageMultiplier for its damage bonus calculations
|
||||
! (Config) Axe's Axe mastery now uses RankDamageMultiplier for its damage bonus calculations
|
||||
! (Permissions) Replaced the old Double Drop permission node for woodcutting with a new Harvest Lumber permission node
|
||||
! (Permissions) Fast Food Service permission node renamed to mcmmo.ability.taming.fastfoodservice
|
||||
! (Permissions) Counter Attack permission node renamed to mcmmo.ability.swords.counterattack
|
||||
! (Permissions) Arrow Deflect permission node renamed to mcmmo.ability.unarmed.arrowdeflect
|
||||
! (Permissions) Iron Arm Style permission node renamed to mcmmo.ability.unarmed.ironarmstyle
|
||||
! (Permissions) Remove all mob health bar permissions, this is no longer a per-player setting.
|
||||
! (Commands) Removed the mobhealthbar command, this is no longer a per-player setting.
|
||||
! (Locale) The descriptions of a few skills have changed
|
||||
! (Locale) Removed redundant information from some skill names and descriptions en_US (other locales will need to be updated)
|
||||
! (Locale) SubSkill locale keys are now located at {ParentSkill}.SubSkill.SubSkillName
|
||||
! (Locale) Super Abilities no longer have (ABILITY) in their Skill.Effect strings
|
||||
! (API) mcMMO is now built against Spigot-API instead of Bukkit
|
||||
! (API) Moved a lot of methods from SkillCommand to SkillUtils
|
||||
! (API) SkillType is now PrimarySkillType
|
||||
! (API) SecondarySkill is now SubSkillType
|
||||
! (API) AbilityType is now SuperAbilityType
|
||||
! (API) SecondaryAbilityEvent is now SubSkillEvent
|
||||
! (API) SubSkillType has had many helpful methods added to it
|
||||
! (API) GREEN_THUMB_PLANT & GREEN_THUMB_BLOCK are replaced by GREEN_THUMB
|
||||
! (Code) Refactored some unreadable code relating to SecondaryAbilityType activation in SkillUtils
|
||||
|
||||
Version 2.0.0
|
||||
= Fixed an interaction between Tree Feller and Stripped Wood
|
||||
! Fireworks no longer fire by default for ability activation/deactivation
|
||||
! Website has been changed and the MOTD string relating to it reflects this
|
||||
! Discord link added to mcMMO command
|
||||
! Updated misc strings relating to mcMMO
|
||||
|
||||
|
||||
Version 1.5.05-SNAPSHOT
|
||||
|
||||
Version 1.5.04
|
||||
+ Added option to config.yml to control mcMMO generated sound volume
|
||||
+ Added option to config.yml to truncate existing player skill levels that exceed the skill level cap
|
||||
+ Falling blocks persist mcMMO natural data
|
||||
= Woodcutting double drops correctly identify acacia and dark oak logs
|
||||
= Skill Reset command now correctly identifies arguments
|
||||
= Hylian Treasure config options are now actually used
|
||||
= Child skills now use parent skills configured skill caps properly
|
||||
= Auto Update config now properly works
|
||||
! Item dropped from blocks now drop from the center
|
||||
! Potions Config updated for 1.9
|
||||
! Flux mining now simulates a block break event for other plugins to act upon
|
||||
! Zombie Pigmen spawned from nether portals are now considered spawner mobs
|
||||
! Flux Pickaxe lore now appends to existing lore as opposed to replacing it
|
||||
! Party chat no longer displays colors when logged in server console
|
||||
- Treefeller no longer lowers exp for big trees
|
||||
- No longer supports 1.8 :(
|
||||
- Removed plugin metrics
|
||||
|
||||
Version 1.5.03
|
||||
= Fixed bug where absorption hearts could be attacked by allied players
|
||||
= Fixed bug where new forms of stone would drop the wrong type when mined with Silk Touch
|
||||
= Fixed bug where blocks would not get tracked correctly when using sticky pistons and slime blocks in certain situations
|
||||
= Fixed bug where config value for Daze damage was ignored
|
||||
= Fixed UUID updater to not lose data on errors
|
||||
= Fixed bug where uuid update could result in large amounts of user data being deleted
|
||||
= Fixed bug where custom potions were missed in potion stage calculation
|
||||
= Fixed piston dupe bugs permanently
|
||||
= Fixed bug involving user name changes
|
||||
= Fixed old user purge to properly calculate months
|
||||
= Fixed bug where Repair would incorrectly check items
|
||||
= Fixed bug where apostrophes in locale files would not read correctly
|
||||
= Fixed bug where treasure data was limited to 255 instead of Short.MAX_VALUE
|
||||
! Moved more user loading calculations to async loading thread to reduce lag on login
|
||||
|
||||
Version 1.5.02
|
||||
+ Added option to config.yml for Chimaera Wings to stop using bed spawn points
|
||||
+ Added option to config.yml to let non-tools in hand count as unarmed
|
||||
+ Added option to experience.yml to control XP gained by killing bred animals
|
||||
+ Added support for 1.8 mobs and features
|
||||
= Fixed bug where no Mining XP was granted when Flux Mining was successful
|
||||
= Fixed bug with UUID conversions in Flatfile
|
||||
= Fixed a couple Dupe bugs that were introduced recently
|
||||
= Fixed bug where MobHealthbarTypes were not saved between server restarts
|
||||
! Changed Flux Mining mechanics. In order to use the ability, you need to infuse a pickaxe with furnace powers first.
|
||||
! Scoreboard tips are only shown a couple of times to the player, instead of once per login session
|
||||
! Changed Archery distance multiplier to be configurable
|
||||
! Archery distance XP bonus cannot exceed indefinitely anymore
|
||||
|
||||
Version 1.5.01
|
||||
Version 1.5.01-dev
|
||||
+ Added new child skill; Salvage
|
||||
+ Added UUID support!
|
||||
+ Added SQL connection pooling and async loading!
|
||||
+ Added the long awaited Diminished Returns feature
|
||||
+ Added new feature to Herbalism. Instantly-regrown crops are protected from being broken for 1 second
|
||||
+ Added option to config.yml to show the /mcstats scoreboard automatically after logging in
|
||||
+ Added option to config.yml for Alchemy. Skills.Alchemy.Prevent_Hopper_Transfer_Bottles
|
||||
+ Added option to config.yml for Scoreboards, display "Ability" instead of ability names on the scoreboards
|
||||
+ Added options to experience.yml for Dirt and Sand variations
|
||||
+ Added support for `MATERIAL|data` format in treasures.yml
|
||||
+ Added API to experience events to get XP gain reason
|
||||
+ Added API to check if an entity is bleeding
|
||||
+ Added API to ExperienceAPI to get the amount of XP needed for a level
|
||||
+ Added API class SkillAPI used to get a list of valid skill names
|
||||
+ Added API events for hardcore features, McMMOPlayerPreDeathPenaltyEvent, McMMOPlayerStatLossEvent and McMMOPlayerVampirismEvent
|
||||
+ Added API to ExperienceAPI to specify if XP can be shared
|
||||
+ Added options to tools.yml and armor.yml config files to set a pretty repair material name
|
||||
+ Added full support for repairables in tools.yml and armor.yml config files
|
||||
+ Added magical mod config file import command, for Cauldron 1.7+. Check wiki for usage
|
||||
+ Added particle effects and sounds to "Call of the Wild" (Taming)
|
||||
+ Added summon length to "Call of the Wild". Summons will now commit suicide after their lifespan expires
|
||||
+ Added feature which makes tamed wolves attack a target shot by the owner
|
||||
= Fixed bug where pistons would mess with the block tracking
|
||||
= Fixed bug where the Updater was running on the main thread.
|
||||
= Fixed bug when players would use /ptp without being in a party
|
||||
= Fixed bug where player didn't have a mcMMOPlayer object in AsyncPlayerChatEvent
|
||||
= Fixed bug where dodge would check the wrong player skill level
|
||||
= Fixed bug which causes /party teleport to stop working
|
||||
= Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException
|
||||
= Fixed bug where Alchemy would not fire BrewEvents
|
||||
= Fixed bug with setting custom names and lore in treasures config
|
||||
= Fixed bug which would cause a NullPointerException with getFlowerAndGrassXp()
|
||||
= Fixed bug which could cause and SQLException regarding the connection property 'maxReconnects'.
|
||||
= Fixed bug where falling blocks were incorrectly tracked
|
||||
= Fixed bug where items would get deleted when in Berserk with a full inventory
|
||||
= Fixed bug where the console would not correctly show party chat colors
|
||||
= Fixed bug where party chat was using non thread safe methods
|
||||
= Fixed bug where Blast Mining unlock levels could be to high in certain occasions
|
||||
= Fixed bug where Blast Minings ability "Demolition Expert" would not work
|
||||
= Fixed bug where Repair_Material_Quantity wasn't read in mod config files
|
||||
! Changed SecondaryAbilityEvent to implement Cancellable and it now gets fired for damage related secondary abilities
|
||||
! Changed the way mcMMO handles bonus damage, updated for the new damage event API
|
||||
! Changed player data saving. Save tasks are now asynchronous
|
||||
! Vanished players no longer get hit by AoE effects
|
||||
! Changed Alchemy config option 'Prevent_Hopper_Transfer' renamed to 'Prevent_Hopper_Transfer_Ingredients'
|
||||
! Changed Alchemy XP distribution. XP is granted based on the stage of the potion.
|
||||
! Changed behavior of the Blast Mining ability "Demolition Expert"; now only decreases damage for the ability user
|
||||
! Updated for new getOnlinePlayers() behavior
|
||||
! Updated for new blocks and entities
|
||||
! Changed McMMOPlayerDeathPenaltyEvent to get fired after hardcore penalty calculations, use McMMOPlayerPreDeathPenaltyEvent for old behavior
|
||||
! Moved Refresh_Chunks setting from hidden.yml to config.yml
|
||||
- Removed salvage ability from Repair, salvage has it's own (child) skill now
|
||||
|
||||
Version 1.5.00
|
||||
@@ -446,7 +71,7 @@ Version 1.4.08
|
||||
= Fixed bug which prevented players from gaining Acrobatics XP when the setting 'Prevent_XP_After_Teleport' was set to false
|
||||
= Fixed bug where cooldown donor perks were reducing more than expected
|
||||
= Fixed bug where disabling hardcore mode for specific skills didn't work
|
||||
= Fixed bug which caused the net.shatteredlands.shatt.backup cleanup to delete old backups while it should have kept those
|
||||
= Fixed bug which caused the backup cleanup to delete old backups while it should have kept those
|
||||
= Fixed bug where party chat broke if the display name contained special characters
|
||||
= Fixed bug where `/addlevels all` and `/skillreset all` didn't work
|
||||
= Fixed bug which made it possible to gain XP by taming the same horse multiple times, if a player "untamed" that horse
|
||||
@@ -794,7 +419,7 @@ Version 1.4.00
|
||||
! Changed Excavation to have individual XP values for each block type, rather than a base XP value.
|
||||
! Changed the way party teleportation works. When using /ptp, the target player needs to confirm the teleport before it takes place. (Configurable)
|
||||
! Changed BeastLore: Now also displays offline player names
|
||||
! Changed net.shatteredlands.shatt.backup task to include ALL config files
|
||||
! Changed backup task to include ALL config files
|
||||
! Deprecated most functions in ExperienceAPI, replaced them with identical versions that use a String for the SkillName rather than the SkillType enum values
|
||||
! Changed Super Breaker & Giga Drill Breaker to be an enchantment-based boost, rather than an instabreak. Option exists in hidden.yml to change this to an potion-based buff.
|
||||
! Changed locales to fall back on English when translated strings cannot be found.
|
||||
@@ -1017,7 +642,7 @@ Version 1.3.07
|
||||
+ Added permission nodes for Treasure & Magic Hunter for Fishing
|
||||
+ Added a permission node for Farmer's Diet
|
||||
+ Added config options for enabling/disabling specific double drops
|
||||
+ Added automatic zip net.shatteredlands.shatt.backup of flatfile database & config files
|
||||
+ Added automatic zip backup of flatfile database & config files
|
||||
+ Added config options to enable/disable specific skills for PVP & PVE
|
||||
= Fixed bug where Tree Feller was looking at the wrong blocks for determining how much to take down.
|
||||
= Fixed bug where Green Terra consumed seeds even on Mossy Stone Brick
|
||||
@@ -1603,7 +1228,7 @@ Fixed bug with randomly receiving Taming XP
|
||||
mcmmo.users file moved into /plugins/mcMMO/FlatFileStuff/
|
||||
Leaderboard files now moved into /plugins/mcMMO/FlatFileStuff/Leaderboards
|
||||
Locale files now have the prefix locale_ instead of messages_
|
||||
Locale files are now located inside com/com.gmail/com.gmail.nossr50/locale/ instead of com/com.gmail/com.gmail.nossr50/
|
||||
Locale files are now located inside com/gmail/nossr50/locale/ instead of com/gmail/nossr50/
|
||||
Updated the code that handles permissions (this may mean 3.1.6 will finally play well!)
|
||||
Some more source code organization
|
||||
Fixed warnings for compiler
|
||||
|
||||
@@ -1,234 +0,0 @@
|
||||
# **Version 2.1.0+**
|
||||
|
||||
### Please use Spigot or Paper!
|
||||
|
||||
* **mcMMO is now built against Spigot-API instead of Bukkit**
|
||||
|
||||
### New Level Scaling
|
||||
|
||||
* mcMMO now features an optional 1-100 scaling mode!
|
||||
* This is on by default for new installs, if you are upgrading mcMMO you will be put into Retro Mode instead (1-1000) scaling.
|
||||
* The two scaling modes are the same, the changes are completely cosmetic!
|
||||
* Skill Requirements in the config file will be multiplied by 10 if you are using Retro mode unless the setting has Retro in its name, keep this in mind if you need to edit anything!
|
||||
|
||||
### WorldGuard Support
|
||||
|
||||
* Added support for WorldGuard regions!
|
||||
* `mcmmo` region flag turns on or off a players ability to use anything related to mcMMO other than commands
|
||||
* `mcmmo-xp` region flag turns on or off a player's ability to gain XP
|
||||
* These flags default to on unless you specify otherwise
|
||||
|
||||
### World Blacklist
|
||||
|
||||
* You can now disable mcMMO completely for specific worlds via `world_blacklist.txt` in /plugins/mcMMO/
|
||||
* This file appears once mcMMO has been run at least once
|
||||
* Every line of this file should be the name of a world where you don't want mcMMO to be enabled!
|
||||
|
||||
### Rank System
|
||||
|
||||
* Skills that are not yet unlocked will show up as `???` until learned
|
||||
* Many skills now make use of a rank system!
|
||||
* Rank level requirements are modified in `skillranks.yml`
|
||||
* Woodcutting's Double Drop subskill is now named Harvest Lumber
|
||||
* Archery's Skill Shot now uses a rank system
|
||||
* Swords' Bleed now uses a rank system
|
||||
* Swords' Counter Attack now uses a rank system
|
||||
* Axe's Axe Mastery now uses a rank system
|
||||
* Axe's Impact now uses a rank system
|
||||
* Herbalism's Farmer's Diet now uses a rank system
|
||||
* Herbalism's Green Thumb now uses a rank system
|
||||
* Shake now uses a rank system
|
||||
* Flux Mining now uses a rank system
|
||||
* Removed traps from fishing
|
||||
* Dodge now uses a rank system
|
||||
* Arrow Retrieval now uses a rank system
|
||||
* Axes' Critical Strikes now uses a rank system
|
||||
* Axes' Greater Impact now uses a rank system
|
||||
* Taming's Beast Lore now uses a rank system
|
||||
* Taming's Gore now uses a rank system
|
||||
* Taming's Call of the Wild now uses a rank system
|
||||
* Taming's Pummel now uses a rank system
|
||||
* Green Thumb now uses a rank system
|
||||
* Farmer's Diet & Fisherman's Diet now use a rank system
|
||||
|
||||
### mcMMO Chat Alerts
|
||||
|
||||
* mcMMO no longer spams your chat!
|
||||
* Most messages are sent to your action bar instead!
|
||||
* Completely configurable! You can have mcMMO spam your chat again if you want!
|
||||
* You can configure it so that messages will be sent to your action bar AND your chat system!
|
||||
* Improved some of the messages sent to the player regarding the Chimaera Wing
|
||||
|
||||
### Localization File
|
||||
|
||||
* The descriptions of a few skills have changed
|
||||
* Locale files now support & codes for colors and formatting!
|
||||
* Added locale strings for new Woodcutting abilities
|
||||
* Added locale strings for mcchatspy command
|
||||
* Added locale strings for JSON integration
|
||||
* Added locale strings for Taming's Pummel SubSkill
|
||||
* Added locale strings for Unarmed's Block Cracker SubSkill
|
||||
* Removed localizations with the following codes for being almost empty: `id`, `HR_hr`, `et_EE`, `lv`, `lt`, `no`, `pl_PL`, `pt_PT`, `tr_TR`
|
||||
* Removed redundant information from some skill names and descriptions `en_US` (other locales will need to be updated)
|
||||
* SubSkill locale keys are now located at `{ParentSkill}.SubSkill.SubSkillName`
|
||||
* Super Abilities no longer have `(ABILITY)` in their `Skill.Effect` strings
|
||||
|
||||
### UI
|
||||
|
||||
* Certain elements of mcMMO's UI have been restyled
|
||||
* Skills can now be clicked on and hovered over for more information!
|
||||
* Added links to mcMMO related websites to various commands
|
||||
* Customizeable and optional XP Bars
|
||||
* Added the tagline "Overhaul Era" to various locations until 3.0.0 comes out
|
||||
* Added option to disable the new URL links to `config.yml`
|
||||
|
||||
### Sounds
|
||||
|
||||
* Volume and Pitch of sounds can now be configured in the new `sounds.yml` file
|
||||
|
||||
### Super Ability Changes
|
||||
|
||||
* Skill Super Abilities now use a rank system, the default rank to unlock is level 5
|
||||
* Activating Super abilities plays a sound (other plays can hear this)
|
||||
* Ability Lengths now have a default skill cap at which they stop increasing in length
|
||||
* Setting the cap to 0 removes it!
|
||||
* Configurable in `advanced.yml` (endurance perks extend this limit)
|
||||
|
||||
### Skills
|
||||
|
||||
* mcMMO now notifies you when you progress in a skill!
|
||||
* Excavation Treasure Hunter is renamed to Archaeology
|
||||
* Readying a tool for a super ability now plays a sound
|
||||
* Skill Unlock Notifications have sounds
|
||||
* Stripping wood and right clicking on stripped wood will no longer ready your Axe
|
||||
* Added new skill 'Understanding The Art' which adds nothing new but tracks previously hidden benefits of raising a skill
|
||||
* Tool alerts now are sent to the Action Bar
|
||||
* Super Ability activation alerts are now sent to the Action Bar
|
||||
* Almost all Skill-related messages are now sent to the Action Bar
|
||||
* Added some missing information to skill stats
|
||||
* Swords no longer require blocking with a shield to trigger counter attacks
|
||||
* Sword's Bleed has been renamed to Rupture
|
||||
* Sword's Rupture no longer has an internal hard coded limit
|
||||
* Sword's Serrated Strikes now uses your Rupture rank to determine the damage/ticks for its bleed effect.
|
||||
* Sword's Rupture now ticks four times as fast
|
||||
* Sword's Rupture now refreshes bleed duration instead of adding duration when applying bleed to the same target
|
||||
* Sword's Rupture will now deal lethal damage
|
||||
* Sword's Rupture now reaches its max proc chance at level 20 (200 in Retro)
|
||||
* Sword's Rupture now has a max chance to proc of 33% instead of 70%
|
||||
* Sword's Rupture now deals 50% more damage at above Rank 3 and can last much longer!
|
||||
* The base damage for Bleed has been increased as well (update your `advanced.yml` admins)
|
||||
* Sword's Rupture no longer triggers invincibility frames when damaging your opponent
|
||||
* Sword's Rupture now plays a sound
|
||||
* Taming's Gore now uses Rupture Rank 1 for its DoT calculations
|
||||
* Furnaces now give XP to the last person to modify their inventory instead of the first person to open them
|
||||
* Rolling now plays a sound (Graceful Roll has a different sound :) )
|
||||
* Acrobatics' Roll exploit detection was tweaked to still allow for Roll to trigger even if it rewards no XP
|
||||
* Acrobatics' Roll & Gracefull Roll are now considered the same skill (both mechanics are still there)
|
||||
* Some skill level rank requirements have changed
|
||||
|
||||
### Experience
|
||||
|
||||
* Skills now start at level 1 (configurable in advanced.yml)
|
||||
* Starting an XP event will now use the title API (toggle this in `advanced.yml`)
|
||||
* The XP values of fish are now based on their rarity and have been drastically changed
|
||||
* Coral (blocks) now give Mining XP
|
||||
* Coral (plants) now give Herbalism XP
|
||||
* Blue Ice now gives Mining XP
|
||||
* Dolphins now give combat XP
|
||||
* Drowned mobs now count towards combat XP
|
||||
* Added missing mushroom blocks for XP
|
||||
* You can now set guaranteed minimum values for XP gained if diminishing returns are enabled, this value defaults to 5% (`experience.yml`)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fixed the bug where mob names would be replaced by hearts
|
||||
* Fixed a bug where Rupture would apply an incorrect amount of bleed ticks
|
||||
* Fixed bug where XP rate could be a negative number
|
||||
* Fixed a bug where you could set a players levels into the negative and bad things would happen
|
||||
* Fixed an edge case bug where Blast Mining wouldn't inform the player that it was on cooldown
|
||||
|
||||
### Plugin Compatibility
|
||||
|
||||
* mcMMO now fires new custom events relating to changes it makes to player scoreboards, plugin authors can listen to these events to improve compatibility
|
||||
|
||||
### Exploit Fixes
|
||||
|
||||
* Prevented exploits involving blocks made from entities (snowmen, etc..)
|
||||
* Chimaera Wing now tracks cooldowns between sessions for players (no more disconnect abuse)
|
||||
* Tridents will no longer be considered unarmed
|
||||
* Prevented exploits involving 2 high herbs and chorus flowers
|
||||
* Vastly Improved the Acrobatics exploit detection checks
|
||||
|
||||
### Parties
|
||||
|
||||
* Parties can now have size limits (configurable in `config.yml`), party size is unlimited by default
|
||||
* You can now turn on Friendly Fire for parties in `config.yml`
|
||||
* Party member list will only include members of the party that you can see (aren't vanished)
|
||||
|
||||
### Scoreboards
|
||||
|
||||
* Scoreboards are now disabled by default since most of their functionality is handled better by XP bars.
|
||||
* Added toggle to disable all scoreboards (previously you had to disable them one by one)
|
||||
* You can turn them back on in `config.yml`
|
||||
* You can have XP bars and scoreboards on at the same time
|
||||
|
||||
### MySQL
|
||||
|
||||
* Added support for SSL for MySQL/MariaDB in config.yml (On by default)
|
||||
* mcMMO no longer spams your console if you are not using SSL for your MySQL server
|
||||
* You can now inspect offline players
|
||||
* When converting from MySQL to flatfile mcMMO will now properly include all users in the conversion process
|
||||
|
||||
### Admins
|
||||
|
||||
* Added ability for admins to spy on party chat (off unless toggled on) /mcchatspy
|
||||
* The Debug stick can now tell you about properties of a block related to Excavation
|
||||
|
||||
### API
|
||||
|
||||
* Detailed guide to API changes is available at http://api.mcmmo.org
|
||||
* Added many missing `SubSkills` to `SubSkillType` class
|
||||
* Moved a lot of methods from `SkillCommand` to `SkillUtils`
|
||||
* `SkillType` is now `PrimarySkillType`
|
||||
* `SecondarySkill` is now `SubSkillType`
|
||||
* `AbilityType` is now `SuperAbilityType`
|
||||
* `SecondaryAbilityEvent` is now `SubSkillEvent`
|
||||
* `SubSkillType` has had many helpful methods added to it
|
||||
* `GREEN_THUMB_PLANT` & `GREEN_THUMB_BLOCK` are replaced by `GREEN_THUMB`
|
||||
|
||||
### Permissions
|
||||
|
||||
* Removed all mob health bar permissions, this is no longer a per-player setting.
|
||||
* Added permission node `mcmmo.commands.mcchatspy` & `mcmmo.commands.mcchatspy.others`
|
||||
* Added `mcmmo.commands.mmoinfo` for the new `mmoinfo`/`mcinfo` command
|
||||
* Added permission nodes for Harvest Lumber, Splinter, Nature's Bounty, and Bark Surgeon
|
||||
* Call of the wild now uses `mcmmo.ability.taming.callofthewild` instead of `mcmmo.ability.taming.callofthewild.all`
|
||||
* Replaced the old Double Drop permission node for woodcutting with a new Harvest Lumber permission node
|
||||
* Fast Food Service permission node renamed to `mcmmo.ability.taming.fastfoodservice`
|
||||
* Counter Attack permission node renamed to `mcmmo.ability.swords.counterattack`
|
||||
* Arrow Deflect permission node renamed to `mcmmo.ability.unarmed.arrowdeflect`
|
||||
* Iron Arm Style permission node renamed to `mcmmo.ability.unarmed.ironarmstyle`
|
||||
|
||||
### Commands
|
||||
|
||||
* Added new info command `/mmoinfo` or `/mcinfo`
|
||||
* Added toggle command `/mcchatspy`
|
||||
* `/mcMMO help` no longer displays the other/special commands category to players lacking permissions
|
||||
* Removed the `mobhealthbar` command, this is no longer a per-player setting.
|
||||
|
||||
### Misc Config Changes
|
||||
|
||||
* Removed `SkillShot`'s `IncreaseLevel` & `IncreasePercentage` (replaced by `RankDamageMultiplier`)
|
||||
* Removed `AxeMastery`'s `MaxBonus` & `MaxBonusLevel` (replaced by `RankDamageMultiplier`)
|
||||
* `Unarmed.IronArm` in `advanced.yml` is now `Unarmed.IronArmStyle`
|
||||
* `Unarmed.Deflect` in `advanced.yml` is now `Unarmed.ArrowDeflect`
|
||||
* `Swords.Counter` in `advanced.yml` is now `Swords.CounterAttack`
|
||||
* `Archery.Retrieve` in `advanced.yml` is now `Archery.ArrowRetrieval`
|
||||
* `Axes.CriticalHit` in `advanced.yml` is now `Axes.CriticalStrikes`
|
||||
* Archery's Skill Shot now uses `RankDamageMultiplier` for its damage bonus calculations
|
||||
* Axe's Axe mastery now uses `RankDamageMultiplier` for its damage bonus calculations
|
||||
|
||||
### Misc Changes
|
||||
|
||||
* Removed everything involving the kraken
|
||||
* Code cleanup in a lot of places... unfortunately there is still much left to do!
|
||||
69
README.md
69
README.md
@@ -1,56 +1,40 @@
|
||||
# mcMMO
|
||||
## The RPG lovers mod
|
||||
|
||||
## Website
|
||||
I'm working on a brand new website for mcMMO
|
||||
|
||||
You can check it out here http://www.mcmmo.org
|
||||
|
||||
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
||||
|
||||
### Contributing
|
||||
As the plugin is being developed for multiple Minecraft versions, and multiple Minecraft platforms (read: [sponge](https://spongepowered.org/), [spigot](https://spigotmc.org/), bukkit, and [paper](https://papermc.io)), the
|
||||
overall build process is handled by [Gradle](https://gradle.org/) with [Kotlin-dsl](https://github.com/gradle/kotlin-dsl) based scripts.
|
||||
As such, an IDE is strongly recommended when attempting to contribute features, additions, changes, bug fixes, etc. to mcMMO as the scripts handle a
|
||||
majority of our dependencies and rebuilding a production worthy jar.
|
||||
|
||||
To get started, a few things need to be installed:
|
||||
- JDK 8 (not 9, 10, 11, or 7)
|
||||
- git
|
||||
- Your favorite IDE (can be [Eclipse](https://eclipse.org/), [IntelliJ](https://jetbrains.org/)
|
||||
- BuildTools.jar from [Spigot](https://www.spigotmc.org/wiki/buildtools/)
|
||||
|
||||
##### Using BuildTools
|
||||
BuildTools is used to generate the craftbukkit/spigot dependencies used for varoius versions of Minecraft.
|
||||
The key with this tool is that it can build and deploy multiple vesions of Minecraft based on "reviewions".
|
||||
|
||||
|
||||
### Builds
|
||||
Currently, you can obtain our builds via the Spigot resource page: https://spigot.mcmmo.org
|
||||
### Dev builds
|
||||
Our latest development builds are available ~~[here](http://ci.mcmmo.info)~~. Unfortunately, the mcMMO site is down; a temporary dev build location is hosted [here](http://ci.ecocitycraft.com/job/mcMMO/).
|
||||
|
||||
### Brief Description
|
||||
The goal of mcMMO is to take core Minecraft game mechanics and expand them into add an extensive and quality RPG experience. Everything in mcMMO has been carefully thought out and is constantly being improved upon. Currently, mcMMO adds fourteen unique skills to train and level in. Each of these skills is highly customizable through our configuration files, allowing server admins to tweak mcMMO to best suit the needs of his or her server. Know that the mcMMO team is dedicated to providing an ever-evolving experience, and that we carefully read all feedback and bug reports in order to evaluate and balance the mechanics of mcMMO in every update.
|
||||
|
||||
## About the Team
|
||||
|
||||
mcMMO is currently developed by a team of individuals from all over the world.
|
||||
|
||||
### Project Lead & Founder
|
||||
[](https://github.com/com.gmail.nossr50)
|
||||
|
||||
### Former Lead
|
||||
[](https://github.com/gmcferrin)
|
||||
### Glorious Leader
|
||||
[]
|
||||
(https://github.com/gmcferrin)
|
||||
|
||||
### Developers
|
||||
[](https://github.com/bm01)
|
||||
[](https://github.com/Glitchfinder)
|
||||
[](https://github.com/NuclearW)
|
||||
[](https://github.com/shatteredbeam)
|
||||
[](https://github.com/TfT-02)
|
||||
[](https://github.com/t00thpick1)
|
||||
[](https://github.com/riking)
|
||||
[]
|
||||
(https://github.com/bm01)
|
||||
[]
|
||||
(https://github.com/Glitchfinder)
|
||||
[]
|
||||
(https://github.com/nossr50)
|
||||
[]
|
||||
(https://github.com/NuclearW)
|
||||
[]
|
||||
(https://github.com/shatteredbeam)
|
||||
[]
|
||||
(https://github.com/TfT-02)
|
||||
[]
|
||||
(https://github.com/t00thpick1)
|
||||
[]
|
||||
(https://github.com/riking)
|
||||
|
||||
### Special thanks
|
||||
[](https://github.com/EasyMFnE)
|
||||
[]
|
||||
(https://github.com/EasyMFnE)
|
||||
Added the Alchemy skill
|
||||
|
||||
## Compiling
|
||||
@@ -60,7 +44,8 @@ mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary c
|
||||
The typical command used to build mcMMO is: `mvn clean package install`
|
||||
|
||||
Required Libraries:
|
||||
* Bukkit
|
||||
* JUnit
|
||||
* EMetrics
|
||||
* Bukkit
|
||||
|
||||
https://spigot.mcmmo.org for more up to date information.
|
||||
http://dev.bukkit.org/server-mods/mcmmo for more up to date information.
|
||||
|
||||
139
build.gradle.kts
139
build.gradle.kts
@@ -1,139 +0,0 @@
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
|
||||
/*
|
||||
* Declares the version of the Gradle wrapper. We need 4.9 for now because
|
||||
* ForgeGradle 3+ is a hard dependency for Gradle 4.9, 4.10 is not compatible
|
||||
*/
|
||||
val wrapper by tasks.getting(Wrapper::class) {
|
||||
gradleVersion = "4.9"
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets up project references to be used in child scripts, like
|
||||
* ":bukkit", ":core", ":sponge" where these projects need to be
|
||||
* referred to for dependencies, paths, outputs etc.
|
||||
* Projects is specifically an object stored in <root>/buildSrc/src/main/java/Config.kt
|
||||
* It's a nullable variable, but we just store it here and use it elsewhere.
|
||||
*/
|
||||
Projects.core = project("core")
|
||||
Projects.bukkit = project("bukkit")
|
||||
Projects.sponge = project("sponge")
|
||||
/*
|
||||
Declares the various other projects and stores them to Gradle's `extra` properties.
|
||||
These are potentially usable for other purposes, but for now, they're here only to
|
||||
declare the values for this root project's dependency (for shadowjar)
|
||||
*/
|
||||
var core: Project by extra { project("core") }
|
||||
val bukkit by extra { project("bukkit") }
|
||||
val bukkit_18 by extra { bukkit.project("1_8_8") }
|
||||
val bukkit_112 by extra { bukkit.project("1_12") }
|
||||
val bukkit_113 by extra { bukkit.project("1_13") }
|
||||
val sponge by extra { project("sponge") }
|
||||
val sponge_7 by extra { sponge.project("api7") }
|
||||
|
||||
group = properties["pluginGroup"]!!
|
||||
version = properties["pluginVersion"]!!
|
||||
|
||||
/*
|
||||
Even though all projects declares some of these plugins, we want to declare them the traditional
|
||||
way so that we can have IDE utiliziation and processing, it helps with writing these scripts.
|
||||
*/
|
||||
plugins {
|
||||
`java-library`
|
||||
`maven-publish`
|
||||
id("com.github.johnrengelman.shadow") version "4.0.4"
|
||||
}
|
||||
|
||||
/*
|
||||
Default management for ALL projects, not just root, or ":bukkit", but all projects and
|
||||
their children projects.
|
||||
*/
|
||||
allprojects {
|
||||
/*
|
||||
We need the java library processing, and shadow allows us to run
|
||||
shadowJar to relocate dependencies and bundle dependencies into a fat jar.
|
||||
*/
|
||||
apply(plugin="java-library")
|
||||
apply(plugin="com.github.johnrengelman.shadow")
|
||||
|
||||
/*
|
||||
Defines all the repositories for all project dependency resolutions. Some of these
|
||||
repositories are meant for specific dependencies, so the content filters will
|
||||
prevent attempts at resolving those dependencies being requested at those repositories.
|
||||
Constants are defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
*/
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven(Repos.sk89q) // WorldEdit/WorldGuard
|
||||
maven(Repos.bstats) // bstats
|
||||
maven(Repos.sponge) // Sponge, Configurate, and some other things
|
||||
maven(Repos.spigot) // Spigot and Bukkit
|
||||
maven(Repos.sonatype) // General Maven
|
||||
mavenLocal() // For nms packages
|
||||
}
|
||||
|
||||
// Sets all projects compatibility level to Java 8
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
// Encoding for all packages is UTF-8
|
||||
tasks.getting(JavaCompile::class) {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
// Default shadow jar configuration. Sub projects will override and add on,
|
||||
// but this sets up at the very least the jdbc connection dependencies to be relocated
|
||||
val shadowJar by tasks.getting(ShadowJar::class) { // Configure basics of relocation
|
||||
relocate(Shadow.Origin.juli, Shadow.Target.juli)
|
||||
relocate(Shadow.Origin.tomcat, Shadow.Target.tomcat)
|
||||
exclude(Shadow.Exclude.ForgeGradle.dummyThing)
|
||||
exclude(Shadow.Exclude.ForgeGradle.template)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
All subprojects shadowjar tasks that will exclude various dependencies, while
|
||||
the root project will include some of these dependencies (like jdbc, configurate)
|
||||
so that the sub project jars are already somewhat minimized, in the event those
|
||||
platform jars are to be deployed individually versus an overall "all platforms"
|
||||
jar.
|
||||
*/
|
||||
subprojects {
|
||||
val shadowJar by tasks.getting(ShadowJar::class) {
|
||||
dependencies {
|
||||
exclude(dependency("${Deps.Groups.sponge}:${Deps.Modules.configurate_yaml}"))
|
||||
exclude(dependency(Shadow.Exclude.guava))
|
||||
exclude(dependency(Shadow.Exclude.snakeyaml))
|
||||
exclude(dependency(Shadow.Exclude.tomcat))
|
||||
exclude(dependency(Shadow.Exclude.juli))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sets up this root project to depend on all the implementations supported.
|
||||
// By default, they all already should have shadow relocations and packaging,
|
||||
// and their dependencies should not be leaking into this project.
|
||||
dependencies {
|
||||
compile(bukkit)
|
||||
compile(sponge)
|
||||
compile(bukkit_18)
|
||||
compile(bukkit_112)
|
||||
compile(bukkit_113)
|
||||
compile(sponge_7)
|
||||
}
|
||||
|
||||
// Configure shadow for the root project, we want to relocate bstats-bukkit
|
||||
// and whatever else is configured in the allProjects configuration
|
||||
val shadowJar by tasks.getting(ShadowJar::class) { // Root shadow relocation
|
||||
|
||||
relocate(Shadow.Origin.bstatsBukkit, Shadow.Target.bstatsBukkit)
|
||||
|
||||
baseName = "mcMMO"
|
||||
classifier = "bundle"
|
||||
}
|
||||
|
||||
// Tell the build task to depend on shadowjar.
|
||||
val build by tasks
|
||||
build.dependsOn(shadowJar)
|
||||
@@ -1,8 +0,0 @@
|
||||
plugins {
|
||||
`kotlin-dsl`
|
||||
}
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
|
||||
@@ -1,191 +0,0 @@
|
||||
@file:Suppress("MayBeConstant", "unused")
|
||||
|
||||
import org.gradle.api.Project
|
||||
|
||||
object Plugins {
|
||||
const val spongeGradleId = "${Deps.Groups.sponge}.plugin"
|
||||
|
||||
object FG2_3 {
|
||||
const val classpath = "net.minecraftforge.gradle:ForgeGradle:${Versions.fg23}"
|
||||
const val extensionName = "minecraft"
|
||||
const val id = "net.minecraftforge.gradle.forge"
|
||||
}
|
||||
}
|
||||
|
||||
object Repos {
|
||||
const val sk89q = "https://maven.sk89q.com/repo"
|
||||
// bStats
|
||||
const val bstats = "https://repo.codemc.org/repository/maven-public"
|
||||
// configurate
|
||||
const val sponge = "https://repo.spongepowered.org/maven/"
|
||||
const val spigot = "https://hub.spigotmc.org/nexus/content/repositories/snapshots"
|
||||
const val sonatype = "https://oss.sonatype.org/content/repositories/snapshots"
|
||||
const val forge = "https://files.minecraftforge.net/maven/"
|
||||
}
|
||||
|
||||
object Config {
|
||||
|
||||
object Libs {
|
||||
const val configurate = "${Deps.Groups.sponge}:${Deps.Modules.configurate_yaml}:${Versions.configurate}"
|
||||
const val jdbc = "${Deps.Groups.tomcat}:${Deps.Modules.jdbc}:${Versions.jdbc}"
|
||||
const val juli = "${Deps.Groups.tomcat}:${Deps.Modules.juli}:${Versions.jdbc}"
|
||||
const val junitDep = "${Deps.Groups.junit}:${Deps.Modules.junit}:${Versions.junit}"
|
||||
const val flowmath = "${Deps.Groups.flowpowered}:${Deps.Modules.flowmath}:${Versions.flowmath}"
|
||||
|
||||
object Bukkit {
|
||||
object `1_8` {
|
||||
const val api = "$bukkit:${Versions.bukkit18}"
|
||||
const val spigotApi = "${Bukkit.spigotApi}:${Versions.bukkit18}"
|
||||
const val spigot = "$${Bukkit.spigot}:${Versions.bukkit18}"
|
||||
const val nms = "$craftbukkit:${Versions.bukkit18}"
|
||||
// only legacy existed at this point, no core.
|
||||
const val wgLegacy = "${Bukkit.wgLegacy}:${Versions.wg18}"
|
||||
}
|
||||
|
||||
object `1_12` {
|
||||
const val api = "$bukkit:${Versions.bukkit112}"
|
||||
const val spigotApi = "${Bukkit.spigotApi}:${Versions.bukkit112}"
|
||||
const val spigot = "$${Bukkit.spigot}:${Versions.bukkit112}"
|
||||
const val nms = "$craftbukkit:${Versions.bukkit112}"
|
||||
// only legacy existed at this point, no core.
|
||||
const val wgLegacy = "${Bukkit.wgLegacy}:${Versions.wg112}"
|
||||
}
|
||||
|
||||
object `1_13` {
|
||||
const val api = "$bukkit:${Versions.bukkit113}"
|
||||
const val spigotApi = "${Bukkit.spigotApi}:${Versions.bukkit113}"
|
||||
const val spigot = "$${Bukkit.spigot}:${Versions.bukkit113}"
|
||||
const val nms = "$craftbukkit:${Versions.bukkit113}"
|
||||
const val wgCore = "${Bukkit.wgCore}:${Versions.wg113}"
|
||||
const val wgLegacy = "${Bukkit.wgLegacy}:${Versions.wg113}"
|
||||
}
|
||||
|
||||
const val bukkit = "${Deps.Groups.bukkit}:${Deps.Modules.bukkit}"
|
||||
const val craftbukkit = "${Deps.Groups.bukkit}:${Deps.Modules.craftbukkit}"
|
||||
const val wgCore = "${Deps.Groups.worldguard}:${Deps.Modules.wgCore}"
|
||||
const val wgLegacy = "${Deps.Groups.worldguard}:${Deps.Modules.wgLegacy}"
|
||||
const val spigotApi = "${Deps.Groups.spigot}:${Deps.Modules.spigotApi}"
|
||||
const val spigot = "${Deps.Groups.spigot}:${Deps.Modules.spigot}"
|
||||
const val bstats = "${Deps.Groups.bstats}:${Deps.Modules.bstatsBukit}:${Versions.bstats}"
|
||||
}
|
||||
|
||||
object Sponge {
|
||||
object API7 { // All of these are specific to the API7 module, API8 will change
|
||||
const val forgeGradleId = "net.minecraftforge.gradle.forge"
|
||||
const val spongeGradleId = "${Deps.Groups.sponge}.plugin"
|
||||
const val spongeGradleVersion = "0.9.0"
|
||||
const val api = "${Sponge.api}:${Versions.sapi7}"
|
||||
const val common = "${Sponge.common}:${Versions.spongeImpl7}"
|
||||
const val forge_version = "14.23.5.2768"
|
||||
const val minecraftVersion = "1.12.2-$forge_version"
|
||||
const val mappings = "snapshot_20180808"
|
||||
}
|
||||
|
||||
object Exclude {
|
||||
const val group = Deps.Groups.sponge
|
||||
const val module = Deps.Modules.spongeAPI
|
||||
}
|
||||
|
||||
const val api = "${Deps.Groups.sponge}:${Deps.Modules.spongeAPI}"
|
||||
const val common = "${Deps.Groups.sponge}:${Deps.Modules.spongecommon}"
|
||||
const val bstats = "${Deps.Groups.bstats}:${Deps.Modules.bstatsSponge}:${Versions.bstats}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Deps {
|
||||
object Groups {
|
||||
const val nossr = "com.gmail.nossr50"
|
||||
const val google = "com.google"
|
||||
const val guava = "com.google.guava"
|
||||
const val gson = "com.google.code.gson"
|
||||
const val yaml = "org.yaml"
|
||||
const val sk89q = "com.sk89q"
|
||||
const val apache = "org.apache"
|
||||
const val worldguard = "$sk89q.worldguard"
|
||||
const val worldedit = "$sk89q.worldedit"
|
||||
const val sponge = "org.spongepowered"
|
||||
const val spigot = "org.spigotmc"
|
||||
const val md5 = "net.md_5"
|
||||
const val bukkit = "org.bukkit"
|
||||
const val bstats = "org.bstats"
|
||||
const val tomcat = "org.apache.tomcat"
|
||||
const val junit = "junit"
|
||||
const val checker = "org.checkerframework"
|
||||
const val flowpowered = "com.flowpowered"
|
||||
}
|
||||
|
||||
object Modules {
|
||||
const val guava = "guava"
|
||||
const val gson = "gson"
|
||||
const val snakeyaml = "snakeyaml"
|
||||
const val wgCore = "worldguard-core"
|
||||
const val wgLegacy = "worldguard-legacy"
|
||||
const val bungeecordChat = "bungeecord-chat"
|
||||
const val spongeAPI = "spongeapi"
|
||||
const val spongecommon = "spongecommon"
|
||||
const val spongeforge = "spongeforge"
|
||||
const val spongevanilla = "spongevanilla"
|
||||
const val bukkit = "bukkit"
|
||||
const val craftbukkit = "craftbukkit"
|
||||
const val bstatsBukit = "bstats-bukkit"
|
||||
const val bstatsSponge = "bstats-sponge"
|
||||
const val spigotApi = "spigot-api"
|
||||
const val spigot = "spigot"
|
||||
const val configurate = "configurate"
|
||||
const val configurate_core = "${configurate}-core"
|
||||
const val configurate_yaml = "${configurate}-yaml"
|
||||
const val jdbc = "tomcat-jdbc"
|
||||
const val juli = "tomcat-juli"
|
||||
const val junit = "junit"
|
||||
const val checker = "checker-qual"
|
||||
const val flowmath = "flow-math"
|
||||
}
|
||||
}
|
||||
|
||||
object Projects {
|
||||
var core: Project? = null
|
||||
var bukkit: Project? = null
|
||||
var sponge: Project? = null
|
||||
}
|
||||
|
||||
object Shadow {
|
||||
object Origin {
|
||||
const val juli = "${Deps.Groups.apache}.juli"
|
||||
const val tomcat = "${Deps.Groups.apache}.tomcat"
|
||||
const val apache = "${Deps.Groups.apache}.commons.logging"
|
||||
const val bstatsBukkit = "${Deps.Groups.bstats}.bukkit"
|
||||
const val configurate = "ninja.leaping.configurate"
|
||||
const val checker = "org.checkerframework"
|
||||
}
|
||||
|
||||
object Target {
|
||||
const val juli = "${Deps.Groups.nossr}.database.tomcat.juli"
|
||||
const val tomcat = "${Deps.Groups.nossr}.database.tomcat"
|
||||
const val apache = "${Deps.Groups.nossr}.commons.logging"
|
||||
const val bstatsBukkit = "${Deps.Groups.nossr}.metrics.bstat"
|
||||
const val configurate = "${Deps.Groups.nossr}.${Deps.Modules.configurate}"
|
||||
const val checker = "${Deps.Groups.nossr}.${Deps.Modules.configurate}.checkerframework"
|
||||
}
|
||||
|
||||
object Exclude {
|
||||
const val tomcat = "${Deps.Groups.tomcat}:${Deps.Modules.jdbc}"
|
||||
const val juli = "${Deps.Groups.apache}:${Deps.Modules.juli}"
|
||||
const val guava = "${Deps.Groups.guava}:${Deps.Modules.guava}"
|
||||
const val snakeyaml = "${Deps.Groups.yaml}:${Deps.Modules.snakeyaml}"
|
||||
const val bukkit = Deps.Groups.bukkit
|
||||
const val spigot = Deps.Groups.spigot
|
||||
const val sk89q = "com.sk89q"
|
||||
const val wg = "$sk89q.worldguard"
|
||||
const val intake = "$sk89q.intake"
|
||||
const val flyway = "com.flywaydb"
|
||||
const val khelekore = "org.khelekore"
|
||||
const val findbugs = "com.google.code.findbugs"
|
||||
const val bstats = "${Deps.Groups.bstats}"
|
||||
|
||||
object ForgeGradle {
|
||||
const val dummyThing = "dummyThing"
|
||||
const val template = "Version.java.template"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
object Versions {
|
||||
const val configurate = "3.6" // Latest configurate
|
||||
const val flowmath = "1.0.4-SNAPSHOT"
|
||||
const val bukkit18 = "1.8.8-R0.1-SNAPSHOT" // Last bukkit 1.8.8
|
||||
const val bukkit112 = "1.12.2-R0.1-SNAPSHOT" // Last bukkit 1.12.2
|
||||
const val bukkit113 = "1.13.2-R0.1-SNAPSHOT" // Latest bukkit
|
||||
const val sapi7 = "7.1.0" // Latest SpongeAPI stable
|
||||
const val spongeImpl7 = "7.1.5" // Latest SpongeCommon stable
|
||||
const val jdbc = "7.0.52"
|
||||
const val junit = "4.12"
|
||||
const val fg23 = "2.3-SNAPSHOT" // ForgeGradle to support MC 1.12.2
|
||||
const val wg18 = "6.1.2" // Bukkit/CraftBukkit/Spigot 1.8.8 supported build, works on newer, but last one to support 1.8.8
|
||||
const val wg112 = "6.2" // Last WorldGuard to support 1.12
|
||||
const val wg113 = "7.0.0-SNAPSHOT" // Latest WorldGuard to support 1.13.2
|
||||
const val bstats = "1.4" // Supports all backwards compatible. Always relocated
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
import Config.Libs.Bukkit.`1_12` as Bukkit
|
||||
// Config is located in <root>/buildSrc/src/main/java/Config.kt
|
||||
// It provides a bunch of constant values we use as dependency
|
||||
// strings, so we don't have to duplicate a bunch of them in
|
||||
// various scripts.
|
||||
|
||||
plugins {
|
||||
java // This is already provided, but for static compilation,
|
||||
// we declare it here so we can use the IDE static type references
|
||||
}
|
||||
|
||||
/*
|
||||
Dependency inheritance is as follows
|
||||
- ":core", which provides
|
||||
configurate, tomcat jdbc/juli, and flowmath. It excludes sub
|
||||
dependencies like guava and apache commons lang.
|
||||
- ":bukkit", which provides nothing on it's own, except the
|
||||
core bukkit classes that can be built on 1.13.2 API (which may change).
|
||||
It also defines all subprojects to depend on ":core", and ":bukkit",
|
||||
and bstats-bukkit.
|
||||
*/
|
||||
dependencies {
|
||||
compileOnly(Bukkit.api) // Bukkit API for 1.12.2
|
||||
compileOnly(Bukkit.nms) // CraftBukkit for 1.12.2
|
||||
compileOnly(Bukkit.wgLegacy) // WorldGuard for 1.12.2 bukkit
|
||||
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
package com.gmail.nossr50.bukkit.v1_12;
|
||||
|
||||
import com.gmail.nossr50.VersionedHandler;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.minecraft.server.v1_12_R1.Chunk;
|
||||
import net.minecraft.server.v1_12_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_12_R1.IBlockData;
|
||||
import net.minecraft.server.v1_12_R1.IBlockState;
|
||||
import net.minecraft.server.v1_12_R1.MinecraftKey;
|
||||
import net.minecraft.server.v1_12_R1.RegistryBlocks;
|
||||
import net.minecraft.server.v1_12_R1.RegistryMaterials;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.CraftChunk;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.block.CraftBlockState;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class NmsHandler extends VersionedHandler {
|
||||
/**
|
||||
* Static reference to the block registry. Don't really care about the fact that
|
||||
* it is being stored as a reference here, but for imports reasons, it's smaller
|
||||
* line length makes it optimal to read for method usages.
|
||||
*/
|
||||
private static final RegistryBlocks<MinecraftKey, net.minecraft.server.v1_12_R1.Block> BLOCK_REGISTRY = net.minecraft.server.v1_12_R1.Block.REGISTRY;
|
||||
/**
|
||||
* We can keep track of block state id's by generating them on demand, i.e., when
|
||||
* they're being requested from Blocks, or BlockDatas.
|
||||
*/
|
||||
private static final RegistryMaterials<MinecraftKey, IBlockData> BLOCK_STATE_REGISTRY = new RegistryMaterials<>();
|
||||
|
||||
NmsHandler(mcMMO plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Block block) {
|
||||
// We have to get the underlying nms block by the block, which might as well just be the type id.
|
||||
final Chunk chunk = ((CraftChunk) block.getChunk()).getHandle();
|
||||
// Get the block state from the underlying chunk (stored by reference in CraftBlock)
|
||||
final IBlockData blockState = chunk.a(block.getX(), block.getY(), block.getZ());
|
||||
// Sadly, Mojang doesn't store the string id onto blocks, states, or any of their types, they just call the registry.
|
||||
final MinecraftKey key = BLOCK_REGISTRY.b(blockState.getBlock());
|
||||
return key.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Entity entity) {
|
||||
// Every entity knows it's "type". Here, we just use the right method getter to get the EntityTypes instance for that entity
|
||||
final net.minecraft.server.v1_12_R1.Entity nmsEntity = ((CraftEntity) entity).getHandle();
|
||||
// And then... well. we get the string id from the registry, based on the entity class to id mapping in EntityTypes.
|
||||
final MinecraftKey key = EntityTypes.a(nmsEntity);
|
||||
// If the key is null, well, we've got bigger problems...
|
||||
return key == null ? "minecraft:slime" : key.toString();
|
||||
}
|
||||
|
||||
@SuppressWarnings("Duplicates")
|
||||
@Override
|
||||
public String getIdFor(BlockState block) {
|
||||
// Since we don't really want to trust what "BlockState" gives us, and the API doesn't give us anything but
|
||||
// what the API wants to give us, we have to dig into internals to get the true BlockState representation
|
||||
final CraftBlockState craftState = (CraftBlockState) block;
|
||||
// Because CraftBlock also stores the chunk reference, we can short cut in to use the chunk, instead of pinging
|
||||
// the chunk map on WorldServer
|
||||
final CraftChunk craftChunk = (CraftChunk) craftState.getChunk();
|
||||
// Then query for the block state from the chunk.
|
||||
final IBlockData nmsState = craftChunk.getHandle().a(block.getX(), block.getY(), block.getZ());
|
||||
// And then we're gucci
|
||||
final net.minecraft.server.v1_12_R1.Block nmsBlock = nmsState.getBlock();
|
||||
final MinecraftKey blockKey = BLOCK_REGISTRY.b(nmsBlock);
|
||||
// Now we can check if our blockstate registry actually has the block state.
|
||||
final MinecraftKey stateKey = BLOCK_STATE_REGISTRY.b(nmsState);
|
||||
if (stateKey != null) { // If the state has been registered by the handler, then by all means.
|
||||
return stateKey.toString();
|
||||
}
|
||||
// If not, well, it needs to have a key generated and registered.
|
||||
final String nameSpace = blockKey.getKey();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(nameSpace); // We only want to get the block id, not the domain id, since that's going to be appended later
|
||||
|
||||
// Get the full Property -> Value mapping for the block state
|
||||
final ImmutableMap<IBlockState<?>, Comparable<?>> properties = nmsState.t();
|
||||
if (!properties.isEmpty()) {
|
||||
builder.append('[');
|
||||
Joiner joiner = Joiner.on(',');
|
||||
List<String> propertyValues = new ArrayList<>();
|
||||
// Yadadadada, go through all property entries and add each as a string for the "propertyName=value" (like "variant=oak")
|
||||
for (Map.Entry<IBlockState<?>, Comparable<?>> entry : properties.entrySet()) {
|
||||
// a() gets the inputted "name" for the state, the value, well, that gets the value, which is always toStringable.
|
||||
propertyValues.add(entry.getKey().a() + "=" + entry.getValue());
|
||||
}
|
||||
builder.append(joiner.join(propertyValues));
|
||||
builder.append(']');
|
||||
}
|
||||
// Now we can make the MinecraftKey...
|
||||
final MinecraftKey newKey = new MinecraftKey(builder.toString());
|
||||
BLOCK_STATE_REGISTRY.a(newKey, nmsState);
|
||||
return newKey.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
import Config.Libs.Bukkit.`1_13` as Bukkit
|
||||
// Config is located in <root>/buildSrc/src/main/java/Config.kt
|
||||
// It provides a bunch of constant values we use as dependency
|
||||
// strings, so we don't have to duplicate a bunch of them in
|
||||
// various scripts. The import allows us to "import as" for shorthand
|
||||
|
||||
plugins {
|
||||
`java-library` // This is already provided, but for static compilation,
|
||||
// we declare it here so we can use the IDE static type references
|
||||
}
|
||||
|
||||
/*
|
||||
Dependency inheritance is as follows
|
||||
- ":core", which provides
|
||||
configurate, tomcat jdbc/juli, and flowmath. It excludes sub
|
||||
dependencies like guava and apache commons lang.
|
||||
- ":bukkit", which provides nothing on it's own, except the
|
||||
core bukkit classes that can be built on 1.13.2 API (which may change).
|
||||
It also defines all subprojects to depend on ":core", and ":bukkit",
|
||||
and bstats-bukkit.
|
||||
*/
|
||||
dependencies {
|
||||
compileOnly(Bukkit.api) // Bukkit API for 1.13.2 - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
compileOnly(Bukkit.nms) // CraftBukkit-1.13.2-R0.1-SNAPSHOT - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
compileOnly(Bukkit.wgCore) // WorldGuard-core - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
compileOnly(Bukkit.wgLegacy) // WorldGuard-legacy - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
package com.gmail.nossr50.bukkit.v1_13;
|
||||
|
||||
import com.gmail.nossr50.VersionedHandler;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.minecraft.server.v1_13_R2.EntityTypes;
|
||||
import net.minecraft.server.v1_13_R2.IBlockData;
|
||||
import net.minecraft.server.v1_13_R2.IBlockState;
|
||||
import net.minecraft.server.v1_13_R2.IRegistry;
|
||||
import net.minecraft.server.v1_13_R2.MinecraftKey;
|
||||
import net.minecraft.server.v1_13_R2.RegistryMaterials;
|
||||
import net.minecraft.server.v1_13_R2.WorldServer;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlockState;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class NmsHandler extends VersionedHandler {
|
||||
|
||||
private static final IRegistry<net.minecraft.server.v1_13_R2.Block> BLOCK_REGISTRY = IRegistry.BLOCK;
|
||||
private static final IRegistry<EntityTypes<?>> ENTITY_REGISTRY = IRegistry.ENTITY_TYPE;
|
||||
/**
|
||||
* We use {@link RegistryMaterials} because we don't want to default to another block state,
|
||||
* if a {@link IBlockData} is not registered, we need to generate an ID and register that key to
|
||||
* that {@link IBlockData}. By default, this should be populated during plugin startup by
|
||||
* calling some init method, but that will be determined later.
|
||||
*/
|
||||
private static final IRegistry<IBlockData> BLOCK_STATE_REGISTRY = new RegistryMaterials<>();
|
||||
|
||||
NmsHandler(mcMMO plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Block block) {
|
||||
// We have to get the underlying nms block by the block, which might as well just be the type id.
|
||||
final WorldServer world = ((CraftBlock) block).getCraftWorld().getHandle();
|
||||
// The registry.c(T) will return MinecraftKey, and the toString() returns the "$mod:$name", so "minecraft:stone"
|
||||
final IBlockData blockState = world.getType(((CraftBlock) block).getPosition());
|
||||
// Sadly, Mojang doesn't store the string id onto blocks, states, or any of their types, they just call the registry.
|
||||
final MinecraftKey key = BLOCK_REGISTRY.getKey(blockState.getBlock());
|
||||
// Sometimes, there's a rare case with mods where the key is going to be null, but should never happen in bukkit/spigot.
|
||||
return key == null ? "minecraft:air" : key.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Entity entity) {
|
||||
// Every entity knows it's "type". Here, we just use the right method getter to get the EntityTypes instance for that entity
|
||||
final EntityTypes<?> entityType = ((CraftEntity) entity).getHandle().P();
|
||||
// And then... well. we get the string id from the registry!
|
||||
final MinecraftKey key = ENTITY_REGISTRY.getKey(entityType);
|
||||
// If the key is null, well, we've got bigger problems...
|
||||
return key == null ? "minecraft:slime" : key.toString();
|
||||
}
|
||||
|
||||
@SuppressWarnings("Duplicates")
|
||||
@Override
|
||||
public String getIdFor(BlockState block) {
|
||||
// Much like #getIdFor(Block) except here we have the "state" by numerical id. So.. we have to grab it from
|
||||
// the world.
|
||||
final CraftBlockState craftState = (CraftBlockState) block;
|
||||
final IBlockData nmsState = craftState.getHandle();
|
||||
final net.minecraft.server.v1_13_R2.Block nmsBlock = nmsState.getBlock();
|
||||
final MinecraftKey blockKey = BLOCK_REGISTRY.getKey(nmsBlock);
|
||||
// Now we can check if our blockstate registry actually has the block state.
|
||||
final MinecraftKey stateKey = BLOCK_STATE_REGISTRY.getKey(nmsState);
|
||||
if (stateKey != null) { // If the state has been registered by the handler, then by all means.
|
||||
return stateKey.toString();
|
||||
}
|
||||
// If not, well, it needs to have a key generated and registered.
|
||||
final String nameSpace = blockKey.getKey();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(nameSpace); // We only want to get the block id, not the domain id, since that's going to be appended later
|
||||
|
||||
// Get the full Property -> Value mapping for the block state
|
||||
final ImmutableMap<IBlockState<?>, Comparable<?>> properties = nmsState.getStateMap();
|
||||
if (!properties.isEmpty()) {
|
||||
builder.append('[');
|
||||
Joiner joiner = Joiner.on(',');
|
||||
List<String> propertyValues = new ArrayList<>();
|
||||
// Yadadadada, go through all property entries and add each as a string for the "propertyName=value" (like "variant=oak")
|
||||
for (Map.Entry<IBlockState<?>, Comparable<?>> entry : properties.entrySet()) {
|
||||
// a() gets the inputted "name" for the state, the value, well, that gets the value, which is always toStringable.
|
||||
propertyValues.add(entry.getKey().a() + "=" + entry.getValue());
|
||||
}
|
||||
builder.append(joiner.join(propertyValues));
|
||||
builder.append(']');
|
||||
}
|
||||
// Now we can make the MinecraftKey...
|
||||
final MinecraftKey newKey = new MinecraftKey(builder.toString());
|
||||
BLOCK_STATE_REGISTRY.a(newKey, nmsState);
|
||||
return newKey.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
import Config.Libs.Bukkit.`1_8` as Bukkit
|
||||
|
||||
plugins {
|
||||
java
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Dependency inheritance is as follows
|
||||
- ":core", which provides
|
||||
configurate, tomcat jdbc/juli, and flowmath. It excludes sub
|
||||
dependencies like guava and apache commons lang.
|
||||
- ":bukkit", which provides nothing on it's own, except the
|
||||
core bukkit classes that can be built on 1.13.2 API (which may change).
|
||||
It also defines all subprojects to depend on ":core", and ":bukkit",
|
||||
and bstats-bukkit.
|
||||
*/
|
||||
dependencies {
|
||||
compileOnly(Bukkit.api) // Bukkit API for 1.8.8 - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
compileOnly(Bukkit.nms) // CraftBukkit-1.8.8-R0.3-SNAPSHOT - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
compileOnly(Bukkit.wgLegacy) // Old worldguard - Defined in <root>/buildSrc/src/main/java/Config.kt
|
||||
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.gmail.nossr50.bukkit.v1_8;
|
||||
|
||||
import com.gmail.nossr50.VersionedHandler;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.minecraft.server.v1_8_R3.Blocks;
|
||||
import net.minecraft.server.v1_8_R3.EntityTypes;
|
||||
import net.minecraft.server.v1_8_R3.IBlockData;
|
||||
import net.minecraft.server.v1_8_R3.IBlockState;
|
||||
import net.minecraft.server.v1_8_R3.MinecraftKey;
|
||||
import net.minecraft.server.v1_8_R3.RegistryBlocks;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@SuppressWarnings({"unused", "Duplicates"}) // We use reflection to load this handler on 1.8 versions
|
||||
public class NmsHandler extends VersionedHandler {
|
||||
|
||||
/**
|
||||
* Static reference to the block registry. Don't really care about the fact that
|
||||
* it is being stored as a reference here, but for imports reasons, it's smaller
|
||||
* line length makes it optimal to read for method usages.
|
||||
*/
|
||||
private static final RegistryBlocks<MinecraftKey, net.minecraft.server.v1_8_R3.Block> BLOCK_REGISTRY = net.minecraft.server.v1_8_R3.Block.REGISTRY;
|
||||
/**
|
||||
* We can keep track of block state id's by generating them on demand, i.e., when
|
||||
* they're being requested from Blocks, or BlockDatas.
|
||||
*/
|
||||
private static final RegistryBlocks<MinecraftKey, IBlockData> BLOCK_STATE_REGISTRY = new RegistryBlocks<>(BLOCK_REGISTRY.c(Blocks.AIR)); // Default to AIR
|
||||
|
||||
NmsHandler(mcMMO plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Block block) {
|
||||
// We have to get the underlying nms block by the block, which might as well just be the type id.
|
||||
final net.minecraft.server.v1_8_R3.Block block1 = CraftMagicNumbers.getBlock(block);
|
||||
// The registry.c(T) will return MinecraftKey, and the toString() returns the "$mod:$name", so "minecraft:stone"
|
||||
final MinecraftKey key = BLOCK_REGISTRY.c(block1);
|
||||
return key.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(Entity entity) {
|
||||
// EntityTypes maintains the maps of Class<? extends nms.Entity> to String for id's and to numerical id numbers.
|
||||
// We of course are using the method that gets us the String id of the entity, such as "minecraft:creeper"
|
||||
return EntityTypes.b(((CraftEntity) entity).getHandle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdFor(BlockState block) {
|
||||
// Much like #getIdFor(Block) except here we have the "state" by numerical id. So.. we have to grab it from
|
||||
// the world.
|
||||
final net.minecraft.server.v1_8_R3.Block nmsBlock = net.minecraft.server.v1_8_R3.Block.REGISTRY.a(block.getTypeId());
|
||||
final MinecraftKey blockKey = net.minecraft.server.v1_8_R3.Block.REGISTRY.c(nmsBlock);
|
||||
final IBlockData blockState = nmsBlock.fromLegacyData(block.getRawData());
|
||||
// Now we can check if our blockstate registry actually has the block state.
|
||||
final MinecraftKey stateKey = BLOCK_STATE_REGISTRY.c(blockState);
|
||||
if (stateKey != null) { // If the state has been registered by the handler, then by all means.
|
||||
return stateKey.toString();
|
||||
}
|
||||
// If not, well, it needs to have a key generated and registered.
|
||||
final String nameSpace = blockKey.a();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(blockKey.a()); // We only want to get the block id, not the domain id, since that's going to be appended later
|
||||
|
||||
// Get the full Property -> Value mapping for the block state
|
||||
final ImmutableMap<IBlockState, Comparable> properties = blockState.b();
|
||||
if (!properties.isEmpty()) {
|
||||
builder.append('[');
|
||||
Joiner joiner = Joiner.on(',');
|
||||
List<String> propertyValues = new ArrayList<>();
|
||||
for (Map.Entry<IBlockState, Comparable> entry : properties.entrySet()) {
|
||||
// a() gets the inputted "name" for the state, the value, well, that gets the value, which is always toStringable.
|
||||
propertyValues.add(entry.getKey().a() + "=" + entry.getValue());
|
||||
}
|
||||
builder.append(joiner.join(propertyValues));
|
||||
builder.append(']');
|
||||
}
|
||||
// Now we can make the MinecraftKey...
|
||||
final MinecraftKey newKey = new MinecraftKey(builder.toString());
|
||||
BLOCK_STATE_REGISTRY.a(newKey, blockState);
|
||||
return newKey.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.gmail.nossr50.platform.bukkit;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.block.CraftBlock;
|
||||
|
||||
public class Testing18 {
|
||||
|
||||
Material material;
|
||||
|
||||
CraftBlock block;
|
||||
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import Config.Libs.Bukkit as Bukkit
|
||||
// Config is located in <root>/buildSrc/src/main/java/Config.kt
|
||||
// It provides a bunch of constant values we use as dependency
|
||||
// strings, so we don't have to duplicate a bunch of them in
|
||||
// various scripts. The import as allows for shorthand.
|
||||
|
||||
val bukkit: Project = Projects.bukkit!! // Static project references
|
||||
val core: Project = Projects.core!! // Stored by Config.kt and created in <root>/build.gradle.kts
|
||||
|
||||
/* This configures ":bukkit" and it's dependent projects:
|
||||
- ":bukkit:1_8_8"
|
||||
- ":bukkit:1_12"
|
||||
- ":bukkit:1_13"
|
||||
Basically sets up all projects to depend on ":core" and
|
||||
bstats-bukkit. Also sets up shadow to relocate bukkit related
|
||||
packages to limit platform interference
|
||||
*/
|
||||
allprojects {
|
||||
|
||||
dependencies {
|
||||
compile(core) // includes junit for tests
|
||||
implementation(Bukkit.bstats) // Bukkit bstats
|
||||
}
|
||||
|
||||
// TODO dunno if this works yet... project needs to compile.
|
||||
val shadowJar by tasks.getting(ShadowJar::class) {
|
||||
// Relocate bstats for bukkit, as per requirement for bstats
|
||||
relocate(Shadow.Origin.bstatsBukkit, Shadow.Target.bstatsBukkit)
|
||||
// Relocate the bukkit platform classes of mcmmo so we don't
|
||||
// interfere with other platform classes (or core)
|
||||
relocate(Deps.Groups.nossr, "${Deps.Groups.nossr}.bukkit") {
|
||||
exclude("${Deps.Groups.nossr}.core")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Tells all subprojects of ":bukkit" (":bukkit:1_8_8", ":bukkit:1_12",etc.)
|
||||
// to depend on this project (":bukkit") to inherit the dependencies, and
|
||||
// does NOT inherit the same configurations (anything configured outside
|
||||
// here does not persist to child projects).
|
||||
subprojects {
|
||||
dependencies {
|
||||
// Provide the base bukkit plugin dependency for plugin classloading.
|
||||
// All "versioned" implementations will be properly classloaded by the bukkit parent
|
||||
compileOnly(bukkit)
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
`java-library` // This is already provided, but for static compilation,
|
||||
// we declare it here so we can use the IDE static type references
|
||||
}
|
||||
dependencies {
|
||||
// Temporary dependencies while things are being moved.
|
||||
compileOnly(Bukkit.`1_13`.spigotApi) { // Spigot API for generic usage. Based on 1.13.2
|
||||
isTransitive = true // We don't want the dependencies
|
||||
}
|
||||
compileOnly(Bukkit.`1_13`.api) { // Bukkit API for generic usage. Based on 1.13.2
|
||||
isTransitive = true // We don't want the dependencies
|
||||
|
||||
}
|
||||
compileOnly(Bukkit.`1_13`.wgCore) { // WorldGuard dependency, again, for 1.13.2
|
||||
isTransitive = true // We don't want the dependencies
|
||||
exclude(group = Shadow.Exclude.sk89q)
|
||||
exclude(group = Shadow.Exclude.intake, module = "intake")
|
||||
exclude(group = Shadow.Exclude.sk89q, module = "squirrelid")
|
||||
exclude(group = Shadow.Exclude.flyway)
|
||||
exclude(group = Shadow.Exclude.khelekore)
|
||||
exclude(group = Shadow.Exclude.findbugs)
|
||||
}
|
||||
compileOnly(Bukkit.`1_13`.wgLegacy) {
|
||||
isTransitive = true // We don't want the dependencies
|
||||
exclude(group = Shadow.Exclude.bukkit)
|
||||
exclude(group = Shadow.Exclude.sk89q, module = "commandbook")
|
||||
exclude(group = Shadow.Exclude.bstats)
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class BukkitBlockType {
|
||||
|
||||
private Material material;
|
||||
|
||||
private BlockData blockData;
|
||||
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import com.sk89q.worldedit.extension.platform.NoCapablePlatformException;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
public abstract class VersionedHandler {
|
||||
private static VersionedHandler instance;
|
||||
|
||||
private final mcMMO plugin;
|
||||
|
||||
protected VersionedHandler(mcMMO plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the string value id of the BlockType, note that this is not the
|
||||
* blockstate.
|
||||
*
|
||||
* Examples include: "minecraft:stone", "minecraft:chest", "thaumcraft:log2"
|
||||
* BlockStates are more specific like "minecraft:log[variant=oak,axis=x]"
|
||||
*
|
||||
* This should be casting down and retrieving the id from the block registry maintained by vanilla.
|
||||
*
|
||||
* @param block The block instance (holds byte/numerical id or sometimes block state in newer versions)
|
||||
* @return The string id of the block type
|
||||
*/
|
||||
public abstract String getIdFor(Block block);
|
||||
|
||||
/**
|
||||
* Gets the string value id of the Entity, much like blocks, this is not
|
||||
* the full string representation of the entity, just the string id of the
|
||||
* TYPE.
|
||||
*
|
||||
* Examples include: "minecraft:creeeper", "minecraft:sheep", "thaumcraft:wisp"
|
||||
*
|
||||
* @param entity The entity instance
|
||||
* @return The string id of the entity's registered type.
|
||||
*/
|
||||
public abstract String getIdFor(Entity entity);
|
||||
|
||||
// Technically can be TileEntity snapshot references as well.
|
||||
public abstract String getIdFor(BlockState block);
|
||||
|
||||
/**
|
||||
* Gets the {@link VersionedHandler} instance for this running platform.
|
||||
* Note that all the handler does is perform various operations necessitated
|
||||
* by either a lack of, or bridging an implementation of some API/core aspects
|
||||
* that are not available through Bukkit API (like getting BlockType id's, or
|
||||
* BlockState id's).
|
||||
*
|
||||
* @param plugin The mcmmo plugin
|
||||
* @return The version handler instance
|
||||
*/
|
||||
public VersionedHandler getInstance(mcMMO plugin) {
|
||||
if (instance == null) {
|
||||
final String serverPackage = mcMMO.p.getServer().getClass().getPackage().getName();
|
||||
final String serverVersion = serverPackage.substring(serverPackage.lastIndexOf(".") + 1);
|
||||
try {
|
||||
final Class<?> clazz = Class.forName("com.gmail.nossr50.bukkit." + serverVersion + ".NmsHandler");
|
||||
if (VersionedHandler.class.isAssignableFrom(clazz)) {
|
||||
instance = (VersionedHandler) clazz.getConstructor(mcMMO.class).newInstance(plugin);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new NoCapablePlatformException("Could not discover a valid mcMMO VersionedHandler for version:" + serverVersion);
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.data.database.FlatfileDatabaseManager;
|
||||
import com.gmail.nossr50.core.data.database.SQLDatabaseManager;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MHDCommand implements TabExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (mcMMO.getDatabaseManager() instanceof SQLDatabaseManager) {
|
||||
SQLDatabaseManager m = (SQLDatabaseManager) mcMMO.getDatabaseManager();
|
||||
m.resetMobHealthSettings();
|
||||
for (McMMOPlayer player : UserManager.getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(MainConfig.getInstance().getMobHealthbarDefault());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
return true;
|
||||
}
|
||||
if (mcMMO.getDatabaseManager() instanceof FlatfileDatabaseManager) {
|
||||
FlatfileDatabaseManager m = (FlatfileDatabaseManager) mcMMO.getDatabaseManager();
|
||||
m.resetMobHealthSettings();
|
||||
for (McMMOPlayer player : UserManager.getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(MainConfig.getInstance().getMobHealthbarDefault());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,325 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.core.skills.ModConfigType;
|
||||
import com.gmail.nossr50.core.util.Misc;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class McImportCommand implements CommandExecutor {
|
||||
int fileAmount;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
importModConfig();
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean importModConfig() {
|
||||
String importFilePath = mcMMO.getModDirectory() + File.separator + "import";
|
||||
File importFile = new File(importFilePath, "import.log");
|
||||
mcMMO.p.getLogger().info("Starting import of mod materials...");
|
||||
fileAmount = 0;
|
||||
|
||||
HashMap<ModConfigType, ArrayList<String>> materialNames = new HashMap<ModConfigType, ArrayList<String>>();
|
||||
|
||||
BufferedReader in = null;
|
||||
|
||||
try {
|
||||
// Open the file
|
||||
in = new BufferedReader(new FileReader(importFile));
|
||||
|
||||
String line;
|
||||
String materialName;
|
||||
String modName;
|
||||
|
||||
// While not at the end of the file
|
||||
while ((line = in.readLine()) != null) {
|
||||
String[] split1 = line.split("material ");
|
||||
|
||||
if (split1.length != 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String[] split2 = split1[1].split(" with");
|
||||
|
||||
if (split2.length != 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
materialName = split2[0];
|
||||
|
||||
// Categorise each material under a mod config type
|
||||
ModConfigType type = ModConfigType.getModConfigType(materialName);
|
||||
|
||||
if (!materialNames.containsKey(type)) {
|
||||
materialNames.put(type, new ArrayList<String>());
|
||||
}
|
||||
|
||||
materialNames.get(type).add(materialName);
|
||||
continue;
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
mcMMO.p.getLogger().warning("Could not find " + importFile.getAbsolutePath() + " ! (No such file or directory)");
|
||||
mcMMO.p.getLogger().warning("Copy and paste latest.log to " + importFile.getParentFile().getAbsolutePath() + " and rename it to import.log");
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
} finally {
|
||||
tryClose(in);
|
||||
}
|
||||
|
||||
createOutput(materialNames);
|
||||
|
||||
mcMMO.p.getLogger().info("Import finished! Created " + fileAmount + " files!");
|
||||
return true;
|
||||
}
|
||||
|
||||
private void createOutput(HashMap<ModConfigType, ArrayList<String>> materialNames) {
|
||||
for (ModConfigType modConfigType : materialNames.keySet()) {
|
||||
HashMap<String, ArrayList<String>> materialNamesType = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
for (String materialName : materialNames.get(modConfigType)) {
|
||||
String modName = Misc.getModName(materialName);
|
||||
|
||||
if (!materialNamesType.containsKey(modName)) {
|
||||
materialNamesType.put(modName, new ArrayList<String>());
|
||||
}
|
||||
|
||||
materialNamesType.get(modName).add(materialName);
|
||||
}
|
||||
|
||||
createOutput(modConfigType, materialNamesType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void tryClose(Closeable c) {
|
||||
if (c == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
c.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void createOutput(ModConfigType modConfigType, HashMap<String, ArrayList<String>> materialNames) {
|
||||
File outputFilePath = new File(mcMMO.getModDirectory() + File.separator + "output");
|
||||
if (!outputFilePath.exists() && !outputFilePath.mkdirs()) {
|
||||
mcMMO.p.getLogger().severe("Could not create output directory! " + outputFilePath.getAbsolutePath());
|
||||
}
|
||||
|
||||
FileWriter out = null;
|
||||
String type = modConfigType.name().toLowerCase();
|
||||
|
||||
for (String modName : materialNames.keySet()) {
|
||||
File outputFile = new File(outputFilePath, modName + "." + type + ".yml");
|
||||
mcMMO.p.getLogger().info("Creating " + outputFile.getName());
|
||||
try {
|
||||
if (outputFile.exists() && !outputFile.delete()) {
|
||||
mcMMO.p.getLogger().severe("Not able to delete old output file! " + outputFile.getAbsolutePath());
|
||||
}
|
||||
|
||||
if (!outputFile.createNewFile()) {
|
||||
mcMMO.p.getLogger().severe("Could not create output file! " + outputFile.getAbsolutePath());
|
||||
continue;
|
||||
}
|
||||
|
||||
StringBuilder writer = new StringBuilder();
|
||||
HashMap<String, ArrayList<String>> configSections = getConfigSections(modConfigType, modName, materialNames);
|
||||
|
||||
if (configSections == null) {
|
||||
mcMMO.p.getLogger().severe("Something went wrong!! type is " + type);
|
||||
return;
|
||||
}
|
||||
|
||||
// Write the file, go through each skill and write all the materials
|
||||
for (String configSection : configSections.keySet()) {
|
||||
if (configSection.equals("UNIDENTIFIED")) {
|
||||
writer.append("# This isn't a valid config section and all materials in this category need to be").append("\r\n");
|
||||
writer.append("# copy and pasted to a valid section of this config file.").append("\r\n");
|
||||
}
|
||||
writer.append(configSection).append(":").append("\r\n");
|
||||
|
||||
for (String line : configSections.get(configSection)) {
|
||||
writer.append(line).append("\r\n");
|
||||
}
|
||||
|
||||
writer.append("\r\n");
|
||||
}
|
||||
|
||||
out = new FileWriter(outputFile);
|
||||
out.write(writer.toString());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} finally {
|
||||
tryClose(out);
|
||||
fileAmount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSections(ModConfigType type, String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
switch (type) {
|
||||
case BLOCKS:
|
||||
return getConfigSectionsBlocks(modName, materialNames);
|
||||
case TOOLS:
|
||||
return getConfigSectionsTools(modName, materialNames);
|
||||
case ARMOR:
|
||||
return getConfigSectionsArmor(modName, materialNames);
|
||||
case UNKNOWN:
|
||||
return getConfigSectionsUnknown(modName, materialNames);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsBlocks(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
// Go through all the materials and categorise them under a skill
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String skillName = "UNIDENTIFIED";
|
||||
if (materialName.contains("ORE")) {
|
||||
skillName = "Mining";
|
||||
} else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
|
||||
skillName = "Woodcutting";
|
||||
} else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
|
||||
skillName = "Herbalism";
|
||||
} else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
|
||||
skillName = "Excavation";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(skillName)) {
|
||||
configSections.put(skillName, new ArrayList<String>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(skillName);
|
||||
skillContents.add(" " + materialName + "|0:");
|
||||
skillContents.add(" " + " " + "XP_Gain: 99");
|
||||
skillContents.add(" " + " " + "Double_Drops_Enabled: true");
|
||||
|
||||
if (skillName.equals("Mining")) {
|
||||
skillContents.add(" " + " " + "Smelting_XP_Gain: 9");
|
||||
} else if (skillName.equals("Woodcutting")) {
|
||||
skillContents.add(" " + " " + "Is_Log: " + materialName.contains("LOG"));
|
||||
}
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsTools(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
// Go through all the materials and categorise them under a tool type
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String toolType = "UNIDENTIFIED";
|
||||
if (materialName.contains("PICKAXE")) {
|
||||
toolType = "Pickaxes";
|
||||
} else if (materialName.contains("AXE")) {
|
||||
toolType = "Axes";
|
||||
} else if (materialName.contains("BOW")) {
|
||||
toolType = "Bows";
|
||||
} else if (materialName.contains("HOE")) {
|
||||
toolType = "Hoes";
|
||||
} else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
|
||||
toolType = "Shovels";
|
||||
} else if (materialName.contains("SWORD")) {
|
||||
toolType = "Swords";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(toolType)) {
|
||||
configSections.put(toolType, new ArrayList<String>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(toolType);
|
||||
skillContents.add(" " + materialName + ":");
|
||||
skillContents.add(" " + " " + "XP_Modifier: 1.0");
|
||||
skillContents.add(" " + " " + "Tier: 1");
|
||||
skillContents.add(" " + " " + "Ability_Enabled: true");
|
||||
addRepairableLines(materialName, skillContents);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsArmor(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
// Go through all the materials and categorise them under an armor type
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String toolType = "UNIDENTIFIED";
|
||||
if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
|
||||
toolType = "Boots";
|
||||
} else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
|
||||
toolType = "Chestplates";
|
||||
} else if (materialName.contains("HELM") || materialName.contains("HAT")) {
|
||||
toolType = "Helmets";
|
||||
} else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
|
||||
toolType = "Leggings";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(toolType)) {
|
||||
configSections.put(toolType, new ArrayList<String>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(toolType);
|
||||
skillContents.add(" " + materialName + ":");
|
||||
addRepairableLines(materialName, skillContents);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private void addRepairableLines(String materialName, ArrayList<String> skillContents) {
|
||||
skillContents.add(" " + " " + "Repairable: true");
|
||||
skillContents.add(" " + " " + "Repair_Material: REPAIR_MATERIAL_NAME");
|
||||
skillContents.add(" " + " " + "Repair_Material_Data_Value: 0");
|
||||
skillContents.add(" " + " " + "Repair_Material_Quantity: 9");
|
||||
skillContents.add(" " + " " + "Repair_Material_Pretty_Name: Repair Item Name");
|
||||
skillContents.add(" " + " " + "Repair_MinimumLevel: 0");
|
||||
skillContents.add(" " + " " + "Repair_XpMultiplier: 1.0");
|
||||
|
||||
Material material = Material.matchMaterial(materialName);
|
||||
short durability = (material == null) ? (short) 9999 : material.getMaxDurability();
|
||||
skillContents.add(" " + " " + "Durability: " + ((durability > 0) ? durability : (short) 9999));
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsUnknown(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
// Go through all the materials and print them
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String configKey = "UNIDENTIFIED";
|
||||
|
||||
if (!configSections.containsKey(configKey)) {
|
||||
configSections.put(configKey, new ArrayList<String>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(configKey);
|
||||
skillContents.add(" " + materialName);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
import com.gmail.nossr50.commands.ToggleCommand;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class McChatSpy extends ToggleCommand {
|
||||
@Override
|
||||
protected boolean hasOtherPermission(CommandSender sender) {
|
||||
return Permissions.adminChatSpyOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSelfPermission(CommandSender sender) {
|
||||
return Permissions.adminChatSpy(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.togglePartyChatSpying();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Toggle", playerName));
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.gmail.nossr50.commands.server;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* This command facilitates switching the skill system scale between classic and modern scale
|
||||
*/
|
||||
public class Mcmmoupgrade implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.random.RandomChanceSkill;
|
||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import com.gmail.nossr50.listeners.InteractionManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AcrobaticsCommand extends SkillCommand {
|
||||
private String dodgeChance;
|
||||
private String dodgeChanceLucky;
|
||||
|
||||
private boolean canDodge;
|
||||
private boolean canRoll;
|
||||
|
||||
public AcrobaticsCommand() {
|
||||
super(PrimarySkillType.ACROBATICS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// ACROBATICS_DODGE
|
||||
if (canDodge) {
|
||||
String[] dodgeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ACROBATICS_DODGE);
|
||||
dodgeChance = dodgeStrings[0];
|
||||
dodgeChanceLucky = dodgeStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canDodge = canUseSubskill(player, SubSkillType.ACROBATICS_DODGE);
|
||||
canRoll = canUseSubskill(player, SubSkillType.ACROBATICS_ROLL);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canDodge) {
|
||||
messages.add(getStatMessage(SubSkillType.ACROBATICS_DODGE, dodgeChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dodgeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canRoll) {
|
||||
|
||||
AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName("Roll");
|
||||
|
||||
if (abstractSubSkill != null) {
|
||||
double rollChance, graceChance;
|
||||
|
||||
//Chance to roll at half
|
||||
RandomChanceSkill roll_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
|
||||
|
||||
//Chance to graceful roll
|
||||
RandomChanceSkill grace_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
|
||||
grace_rcs.setSkillLevel(grace_rcs.getSkillLevel() * 2); //Double Odds
|
||||
|
||||
//Chance Stat Calculations
|
||||
rollChance = RandomChanceUtil.getRandomChanceExecutionChance(roll_rcs);
|
||||
graceChance = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs);
|
||||
//damageThreshold = AdvancedConfig.getInstance().getRollDamageThreshold();
|
||||
|
||||
String rollStrings[] = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ACROBATICS_ROLL);
|
||||
|
||||
//Format
|
||||
double rollChanceLucky = rollChance * 1.333D;
|
||||
double graceChanceLucky = graceChance * 1.333D;
|
||||
|
||||
messages.add(getStatMessage(SubSkillType.ACROBATICS_ROLL, rollStrings[0])
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", rollStrings[1]) : ""));
|
||||
|
||||
/*messages.add(getStatMessage(true, false, SubSkillType.ACROBATICS_ROLL, String.valueOf(graceChance))
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", String.valueOf(graceChanceLucky)) : ""));*/
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ACROBATICS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.alchemy.AlchemyManager;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AlchemyCommand extends SkillCommand {
|
||||
private String brewSpeed;
|
||||
private String brewSpeedLucky;
|
||||
|
||||
private int tier;
|
||||
private int ingredientCount;
|
||||
private String ingredientList;
|
||||
|
||||
private boolean canCatalysis;
|
||||
private boolean canConcoctions;
|
||||
|
||||
public AlchemyCommand() {
|
||||
super(PrimarySkillType.ALCHEMY);
|
||||
}
|
||||
|
||||
protected String[] calculateAbilityDisplayValues(Player player) {
|
||||
AlchemyManager alchemyManager = UserManager.getPlayer(player).getAlchemyManager();
|
||||
String[] displayValues = new String[2];
|
||||
|
||||
boolean isLucky = Permissions.lucky(player, PrimarySkillType.ALCHEMY);
|
||||
|
||||
displayValues[0] = decimal.format(alchemyManager.calculateBrewSpeed(false)) + "x";
|
||||
displayValues[1] = isLucky ? decimal.format(alchemyManager.calculateBrewSpeed(true)) + "x" : null;
|
||||
|
||||
return displayValues;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// ALCHEMY_CATALYSIS
|
||||
if (canCatalysis) {
|
||||
String[] catalysisStrings = calculateAbilityDisplayValues(player);
|
||||
brewSpeed = catalysisStrings[0];
|
||||
brewSpeedLucky = catalysisStrings[1];
|
||||
}
|
||||
|
||||
// ALCHEMY_CONCOCTIONS
|
||||
if (canConcoctions) {
|
||||
AlchemyManager alchemyManager = UserManager.getPlayer(player).getAlchemyManager();
|
||||
tier = alchemyManager.getTier();
|
||||
ingredientCount = alchemyManager.getIngredients().size();
|
||||
ingredientList = alchemyManager.getIngredientList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canCatalysis = canUseSubskill(player, SubSkillType.ALCHEMY_CATALYSIS);
|
||||
canConcoctions = canUseSubskill(player, SubSkillType.ALCHEMY_CONCOCTIONS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canCatalysis) {
|
||||
messages.add(getStatMessage(SubSkillType.ALCHEMY_CATALYSIS, brewSpeed)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", brewSpeedLucky) : ""));
|
||||
}
|
||||
|
||||
if (canConcoctions) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.ALCHEMY_CONCOCTIONS, String.valueOf(tier), String.valueOf(RankUtils.getHighestRank(SubSkillType.ALCHEMY_CONCOCTIONS))));
|
||||
messages.add(getStatMessage(true, true, SubSkillType.ALCHEMY_CONCOCTIONS, String.valueOf(ingredientCount), ingredientList));
|
||||
|
||||
//messages.add(LocaleLoader.getString("Alchemy.Concoctions.Rank", tier, RankUtils.getHighestRank(SubSkillType.ALCHEMY_CONCOCTIONS)));
|
||||
//messages.add(LocaleLoader.getString("Alchemy.Concoctions.Ingredients", ingredientCount, ingredientList));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ALCHEMY);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.archery.Archery;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ArcheryCommand extends SkillCommand {
|
||||
private String skillShotBonus;
|
||||
private String dazeChance;
|
||||
private String dazeChanceLucky;
|
||||
private String retrieveChance;
|
||||
private String retrieveChanceLucky;
|
||||
|
||||
private boolean canSkillShot;
|
||||
private boolean canDaze;
|
||||
private boolean canRetrieve;
|
||||
|
||||
public ArcheryCommand() {
|
||||
super(PrimarySkillType.ARCHERY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// ARCHERY_ARROW_RETRIEVAL
|
||||
if (canRetrieve) {
|
||||
String[] retrieveStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ARCHERY_ARROW_RETRIEVAL);
|
||||
retrieveChance = retrieveStrings[0];
|
||||
retrieveChanceLucky = retrieveStrings[1];
|
||||
}
|
||||
|
||||
// ARCHERY_DAZE
|
||||
if (canDaze) {
|
||||
String[] dazeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ARCHERY_DAZE);
|
||||
dazeChance = dazeStrings[0];
|
||||
dazeChanceLucky = dazeStrings[1];
|
||||
}
|
||||
|
||||
// SKILL SHOT
|
||||
if (canSkillShot) {
|
||||
skillShotBonus = percent.format(Archery.getDamageBonusPercent(player));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSkillShot = canUseSubskill(player, SubSkillType.ARCHERY_SKILL_SHOT);
|
||||
canDaze = canUseSubskill(player, SubSkillType.ARCHERY_DAZE);
|
||||
canRetrieve = canUseSubskill(player, SubSkillType.ARCHERY_ARROW_RETRIEVAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canRetrieve) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_ARROW_RETRIEVAL, retrieveChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", retrieveChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canDaze) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_DAZE, dazeChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dazeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canSkillShot) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_SKILL_SHOT, skillShotBonus));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ARCHERY);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.axes.Axes;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AxesCommand extends SkillCommand {
|
||||
private String critChance;
|
||||
private String critChanceLucky;
|
||||
private double axeMasteryDamage;
|
||||
private double impactDamage;
|
||||
private String skullSplitterLength;
|
||||
private String skullSplitterLengthEndurance;
|
||||
|
||||
private boolean canSkullSplitter;
|
||||
private boolean canCritical;
|
||||
private boolean canAxeMastery;
|
||||
private boolean canImpact;
|
||||
private boolean canGreaterImpact;
|
||||
|
||||
public AxesCommand() {
|
||||
super(PrimarySkillType.AXES);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// ARMOR IMPACT
|
||||
if (canImpact) {
|
||||
impactDamage = UserManager.getPlayer(player).getAxesManager().getImpactDurabilityDamage();
|
||||
}
|
||||
|
||||
// AXE MASTERY
|
||||
if (canAxeMastery) {
|
||||
axeMasteryDamage = Axes.getAxeMasteryBonusDamage(player);
|
||||
}
|
||||
|
||||
// CRITICAL HIT
|
||||
if (canCritical) {
|
||||
String[] criticalHitStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.AXES_CRITICAL_STRIKES);
|
||||
critChance = criticalHitStrings[0];
|
||||
critChanceLucky = criticalHitStrings[1];
|
||||
}
|
||||
|
||||
// SKULL SPLITTER
|
||||
if (canSkullSplitter) {
|
||||
String[] skullSplitterStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
skullSplitterLength = skullSplitterStrings[0];
|
||||
skullSplitterLengthEndurance = skullSplitterStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSkullSplitter = Permissions.skullSplitter(player) && RankUtils.hasUnlockedSubskill(player, SubSkillType.AXES_SKULL_SPLITTER);
|
||||
canCritical = canUseSubskill(player, SubSkillType.AXES_CRITICAL_STRIKES);
|
||||
canAxeMastery = canUseSubskill(player, SubSkillType.AXES_AXE_MASTERY);
|
||||
canImpact = canUseSubskill(player, SubSkillType.AXES_ARMOR_IMPACT);
|
||||
canGreaterImpact = canUseSubskill(player, SubSkillType.AXES_GREATER_IMPACT);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canImpact) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.2"), LocaleLoader.getString("Axes.Ability.Bonus.3", impactDamage)));
|
||||
}
|
||||
|
||||
if (canAxeMastery) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.0"), LocaleLoader.getString("Axes.Ability.Bonus.1", axeMasteryDamage)));
|
||||
}
|
||||
|
||||
if (canCritical) {
|
||||
messages.add(getStatMessage(SubSkillType.AXES_CRITICAL_STRIKES, critChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", critChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canGreaterImpact) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.4"), LocaleLoader.getString("Axes.Ability.Bonus.5", Axes.greaterImpactBonusDamage)));
|
||||
}
|
||||
|
||||
if (canSkullSplitter) {
|
||||
messages.add(getStatMessage(SubSkillType.AXES_SKULL_SPLITTER, skullSplitterLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", skullSplitterLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.AXES);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ExcavationCommand extends SkillCommand {
|
||||
private String gigaDrillBreakerLength;
|
||||
private String gigaDrillBreakerLengthEndurance;
|
||||
|
||||
private boolean canGigaDrill;
|
||||
private boolean canTreasureHunt;
|
||||
|
||||
public ExcavationCommand() {
|
||||
super(PrimarySkillType.EXCAVATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// GIGA DRILL BREAKER
|
||||
if (canGigaDrill) {
|
||||
String gigaDrillStrings[] = calculateLengthDisplayValues(player, skillValue);
|
||||
gigaDrillBreakerLength = gigaDrillStrings[0];
|
||||
gigaDrillBreakerLengthEndurance = gigaDrillStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canGigaDrill = Permissions.gigaDrillBreaker(player) && RankUtils.hasUnlockedSubskill(player, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER);
|
||||
canTreasureHunt = canUseSubskill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canGigaDrill) {
|
||||
messages.add(getStatMessage(SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER, gigaDrillBreakerLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", gigaDrillBreakerLengthEndurance) : ""));
|
||||
|
||||
//messages.add(LocaleLoader.getString("Excavation.Effect.Length", gigaDrillBreakerLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", gigaDrillBreakerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.EXCAVATION);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,177 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.core.config.treasure.TreasureConfig;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.fishing.Fishing;
|
||||
import com.gmail.nossr50.core.skills.primary.fishing.FishingManager;
|
||||
import com.gmail.nossr50.core.skills.treasure.Rarity;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class FishingCommand extends SkillCommand {
|
||||
private int lootTier;
|
||||
private String shakeChance;
|
||||
private String shakeChanceLucky;
|
||||
private int fishermansDietRank;
|
||||
private String biteChance;
|
||||
|
||||
private String trapTreasure;
|
||||
private String commonTreasure;
|
||||
private String uncommonTreasure;
|
||||
private String rareTreasure;
|
||||
private String epicTreasure;
|
||||
private String legendaryTreasure;
|
||||
private String recordTreasure;
|
||||
|
||||
private String magicChance;
|
||||
|
||||
private boolean canTreasureHunt;
|
||||
private boolean canMagicHunt;
|
||||
private boolean canShake;
|
||||
private boolean canFishermansDiet;
|
||||
private boolean canMasterAngler;
|
||||
private boolean canIceFish;
|
||||
|
||||
public FishingCommand() {
|
||||
super(PrimarySkillType.FISHING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
FishingManager fishingManager = UserManager.getPlayer(player).getFishingManager();
|
||||
|
||||
// TREASURE HUNTER
|
||||
if (canTreasureHunt) {
|
||||
lootTier = fishingManager.getLootTier();
|
||||
|
||||
// ItemStack drop rates
|
||||
commonTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.COMMON) / 100.0);
|
||||
uncommonTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.UNCOMMON) / 100.0);
|
||||
rareTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RARE) / 100.0);
|
||||
epicTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.EPIC) / 100.0);
|
||||
legendaryTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.LEGENDARY) / 100.0);
|
||||
recordTreasure = percent.format(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RECORD) / 100.0);
|
||||
|
||||
// Magic hunter drop rates
|
||||
double totalEnchantChance = 0;
|
||||
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
if (rarity != Rarity.RECORD) {
|
||||
totalEnchantChance += TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, rarity);
|
||||
}
|
||||
}
|
||||
|
||||
if (totalEnchantChance >= 1)
|
||||
magicChance = percent.format(totalEnchantChance / 100.0);
|
||||
else
|
||||
magicChance = percent.format(0);
|
||||
}
|
||||
|
||||
// FISHING_SHAKE
|
||||
if (canShake) {
|
||||
String[] shakeStrings = RandomChanceUtil.calculateAbilityDisplayValuesStatic(player, PrimarySkillType.FISHING, fishingManager.getShakeChance());
|
||||
shakeChance = shakeStrings[0];
|
||||
shakeChanceLucky = shakeStrings[1];
|
||||
}
|
||||
|
||||
// FISHERMAN'S DIET
|
||||
if (canFishermansDiet) {
|
||||
fishermansDietRank = calculateRank(skillValue, Fishing.fishermansDietMaxLevel, Fishing.fishermansDietRankLevel1);
|
||||
}
|
||||
|
||||
// MASTER ANGLER
|
||||
if (canMasterAngler) {
|
||||
double rawBiteChance = 1.0 / (player.getWorld().hasStorm() ? 300 : 500);
|
||||
|
||||
Location location = fishingManager.getHookLocation();
|
||||
|
||||
if (location == null) {
|
||||
location = player.getLocation();
|
||||
}
|
||||
|
||||
if (Fishing.masterAnglerBiomes.contains(location.getBlock().getBiome())) {
|
||||
rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBiomeModifier();
|
||||
}
|
||||
|
||||
if (player.isInsideVehicle() && player.getVehicle().getType() == EntityType.BOAT) {
|
||||
rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBoatModifier();
|
||||
}
|
||||
|
||||
double luckyModifier = Permissions.lucky(player, PrimarySkillType.FISHING) ? 1.333D : 1.0D;
|
||||
|
||||
biteChance = percent.format((rawBiteChance * 100.0D) * luckyModifier);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canTreasureHunt = canUseSubskill(player, SubSkillType.FISHING_TREASURE_HUNTER);
|
||||
canMagicHunt = canUseSubskill(player, SubSkillType.FISHING_MAGIC_HUNTER) && canUseSubskill(player, SubSkillType.FISHING_TREASURE_HUNTER);
|
||||
canShake = canUseSubskill(player, SubSkillType.FISHING_SHAKE);
|
||||
canFishermansDiet = canUseSubskill(player, SubSkillType.FISHING_FISHERMANS_DIET);
|
||||
canMasterAngler = canUseSubskill(player, SubSkillType.FISHING_MASTER_ANGLER);
|
||||
canIceFish = canUseSubskill(player, SubSkillType.FISHING_ICE_FISHING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canFishermansDiet) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_FISHERMANS_DIET, String.valueOf(fishermansDietRank)));
|
||||
}
|
||||
|
||||
if (canIceFish) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_ICE_FISHING.getLocaleStatDescription()));
|
||||
}
|
||||
|
||||
if (canMagicHunt) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_MAGIC_HUNTER, magicChance));
|
||||
}
|
||||
|
||||
if (canMasterAngler) {
|
||||
//TODO: Update this with more details
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_MASTER_ANGLER, biteChance));
|
||||
}
|
||||
|
||||
if (canShake) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_SHAKE, shakeChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canTreasureHunt) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_TREASURE_HUNTER, String.valueOf(lootTier), String.valueOf(RankUtils.getHighestRank(SubSkillType.FISHING_TREASURE_HUNTER))));
|
||||
messages.add(getStatMessage(true, true, SubSkillType.FISHING_TREASURE_HUNTER,
|
||||
String.valueOf(commonTreasure),
|
||||
String.valueOf(uncommonTreasure),
|
||||
String.valueOf(rareTreasure),
|
||||
String.valueOf(epicTreasure),
|
||||
String.valueOf(legendaryTreasure),
|
||||
String.valueOf(recordTreasure)));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.FISHING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class HerbalismCommand extends SkillCommand {
|
||||
private String greenTerraLength;
|
||||
private String greenTerraLengthEndurance;
|
||||
private String greenThumbChance;
|
||||
private String greenThumbChanceLucky;
|
||||
private int greenThumbStage;
|
||||
private int farmersDietRank;
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
private String hylianLuckChance;
|
||||
private String hylianLuckChanceLucky;
|
||||
private String shroomThumbChance;
|
||||
private String shroomThumbChanceLucky;
|
||||
|
||||
private boolean hasHylianLuck;
|
||||
private boolean canGreenTerra;
|
||||
private boolean canGreenThumbPlants;
|
||||
private boolean canGreenThumbBlocks;
|
||||
private boolean canFarmersDiet;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canShroomThumb;
|
||||
|
||||
public HerbalismCommand() {
|
||||
super(PrimarySkillType.HERBALISM);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_DOUBLE_DROPS);
|
||||
;
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
// FARMERS DIET
|
||||
if (canFarmersDiet) {
|
||||
farmersDietRank = RankUtils.getRank(player, SubSkillType.HERBALISM_FARMERS_DIET);
|
||||
}
|
||||
|
||||
// GREEN TERRA
|
||||
if (canGreenTerra) {
|
||||
String[] greenTerraStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
greenTerraLength = greenTerraStrings[0];
|
||||
greenTerraLengthEndurance = greenTerraStrings[1];
|
||||
}
|
||||
|
||||
// GREEN THUMB
|
||||
if (canGreenThumbBlocks || canGreenThumbPlants) {
|
||||
greenThumbStage = RankUtils.getRank(player, SubSkillType.HERBALISM_GREEN_THUMB);
|
||||
|
||||
String[] greenThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_GREEN_THUMB);
|
||||
greenThumbChance = greenThumbStrings[0];
|
||||
greenThumbChanceLucky = greenThumbStrings[1];
|
||||
}
|
||||
|
||||
// HYLIAN LUCK
|
||||
if (hasHylianLuck) {
|
||||
String[] hylianLuckStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_HYLIAN_LUCK);
|
||||
hylianLuckChance = hylianLuckStrings[0];
|
||||
hylianLuckChanceLucky = hylianLuckStrings[1];
|
||||
}
|
||||
|
||||
// SHROOM THUMB
|
||||
if (canShroomThumb) {
|
||||
String[] shroomThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_SHROOM_THUMB);
|
||||
shroomThumbChance = shroomThumbStrings[0];
|
||||
shroomThumbChanceLucky = shroomThumbStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
hasHylianLuck = canUseSubskill(player, SubSkillType.HERBALISM_HYLIAN_LUCK);
|
||||
canGreenTerra = Permissions.greenTerra(player);
|
||||
canGreenThumbPlants = RankUtils.hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (Permissions.greenThumbPlant(player, Material.WHEAT) || Permissions.greenThumbPlant(player, Material.CARROT) || Permissions.greenThumbPlant(player, Material.POTATO) || Permissions.greenThumbPlant(player, Material.BEETROOT) || Permissions.greenThumbPlant(player, Material.NETHER_WART) || Permissions.greenThumbPlant(player, Material.COCOA));
|
||||
canGreenThumbBlocks = RankUtils.hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLESTONE_WALL) || Permissions.greenThumbBlock(player, Material.STONE_BRICKS));
|
||||
canFarmersDiet = canUseSubskill(player, SubSkillType.HERBALISM_FARMERS_DIET);
|
||||
canDoubleDrop = canUseSubskill(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled();
|
||||
canShroomThumb = canUseSubskill(player, SubSkillType.HERBALISM_SHROOM_THUMB);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canFarmersDiet) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.HERBALISM_FARMERS_DIET, String.valueOf(farmersDietRank)));
|
||||
}
|
||||
|
||||
if (canGreenTerra) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_TERRA, greenTerraLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
|
||||
|
||||
//messages.add(LocaleLoader.getString("Herbalism.Ability.GTe.Length", greenTerraLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canGreenThumbBlocks || canGreenThumbPlants) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_THUMB, greenThumbChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", greenThumbChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Herbalism.Ability.GTh.Chance", greenThumbChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", greenThumbChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canGreenThumbPlants) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
|
||||
}
|
||||
|
||||
if (hasHylianLuck) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_HYLIAN_LUCK, hylianLuckChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", hylianLuckChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canShroomThumb) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_SHROOM_THUMB, shroomThumbChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shroomThumbChanceLucky) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.HERBALISM);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,121 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MiningCommand extends SkillCommand {
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
private String superBreakerLength;
|
||||
private String superBreakerLengthEndurance;
|
||||
|
||||
private int blastMiningRank;
|
||||
private int bonusTNTDrops;
|
||||
private double blastRadiusIncrease;
|
||||
private String oreBonus;
|
||||
private String debrisReduction;
|
||||
private String blastDamageDecrease;
|
||||
|
||||
private boolean canSuperBreaker;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canBlast;
|
||||
private boolean canBiggerBombs;
|
||||
private boolean canDemoExpert;
|
||||
|
||||
public MiningCommand() {
|
||||
super(PrimarySkillType.MINING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// BLAST MINING
|
||||
if (canBlast || canDemoExpert || canBiggerBombs) {
|
||||
MiningManager miningManager = UserManager.getPlayer(player).getMiningManager();
|
||||
|
||||
blastMiningRank = miningManager.getBlastMiningTier();
|
||||
bonusTNTDrops = miningManager.getDropMultiplier();
|
||||
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
|
||||
debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
||||
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
|
||||
blastRadiusIncrease = miningManager.getBlastRadiusModifier();
|
||||
}
|
||||
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.MINING_DOUBLE_DROPS);
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
// SUPER BREAKER
|
||||
if (canSuperBreaker) {
|
||||
String[] superBreakerStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
superBreakerLength = superBreakerStrings[0];
|
||||
superBreakerLengthEndurance = superBreakerStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBiggerBombs = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_BIGGER_BOMBS) && Permissions.biggerBombs(player);
|
||||
canBlast = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(player);
|
||||
canDemoExpert = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(player);
|
||||
canDoubleDrop = Permissions.isSubSkillEnabled(player, SubSkillType.MINING_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled();
|
||||
canSuperBreaker = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canBiggerBombs) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastRadiusIncrease)));
|
||||
//messages.add(LocaleLoader.getString("Mining.Blast.Radius.Increase", blastRadiusIncrease));
|
||||
}
|
||||
|
||||
if (canBlast) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING)), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
||||
//messages.add(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
||||
}
|
||||
|
||||
if (canDemoExpert) {
|
||||
messages.add(getStatMessage(SubSkillType.MINING_DEMOLITIONS_EXPERTISE, blastDamageDecrease));
|
||||
//messages.add(LocaleLoader.getString("Mining.Effect.Decrease", blastDamageDecrease));
|
||||
}
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Mining.Effect.DropChance", doubleDropChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canSuperBreaker) {
|
||||
messages.add(getStatMessage(SubSkillType.MINING_SUPER_BREAKER, superBreakerLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", superBreakerLengthEndurance) : ""));
|
||||
//messages.add(LocaleLoader.getString("Mining.Ability.Length", superBreakerLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", superBreakerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.MINING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.listeners.InteractionManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is the command that retrieves data about skills from in-game sources
|
||||
*/
|
||||
public class MmoInfoCommand implements TabExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
||||
/*
|
||||
* Only allow players to use this command
|
||||
*/
|
||||
if (commandSender instanceof Player) {
|
||||
if (args.length < 1)
|
||||
return false;
|
||||
|
||||
Player player = (Player) commandSender;
|
||||
if (Permissions.mmoinfo(player)) {
|
||||
if (args == null || args[0] == null)
|
||||
return false;
|
||||
|
||||
if (args[0].equalsIgnoreCase("???")) {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", "???"));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Mystery"));
|
||||
return true;
|
||||
} else if (InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0])) {
|
||||
displayInfo(player, args[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
//Not a real skill
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.NoMatch"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], PrimarySkillType.SUBSKILL_NAMES, new ArrayList<String>(PrimarySkillType.SUBSKILL_NAMES.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void displayInfo(Player player, String subSkillName) {
|
||||
//Check to see if the skill exists in the new system
|
||||
AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName);
|
||||
if (abstractSubSkill != null) {
|
||||
/* New System Skills are programmable */
|
||||
abstractSubSkill.printInfo(player);
|
||||
//TextComponentFactory.sendPlayerUrlHeader(player);
|
||||
} else {
|
||||
/*
|
||||
* Skill is only in the old system
|
||||
*/
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillName));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill"));
|
||||
}
|
||||
|
||||
for (SubSkillType subSkillType : SubSkillType.values()) {
|
||||
if (subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
|
||||
subSkillName = subSkillType.getWikiName(subSkillType.toString());
|
||||
}
|
||||
|
||||
//Send Player Wiki Link
|
||||
TextComponentFactory.sendPlayerSubSkillWikiLink(player, subSkillName);
|
||||
}
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.MaterialType;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.ArcaneForging;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.Repair;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.RepairManager;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RepairCommand extends SkillCommand {
|
||||
private String repairMasteryBonus;
|
||||
private String superRepairChance;
|
||||
private String superRepairChanceLucky;
|
||||
|
||||
private boolean canSuperRepair;
|
||||
private boolean canMasterRepair;
|
||||
private boolean canArcaneForge;
|
||||
private boolean canRepairStone;
|
||||
private boolean canRepairIron;
|
||||
private boolean canRepairGold;
|
||||
private boolean canRepairDiamond;
|
||||
private boolean canRepairString;
|
||||
private boolean canRepairLeather;
|
||||
private boolean canRepairWood;
|
||||
private boolean arcaneBypass;
|
||||
|
||||
private int diamondLevel;
|
||||
private int goldLevel;
|
||||
private int ironLevel;
|
||||
private int stoneLevel;
|
||||
|
||||
public RepairCommand() {
|
||||
super(PrimarySkillType.REPAIR);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// We're using pickaxes here, not the best but it works
|
||||
Repairable diamondRepairable = mcMMO.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE);
|
||||
Repairable goldRepairable = mcMMO.getRepairableManager().getRepairable(Material.GOLDEN_PICKAXE);
|
||||
Repairable ironRepairable = mcMMO.getRepairableManager().getRepairable(Material.IRON_PICKAXE);
|
||||
Repairable stoneRepairable = mcMMO.getRepairableManager().getRepairable(Material.STONE_PICKAXE);
|
||||
|
||||
// TODO: This isn't really accurate - if they don't have pickaxes loaded it doesn't always mean the repair level is 0
|
||||
diamondLevel = (diamondRepairable == null) ? 0 : diamondRepairable.getMinimumLevel();
|
||||
goldLevel = (goldRepairable == null) ? 0 : goldRepairable.getMinimumLevel();
|
||||
ironLevel = (ironRepairable == null) ? 0 : ironRepairable.getMinimumLevel();
|
||||
stoneLevel = (stoneRepairable == null) ? 0 : stoneRepairable.getMinimumLevel();
|
||||
|
||||
// REPAIR MASTERY
|
||||
if (canMasterRepair) {
|
||||
repairMasteryBonus = percent.format(Math.min(((Repair.repairMasteryMaxBonus / Repair.repairMasteryMaxBonusLevel) * skillValue), Repair.repairMasteryMaxBonus) / 100D);
|
||||
}
|
||||
|
||||
// SUPER REPAIR
|
||||
if (canSuperRepair) {
|
||||
String[] superRepairStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.REPAIR_SUPER_REPAIR);
|
||||
superRepairChance = superRepairStrings[0];
|
||||
superRepairChanceLucky = superRepairStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSuperRepair = canUseSubskill(player, SubSkillType.REPAIR_SUPER_REPAIR);
|
||||
canMasterRepair = canUseSubskill(player, SubSkillType.REPAIR_REPAIR_MASTERY);
|
||||
canArcaneForge = canUseSubskill(player, SubSkillType.REPAIR_ARCANE_FORGING);
|
||||
canRepairDiamond = Permissions.repairMaterialType(player, MaterialType.DIAMOND);
|
||||
canRepairGold = Permissions.repairMaterialType(player, MaterialType.GOLD);
|
||||
canRepairIron = Permissions.repairMaterialType(player, MaterialType.IRON);
|
||||
canRepairStone = Permissions.repairMaterialType(player, MaterialType.STONE);
|
||||
canRepairString = Permissions.repairMaterialType(player, MaterialType.STRING);
|
||||
canRepairLeather = Permissions.repairMaterialType(player, MaterialType.LEATHER);
|
||||
canRepairWood = Permissions.repairMaterialType(player, MaterialType.WOOD);
|
||||
arcaneBypass = Permissions.arcaneBypass(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canArcaneForge) {
|
||||
RepairManager repairManager = UserManager.getPlayer(player).getRepairManager();
|
||||
|
||||
messages.add(getStatMessage(false, true,
|
||||
SubSkillType.REPAIR_ARCANE_FORGING,
|
||||
String.valueOf(RankUtils.getRank(player, SubSkillType.REPAIR_ARCANE_FORGING)),
|
||||
RankUtils.getHighestRankStr(SubSkillType.REPAIR_ARCANE_FORGING)));
|
||||
|
||||
if (ArcaneForging.arcaneForgingEnchantLoss || ArcaneForging.arcaneForgingDowngrades) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.REPAIR_ARCANE_FORGING,
|
||||
String.valueOf(arcaneBypass ? 100 : repairManager.getKeepEnchantChance()),
|
||||
String.valueOf(arcaneBypass ? 0 : repairManager.getDowngradeEnchantChance()))); //Jesus those parentheses
|
||||
}
|
||||
}
|
||||
|
||||
if (canMasterRepair) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.REPAIR_REPAIR_MASTERY, repairMasteryBonus));
|
||||
}
|
||||
|
||||
if (canSuperRepair) {
|
||||
messages.add(getStatMessage(SubSkillType.REPAIR_SUPER_REPAIR, superRepairChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", superRepairChanceLucky) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.REPAIR);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
|
||||
import com.gmail.nossr50.core.skills.child.salvage.SalvageManager;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SalvageCommand extends SkillCommand {
|
||||
private boolean canAdvancedSalvage;
|
||||
private boolean canArcaneSalvage;
|
||||
|
||||
public SalvageCommand() {
|
||||
super(PrimarySkillType.SALVAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canAdvancedSalvage = canUseSubskill(player, SubSkillType.SALVAGE_ADVANCED_SALVAGE);
|
||||
canArcaneSalvage = canUseSubskill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager();
|
||||
|
||||
if (canAdvancedSalvage) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Salvage.Ability.Bonus.0"),
|
||||
LocaleLoader.getString("Salvage.Ability.Bonus.1", salvageManager.getSalvageableAmount())));
|
||||
}
|
||||
|
||||
if (canArcaneSalvage) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SALVAGE_ARCANE_SALVAGE,
|
||||
String.valueOf(salvageManager.getArcaneSalvageRank()),
|
||||
String.valueOf(RankUtils.getHighestRank(SubSkillType.SALVAGE_ARCANE_SALVAGE))));
|
||||
|
||||
if (Salvage.arcaneSalvageEnchantLoss) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Salvage.Arcane.ExtractFull"), percent.format(salvageManager.getExtractFullEnchantChance() / 100)));
|
||||
}
|
||||
|
||||
if (Salvage.arcaneSalvageDowngrades) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Salvage.Arcane.ExtractPartial"), percent.format(salvageManager.getExtractPartialEnchantChance() / 100)));
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SALVAGE);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,290 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.child.FamilyTree;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.StringUtils;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
|
||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
|
||||
import com.gmail.nossr50.core.util.skills.PerksUtils;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class SkillCommand implements TabExecutor {
|
||||
protected PrimarySkillType skill;
|
||||
protected DecimalFormat percent = new DecimalFormat("##0.00%");
|
||||
protected DecimalFormat decimal = new DecimalFormat("##0.00");
|
||||
private String skillName;
|
||||
private CommandExecutor skillGuideCommand;
|
||||
|
||||
public SkillCommand(PrimarySkillType skill) {
|
||||
this.skill = skill;
|
||||
skillName = skill.getName();
|
||||
skillGuideCommand = new SkillGuideCommand(skill);
|
||||
}
|
||||
|
||||
public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
|
||||
String[] newArray = new String[existingArray.length + 1];
|
||||
newArray[0] = itemToAdd;
|
||||
|
||||
System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
|
||||
|
||||
return newArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
boolean isLucky = Permissions.lucky(player, skill);
|
||||
boolean hasEndurance = (PerksUtils.handleActivationPerks(player, 0, 0) != 0);
|
||||
float skillValue = mcMMOPlayer.getSkillLevel(skill);
|
||||
|
||||
//Send the players a few blank lines to make finding the top of the skill command easier
|
||||
if (AdvancedConfig.getInstance().doesSkillCommandSendBlankLines())
|
||||
for (int i = 0; i < 2; i++) {
|
||||
player.sendMessage("");
|
||||
}
|
||||
|
||||
permissionsCheck(player);
|
||||
dataCalculations(player, skillValue);
|
||||
|
||||
sendSkillCommandHeader(player, mcMMOPlayer, (int) skillValue);
|
||||
|
||||
//Make JSON text components
|
||||
List<TextComponent> subskillTextComponents = getTextComponents(player);
|
||||
|
||||
//Subskills Header
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", LocaleLoader.getString("Effects.SubSkills.Overhaul")));
|
||||
|
||||
//Send JSON text components
|
||||
|
||||
TextComponentFactory.sendPlayerSubSkillList(player, subskillTextComponents);
|
||||
|
||||
/*for(TextComponent tc : subskillTextComponents)
|
||||
{
|
||||
player.spigot().sendMessage(new TextComponent[]{tc, new TextComponent(": TESTING")});
|
||||
}*/
|
||||
|
||||
//Stats
|
||||
getStatMessages(player, isLucky, hasEndurance, skillValue);
|
||||
|
||||
//Header
|
||||
|
||||
|
||||
//Link Header
|
||||
if (MainConfig.getInstance().getUrlLinksEnabled()) {
|
||||
player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header"));
|
||||
TextComponentFactory.sendPlayerUrlHeader(player);
|
||||
}
|
||||
|
||||
|
||||
if (MainConfig.getInstance().getScoreboardsEnabled() && MainConfig.getInstance().getSkillUseBoard()) {
|
||||
ScoreboardManager.enablePlayerSkillScoreboard(player, skill);
|
||||
}
|
||||
|
||||
return true;
|
||||
default:
|
||||
return skillGuideCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
}
|
||||
|
||||
private void getStatMessages(Player player, boolean isLucky, boolean hasEndurance, float skillValue) {
|
||||
List<String> statsMessages = statsDisplay(player, skillValue, hasEndurance, isLucky);
|
||||
|
||||
if (!statsMessages.isEmpty()) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", LocaleLoader.getString("Commands.Stats.Self.Overhaul")));
|
||||
|
||||
for (String message : statsMessages) {
|
||||
player.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
player.sendMessage(LocaleLoader.getString("Guides.Available", skillName, skillName.toLowerCase()));
|
||||
}
|
||||
|
||||
private void sendSkillCommandHeader(Player player, McMMOPlayer mcMMOPlayer, int skillValue) {
|
||||
ChatColor hd1 = ChatColor.DARK_AQUA;
|
||||
ChatColor c1 = ChatColor.GOLD;
|
||||
ChatColor c2 = ChatColor.RED;
|
||||
|
||||
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", skillName));
|
||||
|
||||
if (!skill.isChildSkill()) {
|
||||
/*
|
||||
* NON-CHILD SKILLS
|
||||
*/
|
||||
|
||||
//XP GAIN METHOD
|
||||
player.sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain." + StringUtils.getCapitalized(skill.toString()))));
|
||||
|
||||
//LEVEL
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Level.Overhaul", skillValue, mcMMOPlayer.getSkillXpLevel(skill), mcMMOPlayer.getXpToLevel(skill)));
|
||||
|
||||
} else {
|
||||
/*
|
||||
* CHILD SKILLS
|
||||
*/
|
||||
|
||||
|
||||
Set<PrimarySkillType> parents = FamilyTree.getParents(skill);
|
||||
ArrayList<PrimarySkillType> parentList = new ArrayList<>();
|
||||
|
||||
//TODO: Add JSON here
|
||||
for (PrimarySkillType parent : parents) {
|
||||
parentList.add(parent);
|
||||
/*player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level.Overhaul", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)))*/
|
||||
;
|
||||
}
|
||||
|
||||
String parentMessage = "";
|
||||
|
||||
for (int i = 0; i < parentList.size(); i++) {
|
||||
if (i + 1 < parentList.size()) {
|
||||
parentMessage += LocaleLoader.getString("Effects.Child.ParentList", parentList.get(i).getName(), mcMMOPlayer.getSkillLevel(parentList.get(i)));
|
||||
parentMessage += ChatColor.GRAY + ", ";
|
||||
} else {
|
||||
parentMessage += LocaleLoader.getString("Effects.Child.ParentList", parentList.get(i).getName(), mcMMOPlayer.getSkillLevel(parentList.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
//XP GAIN METHOD
|
||||
player.sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain.Child")));
|
||||
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Child.Overhaul", skillValue, parentMessage));
|
||||
//LEVEL
|
||||
//player.sendMessage(LocaleLoader.getString("Effects.Child.Overhaul", skillValue, skillValue));
|
||||
|
||||
}
|
||||
/*
|
||||
if (!skill.isChildSkill()) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Header", skillName));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.XPGain", LocaleLoader.getString("Commands.XPGain." + StringUtils.getCapitalized(skill.toString()))));
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Level", skillValue, mcMMOPlayer.getSkillXpLevel(skill), mcMMOPlayer.getXpToLevel(skill)));
|
||||
} else {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Header", skillName + " " + LocaleLoader.getString("Skills.Child")));
|
||||
player.sendMessage(LocaleLoader.getString("Commands.XPGain", LocaleLoader.getString("Commands.XPGain.Child")));
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Child", skillValue));
|
||||
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Header", LocaleLoader.getString("Skills.Parents")));
|
||||
Set<PrimarySkillType> parents = FamilyTree.getParents(skill);
|
||||
|
||||
for (PrimarySkillType parent : parents) {
|
||||
player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)));
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return ImmutableList.of("?");
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected int calculateRank(float skillValue, int maxLevel, int rankChangeLevel) {
|
||||
return Math.min((int) skillValue, maxLevel) / rankChangeLevel;
|
||||
}
|
||||
|
||||
protected String[] getAbilityDisplayValues(SkillActivationType skillActivationType, Player player, SubSkillType subSkill) {
|
||||
return RandomChanceUtil.calculateAbilityDisplayValues(skillActivationType, player, subSkill);
|
||||
}
|
||||
|
||||
protected String[] calculateLengthDisplayValues(Player player, float skillValue) {
|
||||
int maxLength = skill.getAbility().getMaxLength();
|
||||
int abilityLengthVar = AdvancedConfig.getInstance().getAbilityLength();
|
||||
int abilityLengthCap = AdvancedConfig.getInstance().getAbilityLengthCap();
|
||||
|
||||
int length;
|
||||
|
||||
if (abilityLengthCap <= 0) {
|
||||
length = 2 + (int) (skillValue / abilityLengthVar);
|
||||
} else {
|
||||
length = 2 + (int) (Math.min(abilityLengthCap, skillValue) / abilityLengthVar);
|
||||
}
|
||||
|
||||
int enduranceLength = PerksUtils.handleActivationPerks(player, length, maxLength);
|
||||
|
||||
if (maxLength != 0) {
|
||||
length = Math.min(length, maxLength);
|
||||
}
|
||||
|
||||
return new String[]{String.valueOf(length), String.valueOf(enduranceLength)};
|
||||
}
|
||||
|
||||
protected String getStatMessage(SubSkillType subSkillType, String... vars) {
|
||||
return getStatMessage(false, false, subSkillType, vars);
|
||||
}
|
||||
|
||||
protected String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars) {
|
||||
String templateKey = isCustom ? "Ability.Generic.Template.Custom" : "Ability.Generic.Template";
|
||||
String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription() : subSkillType.getLocaleKeyStatExtraDescription();
|
||||
|
||||
if (isCustom)
|
||||
//Cast to Object[] to suppress warnings
|
||||
return LocaleLoader.getString(templateKey, LocaleLoader.getString(statDescriptionKey, (Object[]) vars));
|
||||
else {
|
||||
String[] mergedList = addItemToFirstPositionOfArray(LocaleLoader.getString(statDescriptionKey), vars);
|
||||
//Cast to Object[] to suppress warnings
|
||||
return LocaleLoader.getString(templateKey, (Object[]) mergedList);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void dataCalculations(Player player, float skillValue);
|
||||
|
||||
protected abstract void permissionsCheck(Player player);
|
||||
|
||||
//protected abstract List<String> effectsDisplay();
|
||||
|
||||
protected abstract List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky);
|
||||
|
||||
protected abstract List<TextComponent> getTextComponents(Player player);
|
||||
|
||||
/**
|
||||
* Checks if a player can use a skill
|
||||
*
|
||||
* @param player target player
|
||||
* @param subSkillType target subskill
|
||||
* @return true if the player has permission and has the skill unlocked
|
||||
*/
|
||||
protected boolean canUseSubskill(Player player, SubSkillType subSkillType) {
|
||||
return Permissions.isSubSkillEnabled(player, subSkillType) && RankUtils.hasUnlockedSubskill(player, subSkillType);
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.child.smelting.Smelting;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SmeltingCommand extends SkillCommand {
|
||||
private String burnTimeModifier;
|
||||
private String str_secondSmeltChance;
|
||||
private String str_secondSmeltChanceLucky;
|
||||
private String str_fluxMiningChance;
|
||||
private String str_fluxMiningChanceLucky;
|
||||
|
||||
private boolean canFuelEfficiency;
|
||||
private boolean canSecondSmelt;
|
||||
private boolean canFluxMine;
|
||||
private boolean canUnderstandTheArt;
|
||||
|
||||
public SmeltingCommand() {
|
||||
super(PrimarySkillType.SMELTING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// FUEL EFFICIENCY
|
||||
if (canFuelEfficiency) {
|
||||
burnTimeModifier = decimal.format(1 + ((skillValue / Smelting.burnModifierMaxLevel) * Smelting.burnTimeMultiplier));
|
||||
}
|
||||
|
||||
// FLUX MINING
|
||||
/*if (canFluxMine) {
|
||||
String[] fluxMiningStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_FLUX_MINING);
|
||||
str_fluxMiningChance = fluxMiningStrings[0];
|
||||
str_fluxMiningChanceLucky = fluxMiningStrings[1];
|
||||
}*/
|
||||
|
||||
// SECOND SMELT
|
||||
if (canSecondSmelt) {
|
||||
String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_SECOND_SMELT);
|
||||
str_secondSmeltChance = secondSmeltStrings[0];
|
||||
str_secondSmeltChanceLucky = secondSmeltStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canFuelEfficiency = canUseSubskill(player, SubSkillType.SMELTING_FUEL_EFFICIENCY);
|
||||
canSecondSmelt = canUseSubskill(player, SubSkillType.SMELTING_SECOND_SMELT);
|
||||
canFluxMine = canUseSubskill(player, SubSkillType.SMELTING_FLUX_MINING);
|
||||
canUnderstandTheArt = Permissions.vanillaXpBoost(player, skill) && RankUtils.hasUnlockedSubskill(player, SubSkillType.SMELTING_UNDERSTANDING_THE_ART);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
/*if (canFluxMine) {
|
||||
messages.add(getStatMessage(SubSkillType.SMELTING_FLUX_MINING, str_fluxMiningChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Smelting.Ability.FluxMining", str_fluxMiningChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
|
||||
}*/
|
||||
|
||||
if (canFuelEfficiency) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SMELTING_FUEL_EFFICIENCY, burnTimeModifier));
|
||||
}
|
||||
|
||||
if (canSecondSmelt) {
|
||||
messages.add(getStatMessage(SubSkillType.SMELTING_SECOND_SMELT, str_secondSmeltChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_secondSmeltChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canUnderstandTheArt) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SMELTING_UNDERSTANDING_THE_ART,
|
||||
String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getVanillaXpMultiplier())));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SMELTING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SwordsCommand extends SkillCommand {
|
||||
private String counterChance;
|
||||
private String counterChanceLucky;
|
||||
private int bleedLength;
|
||||
private String bleedChance;
|
||||
private String bleedChanceLucky;
|
||||
private String serratedStrikesLength;
|
||||
private String serratedStrikesLengthEndurance;
|
||||
|
||||
private boolean canCounter;
|
||||
private boolean canSerratedStrike;
|
||||
private boolean canBleed;
|
||||
|
||||
public SwordsCommand() {
|
||||
super(PrimarySkillType.SWORDS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// SWORDS_COUNTER_ATTACK
|
||||
if (canCounter) {
|
||||
String[] counterStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_COUNTER_ATTACK);
|
||||
counterChance = counterStrings[0];
|
||||
counterChanceLucky = counterStrings[1];
|
||||
}
|
||||
|
||||
// SWORDS_RUPTURE
|
||||
if (canBleed) {
|
||||
bleedLength = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks();
|
||||
|
||||
String[] bleedStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_RUPTURE);
|
||||
bleedChance = bleedStrings[0];
|
||||
bleedChanceLucky = bleedStrings[1];
|
||||
}
|
||||
|
||||
// SERRATED STRIKES
|
||||
if (canSerratedStrike) {
|
||||
String[] serratedStrikesStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
serratedStrikesLength = serratedStrikesStrings[0];
|
||||
serratedStrikesLengthEndurance = serratedStrikesStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBleed = canUseSubskill(player, SubSkillType.SWORDS_RUPTURE);
|
||||
canCounter = canUseSubskill(player, SubSkillType.SWORDS_COUNTER_ATTACK);
|
||||
canSerratedStrike = RankUtils.hasUnlockedSubskill(player, SubSkillType.SWORDS_SERRATED_STRIKES) && Permissions.serratedStrikes(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
int ruptureTicks = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks();
|
||||
double ruptureDamagePlayers = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamagePlayer() * 1.5D : AdvancedConfig.getInstance().getRuptureDamagePlayer();
|
||||
double ruptureDamageMobs = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamageMobs() * 1.5D : AdvancedConfig.getInstance().getRuptureDamageMobs();
|
||||
|
||||
if (canCounter) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_COUNTER_ATTACK, counterChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", counterChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canBleed) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_RUPTURE, bleedChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", bleedChanceLucky) : ""));
|
||||
messages.add(getStatMessage(true, true, SubSkillType.SWORDS_RUPTURE,
|
||||
String.valueOf(ruptureTicks),
|
||||
String.valueOf(ruptureDamagePlayers),
|
||||
String.valueOf(ruptureDamageMobs)));
|
||||
|
||||
messages.add(LocaleLoader.getString("Swords.Combat.Rupture.Note"));
|
||||
}
|
||||
|
||||
if (canSerratedStrike) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_SERRATED_STRIKES, serratedStrikesLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", serratedStrikesLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SWORDS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.primary.taming.Taming;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TamingCommand extends SkillCommand {
|
||||
private String goreChance;
|
||||
private String goreChanceLucky;
|
||||
|
||||
private boolean canBeastLore;
|
||||
private boolean canGore;
|
||||
private boolean canSharpenedClaws;
|
||||
private boolean canEnvironmentallyAware;
|
||||
private boolean canThickFur;
|
||||
private boolean canShockProof;
|
||||
private boolean canCallWild;
|
||||
private boolean canFastFood;
|
||||
private boolean canHolyHound;
|
||||
|
||||
public TamingCommand() {
|
||||
super(PrimarySkillType.TAMING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
if (canGore) {
|
||||
String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.TAMING_GORE);
|
||||
goreChance = goreStrings[0];
|
||||
goreChanceLucky = goreStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBeastLore = canUseSubskill(player, SubSkillType.TAMING_BEAST_LORE);
|
||||
canCallWild = Permissions.callOfTheWild(player, EntityType.HORSE) || Permissions.callOfTheWild(player, EntityType.WOLF) || Permissions.callOfTheWild(player, EntityType.OCELOT);
|
||||
canEnvironmentallyAware = canUseSubskill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE);
|
||||
canFastFood = canUseSubskill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE);
|
||||
canGore = canUseSubskill(player, SubSkillType.TAMING_GORE);
|
||||
canSharpenedClaws = canUseSubskill(player, SubSkillType.TAMING_SHARPENED_CLAWS);
|
||||
canShockProof = canUseSubskill(player, SubSkillType.TAMING_SHOCK_PROOF);
|
||||
canThickFur = canUseSubskill(player, SubSkillType.TAMING_THICK_FUR);
|
||||
canHolyHound = canUseSubskill(player, SubSkillType.TAMING_HOLY_HOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canEnvironmentallyAware) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1")));
|
||||
}
|
||||
|
||||
if (canFastFood) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", percent.format(Taming.fastFoodServiceActivationChance / 100D))));
|
||||
}
|
||||
|
||||
if (canGore) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template",
|
||||
LocaleLoader.getString("Taming.Combat.Chance.Gore"),
|
||||
goreChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", goreChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canHolyHound) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.10"), LocaleLoader.getString("Taming.Ability.Bonus.11")));
|
||||
}
|
||||
|
||||
if (canSharpenedClaws) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7", Taming.sharpenedClawsBonusDamage)));
|
||||
}
|
||||
|
||||
if (canShockProof) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5", Taming.shockProofModifier)));
|
||||
}
|
||||
|
||||
if (canThickFur) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3", Taming.thickFurModifier)));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UnarmedCommand extends SkillCommand {
|
||||
private String berserkLength;
|
||||
private String berserkLengthEndurance;
|
||||
private String deflectChance;
|
||||
private String deflectChanceLucky;
|
||||
private String disarmChance;
|
||||
private String disarmChanceLucky;
|
||||
private String ironGripChance;
|
||||
private String ironGripChanceLucky;
|
||||
private double ironArmBonus;
|
||||
|
||||
private boolean canBerserk;
|
||||
private boolean canDisarm;
|
||||
private boolean canIronArm;
|
||||
private boolean canDeflect;
|
||||
private boolean canIronGrip;
|
||||
|
||||
public UnarmedCommand() {
|
||||
super(PrimarySkillType.UNARMED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// UNARMED_ARROW_DEFLECT
|
||||
if (canDeflect) {
|
||||
String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_ARROW_DEFLECT);
|
||||
;
|
||||
deflectChance = deflectStrings[0];
|
||||
deflectChanceLucky = deflectStrings[1];
|
||||
}
|
||||
|
||||
// BERSERK
|
||||
if (canBerserk) {
|
||||
String[] berserkStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
berserkLength = berserkStrings[0];
|
||||
berserkLengthEndurance = berserkStrings[1];
|
||||
}
|
||||
|
||||
// UNARMED_DISARM
|
||||
if (canDisarm) {
|
||||
String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_DISARM);
|
||||
;
|
||||
disarmChance = disarmStrings[0];
|
||||
disarmChanceLucky = disarmStrings[1];
|
||||
}
|
||||
|
||||
// IRON ARM
|
||||
if (canIronArm) {
|
||||
ironArmBonus = UserManager.getPlayer(player).getUnarmedManager().getIronArmDamage();
|
||||
}
|
||||
|
||||
// IRON GRIP
|
||||
if (canIronGrip) {
|
||||
String[] ironGripStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_IRON_GRIP);
|
||||
ironGripChance = ironGripStrings[0];
|
||||
ironGripChanceLucky = ironGripStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBerserk = RankUtils.hasUnlockedSubskill(player, SubSkillType.UNARMED_BERSERK) && Permissions.berserk(player);
|
||||
canIronArm = canUseSubskill(player, SubSkillType.UNARMED_IRON_ARM_STYLE);
|
||||
canDeflect = canUseSubskill(player, SubSkillType.UNARMED_ARROW_DEFLECT);
|
||||
canDisarm = canUseSubskill(player, SubSkillType.UNARMED_DISARM);
|
||||
canIronGrip = canUseSubskill(player, SubSkillType.UNARMED_IRON_GRIP);
|
||||
// TODO: Apparently we forgot about block cracker?
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canDeflect) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_ARROW_DEFLECT, deflectChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.ArrowDeflect", deflectChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canBerserk) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_BERSERK, berserkLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
|
||||
//messages.add(LocaleLoader.getString("Unarmed.Ability.Berserk.Length", berserkLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canDisarm) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_DISARM, disarmChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.Disarm", disarmChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canIronArm) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Unarmed.Ability.Bonus.0"), LocaleLoader.getString("Unarmed.Ability.Bonus.1", ironArmBonus)));
|
||||
}
|
||||
|
||||
if (canIronGrip) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_IRON_GRIP, ironGripChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", ironGripChanceLucky) : ""));
|
||||
//messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.IronGrip", ironGripChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", ironGripChanceLucky) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.UNARMED);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.TextComponentFactory;
|
||||
import com.gmail.nossr50.core.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class WoodcuttingCommand extends SkillCommand {
|
||||
private String treeFellerLength;
|
||||
private String treeFellerLengthEndurance;
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
|
||||
private boolean canTreeFell;
|
||||
private boolean canLeafBlow;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canSplinter;
|
||||
private boolean canBarkSurgeon;
|
||||
private boolean canNaturesBounty;
|
||||
|
||||
public WoodcuttingCommand() {
|
||||
super(PrimarySkillType.WOODCUTTING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
setDoubleDropClassicChanceStrings(player);
|
||||
}
|
||||
|
||||
// TREE FELLER
|
||||
if (canTreeFell) {
|
||||
String[] treeFellerStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
treeFellerLength = treeFellerStrings[0];
|
||||
treeFellerLengthEndurance = treeFellerStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
private void setDoubleDropClassicChanceStrings(Player player) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER);
|
||||
;
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canTreeFell = RankUtils.hasUnlockedSubskill(player, SubSkillType.WOODCUTTING_TREE_FELLER) && Permissions.treeFeller(player);
|
||||
canDoubleDrop = canUseSubskill(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && !skill.getDoubleDropsDisabled() && RankUtils.getRank(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1;
|
||||
canLeafBlow = canUseSubskill(player, SubSkillType.WOODCUTTING_LEAF_BLOWER);
|
||||
/*canSplinter = canUseSubskill(player, SubSkillType.WOODCUTTING_SPLINTER);
|
||||
canBarkSurgeon = canUseSubskill(player, SubSkillType.WOODCUTTING_BARK_SURGEON);
|
||||
canNaturesBounty = canUseSubskill(player, SubSkillType.WOODCUTTING_NATURES_BOUNTY);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<String>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.WOODCUTTING_HARVEST_LUMBER, doubleDropChance)
|
||||
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canLeafBlow) {
|
||||
messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Woodcutting.Ability.0"), LocaleLoader.getString("Woodcutting.Ability.1")));
|
||||
}
|
||||
|
||||
if (canTreeFell) {
|
||||
messages.add(getStatMessage(SubSkillType.WOODCUTTING_TREE_FELLER, treeFellerLength)
|
||||
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", treeFellerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.WOODCUTTING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,566 +0,0 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.config.ChunkConversionOptions;
|
||||
import com.gmail.nossr50.core.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.SuperAbilityType;
|
||||
import com.gmail.nossr50.core.skills.ToolType;
|
||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
|
||||
import com.gmail.nossr50.core.skills.primary.alchemy.Alchemy;
|
||||
import com.gmail.nossr50.core.skills.primary.excavation.ExcavationManager;
|
||||
import com.gmail.nossr50.core.skills.primary.herbalism.Herbalism;
|
||||
import com.gmail.nossr50.core.skills.primary.herbalism.HerbalismManager;
|
||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.Repair;
|
||||
import com.gmail.nossr50.core.skills.primary.woodcutting.WoodcuttingManager;
|
||||
import com.gmail.nossr50.core.util.BlockUtils;
|
||||
import com.gmail.nossr50.core.util.EventUtils;
|
||||
import com.gmail.nossr50.core.util.ItemUtils;
|
||||
import com.gmail.nossr50.core.util.Permissions;
|
||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
|
||||
import com.gmail.nossr50.core.util.sounds.SoundManager;
|
||||
import com.gmail.nossr50.core.util.sounds.SoundType;
|
||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
|
||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
|
||||
import com.gmail.nossr50.core.events.fake.FakeBlockBreakEvent;
|
||||
import com.gmail.nossr50.core.events.fake.FakeBlockDamageEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
import org.bukkit.block.*;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.*;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BlockListener implements Listener {
|
||||
private final mcMMO plugin;
|
||||
|
||||
public BlockListener(final mcMMO plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockPistonExtend events.
|
||||
*
|
||||
* @param event The event to monitor
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
BlockFace direction = event.getDirection();
|
||||
Block movedBlock = event.getBlock();
|
||||
movedBlock = movedBlock.getRelative(direction, 2);
|
||||
|
||||
for (Block b : event.getBlocks()) {
|
||||
if (BlockUtils.shouldBeWatched(b.getState()) && mcMMO.getPlaceStore().isTrue(b)) {
|
||||
movedBlock = b.getRelative(direction);
|
||||
mcMMO.getPlaceStore().setTrue(movedBlock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockPistonRetract events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
// Get opposite direction so we get correct block
|
||||
BlockFace direction = event.getDirection();
|
||||
Block movedBlock = event.getBlock().getRelative(direction);
|
||||
mcMMO.getPlaceStore().setTrue(movedBlock);
|
||||
|
||||
for (Block block : event.getBlocks()) {
|
||||
movedBlock = block.getRelative(direction);
|
||||
mcMMO.getPlaceStore().setTrue(movedBlock);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor blocks formed by entities (snowmen)
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityBlockFormEvent(EntityBlockFormEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
if (BlockUtils.shouldBeWatched(event.getBlock().getState())) {
|
||||
mcMMO.getPlaceStore().setTrue(event.getBlock());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor falling blocks.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onFallingBlock(EntityChangeBlockEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
if (BlockUtils.shouldBeWatched(event.getBlock().getState()) && event.getEntityType().equals(EntityType.FALLING_BLOCK)) {
|
||||
if (event.getTo().equals(Material.AIR) && mcMMO.getPlaceStore().isTrue(event.getBlock())) {
|
||||
event.getEntity().setMetadata("mcMMOBlockFall", new FixedMetadataValue(plugin, event.getBlock().getLocation()));
|
||||
} else {
|
||||
List<MetadataValue> values = event.getEntity().getMetadata("mcMMOBlockFall");
|
||||
|
||||
if (!values.isEmpty()) {
|
||||
|
||||
if (values.get(0).value() == null) return;
|
||||
Block spawn = ((org.bukkit.Location) values.get(0).value()).getBlock();
|
||||
|
||||
|
||||
mcMMO.getPlaceStore().setTrue(event.getBlock());
|
||||
mcMMO.getPlaceStore().setFalse(spawn);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockPlace events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!UserManager.hasPlayerDataKey(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
|
||||
/* Check if the blocks placed should be monitored so they do not give out XP in the future */
|
||||
if (BlockUtils.shouldBeWatched(blockState)) {
|
||||
// Don't count de-barking wood
|
||||
if (!Tag.LOGS.isTagged(event.getBlockReplacedState().getType()) || !Tag.LOGS.isTagged(event.getBlockPlaced().getType()))
|
||||
mcMMO.getPlaceStore().setTrue(blockState);
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if (blockState.getType() == Repair.anvilMaterial && PrimarySkillType.REPAIR.getPermissions(player)) {
|
||||
mcMMOPlayer.getRepairManager().placedAnvilCheck();
|
||||
} else if (blockState.getType() == Salvage.anvilMaterial && PrimarySkillType.SALVAGE.getPermissions(player)) {
|
||||
mcMMOPlayer.getSalvageManager().placedAnvilCheck();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockMultiPlace events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockMultiPlace(BlockMultiPlaceEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!UserManager.hasPlayerDataKey(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (BlockState replacedBlockState : event.getReplacedBlockStates()) {
|
||||
BlockState blockState = replacedBlockState.getBlock().getState();
|
||||
|
||||
/* Check if the blocks placed should be monitored so they do not give out XP in the future */
|
||||
if (BlockUtils.shouldBeWatched(blockState)) {
|
||||
mcMMO.getPlaceStore().setTrue(blockState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockGrow(BlockGrowEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
|
||||
if (!BlockUtils.shouldBeWatched(blockState)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mcMMO.getPlaceStore().setFalse(blockState);
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockBreak events.
|
||||
*
|
||||
* @param event The event to monitor
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
||||
return;
|
||||
}
|
||||
|
||||
if (event instanceof FakeBlockBreakEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
Location location = blockState.getLocation();
|
||||
|
||||
if (!BlockUtils.shouldBeWatched(blockState)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* ALCHEMY - Cancel any brew in progress for that BrewingStand */
|
||||
if (blockState instanceof BrewingStand && Alchemy.brewingStandMap.containsKey(location)) {
|
||||
Alchemy.brewingStandMap.get(location).cancelBrew();
|
||||
}
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!UserManager.hasPlayerDataKey(player) || player.getGameMode() == GameMode.CREATIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
/* HERBALISM */
|
||||
if (BlockUtils.affectedByGreenTerra(blockState)) {
|
||||
HerbalismManager herbalismManager = mcMMOPlayer.getHerbalismManager();
|
||||
|
||||
/* Green Terra */
|
||||
if (herbalismManager.canActivateAbility()) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.HERBALISM);
|
||||
}
|
||||
|
||||
/*
|
||||
* We don't check the block store here because herbalism has too many unusual edge cases.
|
||||
* Instead, we check it inside the drops handler.
|
||||
*/
|
||||
if (PrimarySkillType.HERBALISM.getPermissions(player)) {
|
||||
herbalismManager.herbalismBlockCheck(blockState);
|
||||
}
|
||||
}
|
||||
|
||||
/* MINING */
|
||||
else if (BlockUtils.affectedBySuperBreaker(blockState) && ItemUtils.isPickaxe(heldItem) && PrimarySkillType.MINING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
|
||||
MiningManager miningManager = mcMMOPlayer.getMiningManager();
|
||||
miningManager.miningBlockCheck(blockState);
|
||||
}
|
||||
|
||||
/* WOOD CUTTING */
|
||||
else if (BlockUtils.isLog(blockState) && ItemUtils.isAxe(heldItem) && PrimarySkillType.WOODCUTTING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
|
||||
WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager();
|
||||
if (woodcuttingManager.canUseTreeFeller(heldItem)) {
|
||||
woodcuttingManager.processTreeFeller(blockState);
|
||||
} else {
|
||||
woodcuttingManager.woodcuttingBlockCheck(blockState);
|
||||
}
|
||||
}
|
||||
|
||||
/* EXCAVATION */
|
||||
else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && PrimarySkillType.EXCAVATION.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
|
||||
ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager();
|
||||
excavationManager.excavationBlockCheck(blockState);
|
||||
|
||||
if (mcMMOPlayer.getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER)) {
|
||||
excavationManager.gigaDrillBreaker(blockState);
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove metadata from placed watched blocks */
|
||||
mcMMO.getPlaceStore().setFalse(blockState);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle BlockBreak events where the event is modified.
|
||||
*
|
||||
* @param event The event to modify
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreakHigher(BlockBreakEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
||||
return;
|
||||
}
|
||||
|
||||
if (event instanceof FakeBlockBreakEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!UserManager.hasPlayerDataKey(player) || player.getGameMode() == GameMode.CREATIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
if (Herbalism.isRecentlyRegrown(blockState)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.isSword(heldItem)) {
|
||||
HerbalismManager herbalismManager = UserManager.getPlayer(player).getHerbalismManager();
|
||||
|
||||
if (herbalismManager.canUseHylianLuck()) {
|
||||
if (herbalismManager.processHylianLuck(blockState)) {
|
||||
blockState.update(true);
|
||||
event.setCancelled(true);
|
||||
} else if (blockState.getType() == Material.FLOWER_POT) {
|
||||
blockState.setType(Material.AIR);
|
||||
blockState.update(true);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*else if (!heldItem.containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||
SmeltingManager smeltingManager = UserManager.getPlayer(player).getSmeltingManager();
|
||||
|
||||
if (smeltingManager.canUseFluxMining(blockState)) {
|
||||
if (smeltingManager.processFluxMining(blockState)) {
|
||||
blockState.update(true);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor BlockDamage events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockDamage(BlockDamageEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
||||
return;
|
||||
}
|
||||
|
||||
if (event instanceof FakeBlockDamageEvent) {
|
||||
return;
|
||||
}
|
||||
if (!UserManager.hasPlayerDataKey(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
/*
|
||||
* ABILITY PREPARATION CHECKS
|
||||
*
|
||||
* We check permissions here before processing activation.
|
||||
*/
|
||||
if (BlockUtils.canActivateAbilities(blockState)) {
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.HERBALISM);
|
||||
} else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.isLog(blockState) && Permissions.treeFeller(player)) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.WOODCUTTING);
|
||||
} else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.MINING);
|
||||
} else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.EXCAVATION);
|
||||
} else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
|
||||
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.UNARMED);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TREE FELLER SOUNDS
|
||||
*
|
||||
* We don't need to check permissions here because they've already been checked for the ability to even activate.
|
||||
*/
|
||||
if (mcMMOPlayer.getAbilityMode(SuperAbilityType.TREE_FELLER) && BlockUtils.isLog(blockState) && MainConfig.getInstance().getTreeFellerSoundsEnabled()) {
|
||||
SoundManager.sendSound(player, blockState.getLocation(), SoundType.FIZZ);
|
||||
}
|
||||
}
|
||||
|
||||
private Player getPlayerFromFurnace(Block furnaceBlock) {
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey);
|
||||
|
||||
if (metadata.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return plugin.getServer().getPlayerExact(metadata.get(0).asString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle BlockDamage events where the event is modified.
|
||||
*
|
||||
* @param event The event to modify
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockDamageHigher(BlockDamageEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
||||
return;
|
||||
}
|
||||
|
||||
if (event instanceof FakeBlockDamageEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!UserManager.hasPlayerDataKey(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
Block block = event.getBlock();
|
||||
BlockState blockState = block.getState();
|
||||
|
||||
/*
|
||||
* ABILITY TRIGGER CHECKS
|
||||
*
|
||||
* We don't need to check permissions here because they've already been checked for the ability to even activate.
|
||||
*/
|
||||
if (mcMMOPlayer.getAbilityMode(SuperAbilityType.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState)) {
|
||||
if (mcMMOPlayer.getHerbalismManager().processGreenTerra(blockState)) {
|
||||
blockState.update(true);
|
||||
}
|
||||
} else if (mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && heldItem.getType() == Material.AIR) {
|
||||
if (SuperAbilityType.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
|
||||
event.setInstaBreak(true);
|
||||
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
||||
} else if (mcMMOPlayer.getUnarmedManager().canUseBlockCracker() && BlockUtils.affectedByBlockCracker(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
|
||||
if (mcMMOPlayer.getUnarmedManager().blockCrackerCheck(blockState)) {
|
||||
blockState.update();
|
||||
}
|
||||
}
|
||||
} else if (mcMMOPlayer.getWoodcuttingManager().canUseLeafBlower(heldItem) && BlockUtils.isLeaves(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
|
||||
event.setInstaBreak(true);
|
||||
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onBlockDamageCleanup(BlockDamageEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
cleanupAbilityTools(player, mcMMOPlayer, blockState, heldItem);
|
||||
|
||||
debugStickDump(player, blockState);
|
||||
}
|
||||
|
||||
public void debugStickDump(Player player, BlockState blockState) {
|
||||
if (player.getInventory().getItemInMainHand().getType() == Material.DEBUG_STICK) {
|
||||
if (mcMMO.getPlaceStore().isTrue(blockState))
|
||||
player.sendMessage("[mcMMO DEBUG] This block is not natural and does not reward treasures/XP");
|
||||
else {
|
||||
player.sendMessage("[mcMMO DEBUG] This block is considered natural by mcMMO");
|
||||
UserManager.getPlayer(player).getExcavationManager().printExcavationDebug(player, blockState);
|
||||
}
|
||||
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (WorldGuardManager.getInstance().hasMainFlag(player))
|
||||
player.sendMessage("[mcMMO DEBUG] World Guard main flag is permitted for this player in this region");
|
||||
else
|
||||
player.sendMessage("[mcMMO DEBUG] World Guard main flag is DENIED for this player in this region");
|
||||
|
||||
if (WorldGuardManager.getInstance().hasXPFlag(player))
|
||||
player.sendMessage("[mcMMO DEBUG] World Guard xp flag is permitted for this player in this region");
|
||||
else
|
||||
player.sendMessage("[mcMMO DEBUG] World Guard xp flag is not permitted for this player in this region");
|
||||
}
|
||||
|
||||
if (blockState instanceof Furnace) {
|
||||
Furnace furnace = (Furnace) blockState;
|
||||
if (furnace.hasMetadata(mcMMO.furnaceMetadataKey)) {
|
||||
player.sendMessage("[mcMMO DEBUG] This furnace has a registered owner");
|
||||
Player furnacePlayer = getPlayerFromFurnace(furnace.getBlock());
|
||||
if (furnacePlayer != null) {
|
||||
player.sendMessage("[mcMMO DEBUG] This furnace is owned by player " + furnacePlayer.getName());
|
||||
}
|
||||
} else
|
||||
player.sendMessage("[mcMMO DEBUG] This furnace does not have a registered owner");
|
||||
}
|
||||
|
||||
if (ExperienceConfig.getInstance().isExperienceBarsEnabled())
|
||||
player.sendMessage("[mcMMO DEBUG] XP bars are enabled, however you should check per-skill settings to make sure those are enabled.");
|
||||
}
|
||||
}
|
||||
|
||||
public void cleanupAbilityTools(Player player, McMMOPlayer mcMMOPlayer, BlockState blockState, ItemStack heldItem) {
|
||||
if (ChunkConversionOptions.getInstance().useEnchantmentBuffs()) {
|
||||
if ((ItemUtils.isPickaxe(heldItem) && !mcMMOPlayer.getAbilityMode(SuperAbilityType.SUPER_BREAKER)) || (ItemUtils.isShovel(heldItem) && !mcMMOPlayer.getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER))) {
|
||||
SkillUtils.removeAbilityBuff(heldItem);
|
||||
}
|
||||
} else {
|
||||
if ((mcMMOPlayer.getAbilityMode(SuperAbilityType.SUPER_BREAKER) && !BlockUtils.affectedBySuperBreaker(blockState)) || (mcMMOPlayer.getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER) && !BlockUtils.affectedByGigaDrillBreaker(blockState))) {
|
||||
SkillUtils.handleAbilitySpeedDecrease(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
import com.gmail.nossr50.core.skills.subskills.interfaces.InteractType;
|
||||
import com.gmail.nossr50.core.skills.subskills.interfaces.Interaction;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.event.Event;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class InteractionManager {
|
||||
private static HashMap<InteractType, ArrayList<Interaction>> interactRegister;
|
||||
private static HashMap<String, AbstractSubSkill> subSkillNameMap; //Used for mmoinfo optimization
|
||||
private static ArrayList<AbstractSubSkill> subSkillList;
|
||||
|
||||
/**
|
||||
* Registers subskills with the Interaction registration
|
||||
*
|
||||
* @param abstractSubSkill the target subskill to register
|
||||
*/
|
||||
public static void registerSubSkill(AbstractSubSkill abstractSubSkill) {
|
||||
/* INIT MAPS */
|
||||
if (interactRegister == null)
|
||||
interactRegister = new HashMap<>();
|
||||
|
||||
if (subSkillList == null)
|
||||
subSkillList = new ArrayList<>();
|
||||
|
||||
if (subSkillNameMap == null)
|
||||
subSkillNameMap = new HashMap<>();
|
||||
|
||||
//Store a unique copy of each subskill
|
||||
if (!subSkillList.contains(abstractSubSkill))
|
||||
subSkillList.add(abstractSubSkill);
|
||||
|
||||
//Init ArrayList
|
||||
if (interactRegister.get(abstractSubSkill.getInteractType()) == null)
|
||||
interactRegister.put(abstractSubSkill.getInteractType(), new ArrayList<>());
|
||||
|
||||
//Registration array reference
|
||||
ArrayList<Interaction> arrayRef = interactRegister.get(abstractSubSkill.getInteractType());
|
||||
|
||||
//Register skill
|
||||
arrayRef.add(abstractSubSkill);
|
||||
|
||||
String lowerCaseName = abstractSubSkill.getConfigKeyName().toLowerCase();
|
||||
|
||||
//Register in name map
|
||||
if (subSkillNameMap.get(lowerCaseName) == null)
|
||||
subSkillNameMap.put(lowerCaseName, abstractSubSkill);
|
||||
|
||||
System.out.println("[mcMMO] registered subskill: " + abstractSubSkill.getConfigKeyName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs the registered abstract skill by its name
|
||||
* Is not case sensitive
|
||||
*
|
||||
* @param name name of subskill, not case sensitive
|
||||
* @return null if the subskill is not registered
|
||||
*/
|
||||
public static AbstractSubSkill getAbstractByName(String name) {
|
||||
return subSkillNameMap.get(name.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the associated Interactions for this event
|
||||
*
|
||||
* @param event target event
|
||||
* @param plugin instance of mcMMO plugin
|
||||
* @param curInteractType the associated interaction type
|
||||
*/
|
||||
public static void processEvent(Event event, mcMMO plugin, InteractType curInteractType) {
|
||||
for (Interaction interaction : interactRegister.get(curInteractType)) {
|
||||
interaction.doInteraction(event, plugin);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list that contains all unique instances of registered Interaction classes
|
||||
* Interactions are extensions of abstract classes that represent modifying behaviours in Minecraft through events
|
||||
*
|
||||
* @return the unique collection of all registered Interaction classes
|
||||
*/
|
||||
public static ArrayList<AbstractSubSkill> getSubSkillList() {
|
||||
return subSkillList;
|
||||
}
|
||||
|
||||
public static boolean hasSubSkill(String name) {
|
||||
return getAbstractByName(name) != null;
|
||||
}
|
||||
|
||||
public static boolean hasSubSkill(SubSkillType subSkillType) {
|
||||
return hasSubSkill(subSkillType.getNiceNameNoSpaces(subSkillType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the associative map which contains all registered interactions
|
||||
*
|
||||
* @return the interact register
|
||||
*/
|
||||
public static HashMap<InteractType, ArrayList<Interaction>> getInteractRegister() {
|
||||
return interactRegister;
|
||||
}
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
|
||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
|
||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
|
||||
import com.gmail.nossr50.core.events.experience.McMMOPlayerLevelUpEvent;
|
||||
import com.gmail.nossr50.core.events.experience.McMMOPlayerXpGainEvent;
|
||||
import com.gmail.nossr50.core.events.skills.abilities.McMMOPlayerAbilityActivateEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
public class SelfListener implements Listener {
|
||||
//Used in task scheduling and other things
|
||||
private final mcMMO plugin;
|
||||
|
||||
public SelfListener(mcMMO plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
PrimarySkillType skill = event.getSkill();
|
||||
|
||||
//Players can gain multiple levels especially during xprate events
|
||||
for (int i = 0; i < event.getLevelsGained(); i++) {
|
||||
int previousLevelGained = event.getSkillLevel() - i;
|
||||
//Send player skill unlock notifications
|
||||
UserManager.getPlayer(player).processUnlockNotifications(plugin, event.getSkill(), previousLevelGained);
|
||||
}
|
||||
|
||||
if (MainConfig.getInstance().getScoreboardsEnabled())
|
||||
ScoreboardManager.handleLevelUp(player, skill);
|
||||
|
||||
if (!MainConfig.getInstance().getLevelUpEffectsEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((event.getSkillLevel() % MainConfig.getInstance().getLevelUpEffectsTier()) == 0) {
|
||||
skill.celebrateLevelUp(player);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerXp(McMMOPlayerXpGainEvent event) {
|
||||
if (MainConfig.getInstance().getScoreboardsEnabled())
|
||||
ScoreboardManager.handleXp(event.getPlayer(), event.getSkill());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onAbility(McMMOPlayerAbilityActivateEvent event) {
|
||||
if (MainConfig.getInstance().getScoreboardsEnabled())
|
||||
ScoreboardManager.cooldownUpdate(event.getPlayer(), event.getSkill());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
public void onPlayerXpGain(McMMOPlayerXpGainEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
PrimarySkillType primarySkillType = event.getSkill();
|
||||
|
||||
//WorldGuard XP Check
|
||||
if (event.getXpGainReason() == XPGainReason.PVE ||
|
||||
event.getXpGainReason() == XPGainReason.PVP ||
|
||||
event.getXpGainReason() == XPGainReason.SHARED_PVE ||
|
||||
event.getXpGainReason() == XPGainReason.SHARED_PVP) {
|
||||
if (WorldGuardUtils.isWorldGuardLoaded()) {
|
||||
if (!WorldGuardManager.getInstance().hasXPFlag(player)) {
|
||||
event.setRawXpGained(0);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getXpGainReason() == XPGainReason.COMMAND) {
|
||||
return;
|
||||
}
|
||||
|
||||
int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold(primarySkillType);
|
||||
|
||||
if (threshold <= 0 || !ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
|
||||
// Diminished returns is turned off
|
||||
return;
|
||||
}
|
||||
|
||||
final float rawXp = event.getRawXpGained();
|
||||
if (rawXp < 0) {
|
||||
// Don't calculate for XP subtraction
|
||||
return;
|
||||
}
|
||||
|
||||
if (primarySkillType.isChildSkill()) {
|
||||
return;
|
||||
}
|
||||
|
||||
float guaranteedMinimum = ExperienceConfig.getInstance().getDiminishedReturnsCap() * rawXp;
|
||||
|
||||
float modifiedThreshold = (float) (threshold / primarySkillType.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
|
||||
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
||||
|
||||
if (difference > 0) {
|
||||
// System.out.println("Total XP Earned: " + mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) + " / Threshold value: " + threshold);
|
||||
// System.out.println(difference * 100 + "% over the threshold!");
|
||||
// System.out.println("Previous: " + event.getRawXpGained());
|
||||
// System.out.println("Adjusted XP " + (event.getRawXpGained() - (event.getRawXpGained() * difference)));
|
||||
float newValue = rawXp - (rawXp * difference);
|
||||
|
||||
/*
|
||||
* Make sure players get a guaranteed minimum of XP
|
||||
*/
|
||||
//If there is no guaranteed minimum proceed, otherwise only proceed if newValue would be higher than our guaranteed minimum
|
||||
if (guaranteedMinimum <= 0 || newValue > guaranteedMinimum) {
|
||||
if (newValue > 0) {
|
||||
event.setRawXpGained(newValue);
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
event.setRawXpGained(guaranteedMinimum);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
package util.java.mcMMO;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.potion.PotionData;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class PotionConfigGenerator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Map<WriteablePotion, Map<Ingredient, WriteablePotion>> vanillaPotions = new HashMap<>();
|
||||
populateVanillaPotions(vanillaPotions);
|
||||
Map<WriteablePotion, Map<Ingredient, WriteablePotion>> mcMMOPotions = new HashMap<>();
|
||||
populateCustomPotions(mcMMOPotions);
|
||||
List<WriteablePotion> sorted = new ArrayList<>();
|
||||
sorted.addAll(vanillaPotions.keySet());
|
||||
sorted.addAll(mcMMOPotions.keySet());
|
||||
sorted.sort((a, b) -> {
|
||||
// All normal potions first
|
||||
if (a.mat == Material.POTION && b.mat != Material.POTION) {
|
||||
return -1;
|
||||
}
|
||||
if (b.mat == Material.POTION && a.mat != Material.POTION) {
|
||||
return 1;
|
||||
}
|
||||
// All splash potions second
|
||||
if (a.mat == Material.SPLASH_POTION && b.mat != Material.SPLASH_POTION) {
|
||||
return -1;
|
||||
}
|
||||
if (b.mat == Material.SPLASH_POTION && a.mat != Material.SPLASH_POTION) {
|
||||
return 1;
|
||||
}
|
||||
// Vanilla Potions first
|
||||
if (a.effect == null && b.effect != null) {
|
||||
return -1;
|
||||
}
|
||||
if (b.effect == null && a.effect != null) {
|
||||
return 1;
|
||||
}
|
||||
// Vanilla potions
|
||||
if (a.effect == null && b.effect == null) {
|
||||
// Order by PotionType
|
||||
if (a.data.getType() != b.data.getType()) {
|
||||
return Integer.compare(a.data.getType().ordinal(), b.data.getType().ordinal());
|
||||
}
|
||||
// Plain before extended or upgraded
|
||||
if (!a.data.isExtended() && !a.data.isUpgraded() && (b.data.isExtended() || b.data.isUpgraded())) {
|
||||
return -1;
|
||||
}
|
||||
if (!b.data.isExtended() && !b.data.isUpgraded() && (a.data.isExtended() || a.data.isUpgraded())) {
|
||||
return 1;
|
||||
}
|
||||
// Extended before Upgraded
|
||||
if (a.data.isExtended() && b.data.isUpgraded()) {
|
||||
return -1;
|
||||
}
|
||||
if (b.data.isExtended() && a.data.isUpgraded()) {
|
||||
return -1;
|
||||
}
|
||||
// Same potion somehow?
|
||||
return 0;
|
||||
}
|
||||
// mcMMO Potions
|
||||
else {
|
||||
if ((a.baseName.contains("II") || a.baseName.contains("EXTENDED")) && !(b.baseName.contains("II") || b.baseName.contains("EXTENDED"))) {
|
||||
return 1;
|
||||
}
|
||||
if ((b.baseName.contains("II") || b.baseName.contains("EXTENDED")) && !(a.baseName.contains("II") || a.baseName.contains("EXTENDED"))) {
|
||||
return -1;
|
||||
}
|
||||
if (!a.baseName.contains("II") && b.baseName.contains("II")) {
|
||||
return -1;
|
||||
}
|
||||
if (!b.baseName.contains("II") && a.baseName.contains("II")) {
|
||||
return 1;
|
||||
}
|
||||
return a.baseName.split("_")[0].compareTo(b.baseName.split("_")[0]);
|
||||
}
|
||||
});
|
||||
for (WriteablePotion potion : sorted) {
|
||||
System.out.println(" " + potion.name + ":");
|
||||
Map<Ingredient, WriteablePotion> children;
|
||||
if (vanillaPotions.containsKey(potion)) {
|
||||
children = vanillaPotions.get(potion);
|
||||
} else {
|
||||
System.out.println(" Name: " + prettify(potion.name));
|
||||
children = mcMMOPotions.get(potion);
|
||||
}
|
||||
System.out.println(" Material: " + potion.mat.name());
|
||||
System.out.println(" PotionData:");
|
||||
System.out.println(" PotionType: " + potion.data.getType().name());
|
||||
if (potion.data.isExtended()) {
|
||||
System.out.println(" Extended: true");
|
||||
}
|
||||
if (potion.data.isUpgraded()) {
|
||||
System.out.println(" Upgraded: true");
|
||||
}
|
||||
if (potion.effect != null) {
|
||||
System.out.println(" Effects: [\"" + getName(potion.effect.getType()) + " " + potion.effect.getAmplifier() + " " + potion.effect.getDuration() + "\"]");
|
||||
}
|
||||
if (children == null || children.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
System.out.println(" Children:");
|
||||
for (Entry<Ingredient, WriteablePotion> child : children.entrySet()) {
|
||||
System.out.println(" " + child.getKey().name + ": " + child.getValue().name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String prettify(String name) {
|
||||
String[] substrings = name.split("_");
|
||||
String prettyString = "";
|
||||
int size = 1;
|
||||
|
||||
for (String string : substrings) {
|
||||
prettyString = prettyString.concat(getCapitalized(string));
|
||||
|
||||
if (size < substrings.length) {
|
||||
prettyString = prettyString.concat(" ");
|
||||
}
|
||||
|
||||
size++;
|
||||
}
|
||||
|
||||
return prettyString;
|
||||
}
|
||||
|
||||
public static String getCapitalized(String target) {
|
||||
if (target.equals("II")) { // hacks
|
||||
return target;
|
||||
}
|
||||
return target.substring(0, 1).toUpperCase() + target.substring(1).toLowerCase();
|
||||
}
|
||||
|
||||
private static String getName(PotionEffectType type) {
|
||||
switch (type.getId()) {
|
||||
case 1:
|
||||
return "SPEED";
|
||||
case 2:
|
||||
return "SLOW";
|
||||
case 3:
|
||||
return "FAST_DIGGING";
|
||||
case 4:
|
||||
return "SLOW_DIGGING";
|
||||
case 5:
|
||||
return "INCREASE_DAMAGE";
|
||||
case 6:
|
||||
return "HEAL";
|
||||
case 7:
|
||||
return "HARM";
|
||||
case 8:
|
||||
return "JUMP";
|
||||
case 9:
|
||||
return "CONFUSION";
|
||||
case 10:
|
||||
return "REGENERATION";
|
||||
case 11:
|
||||
return "DAMAGE_RESISTANCE";
|
||||
case 12:
|
||||
return "FIRE_RESISTANCE";
|
||||
case 13:
|
||||
return "WATER_BREATHING";
|
||||
case 14:
|
||||
return "INVISIBILITY";
|
||||
case 15:
|
||||
return "BLINDNESS";
|
||||
case 16:
|
||||
return "NIGHT_VISION";
|
||||
case 17:
|
||||
return "HUNGER";
|
||||
case 18:
|
||||
return "WEAKNESS";
|
||||
case 19:
|
||||
return "POISON";
|
||||
case 20:
|
||||
return "WITHER";
|
||||
case 21:
|
||||
return "HEALTH_BOOST";
|
||||
case 22:
|
||||
return "ABSORPTION";
|
||||
case 23:
|
||||
return "SATURATION";
|
||||
case 24:
|
||||
return "GLOWING";
|
||||
case 25:
|
||||
return "LEVITATION";
|
||||
case 26:
|
||||
return "LUCK";
|
||||
case 27:
|
||||
return "UNLUCK";
|
||||
case 28:
|
||||
return "SLOW_FALLING";
|
||||
case 29:
|
||||
return "CONDUIT_POWER";
|
||||
case 30:
|
||||
return "DOLPHINS_GRACE";
|
||||
default:
|
||||
return "UNKNOWN_EFFECT_TYPE_" + type.getId();
|
||||
}
|
||||
}
|
||||
|
||||
private static void populateVanillaPotions(Map<WriteablePotion, Map<Ingredient, WriteablePotion>> vanillaPotions) {
|
||||
for (PotionType type : PotionType.values()) {
|
||||
for (Material material : new Material[]{Material.POTION, Material.SPLASH_POTION, Material.LINGERING_POTION}) {
|
||||
WriteablePotion data = new WriteablePotion(material, type);
|
||||
HashMap<Ingredient, WriteablePotion> children = new HashMap<>();
|
||||
getChildren(data, children);
|
||||
vanillaPotions.put(data, children);
|
||||
if (type.isExtendable()) {
|
||||
data = new WriteablePotion(material, new PotionData(type, true, false));
|
||||
children = new HashMap<>();
|
||||
getChildren(data, children);
|
||||
vanillaPotions.put(data, children);
|
||||
}
|
||||
if (type.isUpgradeable()) {
|
||||
data = new WriteablePotion(material, new PotionData(type, false, true));
|
||||
children = new HashMap<>();
|
||||
getChildren(data, children);
|
||||
vanillaPotions.put(data, children);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Entry<WriteablePotion, Map<Ingredient, WriteablePotion>> entry : vanillaPotions.entrySet()) {
|
||||
if (entry.getKey().mat == Material.POTION) {
|
||||
entry.getValue().put(new Ingredient(Material.GUNPOWDER), new WriteablePotion(Material.SPLASH_POTION, entry.getKey().data));
|
||||
}
|
||||
if (entry.getKey().mat == Material.SPLASH_POTION) {
|
||||
entry.getValue().put(new Ingredient(Material.DRAGON_BREATH), new WriteablePotion(Material.LINGERING_POTION, entry.getKey().data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void getChildren(WriteablePotion current, HashMap<Ingredient, WriteablePotion> children) {
|
||||
switch (current.data.getType()) {
|
||||
case WATER:
|
||||
assert (!current.data.isExtended());
|
||||
assert (!current.data.isUpgraded());
|
||||
children.put(new Ingredient(Material.NETHER_WART), new WriteablePotion(current.mat, PotionType.AWKWARD));
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.WEAKNESS));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, PotionType.THICK));
|
||||
children.put(new Ingredient(Material.BLAZE_POWDER), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.SUGAR), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.RABBIT_FOOT), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.SPIDER_EYE), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.MAGMA_CREAM), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.GLISTERING_MELON_SLICE), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
children.put(new Ingredient(Material.GHAST_TEAR), new WriteablePotion(current.mat, PotionType.MUNDANE));
|
||||
return;
|
||||
case AWKWARD:
|
||||
assert (!current.data.isExtended());
|
||||
assert (!current.data.isUpgraded());
|
||||
children.put(new Ingredient(Material.GOLDEN_CARROT), new WriteablePotion(current.mat, PotionType.NIGHT_VISION));
|
||||
children.put(new Ingredient(Material.RABBIT_FOOT), new WriteablePotion(current.mat, PotionType.JUMP));
|
||||
children.put(new Ingredient(Material.MAGMA_CREAM), new WriteablePotion(current.mat, PotionType.FIRE_RESISTANCE));
|
||||
children.put(new Ingredient(Material.SUGAR), new WriteablePotion(current.mat, PotionType.SPEED));
|
||||
children.put(new Ingredient(Material.PUFFERFISH), new WriteablePotion(current.mat, PotionType.WATER_BREATHING));
|
||||
children.put(new Ingredient(Material.GLISTERING_MELON_SLICE), new WriteablePotion(current.mat, PotionType.INSTANT_HEAL));
|
||||
children.put(new Ingredient(Material.SPIDER_EYE), new WriteablePotion(current.mat, PotionType.POISON));
|
||||
children.put(new Ingredient(Material.GHAST_TEAR), new WriteablePotion(current.mat, PotionType.REGEN));
|
||||
children.put(new Ingredient(Material.BLAZE_POWDER), new WriteablePotion(current.mat, PotionType.STRENGTH));
|
||||
children.put(new Ingredient(Material.TURTLE_HELMET), new WriteablePotion(current.mat, PotionType.TURTLE_MASTER));
|
||||
children.put(new Ingredient(Material.PHANTOM_MEMBRANE), new WriteablePotion(current.mat, PotionType.SLOW_FALLING));
|
||||
// mcMMO custom potions
|
||||
double mod = 1;
|
||||
if (current.mat == Material.SPLASH_POTION) {
|
||||
mod = 0.75;
|
||||
}
|
||||
if (current.mat == Material.LINGERING_POTION) {
|
||||
mod = 0.25;
|
||||
}
|
||||
children.put(new Ingredient(Material.BROWN_MUSHROOM), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.CONFUSION, (int) (450 * mod), 0), "NAUSEA"));
|
||||
children.put(new Ingredient(Material.CARROT), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.FAST_DIGGING, (int) (3600 * mod), 0), "HASTE"));
|
||||
children.put(new Ingredient(Material.SLIME_BALL), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SLOW_DIGGING, (int) (3600 * mod), 0), "DULLNESS"));
|
||||
children.put(new Ingredient(Material.GOLDEN_APPLE), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, (int) (450 * mod), 0), "RESISTANCE"));
|
||||
children.put(new Ingredient(Material.INK_SAC), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.BLINDNESS, (int) (225 * mod), 0), "BLINDNESS"));
|
||||
children.put(new Ingredient(Material.ROTTEN_FLESH), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HUNGER, (int) (900 * mod), 0), "HUNGER"));
|
||||
children.put(new Ingredient(Material.POISONOUS_POTATO), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.WITHER, (int) (450 * mod), 0), "DECAY"));
|
||||
children.put(new Ingredient(Material.QUARTZ), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.ABSORPTION, (int) (1800 * mod), 0), "ABSORPTION"));
|
||||
children.put(new Ingredient(Material.FERN), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SATURATION, (int) (8 * mod), 0), "SATURATION"));
|
||||
children.put(new Ingredient(Material.APPLE), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HEALTH_BOOST, (int) (1800 * mod), 0), "HEALTH_BOOST"));
|
||||
return;
|
||||
case FIRE_RESISTANCE:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
|
||||
} else {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case INSTANT_DAMAGE:
|
||||
assert (!current.data.isExtended());
|
||||
if (!current.data.isUpgraded()) {
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
}
|
||||
return;
|
||||
case INSTANT_HEAL:
|
||||
assert (!current.data.isExtended());
|
||||
if (!current.data.isUpgraded()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
} else {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
|
||||
}
|
||||
return;
|
||||
case INVISIBILITY:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case JUMP:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case NIGHT_VISION:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INVISIBILITY));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
} else {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INVISIBILITY, true, false)));
|
||||
}
|
||||
return;
|
||||
case POISON:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
} else {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
|
||||
}
|
||||
return;
|
||||
case REGEN:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case SLOWNESS:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case SLOW_FALLING:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case SPEED:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
} else {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
|
||||
}
|
||||
return;
|
||||
case STRENGTH:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case TURTLE_MASTER:
|
||||
if (!current.data.isUpgraded() && !current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case WATER_BREATHING:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case WEAKNESS:
|
||||
assert (!current.data.isUpgraded());
|
||||
if (!current.data.isExtended()) {
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
|
||||
}
|
||||
return;
|
||||
case LUCK:
|
||||
case MUNDANE:
|
||||
case THICK:
|
||||
case UNCRAFTABLE:
|
||||
assert (!current.data.isExtended());
|
||||
assert (!current.data.isUpgraded());
|
||||
return;
|
||||
default:
|
||||
assert (false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static void populateCustomPotions(Map<WriteablePotion, Map<Ingredient, WriteablePotion>> mcMMOPotions) {
|
||||
for (Material material : new Material[]{Material.POTION, Material.SPLASH_POTION, Material.LINGERING_POTION}) {
|
||||
WriteablePotion data;
|
||||
double mod = 1;
|
||||
if (material == Material.SPLASH_POTION) {
|
||||
mod = 0.75;
|
||||
}
|
||||
if (material == Material.LINGERING_POTION) {
|
||||
mod = 0.25;
|
||||
}
|
||||
HashMap<Ingredient, WriteablePotion> children;
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.CONFUSION, (int) (450 * mod), 0), "NAUSEA");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.FAST_DIGGING, (int) (3600 * mod), 0), "HASTE");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SLOW_DIGGING, (int) (3600 * mod), 0), "DULLNESS");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, (int) (450 * mod), 0), "RESISTANCE");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.BLINDNESS, (int) (225 * mod), 0), "BLINDNESS");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HUNGER, (int) (900 * mod), 0), "HUNGER");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.WITHER, (int) (450 * mod), 0), "DECAY");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.ABSORPTION, (int) (1800 * mod), 0), "ABSORPTION");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SATURATION, (int) (8 * mod), 0), "SATURATION");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HEALTH_BOOST, (int) (1800 * mod), 0), "HEALTH_BOOST");
|
||||
children = new HashMap<>();
|
||||
children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
|
||||
children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
|
||||
for (WriteablePotion child : children.values()) {
|
||||
mcMMOPotions.put(child, new HashMap<>());
|
||||
}
|
||||
mcMMOPotions.put(data, children);
|
||||
}
|
||||
|
||||
// Add all material state changes
|
||||
for (Entry<WriteablePotion, Map<Ingredient, WriteablePotion>> entry : mcMMOPotions.entrySet()) {
|
||||
if (entry.getKey().mat == Material.POTION) {
|
||||
PotionEffect effect = new PotionEffect(entry.getKey().effect.getType(), (int) (entry.getKey().effect.getDuration() * 0.75), entry.getKey().effect.getAmplifier());
|
||||
entry.getValue().put(new Ingredient(Material.GUNPOWDER), new WriteablePotion(Material.SPLASH_POTION, entry.getKey().data, effect, entry.getKey().baseName));
|
||||
} else if (entry.getKey().mat == Material.SPLASH_POTION) {
|
||||
PotionEffect effect = new PotionEffect(entry.getKey().effect.getType(), (int) (entry.getKey().effect.getDuration() * 0.33), entry.getKey().effect.getAmplifier());
|
||||
entry.getValue().put(new Ingredient(Material.DRAGON_BREATH), new WriteablePotion(Material.LINGERING_POTION, entry.getKey().data, effect, entry.getKey().baseName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Ingredient {
|
||||
|
||||
public Material mat;
|
||||
public int data;
|
||||
public String name;
|
||||
|
||||
public Ingredient(Material mat) {
|
||||
this.mat = mat;
|
||||
this.data = 0;
|
||||
name = mat.name();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class WriteablePotion {
|
||||
|
||||
public String name;
|
||||
public Material mat;
|
||||
public PotionData data;
|
||||
public PotionEffect effect;
|
||||
public String baseName;
|
||||
|
||||
public WriteablePotion(PotionData data) {
|
||||
this(Material.POTION, data);
|
||||
}
|
||||
|
||||
public WriteablePotion(Material type, PotionData data) {
|
||||
this(type, data, null, getMCName(data.getType()));
|
||||
}
|
||||
|
||||
public WriteablePotion(Material mat, PotionType type, PotionEffect effect, String baseName) {
|
||||
this(mat, new PotionData(type, false, false), effect, baseName);
|
||||
}
|
||||
|
||||
public WriteablePotion(Material type, PotionData data, PotionEffect effect, String baseName) {
|
||||
this.data = data;
|
||||
this.effect = effect;
|
||||
this.mat = type;
|
||||
this.baseName = baseName;
|
||||
this.name = "POTION_OF_" + baseName;
|
||||
if (mat == Material.SPLASH_POTION) {
|
||||
this.name = "SPLASH_" + this.name;
|
||||
}
|
||||
if (mat == Material.LINGERING_POTION) {
|
||||
this.name = "LINGERING_" + this.name;
|
||||
}
|
||||
if (data.isExtended()) {
|
||||
this.name += "_EXTENDED";
|
||||
}
|
||||
if (data.isUpgraded()) {
|
||||
this.name += "_II";
|
||||
}
|
||||
}
|
||||
|
||||
public WriteablePotion(PotionType type) {
|
||||
this(new PotionData(type, false, false));
|
||||
}
|
||||
|
||||
public WriteablePotion(Material mat, PotionType type) {
|
||||
this(mat, new PotionData(type, false, false));
|
||||
}
|
||||
|
||||
private static String getMCName(PotionType type) {
|
||||
switch (type) {
|
||||
case INSTANT_DAMAGE:
|
||||
return "HARMING";
|
||||
case INSTANT_HEAL:
|
||||
return "HEALING";
|
||||
case JUMP:
|
||||
return "LEAPING";
|
||||
case REGEN:
|
||||
return "REGENERATION";
|
||||
case SPEED:
|
||||
return "SWIFTNESS";
|
||||
case UNCRAFTABLE:
|
||||
return "EMPTY";
|
||||
case LUCK:
|
||||
case MUNDANE:
|
||||
case NIGHT_VISION:
|
||||
case POISON:
|
||||
case INVISIBILITY:
|
||||
case SLOWNESS:
|
||||
case AWKWARD:
|
||||
case STRENGTH:
|
||||
case THICK:
|
||||
case FIRE_RESISTANCE:
|
||||
case WATER:
|
||||
case WATER_BREATHING:
|
||||
case WEAKNESS:
|
||||
case TURTLE_MASTER:
|
||||
case SLOW_FALLING:
|
||||
return type.name();
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return name.hashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (!(obj instanceof WriteablePotion)) {
|
||||
return false;
|
||||
}
|
||||
return name.equals(((WriteablePotion) obj).name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: com.gmail.nossr50.mcMMO
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#
|
||||
# This file includes a few settings for each skill in mcMMO
|
||||
|
||||
#Acrobatics
|
||||
Acrobatics:
|
||||
# turn this to false to disable all subskills for this skill
|
||||
Enabled: true
|
||||
Roll:
|
||||
Enabled: true
|
||||
@@ -1,440 +0,0 @@
|
||||
#
|
||||
# Experience configuration
|
||||
# Last updated on ${project.version}-b${BUILD_NUMBER}
|
||||
#
|
||||
# Configure the experience formula and experience settings here.
|
||||
#
|
||||
#####
|
||||
|
||||
|
||||
|
||||
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/boss/BarColor.html
|
||||
# These are the only valid colors for Experience Bars, use the exact name found here
|
||||
# BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW (As of the time of this update these are the only Bar colors available, this could change in the future so check the BarColor enum to see if it has)
|
||||
# BarStyle Settings (USE THE EXACT NAME) :
|
||||
#SEGMENTED_10
|
||||
# Splits the boss bar into 10 segments
|
||||
#SEGMENTED_12
|
||||
# Splits the boss bar into 12 segments
|
||||
#SEGMENTED_20
|
||||
# Splits the boss bar into 20 segments
|
||||
#SEGMENTED_6
|
||||
# Splits the boss bar into 6 segments
|
||||
#SOLID
|
||||
# The bar is one solid piece
|
||||
ExploitFix:
|
||||
EndermanEndermiteFarms: true
|
||||
Experience_Bars:
|
||||
# Turn this to false if you wanna disable XP bars
|
||||
Enable: true
|
||||
Update:
|
||||
# XP that you gained from your party but not yourself
|
||||
Party: true
|
||||
# Passive is stuff like smelting, brewing
|
||||
Passive: true
|
||||
# If you want to use a fancy edited title from the locale, then you'll probably want to turn this on, but it will make your server do a lot more work!
|
||||
# I recommend leaving this off!
|
||||
ThisMayCauseLag:
|
||||
AlwaysUpdateTitlesWhenXPIsGained:
|
||||
Enable: false
|
||||
# You can make your own custom details in the locale file without having to use the ExtraDetails setting!
|
||||
ExtraDetails: false
|
||||
Acrobatics:
|
||||
Enable: true
|
||||
Color: PINK
|
||||
BarStyle: SEGMENTED_6
|
||||
Alchemy:
|
||||
Enable: true
|
||||
Color: PURPLE
|
||||
BarStyle: SEGMENTED_6
|
||||
Archery:
|
||||
Enable: true
|
||||
Color: BLUE
|
||||
BarStyle: SEGMENTED_6
|
||||
Axes:
|
||||
Enable: true
|
||||
Color: BLUE
|
||||
BarStyle: SEGMENTED_6
|
||||
Excavation:
|
||||
Enable: true
|
||||
Color: YELLOW
|
||||
BarStyle: SEGMENTED_6
|
||||
Fishing:
|
||||
Enable: true
|
||||
Color: PURPLE
|
||||
BarStyle: SEGMENTED_6
|
||||
Herbalism:
|
||||
Enable: true
|
||||
Color: GREEN
|
||||
BarStyle: SEGMENTED_6
|
||||
Mining:
|
||||
Enable: true
|
||||
Color: YELLOW
|
||||
BarStyle: SEGMENTED_6
|
||||
Repair:
|
||||
Enable: true
|
||||
Color: PURPLE
|
||||
BarStyle: SEGMENTED_6
|
||||
Salvage:
|
||||
Enable: true
|
||||
Color: PURPLE
|
||||
BarStyle: SEGMENTED_6
|
||||
Smelting:
|
||||
Enable: true
|
||||
Color: PURPLE
|
||||
BarStyle: SEGMENTED_6
|
||||
Swords:
|
||||
Enable: true
|
||||
Color: BLUE
|
||||
BarStyle: SEGMENTED_6
|
||||
Taming:
|
||||
Enable: true
|
||||
Color: RED
|
||||
BarStyle: SEGMENTED_6
|
||||
Unarmed:
|
||||
Enable: true
|
||||
Color: BLUE
|
||||
BarStyle: SEGMENTED_6
|
||||
Woodcutting:
|
||||
Enable: true
|
||||
Color: GREEN
|
||||
BarStyle: SEGMENTED_6
|
||||
#
|
||||
# Settings for XP formula
|
||||
###
|
||||
Experience_Formula:
|
||||
# Valid values are: LINEAR and EXPONENTIAL
|
||||
# If an invalid value is entered, this will reset to the default setting, which is LINEAR
|
||||
# LINEAR: base + (level * multiplier)
|
||||
# EXPONENTIAL: multiplier * level ^ exponent + base
|
||||
Curve: LINEAR
|
||||
|
||||
# If invalid values are entered mcMMO will not start and print an error in the console
|
||||
Linear_Values:
|
||||
base: 1020
|
||||
multiplier: 20
|
||||
Exponential_Values:
|
||||
multiplier: 0.1
|
||||
exponent: 1.80
|
||||
base: 2000
|
||||
|
||||
# Cumulative experience curves will use a players power level instead of their skill level,
|
||||
# players with high power levels will have to gain a lot more experience to reach the next level in every skill.
|
||||
Cumulative_Curve: false
|
||||
|
||||
# Experience gained in every skill will get multiplied by this value. 1.0 by default, 2.0 means two times as much
|
||||
Multiplier:
|
||||
Global: 1.0
|
||||
PVP: 1.0
|
||||
|
||||
# Experience gained from mobs not naturally spawned will get multiplied by this value. 0 by default.
|
||||
Mobspawners:
|
||||
Multiplier: 0
|
||||
Breeding:
|
||||
Multiplier: 1.0
|
||||
|
||||
# Experience gained will get divided by these values. 1.0 by default, 2.0 means two times less XP gained.
|
||||
Modifier:
|
||||
Swords: 1.0
|
||||
Taming: 1.0
|
||||
Acrobatics: 1.0
|
||||
Excavation: 1.0
|
||||
Herbalism: 1.0
|
||||
Unarmed: 1.0
|
||||
Woodcutting: 1.0
|
||||
Mining: 1.0
|
||||
Archery: 1.0
|
||||
Axes: 1.0
|
||||
Repair: 1.0
|
||||
Fishing: 1.0
|
||||
Alchemy: 1.0
|
||||
|
||||
# XP earned by players with the permission mcmmo.perks.xp.customboost.<skillname> will get multiplied
|
||||
# with 1.25 by default, resulting in a 25% XP boost
|
||||
Custom_XP_Perk:
|
||||
Boost: 1.25
|
||||
|
||||
#
|
||||
# Settings for Diminished Returns
|
||||
###
|
||||
Diminished_Returns:
|
||||
#This is the minimum amount of XP a player will earn after reaching the timed threshold (this is to prevent punishing a player too hard for earning XP)
|
||||
## A value of 1 would mean that a player gets FULL XP, which defeats the purpose of diminished returns, the default value is 0.05 (5% minimum XP)
|
||||
### Set this value to 0 to turn it off
|
||||
Guaranteed_Minimum_Percentage: 0.05
|
||||
Enabled: false
|
||||
|
||||
# Limit the amount of experience a player can earn:
|
||||
# Threshold (amount of experience) per Time_Interval (in minutes)
|
||||
Threshold:
|
||||
Swords: 20000
|
||||
Taming: 20000
|
||||
Acrobatics: 20000
|
||||
Excavation: 20000
|
||||
Herbalism: 20000
|
||||
Unarmed: 20000
|
||||
Woodcutting: 20000
|
||||
Mining: 20000
|
||||
Archery: 20000
|
||||
Axes: 20000
|
||||
Repair: 20000
|
||||
Fishing: 20000
|
||||
Alchemy: 20000
|
||||
|
||||
Time_Interval: 10
|
||||
|
||||
#
|
||||
# Settings for XP conversion with '/mcconvert experience'
|
||||
###
|
||||
Conversion:
|
||||
# Old experience will get divided by this modifier
|
||||
Exp_Modifier: 1
|
||||
|
||||
#
|
||||
# Settings for XP distribution
|
||||
###
|
||||
Experience:
|
||||
PVP:
|
||||
Rewards: true
|
||||
Acrobatics:
|
||||
Dodge: 120
|
||||
Roll: 80
|
||||
Fall: 120
|
||||
|
||||
# FeatherFall_Multiplier: Multiply Acrobatics XP by this value when wearing boots with the Feather Fall enchant
|
||||
FeatherFall_Multiplier: 2.0
|
||||
Alchemy:
|
||||
# Alchemy potion stages are based on the number of ingredients added
|
||||
# Potion_Stage_1 represents a base potion
|
||||
# Potion_Stage_2 represents a base potion with one ingredient
|
||||
# Potion_Stage_3 represents a base potion with one ingredient and one amplifier
|
||||
# Potion_Stage_4 represents a base potion with one ingredient and two amplifiers
|
||||
# Potion_Stage_5 represents a base potion with one ingredient where the amplifiers are swapped
|
||||
Potion_Stage_1: 15
|
||||
Potion_Stage_2: 30
|
||||
Potion_Stage_3: 60
|
||||
Potion_Stage_4: 120
|
||||
Potion_Stage_5: 0
|
||||
Archery:
|
||||
Distance_Multiplier: 0.025
|
||||
Fishing:
|
||||
Cod: 100
|
||||
Salmon: 600
|
||||
Tropical_Fish: 10000
|
||||
Pufferfish: 2400
|
||||
Shake: 50
|
||||
Excavation:
|
||||
Clay: 40
|
||||
Dirt: 40
|
||||
Coarse_Dirt: 40
|
||||
Podzol: 40
|
||||
Grass_Block: 40
|
||||
Gravel: 40
|
||||
Mycelium: 40
|
||||
Sand: 40
|
||||
Red_Sand: 40
|
||||
Snow: 20
|
||||
Snow_Block: 40
|
||||
Soul_Sand: 40
|
||||
Woodcutting:
|
||||
Oak_Log: 70
|
||||
Spruce_Log: 80
|
||||
Birch_Log: 90
|
||||
Jungle_Log: 100
|
||||
Acacia_Log: 90
|
||||
Dark_Oak_Log: 90
|
||||
Stripped_Oak_Log: 70
|
||||
Stripped_Spruce_Log: 80
|
||||
Stripped_Birch_Log: 90
|
||||
Stripped_Jungle_Log: 100
|
||||
Stripped_Acacia_Log: 90
|
||||
Stripped_Dark_Oak_Log: 90
|
||||
Oak_Wood: 70
|
||||
Spruce_Wood: 70
|
||||
Birch_Wood: 70
|
||||
Jungle_Wood: 70
|
||||
Acacia_Wood: 70
|
||||
Dark_Oak_Wood: 70
|
||||
Mycelium: 70
|
||||
Red_Mushroom_Block: 70
|
||||
Brown_Mushroom_Block: 70
|
||||
Mushroom_Stem: 80
|
||||
Herbalism:
|
||||
Tube_Coral_Fan: 80
|
||||
Brain_Coral: 90
|
||||
Bubble_Coral: 75
|
||||
Fire_Coral: 120
|
||||
Horn_Coral: 175
|
||||
Dead_Tube_Coral: 30
|
||||
Dead_Brain_Coral: 30
|
||||
Dead_Bubble_Coral: 30
|
||||
Dead_Fire_Coral: 30
|
||||
Dead_Horn_Coral: 30
|
||||
Allium: 300
|
||||
Azure_Bluet: 150
|
||||
Beetroots_Ripe: 50
|
||||
Blue_Orchid: 150
|
||||
Brown_Mushroom: 150
|
||||
Cactus: 30
|
||||
Carrots_Ripe: 50
|
||||
Chorus_Flower_Ripe: 25
|
||||
Chorus_Plant: 1
|
||||
Cocoa_Ripe: 30
|
||||
Wheat_Ripe: 50
|
||||
Dead_Bush: 30
|
||||
Lilac: 50
|
||||
Melon: 20
|
||||
Nether_Wart_Ripe: 50
|
||||
Orange_Tulip: 150
|
||||
Oxeye_Daisy: 150
|
||||
Peony: 50
|
||||
Pink_Tulip: 150
|
||||
Poppy: 100
|
||||
Potatoes_Ripe: 50
|
||||
Pumpkin: 20
|
||||
Red_Mushroom: 150
|
||||
Red_Tulip: 150
|
||||
Rose_Bush: 50
|
||||
Fern: 10
|
||||
Grass: 10
|
||||
Sugar_Cane: 30
|
||||
Sunflower: 50
|
||||
Tall_Grass: 50
|
||||
Large_Fern: 50
|
||||
Vine: 10
|
||||
Lily_Pad: 100
|
||||
White_Tulip: 150
|
||||
Dandelion: 100
|
||||
Mining:
|
||||
Tube_Coral_Block: 75
|
||||
Brain_Coral_Block: 80
|
||||
Bubble_Coral_Block: 70
|
||||
Fire_Coral_Block: 90
|
||||
Horn_Coral_Block: 125
|
||||
Coal_Ore: 100
|
||||
Diamond_Ore: 750
|
||||
Emerald_Ore: 1000
|
||||
End_Bricks: 200
|
||||
Nether_Brick: 50
|
||||
End_Stone: 30
|
||||
Glowstone: 30
|
||||
Gold_Ore: 350
|
||||
Terracotta: 30
|
||||
Iron_Ore: 250
|
||||
Lapis_Ore: 400
|
||||
Mossy_Cobblestone: 30
|
||||
Netherrack: 30
|
||||
Obsidian: 150
|
||||
Packed_Ice: 50
|
||||
Blue_Ice: 100
|
||||
Nether_Quartz_Ore: 100
|
||||
Redstone_Ore: 150
|
||||
Sandstone: 30
|
||||
Black_Terracotta: 50
|
||||
Blue_Terracotta: 50
|
||||
Brown_Terracotta: 50
|
||||
Cyan_Terracotta: 50
|
||||
Gray_Terracotta: 50
|
||||
Green_Terracotta: 50
|
||||
Light_Blue_Terracotta: 50
|
||||
Light_Gray_Terracotta: 50
|
||||
Lime_Terracotta: 50
|
||||
Magenta_Terracotta: 50
|
||||
Orange_Terracotta: 50
|
||||
Pink_Terracotta: 50
|
||||
Purple_Terracotta: 50
|
||||
Red_Terracotta: 50
|
||||
White_Terracotta: 50
|
||||
Yellow_Terracotta: 50
|
||||
Stone: 30
|
||||
Granite: 30
|
||||
Andesite: 30
|
||||
Diorite: 30
|
||||
Red_Sandstone: 100
|
||||
Prismarine: 70
|
||||
Purpur_Block: 200
|
||||
Purpur_Pillar: 250
|
||||
Purpur_Slab: 150
|
||||
Purpur_Stairs: 250
|
||||
Repair:
|
||||
Base: 1000.0
|
||||
Wood: 0.6
|
||||
Stone: 1.3
|
||||
Iron: 2.5
|
||||
Gold: 0.3
|
||||
Diamond: 5.0
|
||||
Leather: 1.6
|
||||
String: 1.8
|
||||
Other: 1.5
|
||||
Smelting:
|
||||
Coal_Ore: 10
|
||||
Diamond_Ore: 75
|
||||
Emerald_Ore: 100
|
||||
Gold_Ore: 35
|
||||
Iron_Ore: 25
|
||||
Lapis_Ore: 40
|
||||
Nether_Quartz_Ore: 25
|
||||
Redstone_Ore: 15
|
||||
Taming:
|
||||
Animal_Taming:
|
||||
Wolf: 250
|
||||
Ocelot: 500
|
||||
Horse: 1000
|
||||
Donkey: 1000
|
||||
Mule: 1000
|
||||
Skeleton_Horse: 1000
|
||||
Zombie_Horse: 1000
|
||||
Combat:
|
||||
Multiplier:
|
||||
Animals: 1.0
|
||||
Creeper: 4.0
|
||||
Skeleton: 3.0
|
||||
Spider: 2.0
|
||||
Giant: 4.0
|
||||
Zombie: 2.0
|
||||
Slime: 2.0
|
||||
Ghast: 3.0
|
||||
Pig_Zombie: 3.0
|
||||
Enderman: 1.0
|
||||
Cave_Spider: 3.0
|
||||
Silverfish: 3.0
|
||||
Blaze: 3.0
|
||||
Magma_Cube: 2.0
|
||||
Ender_Dragon: 1.0
|
||||
Wither: 1.0
|
||||
Witch: 0.1
|
||||
Iron_Golem: 2.0
|
||||
Wither_Skeleton: 4.0
|
||||
Endermite: 2.0
|
||||
Guardian: 3.0
|
||||
Elder_Guardian: 4.0
|
||||
Shulker: 2.0
|
||||
Donkey: 1.0
|
||||
Mule: 1.0
|
||||
Horse: 1.0
|
||||
Zombie_Villager: 2.0
|
||||
Skeleton_Horse: 1.0
|
||||
Zombie_Horse: 1.2
|
||||
Husk: 3.0
|
||||
Evoker: 3.0
|
||||
Polar_Bear: 2.0
|
||||
Llama: 1.0
|
||||
Vindicator: 3.0
|
||||
Stray: 2.0
|
||||
Rabbit: 1.0
|
||||
Chicken: 1.0
|
||||
Bat: 1.0
|
||||
Mushroom_Cow: 1.2
|
||||
Cow: 1.0
|
||||
Turtle: 1.1
|
||||
Sheep: 1.0
|
||||
Pig: 1.0
|
||||
Squid: 1.0
|
||||
Ocelot: 1.0
|
||||
Villager: 1.0
|
||||
Snowman: 0.0
|
||||
Parrot: 1.0
|
||||
Illusioner: 3.0
|
||||
Drowned: 1.0
|
||||
Dolphin: 1.3
|
||||
Phantom: 4.0
|
||||
@@ -1,96 +0,0 @@
|
||||
#
|
||||
# ItemStack Weights configuration
|
||||
#
|
||||
# This file is used to determine the value of an item. This will only
|
||||
# happen when users are sharing items in a party using the EQUAL item share mode.
|
||||
#
|
||||
# Rare items should have a higher value than common items. If an item is not listed
|
||||
# here, the value from "Default" will be used instead.
|
||||
#
|
||||
#####
|
||||
Item_Weights:
|
||||
Default: 5
|
||||
Quartz: 200
|
||||
Nether_Quartz_Ore: 200
|
||||
Emerald: 150
|
||||
Emerald_Ore: 150
|
||||
Diamond: 100
|
||||
Diamond_Ore: 100
|
||||
Gold_Ingot: 50
|
||||
Gold_Ore: 50
|
||||
Iron_Ingot: 40
|
||||
Iron_Ore: 40
|
||||
Lapis_Ore: 30
|
||||
Redstone: 30
|
||||
Redstone_Ore: 30
|
||||
Glowstone_Dust: 20
|
||||
Coal: 10
|
||||
Coal_Ore: 10
|
||||
|
||||
# ItemStack weights for armor and tools
|
||||
Diamond_Sword: 150
|
||||
Diamond_Shovel: 150
|
||||
Diamond_Pickaxe: 150
|
||||
Diamond_Axe: 150
|
||||
Diamond_Helmet: 150
|
||||
Diamond_Chestplate: 150
|
||||
Diamond_Leggings: 150
|
||||
Diamond_Boots: 150
|
||||
Golden_Sword: 75
|
||||
Golden_Shovel: 75
|
||||
Golden_Pickaxe: 75
|
||||
Golden_Axe: 75
|
||||
Golden_Helmet: 75
|
||||
Golden_Chestplate: 75
|
||||
Golden_Leggings: 75
|
||||
Golden_Boots: 75
|
||||
Iron_Sword: 60
|
||||
Iron_Shovel: 60
|
||||
Iron_Pickaxe: 60
|
||||
Iron_Axe: 60
|
||||
Iron_Helmet: 60
|
||||
Iron_Chestplate: 60
|
||||
Iron_Leggings: 60
|
||||
Iron_Boots: 60
|
||||
|
||||
# Items in this section will get added to the Misc share category.
|
||||
# Case insensitive, though the name must be exactly the same as set in the Bukkit Material enum.
|
||||
Party_Shareables:
|
||||
Misc_Items:
|
||||
- Diamond_Sword
|
||||
- Diamond_Shovel
|
||||
- Diamond_Pickaxe
|
||||
- Diamond_Axe
|
||||
- Golden_Sword
|
||||
- Golden_Shovel
|
||||
- Golden_Pickaxe
|
||||
- Golden_Axe
|
||||
- Iron_Sword
|
||||
- Iron_Shovel
|
||||
- Iron_Pickaxe
|
||||
- Iron_Axe
|
||||
- Stone_Sword
|
||||
- Stone_Shovel
|
||||
- Stone_Pickaxe
|
||||
- Stone_Axe
|
||||
- Wooden_Sword
|
||||
- Wooden_Shovel
|
||||
- Wooden_Pickaxe
|
||||
- Wooden_Axe
|
||||
- Bow
|
||||
- Diamond_Helmet
|
||||
- Diamond_Chestplate
|
||||
- Diamond_Leggings
|
||||
- Diamond_Boots
|
||||
- Golden_Helmet
|
||||
- Golden_Chestplate
|
||||
- Golden_Leggings
|
||||
- Golden_Boots
|
||||
- Iron_Helmet
|
||||
- Iron_Chestplate
|
||||
- Iron_Leggings
|
||||
- Iron_Boots
|
||||
- Leather_Helmet
|
||||
- Leather_Chestplate
|
||||
- Leather_Leggings
|
||||
- Leather_Boots
|
||||
@@ -1,467 +0,0 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Graceful Landing**
|
||||
Acrobatics.Combat.Proc=[[GREEN]] **osgoi\'r**
|
||||
Acrobatics.DodgeChance=Dodge Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Roll
|
||||
Acrobatics.SubSkill.Roll.Description=Reduces or Negates fall damage
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=Graceful Roll
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Twice as effective as a normal Roll
|
||||
Acrobatics.SubSkill.Dodge.Name=Dodge
|
||||
Acrobatics.SubSkill.Dodge.Description=Reduce attack damage by half
|
||||
Acrobatics.Listener=Acrobateg
|
||||
Acrobatics.SubSkill.Roll.Chance=Roll Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Graceful Roll Chance: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Rolled**
|
||||
Acrobatics.SkillName=ACROBATEG
|
||||
Acrobatics.Skillup=Acrobateg sgil cynyddu {0}. Cyfanswm ({1})
|
||||
Archery.Combat.DazeChance=Chance to Daze: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Chance to Retrieve Arrows: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Skill Shot Bonus Damage: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Skill Shot
|
||||
Archery.SubSkill.SkillShot.Description=Increases damage done with bows
|
||||
Archery.SubSkill.Daze.Name=Daze (Players)
|
||||
Archery.SubSkill.ArrowRetrieval.Name=Arrow Retrieval
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Chance to retrieve arrows from corpses
|
||||
Archery.Listener=Archery:
|
||||
Archery.SkillName=ARCHERY
|
||||
Archery.Skillup=sgiliau Saethyddiaeth cynyddu {0}. Cyfanswm ({1})
|
||||
Axes.Ability.Bonus.0=Axe Mastery
|
||||
Axes.Ability.Bonus.1=Bonus {0} damage
|
||||
Axes.Ability.Bonus.2=Impact
|
||||
Axes.Ability.Bonus.3=Deal {0} Bonus DMG to armor
|
||||
Axes.Ability.Bonus.4=Greater Impact
|
||||
Axes.Ability.Bonus.5=Deal {0} Bonus DMG to unarmored foes
|
||||
Axes.Ability.Lower=[[GRAY]]**YOU LOWER YOUR AXE**
|
||||
Axes.Ability.Ready=[[GREEN]]**YOU READY YOUR AXE**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]You were CRITICALLY hit!
|
||||
Axes.Combat.CritChance=Chance to critically strike: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=CRITICAL HIT!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**STRUCK WITH GREAT FORCE**
|
||||
Axes.Combat.GI.Struck=** ** BRIFO GAN EFFAITH FWYAF
|
||||
Axes.Combat.SS.Length=Skull Splitter Length: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=Skull Splitter
|
||||
Axes.SubSkill.SkullSplitter.Description=Deal AoE Damage
|
||||
Axes.SubSkill.CriticalStrikes.Name=Critical Strikes
|
||||
Axes.SubSkill.CriticalStrikes.Description=Double Damage
|
||||
Axes.SubSkill.AxeMastery.Name=Axe Mastery
|
||||
Axes.SubSkill.AxeMastery.Description=Adds bonus DMG
|
||||
Axes.SubSkill.ArmorImpact.Name=Impact
|
||||
Axes.SubSkill.ArmorImpact.Description=Strike with enough force to shatter armor
|
||||
Axes.SubSkill.GreaterImpact.Name=Greater Impact
|
||||
Axes.SubSkill.GreaterImpact.Description=Deal bonus damage to unarmored foes
|
||||
Axes.Listener=Axes:
|
||||
Axes.SkillName=AXES
|
||||
Axes.Skills.SS.Off=**Skull Splitter has worn off**
|
||||
Axes.Skills.SS.On=actifadu Penglog Llorweddol
|
||||
Axes.Skills.SS.Refresh=[[GREEN]] Eich [[YELLOW]] Penglog Llorweddol [[GREEN]] gallu ei hadnewyddu!
|
||||
Axes.Skills.SS.Other.Off=Skull Splitter[[GREEN]] has worn off for [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]] {0} [[DARK_GREEN]] wedi defnyddio [[RED]] Llorweddol Benglog!
|
||||
Axes.Skillup=sgiliau Echelau cynyddu {0}. Cyfanswm ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**YOU LOWER YOUR SHOVEL**
|
||||
Excavation.Ability.Ready=[[GREEN]]**YOU READY YOUR SHOVEL**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Giga Drill Breaker
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=3x Drop Rate, 3x EXP, +Speed
|
||||
Excavation.SubSkill.TreasureHunter.Name=Treasure Hunter
|
||||
Excavation.SubSkill.TreasureHunter.Description=Ability to dig for treasure
|
||||
Excavation.Effect.Length=Giga Drill Breaker Length: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Cloddio:
|
||||
Excavation.SkillName=CLODDIO
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Giga Drill Breaker has worn off**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=Giga Drill Breaker[[GREEN]] has worn off for [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
|
||||
Excavation.Skillup=Excavation skill increased by {0}. Total ({1})
|
||||
Fishing.Ability.Info=Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank**
|
||||
Fishing.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (SHAKE)
|
||||
Fishing.Ability.Rank=Treasure Hunter Rank: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.TH.MagicRate=Magic Hunter Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Shake Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.FD=Fisherman\'\'s Diet: [[YELLOW]]Rank {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Treasure Hunter (Passive)
|
||||
Fishing.SubSkill.TreasureHunter.Description=Fish up misc. objects
|
||||
Fishing.SubSkill.MagicHunter.Name=Magic Hunter
|
||||
Fishing.SubSkill.MagicHunter.Description=Find Enchanted Items
|
||||
Fishing.SubSkill.Shake.Name=Shake (vs. Entities)
|
||||
Fishing.SubSkill.Shake.Description=Shake items off of mobs w/ fishing pole
|
||||
Fishing.SubSkill.FishermansDiet.Name=Fisherman\'s Diet
|
||||
Fishing.SubSkill.FishermansDiet.Description=Improves hunger restored from fished foods
|
||||
Fishing.Chance.Raining=[[BLUE]] Rain Bonus
|
||||
Fishing.Listener=Fishing:
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
|
||||
Fishing.SkillName=FISHING
|
||||
Fishing.Skillup=Fishing skill increased by {0}. Total ({1})
|
||||
Herbalism.Ability.DoubleDropChance=Double Drop Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTe.Length=Green Terra Length: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=You need more seeds to spread Green Terra.
|
||||
Herbalism.Ability.GTh.Chance=Green Thumb Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**GREEN THUMB FAIL**
|
||||
Herbalism.Ability.GTh.Stage=Green Thumb Stage: [[YELLOW]] Crops grow in stage {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**GREEN THUMB**
|
||||
Herbalism.Ability.Lower=[[GRAY]]**YOU LOWER YOUR HOE**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**YOU READY YOUR HOE**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Green Terra
|
||||
Herbalism.SubSkill.GreenTerra.Description=Spread the Terra, 3x Drops
|
||||
Herbalism.SubSkill.GreenThumb.Name=Green Thumb (Wheat)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Auto-Plants crops when harvesting
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Make bricks mossy, or make grass grow
|
||||
Herbalism.SubSkill.FarmersDiet.Name=Farmer\'s Diet
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Improves hunger restored from farmed foods
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Double Drops (All Herbs)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=Double the normal loot
|
||||
Herbalism.Listener=Meddygaeth lysieuol:
|
||||
Herbalism.SkillName=HERBALISM
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**GREEN TERRA ACTIVATED**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]] Eich [[YELLOW]] Green Terra [[GREEN]] gallu ei hadnewyddu!
|
||||
Herbalism.Skills.GTe.Other.Off=Green terra [[GREEN]] wedi gwisgo i ffwrdd ar gyfer [[YELLOW]] {0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
|
||||
Herbalism.Skillup=Herbalism skill increased by {0}. Total ({1})
|
||||
Mining.Ability.Length=Hyd Torri\'r Super: [[YELLOW]] {0} s
|
||||
Mining.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (BLAST MINING)
|
||||
Mining.Ability.Locked.1=LOCKED UNTIL {0}+ SKILL (BIGGER BOMBS)
|
||||
Mining.Ability.Locked.2=LOCKED UNTIL {0}+ SKILL (DEMOLITIONS EXPERTISE)
|
||||
Mining.Ability.Lower=[[GRAY]]You lower your Pickaxe.
|
||||
Mining.Ability.Ready=[[GREEN]] ** CHI'N BAROD EICH PICKAXE **
|
||||
Mining.SubSkill.SuperBreaker.Name=Super Breaker
|
||||
Mining.SubSkill.SuperBreaker.Description=Speed+, Triple Drop Chance
|
||||
Mining.SubSkill.DoubleDrops.Name=Double Drops
|
||||
Mining.SubSkill.DoubleDrops.Description=Double the normal loot
|
||||
Mining.SubSkill.BlastMining.Name=Blast Mining
|
||||
Mining.SubSkill.BlastMining.Description=Bonuses to mining with TNT
|
||||
Mining.SubSkill.BiggerBombs.Name=Bigger Bombs
|
||||
Mining.SubSkill.BiggerBombs.Description=Increases TNT explosion radius
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Demolitions Expertise
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=Decreases damage from TNT explosions
|
||||
Mining.Effect.Decrease=Demolitions Expert Damage Decrease: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=Double Drop Chance: [[YELLOW]]{0}
|
||||
Mining.Listener=Mwyngloddio:
|
||||
Mining.SkillName=MINING
|
||||
Mining.Skills.SuperBreaker.Off=**Super Breaker has worn off**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER BREAKER ACTIVATED**
|
||||
Mining.Skills.SuperBreaker.Other.Off=Super Breaker[[GREEN]] has worn off for [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]] Eich [[YELLOW]] Super Torri\'r [[GREEN]] gallu ei hadnewyddu!
|
||||
Mining.Skillup=sgiliau Mwyngloddio cynyddu {0}. Cyfanswm ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Radius.Increase=Chwyth Cynnydd Radiws [[YELLOW]] {0}
|
||||
Mining.Blast.Rank=Blast Mining: [[YELLOW]] Rank {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Blast Mining!
|
||||
Mining.Blast.Refresh=[[GREEN]] Eich [[YELLOW]] Mwyngloddio Chwyth [[GREEN]] gallu ei hadnewyddu!
|
||||
Repair.SubSkill.Repair.Name=Repair
|
||||
Repair.SubSkill.Repair.Description=Repair Tools & Armor
|
||||
Repair.SubSkill.GoldRepair.Name=Gold Repair ({0}+ SKILL)
|
||||
Repair.SubSkill.GoldRepair.Description=Repair Gold Tools & Armor
|
||||
Repair.SubSkill.IronRepair.Name=Iron Repair ({0}+ SKILL)
|
||||
Repair.SubSkill.IronRepair.Description=Repair Iron Tools & Armor
|
||||
Repair.SubSkill.StoneRepair.Name=Stone Repair ({0}+ SKILL)
|
||||
Repair.SubSkill.StoneRepair.Description=Repair Stone Tools
|
||||
Repair.SubSkill.RepairMastery.Name=Repair Mastery
|
||||
Repair.SubSkill.RepairMastery.Description=Increased repair amount
|
||||
Repair.SubSkill.SuperRepair.Name=Super Repair
|
||||
Repair.SubSkill.SuperRepair.Description=Double effectiveness
|
||||
Repair.SubSkill.DiamondRepair.Name=Diamond Repair ({0}+ SKILL)
|
||||
Repair.SubSkill.DiamondRepair.Description=Repair Diamond Tools & Armor
|
||||
Repair.SubSkill.ArcaneForging.Name=Arcane Forging
|
||||
Repair.SubSkill.ArcaneForging.Description=Atgyweiriwch eitemau sydd hud
|
||||
Repair.SubSkill.Salvage.Name=Salvage ({0}+ SKILL)
|
||||
Repair.SubSkill.Salvage.Description=Salvage Tools & Armor
|
||||
Repair.Error=[[DARK_RED]]mcMMO encountered an error attempting to repair this item!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]You have placed a Salvage anvil, use this to Salvage tools and armor.
|
||||
Repair.Listener=Atgyweirio:
|
||||
Repair.SkillName=ATGYWEIRIO:
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]]You\'re not skilled enough to Salvage items.
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]] Dydych chi ddim yn ddigon medrus i drwsio Diemwnt.
|
||||
Repair.Skills.AdeptGold=[[DARK RED]] Dydych chi ddim yn ddigon medrus i drwsio Aur.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]You\'re not skilled enough to repair Iron.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]] Dydych chi ddim yn ddigon medrus i drwsio cerrig.
|
||||
Repair.Skills.Adept=You must be level [[YELLOW]]{0}[[RED]] to repair [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]That felt easy.
|
||||
Repair.Skills.FullDurability=[[GRAY]]That is at full durability.
|
||||
Repair.Skills.SalvageSuccess=[[GRAY]]Item salvaged!
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]You can\'t salvage damaged items.
|
||||
Repair.Skills.Mastery=Repair Mastery: [[YELLOW]]Extra {0} durability restored
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]You can\'t repair stacked items.
|
||||
Repair.Skills.Super.Chance=Super Repair Chance: [[YELLOW]]{0}
|
||||
Repair.Skillup=sgiliau Atgyweirio cynyddu {0}. Cyfanswm ({1})
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]] Cyfradd Llwyddiant AF: [[YELLOW]] {0}%
|
||||
Repair.Arcane.Downgrade=Arcane power has decreased for this item.
|
||||
Repair.Arcane.Fail=P\u0175er dirgel wedi gadael yr eitem barhaol
|
||||
Repair.Arcane.Lost=You were not skilled enough to keep any enchantments.
|
||||
Repair.Arcane.Perfect=[[GREEN]]You have sustained the arcane energies in this item.
|
||||
Repair.Arcane.Rank=Arcane Forging: [[YELLOW]]Rank {0}/4
|
||||
Swords.Ability.Lower=[[GRAY]] ** I LEIHAU EICH CLEDDYF **
|
||||
Swords.Ability.Ready=[[GREEN]] ** CHI\'N BAROD EICH SWORD **
|
||||
Swords.Combat.Bleed.Chance=Bleed Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=Bleed Length: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] You\'re bleeding!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]] y gwaedu wedi [[GREEN]] rhoi\'r gorau i [[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]** GELYN GWAEDU\'N**
|
||||
Swords.Combat.Counter.Chance=Counter Attack Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Hit with a counter-attack!
|
||||
Swords.Combat.Countered=[[GREEN]] ** GWRTH-YMOSOD **
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]] Taro gan Streiciau danheddog!
|
||||
Swords.SubSkill.CounterAttack.Name=Counter Attack
|
||||
Swords.SubSkill.SerratedStrikes.Name=Serrated Strikes
|
||||
Swords.Effect.4=Serrated Strikes Bleed+
|
||||
Swords.SubSkill.Bleed.Name=Bleed
|
||||
Swords.SubSkill.Bleed.Description=Apply a bleed DoT
|
||||
Swords.Listener=Swords:
|
||||
Swords.SkillName=SWORDS
|
||||
Swords.Skills.SS.Off=**Serrated Strikes has worn off**
|
||||
Swords.Skills.SS.On=[[GREEN]] ** Streiciau danheddog actifadu **
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
|
||||
Swords.Skills.SS.Other.Off=Streiciau danheddog [[GREEN]] wedi gwisgo i ffwrdd ar gyfer [[YELLOW]] {0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]] {0} [[DARK_GREEN]] wedi defnyddio [[RED]] Streiciau danheddog!
|
||||
Swords.Skillup=Swords skill increased by {0}. Total ({1})
|
||||
Swords.SS.Length=Serrated Strikes Length: [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=Environmentally Aware
|
||||
Taming.Ability.Bonus.1=Wolves avoid danger
|
||||
Taming.Ability.Bonus.2=Ffwr Trwchus
|
||||
Taming.Ability.Bonus.4=Shock Proof
|
||||
Taming.Ability.Bonus.6=Sharpened Claws
|
||||
Taming.Ability.Bonus.8=Fast Food Service
|
||||
Taming.Ability.Bonus.9={0}% Chance for heal on attack
|
||||
Taming.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (ENVIRONMENTALLY AWARE)
|
||||
Taming.Ability.Locked.1=LOCKED UNTIL {0}+ SKILL (THICK FUR)
|
||||
Taming.Ability.Locked.2=LOCKED UNTIL {0}+ SKILL (SHOCK PROOF)
|
||||
Taming.Ability.Locked.3=LOCKED UNTIL {0}+ SKILL (SHARPENED CLAWS)
|
||||
Taming.Ability.Locked.4=LOCKED UNTIL {0}+ SKILL (FAST FOOD SERVICE)
|
||||
Taming.Combat.Chance.Gore=Gore Chance: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=Beast Lore
|
||||
Taming.SubSkill.BeastLore.Description=Bone-whacking inspects wolves & ocelots
|
||||
Taming.SubSkill.ShockProof.Name=Shock Proof
|
||||
Taming.SubSkill.ShockProof.Description=Explosive Damage Reduction
|
||||
Taming.SubSkill.CallOfTheWild.Name=Call of the Wild
|
||||
Taming.SubSkill.CallOfTheWild.Description=Summon an animal to your side
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW (Ocelot): Crouch and left-click with {0} Fish in hand
|
||||
Taming.Effect.15=[[GRAY]]COTW (Wolf): Crouch and left-click with {0} Bones in hand
|
||||
Taming.SubSkill.FastFoodService.Name=Fast Food Service
|
||||
Taming.SubSkill.FastFoodService.Description=Chance for wolves to heal on attack
|
||||
Taming.SubSkill.Gore.Name=Gore
|
||||
Taming.SubSkill.Gore.Description=Critical Strike that applies Bleed
|
||||
Taming.SubSkill.SharpenedClaws.Name=Sharpened Claws
|
||||
Taming.SubSkill.SharpenedClaws.Description=Damage Bonus
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Environmentally Aware
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Cactus/Lava Phobia, Fall DMG Immune
|
||||
Taming.SubSkill.ThickFur.Name=Thick Fur
|
||||
Taming.SubSkill.ThickFur.Description=DMG Reduction, Fire Resistance
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]] Eich sgrialu i blaidd yn \u00f4l i chi ...
|
||||
Taming.Listener=Taming:
|
||||
Taming.SkillName=TAMING
|
||||
Taming.Skillup=sgiliau Ddofi cynyddu {0}.\u00a0Cyfanswm ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Summoning complete
|
||||
Taming.Summon.Fail.Ocelot=You have too many ocelots nearby to summon any more.
|
||||
Taming.Summon.Fail.Wolf=You have too many wolves nearby to summon any more.
|
||||
Unarmed.Ability.Berserk.Length=Berserk Length: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Iron Arm Style
|
||||
Unarmed.Ability.Bonus.1=+{0} DMG Upgrade
|
||||
Unarmed.Ability.Chance.ArrowDeflect=Saeth wyro cyfle: [[YELLOW]] {0}
|
||||
Unarmed.Ability.Chance.Disarm=Disarm Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Your opponent has an iron grip!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]Your iron grip kept you from being disarmed!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**YOU LOWER YOUR FISTS**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**YOU READY YOUR FISTS**
|
||||
Unarmed.SubSkill.Berserk.Name=Berserk
|
||||
Unarmed.SubSkill.Berserk.Description=+50% DMG, Breaks weak materials
|
||||
Unarmed.SubSkill.Disarm.Name=Disarm (Players)
|
||||
Unarmed.SubSkill.Disarm.Description=Drops the foes item held in hand
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Iron Arm Style
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Hardens your arm over time
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=Arrow Deflect
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=Deflect arrows
|
||||
Unarmed.Listener=Dim Arfau:
|
||||
Unarmed.SkillName=UNARMED
|
||||
Unarmed.Skills.Berserk.Off=** arno\\\'i hun wedi gwisgo i ffwrdd **
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERK ACTIVATED**
|
||||
Unarmed.Skills.Berserk.Other.Off=arno\'i hun [[GREEN]] wedi gwisgo i ffwrdd ar gyfer [[YELLOW]] {0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]] {0} [[DARK_GREEN]] wedi defnyddio [[RED]] arno\'i hun!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
|
||||
Unarmed.Skillup=Unarmed skill increased by {0}. Total ({1})
|
||||
Woodcutting.Ability.0=Chwythwr o ddail
|
||||
Woodcutting.Ability.1=Chwythu i ffwrdd yn gadael
|
||||
Woodcutting.Ability.Chance.DDrop=Double Drop Chance: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=Tree Feller Length: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (LEAF BLOWER)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Tree Feller
|
||||
Woodcutting.SubSkill.TreeFeller.Description=Make trees explode
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Leaf Blower
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Blow Away Leaves
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Double Drops
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Double the normal loot
|
||||
Woodcutting.Listener=Woodcutting:
|
||||
Woodcutting.SkillName=Torri coed
|
||||
Woodcutting.Skills.TreeFeller.Off=**Tree Feller has worn off**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**TREE FELLER ACTIVATED**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]] Eich [[YELLOW]] Feller Coed [[GREEN]] gallu ei hadnewyddu!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=Feller Coed [[GREEN]] wedi gwisgo i ffwrdd ar gyfer [[YELLOW]] {0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=EICH AXE GWAHANU I DDWSINAU O DARNAU!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=That tree is too large!
|
||||
Woodcutting.Skillup=Woodcutting skill increased by {0}. Total ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**ABILITIES REFRESHED!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT**
|
||||
Combat.BeastLore=[[GREEN]] ** bwystfil ll\u00ean **
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]] Iechyd ([[GREEN]] {0} [[DARK_AQUA]] / {1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**GORED**
|
||||
Combat.StruckByGore=**YOU HAVE BEEN GORED**
|
||||
Combat.TargetDazed=Target was [[DARK_RED]]Dazed
|
||||
Combat.TouchedFuzzy=[[DARK_RED]] cyffwrdd Fuzzy. Teimlo benysgafn.
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]You were awarded {0} levels in all skills!
|
||||
Commands.addlevels.AwardAll.2=All skills have been modified for {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]You were awarded {0} levels in {1}!
|
||||
Commands.addlevels.AwardSkill.2={0} has been modified for {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]You were awarded {0} experience in all skills!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]You were awarded {0} experience in {1}!
|
||||
Commands.Ability.Off=Ability use toggled [[RED]]off
|
||||
Commands.Ability.On=Ability use toggled [[GREEN]]on
|
||||
Commands.AdminChat.Off=Admin Sgwrs unig [[RED]] Oddi ar
|
||||
Commands.AdminChat.On=Admin Chat only [[GREEN]]On
|
||||
Commands.AdminToggle=- sgwrs gweinyddol Toggle
|
||||
Commands.Chat.Console=*Console*
|
||||
Commands.Disabled=Mae\'r gorchymyn yn anabl.
|
||||
Commands.DoesNotExist=nid Chwaraewr yn bodoli yn y gronfa ddata!
|
||||
Commands.GodMode.Disabled=mcMMO Godmode Disabled
|
||||
Commands.GodMode.Enabled=mcMMO Godmode Enabled
|
||||
Commands.GodMode.Forbidden=[mcMMO] God Mode not permitted on this world (See Permissions)
|
||||
Commands.Inspect=<player> [[RED]]- View detailed player info
|
||||
Commands.Party.Invite.Accepted=[[GREEN]] Gwahodd Derbyniwyd. Yr ydych wedi ymuno parti {0}
|
||||
Commands.Invite.Success=[[GREEN]]Invite sent successfully.
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- Leaderboards
|
||||
Commands.mcc.Header=---[][[YELLOW]]mcMMO Commands[[RED]][]---
|
||||
Commands.mcgod=- Toggle GodMode
|
||||
Commands.mchud.Invalid=That is not a valid HUD type.
|
||||
Commands.mcpurge.Success=[[GREEN]]The database was successfully purged!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=PERSONAL RANKINGS=-
|
||||
Commands.mcrank.Overall=Overall[[GREEN]] - [[GOLD]]Rank [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=TARGET: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Rank [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Unranked
|
||||
Commands.mcremove.Success=[[GREEN]]{0} was successfully removed from the database!
|
||||
Commands.mctop.Tip=[[GOLD]]Tip: Use [[RED]]/mcrank[[GOLD]] to view all of your personal rankings!
|
||||
Commands.mmoedit=[chwaraewr] <skill> <newvalue> [[RED]] - Targed addasu
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Your level in {0} was set to {1}!
|
||||
Commands.mmoedit.Modified.2={0} has been modified for {1}.
|
||||
Commands.ModDescription=- Read brief mod description
|
||||
Commands.NoConsole=This command does not support console usage.
|
||||
Commands.Other=[[GREEN]]--OTHER COMMANDS--
|
||||
Commands.Party.Accept=- Accept party invite
|
||||
Commands.Party.Chat.Off=Party Chat only [[RED]]Off
|
||||
Commands.Party.Chat.On=Party Chat only [[GREEN]]On
|
||||
Commands.Party.Commands=[[GREEN]]--PARTY COMMANDS--
|
||||
Commands.Party.Invite.0=RHYBUDD: [[GREEN]] fod wedi derbyn gwahoddiad i barti {0} o {1}
|
||||
Commands.Party.Kick=oeddech yn cicio o blaid {0}!
|
||||
Commands.Party.Leave=Yr ydych wedi gadael y blaid honno
|
||||
Commands.Party.None=You are not in a party.
|
||||
Commands.Party.Quit=- Leave your current party
|
||||
Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
|
||||
Commands.Party.Toggle=- Toggle Party Chat
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
|
||||
Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]All of your skill levels have been reset successfully.
|
||||
Commands.Reset.Single=[[GREEN]]Your {0} skill level has been reset successfully.
|
||||
Commands.Reset=Reset a skill\'s level to 0
|
||||
Commands.Skill.Invalid=That is not a valid skillname!
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
|
||||
Commands.Stats.Self=YOUR STATS
|
||||
Commands.Stats=- View your mcMMO stats
|
||||
Commands.ToggleAbility=- Toggle ability activation with right click
|
||||
Commands.Usage.1=Proper usage is /{0} {1}
|
||||
Commands.Usage.2=Proper usage is /{0} {1} {2}
|
||||
Commands.Usage.3=Proper usage is /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=level
|
||||
Commands.Usage.Message=message
|
||||
Commands.Usage.Page=page
|
||||
Commands.Usage.Player=player
|
||||
Commands.Usage.Skill=skill
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=You have no invites at this time
|
||||
mcMMO.NoPermission=[[DARK_RED]]Insufficient permissions.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]If you don\'t have access to a skill it will not be shown here.
|
||||
Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
|
||||
Party.InvalidName=[[DARK_RED]]That is not a valid party name.
|
||||
Party.IsLocked=This party is already locked!
|
||||
Party.IsntLocked=This party is not locked!
|
||||
Party.Locked=Party is locked, only party leader may invite.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
|
||||
Party.NotOwner=[[DARK_RED]]You are not the party owner
|
||||
Party.Owner.New=[[GREEN]]{0} is the new party leader.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]You are no longer the party leader.
|
||||
Party.Owner.Player=[[GREEN]]You are now the party leader.
|
||||
Party.Password.Incorrect=Party password is incorrect.
|
||||
Party.Password.Set=[[GREEN]] Blaid cyfrinair wedi ei osod i {0}
|
||||
Party.Player.Invalid=Nid yw hynny\'n chwaraewr ddilys.
|
||||
Party.Teleport.Dead=Ni allwch teleport y chwaraewr yn farw.
|
||||
Party.Teleport.Player=[[GREEN]]You have teleported to {0}.
|
||||
Party.Teleport.Self=You can\'t teleport to yourself!
|
||||
Party.Teleport.Target=[[GREEN]] {0} wedi teleported i chi.
|
||||
Party.Unlocked=[[GRAY]] Blaid yn cael ei gloi
|
||||
Commands.XPGain.Acrobatics=Falling
|
||||
Commands.XPGain.Archery=Attacking Monsters
|
||||
Commands.XPGain.Axes=Attacking Monsters
|
||||
Commands.XPGain.Excavation=Cloddio a dod o hyd i drysorau
|
||||
Commands.XPGain.Fishing=Pysgota (Ewch ffigur!)
|
||||
Commands.XPGain.Herbalism=Perlysiau cynaeafu
|
||||
Commands.XPGain.Mining=Mwyngloddio Cerrig a Mwyn
|
||||
Commands.XPGain.Repair=Repairing
|
||||
Commands.XPGain.Swords=Angenfilod ymosod
|
||||
Commands.XPGain.Taming=Anifeiliaid Taming, neu ymladd \u00e2\'ch bleiddiaid
|
||||
Commands.XPGain.Unarmed=Attacking Monsters
|
||||
Commands.XPGain.Woodcutting=Chopping down trees
|
||||
Commands.XPGain=[[DARK_GRAY]] Cael Profiad: [[WHITE]] {0}
|
||||
Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
|
||||
Commands.xprate.modified=The XP RATE was modified to {0}
|
||||
Commands.xprate.over=mcMMO XP Rate Event is OVER!!
|
||||
Commands.xprate.proper.0=Proper usage to change the XP rate is /xprate <integer> <true/false>
|
||||
Commands.xprate.proper.1=Proper usage to restore the XP rate to default is /xprate reset
|
||||
Commands.xprate.proper.2=Please specify true or false to indicate if this is an xp event or not
|
||||
Commands.xprate.started.0=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO XP RATE IS NOW {0}x!
|
||||
XPRate.Event=[[GOLD]] mcMMO ar hyn o bryd mewn digwyddiad gyfradd XP! Gyfradd yn XP {0} x!
|
||||
Effects.Effects=EFFEITHIAU
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Available=[[GRAY]]Guide for {0} available - type /{1} ? [page]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Guide[[GOLD]]=-
|
||||
Guides.Page.Invalid=Not a valid page number!
|
||||
Guides.Usage=Usage is /{0} ? [page]
|
||||
Inspect.Offline=You do not have permission to inspect offline players!
|
||||
Inspect.OfflineStats=mcMMO Stats for Offline Player [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0}
|
||||
Inspect.TooFar=You are too far away to inspect that player!
|
||||
Item.ChimaeraWing.Fail=**CHIMAERA WING FAILED!**
|
||||
Item.ChimaeraWing.Pass=**CHIMAERA ADAIN**
|
||||
Item.Injured.Wait=You were injured recently and must wait to use this. [[YELLOW]]({0}s)
|
||||
Skills.Disarmed=[[DARK_RED]] Rydych wedi cael eich diarfogi!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]] y bydd angen mwy o [[GRAY]]{0}
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=Yr ydych yn rhy flinedig i ddefnyddio\'r gallu eto. [[YELLOW]]({0}s)
|
||||
Stats.Header.Combat=[GOLD]] - = GWRTHSEFYLL SGILIAU = -
|
||||
Stats.Header.Gathering=[[GOLD]] -= CASGLU SGILIAU = = -
|
||||
Stats.Header.Misc=[[GOLD]]-=MISC SKILLS=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Ystadegau
|
||||
Perks.XP.Name=Experience
|
||||
Perks.XP.Desc=Receive {0}x XP.
|
||||
Perks.Lucky.Name=Luck
|
||||
Perks.Lucky.Desc=Gives {0} skills and abilities a 33.3% better chance to activate.
|
||||
Perks.Lucky.Desc.Login=Gives certain skills and abilities a 33.3% better chance to activate.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} with Lucky Perk)
|
||||
Perks.Cooldowns.Name=Fast Recovery
|
||||
Perks.Cooldowns.Desc=Cuts cooldown duration by {0}.
|
||||
Perks.ActivationTime.Name=Endurance
|
||||
Perks.ActivationTime.Desc=Increases ability activation time by {0} seconds.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s with Endurance Perk)
|
||||
MOTD.Donate=[[DARK_AQUA]]Donation Info:
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Skill Death Penalty: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Vampirism Stat Leech: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO Perks]
|
||||
MOTD.Version=[[GOLD]][mcMMO] Running version [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO Website
|
||||
Skills.AbilityGateRequirementFail=
|
||||
Smelting.SubSkill.UnderstandingTheArt.Name=
|
||||
@@ -1,466 +0,0 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Yndefuld Landing**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Undviget**
|
||||
Acrobatics.DodgeChance=Afv\u00e6rgnings Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Rul
|
||||
Acrobatics.SubSkill.Roll.Description=Reducerer eller omvender Fald skade
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=Yndefuldt Rul
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Dobbelt s\u00e5 effektiv som en normal rulning
|
||||
Acrobatics.SubSkill.Dodge.Name=Afv\u00e6rg
|
||||
Acrobatics.SubSkill.Dodge.Description=Reducer angrebs skade med halvdelen
|
||||
Acrobatics.Listener=Akrobatik:
|
||||
Acrobatics.SubSkill.Roll.Chance=Rulle Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Yndefuldt Rul Chance: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Rullede**
|
||||
Acrobatics.SkillName=AKROBATIK
|
||||
Acrobatics.Skillup=Akrobatik evne for\u00f8get med {0}. Total ({1})
|
||||
Archery.Combat.DazeChance=Chance for at blive forvirret: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Chance for at Genbruge Pile: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Skyde Evne Bonus Skade: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Evne Skud
|
||||
Archery.SubSkill.SkillShot.Description=For\u00f8ger skade for\u00e5rsaget med buer
|
||||
Archery.SubSkill.Daze.Name=Lam (Spillere)
|
||||
Archery.SubSkill.ArrowRetrieval.Name=Genbrug Pile
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Chance for at tage pile ud af lig
|
||||
Archery.Listener=Bueskydning:
|
||||
Archery.SkillName=BUESKYDNING
|
||||
Archery.Skillup=Bueskydnings evne for\u00f8get med {0}. Total ({1})
|
||||
Axes.Ability.Bonus.0=\u00d8kse Mestring
|
||||
Axes.Ability.Bonus.1=Bonus {0} skade
|
||||
Axes.Ability.Bonus.2=Rustnings Effekt
|
||||
Axes.Ability.Bonus.3=P\u00e5f\u00f8r {0} Bonus Skade til rustning
|
||||
Axes.Ability.Bonus.4=St\u00f8rre Slag
|
||||
Axes.Ability.Bonus.5=P\u00e5f\u00f8r {0} Bonus Skade til ubev\u00e6bnede fjender
|
||||
Axes.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DIN \u00d8KSE**
|
||||
Axes.Ability.Ready=[[GREEN]]**DU G\u00d8R DIN \u00d8KSE KLAR**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Du er blevet KRITISK ramt!
|
||||
Axes.Combat.CritChance=Chance for at ramme kritisk: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=KRITISK SLAG!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**RAMT AF STOR KRAFT**
|
||||
Axes.Combat.GI.Struck=**RAMT AF ST\u00d8RRE SLAG**
|
||||
Axes.Combat.SS.Length=Kranie Splitter L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=Kranie Splitter (Evne)
|
||||
Axes.SubSkill.SkullSplitter.Description=For\u00e5rsag Omr\u00e5de Skade
|
||||
Axes.SubSkill.CriticalStrikes.Name=Kritiske Slag
|
||||
Axes.SubSkill.CriticalStrikes.Description=Fordoblet Skade
|
||||
Axes.SubSkill.AxeMastery.Name=\u00d8kse Mestring
|
||||
Axes.SubSkill.AxeMastery.Description=Tilf\u00f8jer bonus skade
|
||||
Axes.SubSkill.ArmorImpact.Name=Rustnings Effekt
|
||||
Axes.SubSkill.ArmorImpact.Description=Ram med nok kraft for at smadre rustningen
|
||||
Axes.SubSkill.GreaterImpact.Name=St\u00f8rre Slag
|
||||
Axes.SubSkill.GreaterImpact.Description=Giv bonus skade til ubev\u00e6bnede fjender
|
||||
Axes.Listener=\u00d8kser:
|
||||
Axes.SkillName=\u00d8KSER
|
||||
Axes.Skills.SS.Off=**Berserker er aftaget**
|
||||
Axes.Skills.SS.On=[[GREEN]]**Kranie Knuser AKTIVERET**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Din [[YELLOW]]Kranie Splitter [[GREEN]]evne er genindl\u00e6st!
|
||||
Axes.Skills.SS.Other.Off=Kranie Knuser[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Kranie Splitter!
|
||||
Axes.Skillup=\u00d8kse evner forbedret med {0}. Ialt ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DIN SKOVL**
|
||||
Excavation.Ability.Ready=[[GREEN]]**DU G\u00d8R DIN SKOVL KLAR**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Giga Borer (EVNE)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=3x Tabs ratio for blokke, 3x EXP, +Fart
|
||||
Excavation.SubSkill.TreasureHunter.Name=Skatte J\u00e6ger
|
||||
Excavation.SubSkill.TreasureHunter.Description=Evne til at grave efter skatte
|
||||
Excavation.Effect.Length=Giga Borer L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Udgravning:
|
||||
Excavation.SkillName=UDVINDING
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Giga Borer er aftaget**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**Super Bor AKTIVERET**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Din [[YELLOW]]Giga Borer [[GREEN]]evne er genindl\u00e6st!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=Giga Borer[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Giga Borer!
|
||||
Excavation.Skillup=Udgravningsevne for\u00f8get med {0}. Total ({1})
|
||||
Fishing.Ability.Info=Magisk J\u00e6ger: [[GRAY]] **Forbedres med skattejagts ranken**
|
||||
Fishing.Ability.Locked.0=L\u00c5ST INDTIL {0}+ EVNE (RYST)
|
||||
Fishing.Ability.Rank=Skatte J\u00e6ger Rank: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.TH.MagicRate=Magi J\u00e6ger Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Ryste Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.FD=Fiskers Diet: [[YELLOW]]Rank {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Skatte J\u00e6ger (Passiv)
|
||||
Fishing.SubSkill.TreasureHunter.Description=Fisk diverse objekter op.
|
||||
Fishing.SubSkill.MagicHunter.Name=Magi J\u00e6ger
|
||||
Fishing.SubSkill.MagicHunter.Description=Find Fortryllede Ting.
|
||||
Fishing.SubSkill.Shake.Name=Ryst (Mod V\u00e6sner)
|
||||
Fishing.SubSkill.Shake.Description=Ryst ting ud af monstre med en fiskestang
|
||||
Fishing.SubSkill.FishermansDiet.Name=Fiskers Diet
|
||||
Fishing.SubSkill.FishermansDiet.Description=Forbedrer Sult genoprettet af Fisked mad
|
||||
Fishing.Chance.Raining=[[BLUE]] Regn Bonus
|
||||
Fishing.Listener=Fiskeri:
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]Du f\u00f8ler et strejf a magi med denne fangst...
|
||||
Fishing.SkillName=FISKER
|
||||
Fishing.Skillup=Fisker evne for\u00f8get med {0}. Total ({1})
|
||||
Herbalism.Ability.DoubleDropChance=2x Tabs Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTe.Length=Gr\u00f8n Terra L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=Du mangler flere fr\u00f8 for at sprede Gr\u00f8n Terra.
|
||||
Herbalism.Ability.GTh.Chance=Gr\u00f8nne Fingre Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**GR\u00d8NNE FINGRE MISLYKKEDES**
|
||||
Herbalism.Ability.GTh.Stage=Gr\u00f8nne Fingre Stadie: [[YELLOW]] Planter gror i stadie {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**GR\u00d8NNE FINGRE**
|
||||
Herbalism.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DIt LUGEJERN**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**DU G\u00d8R DIT LUGEJERN KLAR**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Gr\u00f8n Terra (EVNE)
|
||||
Herbalism.SubSkill.GreenTerra.Description=Spred Terra, 3x Tab
|
||||
Herbalism.SubSkill.GreenThumb.Name=Gr\u00f8nne Fingre (Hvede)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Auto-Planter afgr\u00f8der mens du h\u00f8ster
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Lav Mursten Mossede, eller f\u00e5 gr\u00e6s til at gro
|
||||
Herbalism.SubSkill.FarmersDiet.Name=Farmer\'s Diet
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Forbedrer Sult genoprettet af farmed mad
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Dobble tab (alle planter)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=G\u00f8r din normale udbytte dobblet s\u00e5 stort
|
||||
Herbalism.Listener=Urtekundskab
|
||||
Herbalism.SkillName=NATURMEDICIN
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**GR\u00d8N TERRA AKTIVERET**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]Din [[YELLOW]]Gr\u00f8nne Terra [[GREEN]]evne er genindl\u00e6st!
|
||||
Herbalism.Skills.GTe.Other.Off=Gr\u00f8n Terra[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Gr\u00f8n Terra!
|
||||
Herbalism.Skillup=Naturens Evne forbedret med {0}. Total ({1})
|
||||
Mining.Ability.Length=Super \u00d8del\u00e6gger L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=L\u00c5ST INDTIL {0}+ EVNE (BLAST MINING)
|
||||
Mining.Ability.Locked.1=L\u00c5ST INDTIL {0}+ EVNE (ST\u00d8RRE BOMBER)
|
||||
Mining.Ability.Locked.2=L\u00c5ST INDTIL {0}+ EVNE (NEDRIVNINGS EXPERTISE)
|
||||
Mining.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DIN HAKKE**
|
||||
Mining.Ability.Ready=[[GREEN]]**DU G\u00d8R DIN HAKKE KLAR**
|
||||
Mining.SubSkill.SuperBreaker.Name=Super \u00d8del\u00e6gger (EVNE)
|
||||
Mining.SubSkill.SuperBreaker.Description=Fart+, 3x Tabs chance
|
||||
Mining.SubSkill.DoubleDrops.Name=Dobble Tab
|
||||
Mining.SubSkill.DoubleDrops.Description=Fordobble det normale udbytte
|
||||
Mining.SubSkill.BlastMining.Name=Blast Mining
|
||||
Mining.SubSkill.BlastMining.Description=Bonuser for at mine med TNT
|
||||
Mining.SubSkill.BiggerBombs.Name=St\u00f8rre Bomber
|
||||
Mining.SubSkill.BiggerBombs.Description=Forbedrer TNT explosions radius
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Nedrivnings Expertise
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=Formindsker skade fra TNT explotioner
|
||||
Mining.Effect.Decrease=Nedrivingings Expert Skade neds\u00e6ttelse: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=2x Tabs Chance: [[YELLOW]]{0}
|
||||
Mining.Listener=Minedrift:
|
||||
Mining.SkillName=MINER
|
||||
Mining.Skills.SuperBreaker.Off=**Super \u00d8del\u00e6gger er aftaget**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER \u00d8DEL\u00c6GGER AKTIVERET**
|
||||
Mining.Skills.SuperBreaker.Other.Off=Super \u00d8del\u00e6gger[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Super \u00d8del\u00e6gger!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Din [[YELLOW]]Super Smadrer [[GREEN]]evne er genindl\u00e6st!
|
||||
Mining.Skillup=Minedriftsevne for\u00f8get med {0}. Total ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Radius.Increase=Eksplosions Radius For\u00f8gelse: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=Blast Mining: [[YELLOW]] Rank {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] her brugt [[RED]]Blast Mining!
|
||||
Mining.Blast.Refresh=[[GREEN]]Din [[YELLOW]]Spring Mining [[GREEN]]evne er genindl\u00e6st!
|
||||
Repair.SubSkill.Repair.Name=Reparer
|
||||
Repair.SubSkill.Repair.Description=Reparer V\u00e6rkt\u00f8jer & Rustning
|
||||
Repair.SubSkill.GoldRepair.Name=Guld Reparer ({0}+ EVNE)
|
||||
Repair.SubSkill.GoldRepair.Description=Reparer Guld V\u00e6rkt\u00f8jer & Rustning
|
||||
Repair.SubSkill.IronRepair.Name=Jern Reparer ({0}+ EVNE)
|
||||
Repair.SubSkill.IronRepair.Description=Reparer Jern V\u00e6rkt\u00f8jer & Rustning
|
||||
Repair.SubSkill.StoneRepair.Name=Sten Reparer ({0}+ EVNE)
|
||||
Repair.SubSkill.StoneRepair.Description=Reparer Sten V\u00e6rkt\u00f8jer
|
||||
Repair.SubSkill.RepairMastery.Name=Reperations Beherskelse
|
||||
Repair.SubSkill.RepairMastery.Description=For\u00f8get reperations m\u00e6ngde
|
||||
Repair.SubSkill.SuperRepair.Name=Super Reparering
|
||||
Repair.SubSkill.SuperRepair.Description=Dobble effektivitet
|
||||
Repair.SubSkill.DiamondRepair.Name=Diamant reperation ({0}+ SKILL)
|
||||
Repair.SubSkill.DiamondRepair.Description=Reparer Diamant V\u00e6rkt\u00f8jer & udstyr
|
||||
Repair.SubSkill.ArcaneForging.Name=Mystisk Smedning
|
||||
Repair.SubSkill.ArcaneForging.Description=Reparer magiske genstande
|
||||
Repair.SubSkill.Salvage.Name=Genbrug ({0}+ EVNE)
|
||||
Repair.SubSkill.Salvage.Description=Genbrugelige V\u00e6rkt\u00f8jer og Rustninger
|
||||
Repair.Error=[[DARK_RED]]mcMMO m\u00f8dte en fejl mens den fors\u00f8gte at reparere dette objekt!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Du har placeret en armbolt, armbolte kan reparere v\u00e6rkt\u00f8j og rustning.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]Du har placeret en Genbrugs Ambolt, Brug den til at Genbruge V\u00e6rkt\u00f8jer og Rustning (F\u00e5 materialer tilbage)
|
||||
Repair.Listener=Reparer:
|
||||
Repair.SkillName=REPARER
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]] Du har ikke Evner nok til at bruge Genbrug p\u00e5 Objekter.
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Du er ikke kvalificeret nok til at reparere diamant.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Du er ikke kvalificeret nok til at reparere guld.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Du har ikke evner nok til at reparere Jern.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Du er ikke kvalificeret nok til at reparere sten.
|
||||
Repair.Skills.Adept=Du skal v\u00e6re level [[YELLOW]]{0}[[RED]] for at reparere [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Det var nemt.
|
||||
Repair.Skills.FullDurability=[[GRAY]]Det er p\u00e5 fuld holdbarhed
|
||||
Repair.Skills.SalvageSuccess=[[GRAY]]Genstand genbrugt!
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]Du kan ikke genbruge \u00f8delagte v\u00e6rkt\u00f8jer og rustninger.
|
||||
Repair.Skills.Mastery=Reperations Beherskelse: [[YELLOW]]Extra {0} Modstand gendannet
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Du kan ikke reparere ting i stabler.
|
||||
Repair.Skills.Super.Chance=Super Reparerings Chance: [[YELLOW]]{0}
|
||||
Repair.Skillup=Reperations skill forbedret med {0}. Total ({1})
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Degraderings Chance: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]AF Success Ratio: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=Magisk magt er nedsat for dette objekt.
|
||||
Repair.Arcane.Fail=Magisk energi har forladt genstanden for altid.
|
||||
Repair.Arcane.Lost=Du har ikke evner nok til at beholde nogle fortryllelser.
|
||||
Repair.Arcane.Perfect=[[GREEN]]Du har vedligeholdt de magiske energier i dette objekt.
|
||||
Repair.Arcane.Rank=Magisk Smedning: [[YELLOW]]Rank {0}/4
|
||||
Swords.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DIT SV\u00c6RD**
|
||||
Swords.Ability.Ready=[[GREEN]]**DU HAR FORBEREDT DIT SV\u00c6RD**
|
||||
Swords.Combat.Bleed.Chance=Bl\u00f8de Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=Bl\u00f8dnings L\u00e6ngde: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTER: [[YELLOW]]1 Tick sker hver 2 sekund
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Du Bl\u00f8der!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Bl\u00f8dningen er [[GREEN]]stoppet[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**MODSTANDEREN BL\u00d8DER**
|
||||
Swords.Combat.Counter.Chance=Modangrebs Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Angrib med et modangreb!
|
||||
Swords.Combat.Countered=[[GREEN]]**MODANGREBET**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Ramt af F\u00e6gtekunstens S\u00e5r!
|
||||
Swords.SubSkill.CounterAttack.Name=Modangreb
|
||||
Swords.SubSkill.SerratedStrikes.Name=F\u00e6gteKunst (Evne)
|
||||
Swords.Effect.4=F\u00e6gteKunst Bl\u00f8dning+
|
||||
Swords.SubSkill.Bleed.Name=Bl\u00f8de
|
||||
Swords.SubSkill.Bleed.Description=S\u00e6t en Bl\u00f8dning med skade over tid (DoT=Skade over tid)
|
||||
Swords.Listener=Sv\u00e6rd:
|
||||
Swords.SkillName=SV\u00c6RD
|
||||
Swords.Skills.SS.Off=**Fokuseret F\u00e6gtekunst er aftaget**
|
||||
Swords.Skills.SS.On=[[GREEN]]**F\u00c6GTEKUNST AKTIVERET**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Din [[YELLOW]]F\u00e6gtekunst [[GREEN]]evne er genindl\u00e6st!
|
||||
Swords.Skills.SS.Other.Off=F\u00e6gtekunst[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]F\u00c6GTEKUNST!
|
||||
Swords.Skillup=Sv\u00e6rd evne for\u00f8get med {0}. Total ({1})
|
||||
Swords.SS.Length=F\u00e6gtekunstens L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=Omgivelses bevidst
|
||||
Taming.Ability.Bonus.1=Ulve undviger fare
|
||||
Taming.Ability.Bonus.2=Tyk Pels
|
||||
Taming.Ability.Bonus.4=Shock Sikker
|
||||
Taming.Ability.Bonus.6=Sk\u00e6rpet Kl\u00f8er
|
||||
Taming.Ability.Bonus.8=Fast Food Service
|
||||
Taming.Ability.Locked.0=L\u00c5ST INDTIL {0}+ EVNE (OMGIVELSES BEVIDST)
|
||||
Taming.Ability.Locked.1=L\u00c5ST INDTIL {0}+ EVNE (TYK PELS)
|
||||
Taming.Ability.Locked.2=L\u00c5ST INDTIL {0}+ EVNE (SHOCK SIKKER)
|
||||
Taming.Ability.Locked.3=L\u00c5ST INDTIL {0}+ EVNE (SK\u00c6RPEDE KL\u00d8ER)
|
||||
Taming.Ability.Locked.4=L\u00c5ST INDTIL {0}+ EVNE (FAST FOOD SERVICE)
|
||||
Taming.Combat.Chance.Gore=Spidnings Chance: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=[[GREEN]]**TIGGENDE MONSTER**
|
||||
Taming.SubSkill.BeastLore.Description=Sl\u00e5 p\u00e5 Ulve & Ocelotter med en Knogle for at incpicere dem.
|
||||
Taming.SubSkill.ShockProof.Name=Shock Sikker
|
||||
Taming.SubSkill.ShockProof.Description=Explosiv Skades Reduktion
|
||||
Taming.SubSkill.CallOfTheWild.Name=Kaldet fra Naturen.
|
||||
Taming.SubSkill.CallOfTheWild.Description=Lav et dyr ved din side
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW (Ocelot): Crouch og venstre-click med {0} en Fisk i h\u00e5nden
|
||||
Taming.Effect.15=[[GRAY]]COTW (Wolf): Crouch og venstre-click med {0} Knogler i din h\u00e5nd.
|
||||
Taming.SubSkill.FastFoodService.Name=Fast Food Service
|
||||
Taming.SubSkill.FastFoodService.Description=Chance for Ulve liver op n\u00e5r de angriber
|
||||
Taming.SubSkill.Gore.Name=M\u00e5l Punkt.
|
||||
Taming.SubSkill.Gore.Description=Kritisk slag some f\u00e5r dig til at Bl\u00f8de
|
||||
Taming.SubSkill.SharpenedClaws.Name=Sk\u00e6rpet Kl\u00f8er
|
||||
Taming.SubSkill.SharpenedClaws.Description=Skade Bonus
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Omgivelses bevidst
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Kaktus/Lava Phobi, Immun mod Fald Skade
|
||||
Taming.SubSkill.ThickFur.Name=Tyk Pels
|
||||
Taming.SubSkill.ThickFur.Description=Skades Reduktion, Ild Modstand
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Din ulv smutter tilbage til dig...
|
||||
Taming.Listener=T\u00e6mning:
|
||||
Taming.SkillName=T\u00c6MMER
|
||||
Taming.Skillup=T\u00e6mningsevne for\u00f8get med {0}. Total ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Skabelse Komplet
|
||||
Taming.Summon.Fail.Ocelot=Der er for mange Ocelotter i n\u00e6rheden af dig til at du kan spawne flere.
|
||||
Taming.Summon.Fail.Wolf=Der er for mange Ulve i n\u00e6rheden af dig til at du kan spawne flere.
|
||||
Unarmed.Ability.Berserk.Length=Berserker L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Jern Arm Stil
|
||||
Unarmed.Ability.Bonus.1=+{0} DMG Upgradering
|
||||
Unarmed.Ability.Chance.ArrowDeflect=Pile Undvignings Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=Afv\u00e6bnings Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Din modstander har et Jerngreb!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]Dit Jerngreb lod dig modst\u00e5 afv\u00e6bning!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**DU S\u00c6NKER DINE N\u00c6VER**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**DU KLARG\u00d8R DIN N\u00c6VE**
|
||||
Unarmed.SubSkill.Berserk.Name=Berserker (EVNE)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% skade, \u00f8del\u00e6gger svage materialer
|
||||
Unarmed.SubSkill.Disarm.Name=Afv\u00e6bn (Spiller)
|
||||
Unarmed.SubSkill.Disarm.Description=F\u00e5 objektet i din fjendes h\u00e5nd til at ryge ned p\u00e5 jorden.
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Jern Arm Stil
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Forst\u00e6rker din arm over tiden
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=Pile Undvigning
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=Undvig Pile
|
||||
Unarmed.Listener=Ubev\u00e6bnet:
|
||||
Unarmed.SkillName=UBEV\u00c6BNET
|
||||
Unarmed.Skills.Berserk.Off=**Berserker er nu aftaget**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERKER AKTIVERET**
|
||||
Unarmed.Skills.Berserk.Other.Off=Berserker[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Berserker!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Dine [[YELLOW]]Berserker [[GREEN]]evner er genindl\u00e6st!
|
||||
Unarmed.Skillup=Ubev\u00e6bnet evne for\u00f8get med {0}. Total ({1})
|
||||
Woodcutting.Ability.0=Blad Bl\u00e6ser
|
||||
Woodcutting.Ability.1=Bl\u00e6s blade v\u00e6k
|
||||
Woodcutting.Ability.Chance.DDrop=2x Tabs Chance: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=Tr\u00e6 Hugger L\u00e6ngde: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=L\u00c5ST INDTIL {0}+ EVNE (BLAD BL\u00c6SER)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Tr\u00e6 Hugger (EVNE)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=F\u00e5r tr\u00e6er til at explodere
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Blad Bl\u00e6ser
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Spr\u00e6ng blade v\u00e6k
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Dobbel tab
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Dobbel det normale udbytte
|
||||
Woodcutting.Listener=Tr\u00e6f\u00e6ldning:
|
||||
Woodcutting.SkillName=TR\u00c6F\u00c6LDNING
|
||||
Woodcutting.Skills.TreeFeller.Off=**Tr\u00e6 Hugger er nu aftaget**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**TR\u00c6 HUGGER AKTIVERET**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Din [[YELLOW]]Tr\u00e6 Hugger [[GREEN]]evne er genindl\u00e6st!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=Tr\u00e6 hugger[[GREEN]] er aftaget i [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] har brugt [[RED]]Tr\u00e6 hugger!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=DIN \u00d8KSE SPLINTRER I TUSINDER AF STYKKER!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=Det tr\u00e6 er for stort!
|
||||
Woodcutting.Skillup=Tr\u00e6hugningsevne for\u00f8get med {0}. Total ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**EVNER GENINDL\u00c6ST!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**UNDVIGER PIL**
|
||||
Combat.BeastLore=[[GREEN]]**TIGGENDE MONSTER**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Liv ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Ejer ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**SPIDDET**
|
||||
Combat.StruckByGore=**DU ER BLEVET SPIDDET**
|
||||
Combat.TargetDazed=M\u00e5let er nu [[DARK_RED]]Bed\u00f8vet
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]R\u00f8rte Plysse. F\u00f8lte mig svimmel.
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Du har f\u00e5et {0} Exp i alle evner!
|
||||
Commands.addlevels.AwardAll.2=Alle evner er blevet \u00e6ndret til {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Du har f\u00e5et{0} levels i {1}!
|
||||
Commands.addlevels.AwardSkill.2={0} er blevet \u00e6ndret for {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Du har f\u00e5et {0} Exp i alle evner!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Du har f\u00e5et {0} Exp i {1}!
|
||||
Commands.Ability.Off=Evne brug sat til [[GREEN]]Sand
|
||||
Commands.Ability.On=Evne brug sat til [[GREEN]]Sand
|
||||
Commands.AdminChat.Off=Admin Chat kun [[RED]]Slukket
|
||||
Commands.AdminChat.On=Kun Admin Chat [[GREEN]]Rigtigt
|
||||
Commands.AdminToggle=- Skift admin chatten
|
||||
Commands.Chat.Console=*Konsol*
|
||||
Commands.Disabled=Denne kommando er sl\u00e5et fra.
|
||||
Commands.DoesNotExist=Spiller eksisterer ikke i databasen!
|
||||
Commands.GodMode.Disabled=mcMMO GudeTilstand Slukket
|
||||
Commands.GodMode.Enabled=mcMMO GudeTilstand Aktiveret
|
||||
Commands.GodMode.Forbidden=[mcMMO] Gude Tilstand er ikke tilladt i denne verden (Se Tilladelser)
|
||||
Commands.Inspect=<player> [[RED]]- Se detaljeret spiller Info
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]Invitation Accepteret. Du har sluttet dig til en gruppe {0}
|
||||
Commands.Invite.Success=[[GREEN]]Invitation sendt successfuldt
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- Ranglister
|
||||
Commands.mcc.Header=---[][[YELLOW]]mcMMO Kommandoer[[RED]][]---
|
||||
Commands.mcgod=- Skift GudeTilstand
|
||||
Commands.mchud.Invalid=Det er ikke en tilladt HUD type.
|
||||
Commands.mcpurge.Success=[[GREEN]]Databasen er blevet succesfuldt renset!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=PERSONLIGE RANGLISTER=-
|
||||
Commands.mcrank.Overall=Overall[[GREEN]] - [[GOLD]]Rang [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=M\u00c5L: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Rang [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Degraderet
|
||||
Commands.mcrefresh.Success={0}\'\'s nedk\u00f8ling er blevet genindl\u00e6st.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} er succesfuldt fjernet fra databasen!
|
||||
Commands.mctop.Tip=[[GOLD]]Tip: Brug [[RED]]/mcrank[[GOLD]] for at se all dine personlige rangs!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - \u00c6ndrer m\u00e5let
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Dit level i {0} er sat til {1}!
|
||||
Commands.mmoedit.Modified.2={0} er blevet \u00e6ndret for {1}.
|
||||
Commands.ModDescription=- L\u00e6s den korte mod beskrivelse
|
||||
Commands.NoConsole=Denne kommando er ikke supported af konsollen.
|
||||
Commands.Other=[[GREEN]]--ANDRE KOMMANDOER--
|
||||
Commands.Party.Accept=- Accepter gruppe invitation
|
||||
Commands.Party.Chat.Off=Gruppe Chat kun [[RED]]Slukket
|
||||
Commands.Party.Chat.On=Kun Gruppe Chat [[GREEN]]Rigtigt
|
||||
Commands.Party.Commands=[[GREEN]]--GRUPPE KOMMANDOER--
|
||||
Commands.Party.Invite.0=INFORMATION: [[GREEN]]Du har modtaget en gruppe invitation for {0} from {1}
|
||||
Commands.Party.Kick=Du er blevet fjernet fra gruppen {0}!
|
||||
Commands.Party.Leave=Du har forladt denne gruppe
|
||||
Commands.Party.None=Du er ikke i en gruppe.
|
||||
Commands.Party.Quit=- Forlad din nuv\u00e6rende Gruppe
|
||||
Commands.Party.Teleport=<player> [[RED]]- Teleporter til gruppe medlem
|
||||
Commands.Party.Toggle=- Skift Gruppe Chat
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO[[BLUE]] Kraft Level [[YELLOW]]Rangliste--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]KRAFT LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]Kraft level: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Dine {0} Evne levels er blevet gendannet succesfuldt
|
||||
Commands.Reset.Single=[[GREEN]]Dine {0} Evne levels er blevet gendannet succesfuldt
|
||||
Commands.Reset=Genindl\u00e6s en evnes level til 0
|
||||
Commands.Skill.Invalid=Det er ikke et brugbart evnenavn!
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] Rangliste--
|
||||
Commands.Stats.Self=DINE STATS
|
||||
Commands.Stats=- Se dine mcMMO statistikker.
|
||||
Commands.ToggleAbility=- Skift evne aktivering med h\u00f8jre-click
|
||||
Commands.Usage.1=Korrekt brug er /{0} {1}
|
||||
Commands.Usage.2=Korrekt brug er /{0} {1} {2}
|
||||
Commands.Usage.3=Korrekt brug er /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=Level
|
||||
Commands.Usage.Message=besked
|
||||
Commands.Usage.Page=side
|
||||
Commands.Usage.Player=spiller
|
||||
Commands.Usage.Skill=Evne
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=Du har ingen invitationer p\u00e5 nuv\u00e6rende tidspunkt
|
||||
mcMMO.NoPermission=[[DARK_RED]]Ikke nok Tilladelser.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Hvis du ikke har adgang til en evne, vil den evne ikke blive vist her.
|
||||
Party.Forbidden=[mcMMO] grupper er ikke tilladt i denne verden (Se Tilladelser)
|
||||
Party.InvalidName=[[DARK_RED]]Dette er ikke et gruppe navn.
|
||||
Party.IsLocked=Denne gruppe er allerede l\u00e5st!
|
||||
Party.IsntLocked=Denne gruppe er ikke l\u00e5st!
|
||||
Party.Locked=Festen er l\u00e5st, kun gruppe lederen kan invitere.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} er ikke i din gruppe
|
||||
Party.NotOwner=[[DARK_RED]]Du er ikke gruppe lederen.
|
||||
Party.Owner.New=[[GREEN]]{0} er den nye gruppe leder.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]Du er ikke l\u00e6ngere gruppens leder.
|
||||
Party.Owner.Player=[[GREEN]]Du er nu gruppe lederen.
|
||||
Party.Password.Incorrect=Gruppe kodeord er forkert.
|
||||
Party.Password.Set=[[GREEN]]Gruppe adgangskode sat til {0}
|
||||
Party.Player.Invalid=Dette er ikke en rigtig spiller.
|
||||
Party.Teleport.Dead=Du kan ikke teleportere til en d\u00f8d spiller.
|
||||
Party.Teleport.Player=[[GREEN]]Du har teleporteret til {0}.
|
||||
Party.Teleport.Self=Du kan ikke teleportere dig selv!
|
||||
Party.Teleport.Target=[[GREEN]]{0} har teleporteret til dig.
|
||||
Party.Unlocked=[[GRAY]]Gruppe er \u00e5ben
|
||||
Commands.XPGain.Acrobatics=Falder
|
||||
Commands.XPGain.Archery=Angriber Monstre
|
||||
Commands.XPGain.Axes=Angriver Monstre
|
||||
Commands.XPGain.Excavation=Graver og finder skatte
|
||||
Commands.XPGain.Fishing=Fiskning (Brug nu hovedet!)
|
||||
Commands.XPGain.Herbalism=Samler Urter
|
||||
Commands.XPGain.Mining=Udvinde Sten & Malm
|
||||
Commands.XPGain.Repair=Repererer
|
||||
Commands.XPGain.Swords=Angriber Monstre
|
||||
Commands.XPGain.Taming=Dyret\u00e6mning, eller kamp m/ dine ulve
|
||||
Commands.XPGain.Unarmed=Angriber Monstre
|
||||
Commands.XPGain.Woodcutting=Hugger tr\u00e6er ned
|
||||
Commands.XPGain=[[DARK_GRAY]]XP FORTJENST: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Din XP BAR er nu l\u00e5st til {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Din XP BAR er nu [[GREEN]]\u00c5BEN[[GOLD]]!
|
||||
Commands.xprate.modified=The XP er blevet \u00e6ndret til {0}
|
||||
Commands.xprate.over=mcMMO XP bed\u00f8mnings begivenhed er SLUT!!
|
||||
Commands.xprate.proper.0=Den rigtige m\u00e5de at \u00e6ndre XP ratio er /xprate <integer> <true/false>
|
||||
Commands.xprate.proper.1=Rigtig brug for at s\u00e6tte XP level til 0 er /xprate reset
|
||||
Commands.xprate.proper.2=V\u00e6lg sandt eller falsk for at vise om dette er en XP begivenhed eller ikke
|
||||
Commands.xprate.started.0=[[GOLD]]XP BEGIVENHEDER FOR mcMMO ER STARTET!
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO XP BED\u00d8MMELSE ER NU {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO er lige nu i gang med et XP bed\u00f8mnings begivenhed! XP bed\u00f8mning er {0}x!
|
||||
Effects.Effects=Effekter
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Available=[[GRAY]]Guide for {0} tilg\u00e6ngelige - skriv /{1} ? [page]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Guide[[GOLD]]=-
|
||||
Guides.Page.Invalid=Ikke et gyldigt side nummer!
|
||||
Guides.Usage=Korrekt brug er /{0} ? [page]
|
||||
Inspect.Offline=Du har ikke tilladelse til at inspicere offline spillere!
|
||||
Inspect.OfflineStats=mcMMO Stats for Offline Spillere [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO F\u00e6rdigheder for [[YELLOW]]{0}
|
||||
Inspect.TooFar=Du er for langt v\u00e6k til at inspicere denne spiller!
|
||||
Item.ChimaeraWing.Fail=**KIM\u00c6RE VINGE FEJLEDE!**
|
||||
Item.ChimaeraWing.Pass=**KIM\u00c6RE VINGE**
|
||||
Item.Injured.Wait=Du var for nylig skadet og m\u00e5 derfor vente med at bruge dette. [[YELLOW]]({0}s)
|
||||
Skills.Disarmed=[[DARK_RED]]Du er blevet afv\u00e6bnet!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Du mangler mere
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=Du er for udmattet til at bruge denne evne igen.
|
||||
Stats.Header.Combat=[[GOLD]]-=KAMP EVNER=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=INDSAMLINGS EVNER=-
|
||||
Stats.Header.Misc=[[GOLD]]-=MISC SKILLS=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] F\u00e6rdigheder
|
||||
Perks.XP.Name=Erfaring
|
||||
Perks.XP.Desc=Modtag {0}x XP.
|
||||
Perks.Lucky.Name=Held
|
||||
Perks.Lucky.Desc=Giver {0} Evner en 33.3% bedre chance for at aktivere.
|
||||
Perks.Lucky.Desc.Login=Giver visse Evner en 33.3% bedre chance for at aktivere.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} med heldig frynsegode)
|
||||
Perks.Cooldowns.Name=Hurtig Bedring
|
||||
Perks.Cooldowns.Desc=Sk\u00e6rer Nedk\u00f8lings tiden ned med {0}.
|
||||
Perks.ActivationTime.Name=Udholdenhed
|
||||
Perks.ActivationTime.Desc=Forl\u00e6nger evne aktivations tid med {0} sekunder
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s med Udholdenheds Frynsegode)
|
||||
MOTD.Donate=[[DARK_AQUA]]Donations Info:
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Evne d\u00f8ds straf: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]Vampyr Statistik Igle: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO Frynsegoder]
|
||||
MOTD.Version=[[GOLD]][mcMMO] K\u00f8rer version [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO Hjemmeside
|
||||
@@ -1,938 +0,0 @@
|
||||
# de locale file v0.1
|
||||
# -----------------
|
||||
# Setting up a new standard for string names, for easier localization.
|
||||
# SkillName.SubType.LocalEffect.Increment
|
||||
# Skill name, such as ACROBATICS, MINING.
|
||||
# Sub-type, such as EFFECT, ABILITY, COMBAT.
|
||||
# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE.
|
||||
# Increment, for multi-line or array-like lists.
|
||||
# ######
|
||||
#
|
||||
# EXAMPLES:
|
||||
#
|
||||
# Acrobatics.Ability.Proc
|
||||
# Axes.Ability.Refresh.1
|
||||
#
|
||||
#Changelog to locale_de:
|
||||
#-Added Alchemy Skill
|
||||
#-Added Archery Effect 3
|
||||
#-Added Axes.Combat.SS.Struck
|
||||
#-Added multiple Fishing-Skill translations
|
||||
#-Added multiple Herbalism-Skill translations
|
||||
#-Added Mining.Blast.Effect
|
||||
#-Salvage aus Repair herausgenommen
|
||||
#-Added missing Swords.Effect skills
|
||||
#-Added horses and holy hound to taming
|
||||
#-Added Unarmed.SubSkillType.IronGrip.Description
|
||||
#-Added Smelting
|
||||
#Commands.addlevels
|
||||
#Everything except parties translated to German
|
||||
#Giga Bohrhammer in Giga Bohrer umbenannt.
|
||||
#Added Guides.Smelting.Section.1
|
||||
# --Lumis31
|
||||
#ACROBATICS
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Grazi\u00f6s Abgerollt**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Ausgewichen**
|
||||
Acrobatics.DodgeChance=Ausweich-Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Rolle
|
||||
Acrobatics.SubSkill.Roll.Description=Reduziert oder negiert Fall-Schaden
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=Grazi\u00f6se Rolle
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Doppelte Effektivit\u00e4t der Rolle
|
||||
Acrobatics.SubSkill.Dodge.Name=Ausweichen
|
||||
Acrobatics.SubSkill.Dodge.Description=Halbiert Angriffschaden
|
||||
Acrobatics.Listener=Akrobatik:
|
||||
Acrobatics.SubSkill.Roll.Chance=Rolle-Chance: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Grazi\u00f6se Rolle-Chance: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Abgerollt**
|
||||
Acrobatics.SkillName=AKROBATIK
|
||||
Acrobatics.Skillup=Akrobatik Skill um {0} gestiegen. Gesamt ({1})
|
||||
#ALCHEMY
|
||||
Alchemy.SubSkill.Catalysis.Name=Katalyse
|
||||
Alchemy.SubSkill.Catalysis.Description=Erh\u00F6ht die Braugeschwindigkeit
|
||||
Alchemy.SubSkill.Concoctions.Name=Braukunst
|
||||
Alchemy.SubSkill.Concoctions.Description=Braue Tr\u00E4nke mit mehr Zutaten
|
||||
Alchemy.Listener=Alchemie:
|
||||
Alchemy.Ability.Locked.0=GESPERRT bis Skill {0}+ (KATALYSE)
|
||||
Alchemy.Catalysis.Speed=Braugeschwindigkeit: [[YELLOW]]{0}
|
||||
Alchemy.Concoctions.Rank=Braukunst Rang: [[YELLOW]]{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=Zutaten [[[YELLOW]]{0}[[RED]]]: [[YELLOW]]{1}
|
||||
Alchemy.SkillName=ALCHEMIE
|
||||
Alchemy.Skillup=Alchemie Skill um {0} gestiegen. Gesamt ({1})
|
||||
#ARCHERY
|
||||
Archery.Combat.DazeChance=Chance auf Bet\u00e4ubung: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Chance auf Pfeil-R\u00fcckgewinnung: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Kunstschuss Zusatzschaden: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Kunstschuss
|
||||
Archery.SubSkill.SkillShot.Description=Erh\u00f6ht Schaden vom Bogen
|
||||
Archery.SubSkill.Daze.Name=Bet\u00e4ubung (Spieler)
|
||||
Archery.SubSkill.Daze.Description=Verwirrt Feinde und f\u00FCgt {0} Schaden zu
|
||||
Archery.SubSkill.ArrowRetrieval.Name=Pfeil-R\u00fcckgewinnung
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Chance auf Pfeil-R\u00fcckgewinnung von Leichen
|
||||
Archery.Listener=Bogen:
|
||||
Archery.SkillName=BOGEN
|
||||
Archery.Skillup=Bogenschie\u00DFen Fertigkeit ist um {0} gestiegen. Gesamt ({1})
|
||||
#AXES
|
||||
Axes.Ability.Bonus.0=Axt-Beherrschung
|
||||
Axes.Ability.Bonus.1={0} Zusatz-Schaden
|
||||
Axes.Ability.Bonus.2=Wucht
|
||||
Axes.Ability.Bonus.3=Verursacht {0} Zusatz-Schaden gegen R\u00fcstung
|
||||
Axes.Ability.Bonus.4=Wucht-Schlag
|
||||
Axes.Ability.Bonus.5=Verursacht {0} Zusatz-Schaden gegen ungepanzerte Feinde
|
||||
Axes.Ability.Lower=[[GRAY]]**Du senkst deine Axt**
|
||||
Axes.Ability.Ready=[[GREEN]]**Deine Axt ist bereit**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Du wurdest KRITISCH getroffen!
|
||||
Axes.Combat.CritChance=Chance auf kritischen Treffer: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=KRITISCHER TREFFER!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**AUSGESCHALTET durch GEWALT SCHLAG**
|
||||
Axes.Combat.GI.Struck=**Von WUCHT-SCHLAG getroffen**
|
||||
Axes.Combat.SS.Struck=[[DARK_RED]]vom Sch\u00E4delspalter getroffen!
|
||||
Axes.Combat.SS.Length=Sch\u00e4del-Spalter Dauer: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=Sch\u00e4del-Spalter (F\u00e4higkeit)
|
||||
Axes.SubSkill.SkullSplitter.Description=Verursacht Umgebungsschaden
|
||||
Axes.SubSkill.CriticalStrikes.Name=Kritische Treffer
|
||||
Axes.SubSkill.CriticalStrikes.Description=Doppelter Schaden
|
||||
Axes.SubSkill.AxeMastery.Name=Axt-Beherrschung
|
||||
Axes.SubSkill.AxeMastery.Description=Verursacht Bonus-Schaden
|
||||
Axes.SubSkill.ArmorImpact.Name=Wucht
|
||||
Axes.SubSkill.ArmorImpact.Description=Treffe mit gen\u00fcgend Gewalt zum R\u00fcstung zerschmettern
|
||||
Axes.SubSkill.GreaterImpact.Name=Wucht-Schlag
|
||||
Axes.SubSkill.GreaterImpact.Description=Zusatz-Schaden gegen ungepanzerte Feinde
|
||||
Axes.Listener=Axt:
|
||||
Axes.SkillName=AXT
|
||||
Axes.Skills.SS.Off=**Sch\u00e4del-Spalter abgenutzt**
|
||||
Axes.Skills.SS.On=[[GREEN]]**Sch\u00e4del-Spalter AKTIVIERT**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Dein [[YELLOW]]Sch\u00e4del-Spalter [[GREEN]]ist wieder bereit!
|
||||
Axes.Skills.SS.Other.Off={0}s [[RED]]Sch\u00e4del-Spalter[[GREEN]] ist [[GREEN]]abgenutzt
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Sch\u00e4del-Spalter!
|
||||
Axes.Skillup=Axt Skill um {0} gestiegen. Gesamt ({1})
|
||||
#EXCAVATION
|
||||
Excavation.Ability.Lower=[[GRAY]]**Du senkst deine SCHAUFEL**
|
||||
Excavation.Ability.Ready=[[GREEN]]**Deine SCHAUFEL ist bereit**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Giga Bohrhammer (F\u00e4higkeit)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=3x Drop Rate, 3x EXP, +Geschwindigkeit
|
||||
Excavation.SubSkill.TreasureHunter.Name=Schatz-J\u00e4ger
|
||||
Excavation.SubSkill.TreasureHunter.Description=F\u00e4higkeit nach Sch\u00e4tzen zu graben
|
||||
Excavation.Effect.Length=Giga Bohrhammer Dauer: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Graben:
|
||||
Excavation.SkillName=GRABEN
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Giga Bohrer ausgelaufen**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**Giga Bohrer AKTIVIERT**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Dein [[YELLOW]]Giga Bohrer [[GREEN]]ist wieder bereit!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off={0}s [[RED]]Giga Bohrer[[GREEN]] ist [[GREEN]]ausgelaufen
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Giga Bohrer!
|
||||
Excavation.Skillup=Graben Skill um {0} gestiegen. Gesamt ({1})
|
||||
#FISHING
|
||||
Fishing.Ability.Chance=Anbei\u00DFwahrscheinlichkeit: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=Zauber-J\u00e4ger: [[GRAY]] **Verbessert sich mit Schatz-J\u00e4ger Rang**
|
||||
Fishing.Ability.Locked.0=GESPERRT bis Skill {0}+ (Rei\u00DFen)
|
||||
Fishing.Ability.Locked.1=GESPERRT bis Skill {0}+ (Eisangeln)
|
||||
Fishing.Ability.Locked.2=GESPERRT bis Skill {0}+ (Profiangel)
|
||||
Fishing.Ability.Rank=Schatz-J\u00e4ger Rang: [[YELLOW]]{0}/{1}
|
||||
Fishing.Ability.TH.DropRate=Drop Rate: [[DARK_RED]]Falle: [[YELLOW]]{0} [[GRAY]]Oft: [[YELLOW]]{1} [[GREEN]]Gelegentlich: [[YELLOW]]{2}\n[[BLUE]]Au\u00DFergew\u00F6hnlich: [[YELLOW]]{3} [[LIGHT_PURPLE]]Selten: [[YELLOW]]{4} [[GOLD]]Schatz: [[YELLOW]]{5} [[AQUA]]Schallplatte: [[YELLOW]]{6}
|
||||
Fishing.Ability.TH.MagicRate=Zauber-J\u00e4ger Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Rei\u00DFen-Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=Eisangeln: Angeln im Eis
|
||||
Fishing.Ability.FD=Fischer-Mahlzeit Rang: [[YELLOW]]{0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Schatz-J\u00e4ger (Passiv)
|
||||
Fishing.SubSkill.TreasureHunter.Description=Angle verschiedene Objekte
|
||||
Fishing.SubSkill.MagicHunter.Name=Zauber-J\u00e4ger
|
||||
Fishing.SubSkill.MagicHunter.Description=Finde verzauberte Gegenst\u00e4nde
|
||||
Fishing.SubSkill.Shake.Name=Rei\u00DFen
|
||||
Fishing.SubSkill.Shake.Description=Rei\u00DFe per Angel Gegenst\u00e4nde aus den Mobs
|
||||
Fishing.SubSkill.FishermansDiet.Name=Fischer-Mahlzeit
|
||||
Fishing.SubSkill.FishermansDiet.Description=Verbessert Effizienz von geangelter Nahrung
|
||||
Fishing.SubSkill.MasterAngler.Name=Profiangel
|
||||
Fishing.SubSkill.MasterAngler.Description=Erh\u00F6ht die Chance des Anbei\u00DFens
|
||||
Fishing.SubSkill.IceFishing.Name=Eisangeln
|
||||
Fishing.SubSkill.IceFishing.Description=Erm\u00F6glicht dir in Eisbiomen angeln zu gehen
|
||||
Fishing.Chance.Raining=[[BLUE]] Regen Bonus
|
||||
Fishing.Listener=Angeln:
|
||||
Fishing.Ability.TH.MagicFound=[[AQUA]]Dich ber\u00fchrt ein leichter Zauber bei diesem Fang...
|
||||
Fishing.Ability.TH.Boom=[[GRAY]]KARPADOR SETZT PLATSCHER EIN!!!
|
||||
Fishing.Ability.TH.Poison=[[GRAY]]Hier stinkt etwas...
|
||||
Fishing.SkillName=ANGELN
|
||||
Fishing.Skillup=Angel Skill um {0} gestiegen. Gesamt ({1})
|
||||
#HERBALISM
|
||||
Herbalism.Ability.DoubleDropChance=Chance auf Doppel-Drops: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=Bauernfr\u00fchst\u00fcck: [[YELLOW]]Stufe {0}
|
||||
Herbalism.Ability.GTe.Length=Gr\u00fcnes Land Dauer: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=Du brauchst mehr Samen um Gr\u00FCnes Land zu verbreiten.
|
||||
Herbalism.Ability.GTh.Chance=Gr\u00fcner Daumen Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**Gr\u00fcner Daumen GESCHEITERT**
|
||||
Herbalism.Ability.GTh.Stage=Gr\u00fcner Daumen Stufe: [[YELLOW]] Weizen w\u00e4chst auf Stufe {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**GR\u00dcNER DAUMEN**
|
||||
Herbalism.Ability.HylianLuck=Hylians Gl\u00fccks Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**Du senkst deine HARKE**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**Deine HARKE ist bereit**
|
||||
Herbalism.Ability.ShroomThumb.Chance=Gr\u00FCne Zehe Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**GR\u00DCNE ZEHE GESCHEITERT**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Gr\u00fcnes Land (F\u00e4higkeit)
|
||||
Herbalism.SubSkill.GreenTerra.Description=Erte das Land ab, 3x Drops
|
||||
Herbalism.SubSkill.GreenThumb.Name=Gr\u00fcner Daumen (Weizen)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Auto-Saat, s\u00e4ht Weizen wenn abgeerntet
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Bemoost Steinziegel , l\u00e4sst Gras wachsen
|
||||
Herbalism.SubSkill.FarmersDiet.Name=Bauernfr\u00fchst\u00fcck
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Erh\u00f6ht Effektivit\u00e4t von geernteter Nahrung
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Doppel Drops (Alle Pflanzen)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=Verdoppelt die normale Ausbeute (Loot)
|
||||
Herbalism.SubSkill.HylianLuck.Name=Hylian Gl\u00fcck
|
||||
Herbalism.SubSkill.HylianLuck.Description=Gibt eine kleine M\u00f6glichkeit, seltene Gegenst\u00e4nde zu finden
|
||||
Herbalism.SubSkill.ShroomThumb.Name=Pilz Zehe
|
||||
Herbalism.SubSkill.ShroomThumb.Description=Verbreite Myzel auf Gras und Erde
|
||||
Herbalism.HylianLuck=[[GREEN]]Heute ist das Gl\u00fcck von Hyrule mit dir!
|
||||
Herbalism.Listener=Pflanzenkunde:
|
||||
Herbalism.SkillName=PFLANZENKUNDE
|
||||
Herbalism.Skills.GTe.Off=**Gr\u00fcnes Land ist ausgelaufen**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**Gr\u00fcnes Land AKTIVIERT**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]Deine [[YELLOW]]Gr\u00fcnes Land [[GREEN]]F\u00e4higkeit ist wieder bereit!
|
||||
Herbalism.Skills.GTe.Other.Off={0}s [[RED]]Gr\u00fcnes Land[[GREEN]] ist [[GREEN]]ausgelaufen.
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Gr\u00fcnes Land!
|
||||
Herbalism.Skillup=Pflanzenkunde Skill um {0} gestiegen. Gesamt ({1})
|
||||
#MINING
|
||||
Mining.Ability.Length=Super-Brecher Dauer: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=GESPERRT bis Skill {0}+ (Z\u00fcndstoff)
|
||||
Mining.Ability.Locked.1=GESPERRT bis Skill {0}+ (Sprengmeister)
|
||||
Mining.Ability.Locked.2=GESPERRT bis Skill {0}+ (Explosions-Experte)
|
||||
Mining.Ability.Lower=[[GRAY]]**Du senkst deine SPITZHACKE**
|
||||
Mining.Ability.Ready=[[GREEN]]**Deine SPITZHACKE ist bereit**
|
||||
Mining.SubSkill.SuperBreaker.Name=Super-Brecher (F\u00e4higkeit)
|
||||
Mining.SubSkill.SuperBreaker.Description=Abbaugeschwindigkeit+, Dreifach-Drop Chance
|
||||
Mining.SubSkill.DoubleDrops.Name=Doppel Drops
|
||||
Mining.SubSkill.DoubleDrops.Description=Verdoppelt die normale Ausbeute
|
||||
Mining.SubSkill.BlastMining.Name=Z\u00fcndstoff
|
||||
Mining.SubSkill.BlastMining.Description=Bonus beim Abbaue mit TNT
|
||||
Mining.SubSkill.BiggerBombs.Name=Sprengmeister
|
||||
Mining.SubSkill.BiggerBombs.Description=Erh\u00f6ht den Explosions-Radius
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Explosions-Experte
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=Reduziert die Verletzung durch TNT Explosionen
|
||||
Mining.Effect.Decrease=Explosions-Experte Schadensreduzierung: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=Doppel Drop Chance: [[YELLOW]]{0}
|
||||
Mining.Listener=Bergbau:
|
||||
Mining.SkillName=BERGBAU
|
||||
Mining.Skills.SuperBreaker.Off=**Super-Brecher ist ausgelaufen**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**Super-Brecher AKTIVIERT**
|
||||
Mining.Skills.SuperBreaker.Other.Off={0}s [[RED]]Super-Brecher[[GREEN]] ist [[GREEN]]ausgelaufen.
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Super-Brecher!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Dein [[YELLOW]]Super-Brecher [[GREEN]]ist wieder bereit!
|
||||
Mining.Skillup=Bergbau Fertigkeit ist um {0} gestiegen. Gesamt ({1})
|
||||
#Blast Mining
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Effect=+{0} Erze -{1} Schutt, {2}x Drops
|
||||
Mining.Blast.Radius.Increase=Z\u00fcndstoff Radius Erh\u00f6hung: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=Z\u00fcndstoff Rang:[[YELLOW]] {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Z\u00fcndstoff!
|
||||
Mining.Blast.Refresh=[[GREEN]]Dein [[YELLOW]]Z\u00fcndstoff [[GREEN]]ist wieder bereit!
|
||||
#REPAIR
|
||||
Repair.SubSkill.Repair.Name=Reparatur
|
||||
Repair.SubSkill.Repair.Description=Repariere Werkzeuge & R\u00fcstung
|
||||
Repair.SubSkill.GoldRepair.Name=Gold Reparatur ({0}+ SKILL)
|
||||
Repair.SubSkill.GoldRepair.Description=Repariere Gold-Werkzeuge & R\u00fcstung
|
||||
Repair.SubSkill.IronRepair.Name=Eisen Reparatur ({0}+ SKILL)
|
||||
Repair.SubSkill.IronRepair.Description=Repariere Eisen-Werkzeuge & R\u00fcstung
|
||||
Repair.SubSkill.StoneRepair.Name=Stein Reparatur ({0}+ SKILL)
|
||||
Repair.SubSkill.StoneRepair.Description=Repariere Stein-Werkzeuge
|
||||
Repair.SubSkill.RepairMastery.Name=Reparatur Meister
|
||||
Repair.SubSkill.RepairMastery.Description=Erh\u00f6ht den Reparatur-Wert
|
||||
Repair.SubSkill.SuperRepair.Name=Super-Reparatur
|
||||
Repair.SubSkill.SuperRepair.Description=Doppelte Effektivit\u00e4t
|
||||
Repair.SubSkill.DiamondRepair.Name=Diamant Reparatur ({0}+ SKILL)
|
||||
Repair.SubSkill.DiamondRepair.Description=Repariere Diamant-Werkzeuge & R\u00fcstung
|
||||
Repair.SubSkill.ArcaneForging.Name=Arkanes Schmieden
|
||||
Repair.SubSkill.ArcaneForging.Description=Repariere magische Gegenst\u00e4nde
|
||||
Repair.Error=[[DARK_RED]]mcMMO ist beim Versuch dieses Item zu reparieren auf einen Fehler gesto\u00DFen!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Du hast einen Amboss platziert, Ambosse k\u00f6nnen Waffen und R\u00fcstung reparieren.
|
||||
Repair.Listener=Reparatur:
|
||||
Repair.SkillName=REPARATUR
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Du hast nicht gen\u00fcgend Level um Diamant zu reparieren.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Du hast nicht gen\u00fcgend Level um Gold zu reparieren.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Du hast nicht gen\u00fcgend Level um Eisen zu reparieren
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Du hast nicht gen\u00fcgend Level um Stein zu reparieren
|
||||
Repair.Skills.Adept=Du ben\u00f6tigst Level [[YELLOW]]{0}[[RED]] um [[YELLOW]]{1} zu reparieren.
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Das f\u00fchlte sich einfach an.
|
||||
Repair.Skills.FullDurability=[[GRAY]]Dieser Gegenstand hat volle Haltbarkeit.
|
||||
Repair.Skills.Mastery=Reparatur-Meister: [[YELLOW]]{0} Zusatz-Haltbarkeit.
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Du kannst keine gestapelten Gegenst\u00e4nde reparieren.
|
||||
Repair.Skills.Super.Chance=Super-Reparatur Chance: [[YELLOW]]{0}
|
||||
Repair.Skillup=Reparatur Skill um {0} gestiegen. Gesamt ({1})
|
||||
Repair.Pretty.Name=Reparatur
|
||||
#Arcane Forging
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AS Verminderungs Chance: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]AS Erfolgs-Rate: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=Zauber-Wert des Gegenstands vermindert.
|
||||
Repair.Arcane.Fail=Der Gegenstands wurde entzaubert.
|
||||
Repair.Arcane.Lost=Du hast nicht gen\u00fcgend Skill um Verzauberungen zu erhalten.
|
||||
Repair.Arcane.Perfect=[[GREEN]]Du hast den Zauber-Wert des Gegenstands erhalten.
|
||||
Repair.Arcane.Rank=Arkanes Schmieden Rang: [[YELLOW]]{0}/{1}
|
||||
#SALVAGE
|
||||
Salvage.Pretty.Name=Verwerten
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=Fortgeschrittenes Verwerten
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=Verwerte besch\u00E4digte Items
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=Arkanes Verwerten
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=Extra Verzauberung aus Items
|
||||
Salvage.Ability.Locked.0=GESPERRT bis Skill {0}+ (Fortgeschrittenes Verwerten)
|
||||
Salvage.Ability.Bonus.0=Fortgeschrittenes Verwerten
|
||||
Salvage.Ability.Bonus.1=Max Ertrag {0} Item zerst\u00F6rt
|
||||
Salvage.Arcane.Rank=Arkanes Verwerten: [[YELLOW]]Rang {0}/{1}
|
||||
Salvage.Arcane.ExtractFull=[[GRAY]]Verwerten: Gesamte Verzauberung Wahrscheinlichkeit
|
||||
Salvage.Arcane.ExtractPartial=[[GRAY]]Verwerten: Teil-Verzauberung Wahrscheinlichkeit
|
||||
Salvage.Skills.Success=[[GREEN]]Item verwertet!
|
||||
Salvage.Skills.Adept.Damaged=[[DARK_RED]]Deine F\u00E4higkeit ist nicht hoch genug um besch\u00E4digte Items zu verwerten.
|
||||
Salvage.Skills.Adept.Level=Du musst Level [[YELLOW]]{0}[[RED]] sein um [[YELLOW]]{1} [[RED]] zu verwerten.
|
||||
Salvage.Skills.TooDamaged=[[DARK_RED]]Das Item ist zu besch\u00E4digt um verwertet zu werden.
|
||||
Salvage.Skills.ArcaneFailed=Es ist dir nicht gelungen das Wissen aus diesem Item zu extrahieren.
|
||||
Salvage.Skills.ArcanePartial=Es ist dir gelungen ein bisschen Wissen zu extrahieren.
|
||||
Salvage.Skills.ArcaneSuccess=[[GREEN]]Du konntest alles Wissen aus diesem Item extrahieren!
|
||||
Salvage.Listener.Anvil=[[DARK_RED]]Du hast einen Verwertungs-Amboss platziert, benutze ihn um Werkzeuge und R\u00FCstung zu verwerten.
|
||||
Salvage.Listener=Verwerten:
|
||||
Salvage.SkillName=VERWERTEN
|
||||
#SWORDS
|
||||
Swords.Ability.Lower=[[GRAY]]**Du senkst dein SCHWERT**
|
||||
Swords.Ability.Ready=[[GREEN]]**Dein SCHWERT ist bereit**
|
||||
Swords.Combat.Bleed.Chance=Blutungs Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=Blutungs Dauer: [[YELLOW]]{0} Ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]Info: [[YELLOW]]1 Tick tritt alle 2 Sekunden ein.
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Du blutest!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Das Bluten hat [[GREEN]]aufgeh\u00f6rt[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**GEGNER BLUTET**
|
||||
Swords.Combat.Counter.Chance=Gegenangriff Chance: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Treffer durch Gegenangriff!
|
||||
Swords.Combat.Countered=[[GREEN]]**GEGENANGRIFF**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Getroffen von S\u00c4GEZAHNSCHLAG!
|
||||
Swords.SubSkill.CounterAttack.Name=Gegenangriff
|
||||
Swords.SubSkill.CounterAttack.Description=Reflektiere {0} des Schadens w\u00E4hrend du blockierst
|
||||
Swords.SubSkill.SerratedStrikes.Name=S\u00e4gezahnschlag (F\u00e4higkeit)
|
||||
Swords.SubSkill.SerratedStrikes.Description={0} Fl\u00E4chenschaden, Fl\u00E4chenblutung+
|
||||
Swords.Effect.4=S\u00e4gezahnschlag, Blutung+
|
||||
Swords.Effect.5={0} Ticks Blutung
|
||||
Swords.SubSkill.Bleed.Name=Blutung
|
||||
Swords.SubSkill.Bleed.Description=Verursacht Blutungsschaden \u00fcber Zeit
|
||||
Swords.Listener=Schwert:
|
||||
Swords.SkillName=SCHWERT
|
||||
Swords.Skills.SS.Off=**S\u00e4gezahnschlag abgenutzt**
|
||||
Swords.Skills.SS.On=[[GREEN]]**S\u00e4gezahnschlag AKTIVIERT**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Dein [[YELLOW]]S\u00e4gezahnschlag [[GREEN]]ist wieder bereit!
|
||||
Swords.Skills.SS.Other.Off={0}s [[RED]]S\u00e4gezahnschlag[[GREEN]] ist [[GREEN]]abgenutzt.
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]S\u00e4gezahnschlag!
|
||||
Swords.Skillup=Schwert Skill um {0} gestiegen. Gesamt ({1})
|
||||
Swords.SS.Length=S\u00e4gezahnschlag Dauer: [[YELLOW]]{0}s
|
||||
#TAMING
|
||||
Taming.Ability.Bonus.0=Umweltbewusst
|
||||
Taming.Ability.Bonus.1=W\u00f6lfe weichen Gefahren aus
|
||||
Taming.Ability.Bonus.2=Dicker Pelz
|
||||
Taming.Ability.Bonus.3=1/{0} Schaden, Feuer-Resistent
|
||||
Taming.Ability.Bonus.4=Schock-Sicher
|
||||
Taming.Ability.Bonus.5=Explosionen f\u00FCgen 1/{0} des normalen Schadens zu
|
||||
Taming.Ability.Bonus.6=Gesch\u00e4rfte Krallen
|
||||
Taming.Ability.Bonus.7=+{0} Schaden
|
||||
Taming.Ability.Bonus.8=Schnell-Imbiss
|
||||
Taming.Ability.Bonus.9={0} Chance auf Heilung bei einer Attacke
|
||||
Taming.Ability.Bonus.10=Heiliger Hund
|
||||
Taming.Ability.Bonus.11=Regenerierung auch mit Tr\u00E4nken und Zaubern m\u00F6glich
|
||||
Taming.Ability.Locked.0=GESPERRT bis Skill {0}+ (Umweltbewusst)
|
||||
Taming.Ability.Locked.1=GESPERRT bis Skill {0}+ (Dicker Pelz)
|
||||
Taming.Ability.Locked.2=GESPERRT bis Skill {0}+ (Schock-Sicher)
|
||||
Taming.Ability.Locked.3=GESPERRT bis Skill {0}+ (Gesch\u00e4rfte Krallen)
|
||||
Taming.Ability.Locked.4=GESPERRT bis Skill {0}+ (Schnell-Imbiss)
|
||||
Taming.Ability.Locked.5=GESPERRT bis Skill {0}+ (Heiliger Hund)
|
||||
Taming.Combat.Chance.Gore=Aufschlitzen Chance: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=Bestienkunde
|
||||
Taming.SubSkill.BeastLore.Description=Knochenschlag inspiziert W\u00f6lfe und Ozelots
|
||||
Taming.SubSkill.ShockProof.Name=Schock-Sicher
|
||||
Taming.SubSkill.ShockProof.Description=Reduktion von Explosions-Schaden
|
||||
Taming.SubSkill.CallOfTheWild.Name=Ruf der Wildnis
|
||||
Taming.SubSkill.CallOfTheWild.Description=Beschw\u00f6re ein Tier an deine Seite
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]RdW: B\u00fccken und Linksklick mit {0} {1} (Ozelot), {2} {3} (Wolf), {4} {5} (Pferd)
|
||||
Taming.SubSkill.FastFoodService.Name=Schnell-Imbiss
|
||||
Taming.SubSkill.FastFoodService.Description=Chance auf Heilung bei Attacke (Wolf)
|
||||
Taming.SubSkill.HolyHound.Name=Heiliger Hund
|
||||
Taming.SubSkill.HolyHound.Description=Heilung durch Magie und Tr\u00E4nke
|
||||
Taming.SubSkill.Gore.Name=Aufschlitzen
|
||||
Taming.SubSkill.Gore.Description=Kritische Treffer verursachen Blutung
|
||||
Taming.SubSkill.SharpenedClaws.Name=Gesch\u00e4rfte Krallen
|
||||
Taming.SubSkill.SharpenedClaws.Description=Schadens-Bonus
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Umweltbewusst
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Kaktus/Lava-Furcht, Immun gegen Fall-Schaden
|
||||
Taming.SubSkill.ThickFur.Name=Dicker Pelz
|
||||
Taming.SubSkill.ThickFur.Description=Verminderter Schaden, Feuer-Resistent
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Dein Wolf hastet zu dir zur\u00fcck...
|
||||
Taming.Listener=Z\u00e4hmen:
|
||||
Taming.SkillName=Z\u00c4HMEN
|
||||
Taming.Skillup=Z\u00e4hhmen Skill um {0} gestiegen. Gesamt ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Beschw\u00f6rung abgeschlossen
|
||||
Taming.Summon.Lifespan=(Lebenszeit: {0}s)
|
||||
Taming.Summon.Fail.Ocelot=Du hast zu viele Ozelots um dich, um weitere zu beschw\u00f6ren.
|
||||
Taming.Summon.Fail.Wolf=Du hast zu viele W\u00f6lfe um dich, um weitere zu beschw\u00f6ren.
|
||||
Taming.Summon.Fail.Horse=Du hast zu viele Pferde um dich, um weitere zu beschw\u00f6ren.
|
||||
Taming.Summon.Fail.TooMany=Du hast das Maximum an beschworenen Tieren erreicht [[YELLOW]]({0})
|
||||
Taming.Summon.Name.Format={0}''s {1}
|
||||
#UNARMED
|
||||
Unarmed.Ability.Berserk.Length=Berserker Dauer: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Eiserner Arm
|
||||
Unarmed.Ability.Bonus.1=+{0} Schadens-Bonus
|
||||
Unarmed.Ability.Chance.ArrowDeflect=Pfeile ablenken Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=Entwaffnen Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=Eisen Griff Chance: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Dein Gegner hat einen eisernen Griff!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]Dein eiserner Griff hat dich vor Entwaffnung gesch\u00FCtzt!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**Du senkst deine F\u00c4USTE**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**Deine F\u00c4USTE sind bereit**
|
||||
Unarmed.SubSkill.Berserk.Name=Berserker (F\u00e4higkeit)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% Schaden, Zerbricht weiche Materialien
|
||||
Unarmed.SubSkill.Disarm.Name=Entwaffnen (Spieler)
|
||||
Unarmed.SubSkill.Disarm.Description=L\u00E4sst Gegenstand aus der Hand des Feindes fallen
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Eiserner Arm
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Erh\u00f6ht kurzfristig deine Schlagkraft
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=Pfeil-Ablenkung
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=Lenkt Pfeile ab
|
||||
Unarmed.SubSkill.IronGrip.Name=Eisen Griff
|
||||
Unarmed.SubSkill.IronGrip.Description=Sch\u00FCtzt dich davor, entwaffnet zu werden
|
||||
Unarmed.Listener=Unbewaffnet:
|
||||
Unarmed.SkillName=UNBEWAFFNET
|
||||
Unarmed.Skills.Berserk.Off=**Berserker ausgelaufen**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**Berserker AKTIVIERT**
|
||||
Unarmed.Skills.Berserk.Other.Off={0}s [[RED]]Berserker[[GREEN]] ist [[GREEN]]ausgelaufen
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Berserker!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Dein [[YELLOW]]Berserker [[GREEN]]ist wieder bereit!
|
||||
Unarmed.Skillup=Unbewaffnet Skill um {0} gestiegen. Gesamt ({1})
|
||||
#WOODCUTTING
|
||||
Woodcutting.Ability.0=Bl\u00e4ttersturm
|
||||
Woodcutting.Ability.1=Bl\u00e4st Bl\u00e4tter davon
|
||||
Woodcutting.Ability.Chance.DDrop=Doppel Drop Chance: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=Baumf\u00e4ller Dauer: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=GESPERRT bis Skill {0}+ (Bl\u00e4ttersturm)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Baumf\u00e4ller (F\u00e4higkeit)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=L\u00e4sst B\u00e4ume explodieren
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Bl\u00e4ttersturm
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Bl\u00e4st Bl\u00e4tter davon
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Doppel Drops
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Verdoppelt die Ausbeute
|
||||
Woodcutting.Listener=Holzf\u00e4ller:
|
||||
Woodcutting.SkillName=HOLZF\u00c4LLER
|
||||
Woodcutting.Skills.TreeFeller.Off=**Baumf\u00e4ller abgelaufen**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**Baumf\u00e4ller AKTIVIERT**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Dein [[YELLOW]]Baumf\u00e4ller [[GREEN]]ist wieder bereit!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off={0}s [[RED]]Baumf\u00e4ller[[GREEN]] ist [[GREEN]]abgelaufen
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] benutzte [[RED]]Baumf\u00e4ller!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=Deine Axt zersplittert in tausend kleine Teile!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=Dieser Baum ist zu gro\u00DF!
|
||||
Woodcutting.Skillup=Holzf\u00e4ller Skill um {0} gestiegen. Gesamt ({1})
|
||||
#ABILITIY
|
||||
##generic
|
||||
Ability.Generic.Refresh=[[GREEN]]**F\u00e4higkeit wieder BEREIT!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
#COMBAT
|
||||
Combat.ArrowDeflect=[[WHITE]]**Pfeil ABGELENKT**
|
||||
Combat.BeastLore=[[GREEN]]**BESTIENKUNDE**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Besitzer ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**AUFGESCHLITZT**
|
||||
Combat.StruckByGore=**du wurdest AUFGESCHLITZT**
|
||||
Combat.TargetDazed=Ziel wurde [[DARK_RED]]BET\u00c4UBT
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Ungl\u00fccklich ber\u00fchrt. Schwindelgef\u00fchl.
|
||||
#COMMANDS
|
||||
##generic
|
||||
mcMMO.Description=[[DARK_AQUA]]\u00DCber das [[YELLOW]]mcMMO[[DARK_AQUA]] Projekt: [[GOLD]]mcMMO ist ein [[RED]]open source[[GOLD]] RPG mod der im Februar 2011,[[GOLD]]von [[BLUE]]com.gmail.nossr50[[GOLD]] erstellt wurde. Ziel ist es eine gute RPG Erfahrung zu vermitteln.,[[DARK_AQUA]]Tipps:,[[GOLD]] - [[GREEN]]Benutz [[RED]]/mcmmo help[[GREEN]] um Befehle zu sehen,[[GOLD]] - [[GREEN]]Tippe [[RED]]/SKILLNAME[[GREEN]] um detaillierte Skillinformationen zu sehen,[[DARK_AQUA]]Entwickler:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](Gr\u00FCnder),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Projektleitung),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Entwickler),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](Entwickler),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](Entwickler),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](Entwickler),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](Entwickler),[[GOLD]] - [[GREEN]]lumis31 [[BLUE]](Deutsche \u00DCbersetzung), [[DARK_AQUA]]N\u00FCtzliche Links:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] Bug Reporting,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Dir wurden {0} Level in allen Skills gutgeschrieben!
|
||||
Commands.addlevels.AwardAll.2=Alle Skills wurden um {0} ge\u00E4ndert.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Dir wurden {0} Level in {1} gutgeschrieben!
|
||||
Commands.addlevels.AwardSkill.2={0} wurde um {1} ge\u00E4ndert.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Dir wurden {0} Erfahrungspunkte in Skills gutgeschrieben!
|
||||
Commands.addxp.AwardSkill=[[GREEN]Dir wurde {0} Erfahrung in {1} gutgeschrieben!
|
||||
Commands.Ability.Off=F\u00e4higkeiten [[RED]]deaktiviert
|
||||
Commands.Ability.On=F\u00e4higkeiten [[GREEN]]aktiviert
|
||||
Commands.Ability.Toggle=Benutzung von F\u00E4higkeiten wurde f\u00FCr [[YELLOW]]{0} ge\u00E4ndert
|
||||
Commands.AdminChat.Off=Nur Admin Chat [[RED]] deaktiviert
|
||||
Commands.AdminChat.On=Nur Admin Chat [[GREEN]] aktiviert
|
||||
Commands.AdminToggle=[[GREEN]]- Schalte den Adminchat um
|
||||
Commands.Chat.Console=*Konsole*
|
||||
Commands.Cooldowns.Header=[[GOLD]]--= [[GREEN]]mcMMO F\u00E4higkeiten Abk\u00FChlzeit[[GOLD]] =--
|
||||
Commands.Cooldowns.Row.N=\ [[RED]]{0}[[WHITE]] - [[GOLD]]{1} Sekunden verbleiben
|
||||
Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]]Bereit!
|
||||
Commands.Database.Cooldown=Du musst 1 Sekunde warten bevor du diesen Befehl erneut verwenden darfst.
|
||||
Commands.Database.Processing=Dein vorheriger Befehl wird noch verarbeitet. Bitte warten.
|
||||
Commands.Disabled=Dieser Befehl ist deaktiviert.
|
||||
Commands.DoesNotExist=[[RED]]Spieler in Datenbank nicht vorhanden!
|
||||
Commands.GodMode.Disabled=mcMMO Godmode deaktiviert
|
||||
Commands.GodMode.Enabled=mcMMO Godmode aktiviert
|
||||
Commands.GodMode.Forbidden=[mcMMO] Der Godmode ist in dieser Welt nicht erlaubt(Siehe Permissions)
|
||||
Commands.GodMode.Toggle=Godmode wurde f\u00FCr [[YELLOW]]{0} aktiviert
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO]Deine Lebensanzeige wurde zu [[RED]]Herzen[[WHITE]] ge\u00E4ndert.
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] Deine Lebensanzeige wurde zu [[YELLOW]]K\u00E4stchen[[WHITE]] ge\u00E4ndert.
|
||||
Commands.Healthbars.Changed.DISABLED=[mcMMO] Die Mob-Lebensanzeige wurde [[GRAY]]deaktiviert[[WHITE]].
|
||||
Commands.Healthbars.Invalid=Ung\u00FCltiger Lebensanzeige Typ!
|
||||
Commands.Inspect=<player> [[GREEN]]- Siehe detaillierte Spielerinformationen
|
||||
Commands.Invite.Success=[[GREEN]]Einladung erfolgreich gesendet.
|
||||
Commands.Leaderboards=<skill> <page> [[GREEN]]- Bestenlisten
|
||||
Commands.mcc.Header=---[][[GREEN]]mcMMO Befehle[[RED]][]---
|
||||
Commands.mcgod=[[GREEN]]- Schalte Godmode um
|
||||
Commands.mchud.Invalid=Das ist kein g\u00FCltiger HUD Typ.
|
||||
Commands.mcpurge.Success=[[GREEN]]Die Datenbank wurde erfolgreich ges\u00E4ubert!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=PERS\u00D6NLICHE STATISTIKEN=-
|
||||
Commands.mcrank.Overall=Insgesamt[[GREEN]] - [[GOLD]]Rang [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=ZIEL: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Rang [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Ohne Rang
|
||||
Commands.mcrefresh.Success={0}''s Abk\u00FChlzeiten wurden erneuert.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} wurde erfolgreich von der Datenbank entfernt!
|
||||
Commands.mctop.Tip=[[GOLD]]Tipp: Benutze [[RED]]/mcrank[[GOLD]] um deine pers\u00F6nlichen Statistiken zu sehen!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[GREEN]] - Ziel modifizieren
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]Dein Level wurde in allen F\u00E4higkeiten zu {0} gesetzt!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Dein Level in {0} wurde zu {1} gesetzt!
|
||||
Commands.mmoedit.Modified.2={0} wurde bei {1} modifiziert.
|
||||
Commands.mcconvert.Database.Same=Du benutzt bereits die {0} Datenbank!
|
||||
Commands.mcconvert.Database.InvalidType={0} ist kein g\u00FCltiger Datenbanktyp.
|
||||
Commands.mcconvert.Database.Start=[[GRAY]]Beginne Konvertierung von {0} zu {1}...
|
||||
Commands.mcconvert.Database.Finish=[[GRAY]]Datenbanken Migration vollendet; die {1} Datenbank hat nun alle Daten von der {0} Datenbank.
|
||||
Commands.mmoshowdb=Die zurzeit verwendete Datenbank ist [[GREEN]]{0}
|
||||
Commands.mcconvert.Experience.Invalid=Unbekannter Formeltyp! G\u00FCltige Typen sind: [[GREEN]]LINEAR [[RED]]und [[GREEN]]EXPONENTIAL.
|
||||
Commands.mcconvert.Experience.Same=Formeltyp {0} wird bereits verwendet
|
||||
Commands.mcconvert.Experience.Start=[[GRAY]]Beginne Konvertierung von Kurve {0} zu Kurve {1}
|
||||
Commands.mcconvert.Experience.Finish=[[GRAY]]Konvertierung vollendet; jetzt wird die {0} XP Kurve verwendet.
|
||||
Commands.ModDescription=[[GREEN]]- Kurze Modbeschreibung
|
||||
Commands.NoConsole=Dieser Befehl kann nicht aus der Konsole verwendet werden.
|
||||
Commands.Notifications.Off=F\u00E4higkeiten Hinweise wurden [[RED]]deaktiviert
|
||||
Commands.Notifications.On=F\u00E4higkeiten Hinweise wurden [[GREEN]]aktiviert
|
||||
Commands.Offline=Dieser Befehl funktioniert nur bei eingeloggten Spielern.
|
||||
Commands.NotLoaded=Spielerprofil wurde noch nicht geladen.
|
||||
Commands.Other=---[][[GREEN]]ANDERE BEFEHLE[[RED]][]---
|
||||
Commands.Party.Header=-----[][[GREEN]]PARTY[[RED]][]-----
|
||||
Commands.Party.Features.Header=-----[][[GREEN]]FEATURES[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]NAME: [[WHITE]]{0} {1} [[DARK_GRAY]]LEVEL: [[DARK_AQUA]]{2}
|
||||
Commands.Party.Status.Alliance=[[DARK_GRAY]]ALLY: [[WHITE]]{0}
|
||||
Commands.Party.UnlockedFeatures=[[DARK_GRAY]]Freigeschaltete Features: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]TEILEN MODUS:
|
||||
Commands.Party.ItemShare=[[GRAY]]ITEM [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]EXP [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]Teile Items: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]IN DER N\u00C4HE [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[GREEN]]- Nimm Party-Einladung an
|
||||
Commands.Party.Chat.Off=Nur Party Chat [[RED]]Aus
|
||||
Commands.Party.Chat.On=Nur Party Chat [[GREEN]]AN
|
||||
Commands.Party.Commands=---[][[GREEN]]PARTY BEFEHLE[[RED]][]---
|
||||
Commands.Party.Invite.0=ALERT: [[GREEN]]Du hast eine Party Einladung f\u00FCr {0} von {1} erhalten.
|
||||
Commands.Party.Invite.1=Benutze [[GREEN]]/party accept[[YELLOW]] um die Einladung anzunehmen
|
||||
Commands.Party.Invite=[[GREEN]]- Sende eine Party Einladung
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]Einladung angenommen. Du bist der {0} Party beigetreten.
|
||||
Commands.Party.Join=[[GRAY]]Beigetretene Party: {0}
|
||||
Commands.Party.Create=[[GRAY]]Erstellte Party: {0}
|
||||
Commands.Party.Rename=[[GRAY]]Party Name wurde zu: [[WHITE]]{0} [[GRAY]]ge\u00E4ndert
|
||||
Commands.Party.SetSharing=[[GRAY]]Party {0} teilen: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]Party item Teilen f\u00FCr[[GOLD]]{0} [[GRAY]]wurde [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]Party {0} ist bereits vorhanden!
|
||||
Commands.Party.Kick=Du wurdest von {0} Party entfernt!
|
||||
Commands.Party.Leave=Du hast die Party verlassen
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]MITGLIEDER[[RED]][]-----
|
||||
Commands.Party.None=Du bist in keiner Party.
|
||||
Commands.Party.Quit=[[GREEN]]- Verlasse deine aktuelle Party.
|
||||
Commands.Party.Teleport=[[GREEN]]- Teleportiere dich zu Partymitgliedern.
|
||||
Commands.Party.Toggle=[[GREEN]]- Schalte den Party Chat.
|
||||
Commands.Party1=[[GREEN]]- Erstelle eine neue Party
|
||||
Commands.Party2=[[GREEN]]- Tritt der Party eines Spielers bei.
|
||||
Commands.Party.Alliance.Header=-----[][[GREEN]]PARTY ALLIANZEN[[RED]][]-----
|
||||
Commands.Party.Alliance.Ally=[[WHITE]]{0} [[DARK_GRAY]]IS MIT FOLGENDEN VERB\u00DCNDET: [[WHITE]]{1}
|
||||
Commands.Party.Alliance.Members.Header=-----[][[GREEN]]ALLIANZEN MITGLIEDER[[RED]][]-----
|
||||
Commands.Party.Alliance.Invite.0=ALERT: [[GREEN]]Du hast eine B\u00FCndnis Anfrage f\u00FCr {0} von {1} erhalten
|
||||
Commands.Party.Alliance.Invite.1=Tippe [[GREEN]]/party alliance accept[[YELLOW]] um die Anfrage anzunehmen
|
||||
Commands.Party.Alliance.Invite.Accepted=[[GREEN]]B\u00FCndnis Anfrage angenommen
|
||||
Commands.Party.Alliance.None=Deine Party hat keine Verb\u00FCndeten.
|
||||
Commands.Party.Alliance.AlreadyAllies=Deine Party ist bereits in einem B\u00FCndnis. Trenne mit[[DARK_AQUA]]/party alliance disband
|
||||
Commands.Party.Alliance.Help.0=Diese Party ist in keinem B\u00FCndnis. Lade einen Party Anf\u00FChrer an.
|
||||
Commands.Party.Alliance.Help.1=um zu verb\u00FCnden [[DARK_AQUA]]/party alliance invite <Spieler>[[RED]].
|
||||
Commands.ptp.Enabled=Party Teleport [[GREEN]]aktiviert
|
||||
Commands.ptp.Disabled=Party Teleport [[RED]]deaktiviert
|
||||
Commands.ptp.NoRequests=Du hast aktuell keine teleportanfragen.
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] Du hast nicht die Rechte um in die Welt {0} zu teleportieren.
|
||||
Commands.ptp.Request1={0} [[GREEN]]m\u00F6chte sich zu dir teleportieren.
|
||||
Commands.ptp.Request2=[[GREEN]]Um zu teleportieren tippe[[YELLOW]]/ptp accept[[GREEN]]. Die Anfrage l\u00E4uft in[[RED]]{0} [[GREEN]]Sekunden aus.
|
||||
Commands.ptp.AcceptAny.Enabled=Party Teleport Anfragenbest\u00E4tigung[[GREEN]]aktiviert
|
||||
Commands.ptp.AcceptAny.Disabled=Party Teleport Anfragenbest\u00E4tigung[[RED]]deaktiviert
|
||||
Commands.ptp.RequestExpired=Party Teleport Anfrage ist ausgelaufen.
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO[[BLUE]] Power Level [[YELLOW]]Bestenliste--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]GESAMT LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]GESAMT LEVEL: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Alles Skilllevel wurden erfolgreich zur\u00FCckgesetzt.
|
||||
Commands.Reset.Single=[[GREEN]]Dein {0} Skilllevel wurde erfolgreich zur\u00FCckgesetzt.
|
||||
Commands.Reset=[[GREEN]]- Setze ein Skilllevel auf 0
|
||||
Commands.Scoreboard.Clear=[[DARK_AQUA]]Die Stats \u00DCbersicht wurde ausgeblendet.
|
||||
Commands.Scoreboard.NoBoard=Die Stats Anzeige ist nicht sichtbar.
|
||||
Commands.Scoreboard.Keep=[[DARK_AQUA]]Die Stats \u00DCbersicht bleibt sichtbar bis du [[GREEN]]/mcscoreboard clear[[DARK_AQUA]] verwendest.
|
||||
Commands.Scoreboard.Timer=[[DARK_AQUA]]Die Stats \u00DCbersicht wird nach [[GOLD]]{0}[[DARK_AQUA]] Sekunden verschwinden.
|
||||
Commands.Scoreboard.Help.0=[[GOLD]] == [[GREEN]]Hilfe f\u00FCr[[RED]]/mcscoreboard[[GOLD]] ==
|
||||
Commands.Scoreboard.Help.1=[[DARK_AQUA]]/mcscoreboard[[AQUA]] clear [[WHITE]] - blende die \u00DCbersicht aus
|
||||
Commands.Scoreboard.Help.2=[[DARK_AQUA]]/mcscoreboard[[AQUA]] keep [[WHITE]] - behalte die \u00DCbersicht offen
|
||||
Commands.Scoreboard.Help.3=[[DARK_AQUA]]/mcscoreboard[[AQUA]] time [n] [[WHITE]] - blende die \u00DCbersicht nach [[LIGHT_PURPLE]]n[[WHITE]] Sekunden aus
|
||||
Commands.Scoreboard.Tip.Keep=[[GOLD]]Tipp: Benutze [[RED]]/mcscoreboard keep[[GOLD]] um deine Stats sichtbar zu lassen
|
||||
Commands.Scoreboard.Tip.Clear=[[GOLD]]Tipp: Benutze [[RED]]/mcscoreboard clear[[GOLD]] um die \u00DCbersicht auszublenden
|
||||
Commands.Skill.Invalid=Das ist kein g\u00FCltiger Skillname!
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] Bestenliste--
|
||||
Commands.SkillInfo=[[GREEN]]-Detaillierte Informationen zu einem Skill
|
||||
Commands.Stats.Self=DEINE STATS
|
||||
Commands.Stats=[[GREEN]]- Sieh deine McMMO Stats
|
||||
Commands.ToggleAbility=[[GREEN]]- Schalte auf F\u00E4higkeiten Aktivierung mit Rechtsklick
|
||||
Commands.Usage.0=Korrekte Verwendung ist /{0}
|
||||
Commands.Usage.1=Korrekte Verwendung ist /{0} {1}
|
||||
Commands.Usage.2=Korrekte Verwendung ist /{0} {1} {2}
|
||||
Commands.Usage.3=Korrekte Verwendung ist /{0} {1} {2} {3}
|
||||
Commands.Usage.FullClassName=classname
|
||||
Commands.Usage.Level=Level
|
||||
Commands.Usage.Message=Message
|
||||
Commands.Usage.Page=Seite
|
||||
Commands.Usage.PartyName=Name
|
||||
Commands.Usage.Password=Passwort
|
||||
Commands.Usage.Player=Spieler
|
||||
Commands.Usage.Rate=Eate
|
||||
Commands.Usage.Skill=Skill
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=Du hast zurzeit keine Einladungen
|
||||
mcMMO.NoPermission=[[DARK_RED]]Unzureichende Berechtigungen.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Wenn du keinen Zugriff auf einen Skill hast wird er hier nicht angezeigt.
|
||||
##party
|
||||
Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
|
||||
Party.Help.0=Proper usage is [[DARK_AQUA]]{0} <player> [password].
|
||||
Party.Help.1=To create a party, use [[DARK_AQUA]]{0} <name> [password].
|
||||
Party.Help.2=Consult [[DARK_AQUA]]{0} [[RED]]for more information
|
||||
Party.Help.3=Use [[DARK_AQUA]]{0} <player> [password] [[RED]]to join or [[DARK_AQUA]]{1} [[RED]]to quit
|
||||
Party.Help.4=To lock or unlock your party, use [[DARK_AQUA]]{0}
|
||||
Party.Help.5=To password protect your party, use [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=To kick a player from your party, use [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=To transfer ownership of your party, use [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=To disband your party, use [[DARK_AQUA]]{0}
|
||||
Party.Help.9=Use [[DARK_AQUA]]{0} [[RED]]to share items with party members
|
||||
Party.Help.10=Use [[DARK_AQUA]]{0} [[RED]]to enable XP sharing with party members
|
||||
Party.InformedOnJoin={0} [[GREEN]]has joined your party
|
||||
Party.InformedOnQuit={0} [[GREEN]]has left your party
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]has set the party name to [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]That is not a valid party name.
|
||||
Party.Invite.Self=You can't invite yourself!
|
||||
Party.IsLocked=This party is already locked!
|
||||
Party.IsntLocked=This party is not locked!
|
||||
Party.Locked=Party is locked, only party leader may invite.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
|
||||
Party.NotOwner=[[DARK_RED]]You are not the party leader.
|
||||
Party.Target.NotOwner=[[DARK_RED]]{0} is not the party leader.
|
||||
Party.Owner.New=[[GREEN]]{0} is the new party leader.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]You are no longer the party leader.
|
||||
Party.Owner.Player=[[GREEN]]You are now the party leader.
|
||||
Party.Password.None=This party is password protected. Please provide a password to join.
|
||||
Party.Password.Incorrect=Party password is incorrect.
|
||||
Party.Password.Set=[[GREEN]]Party password set to {0}
|
||||
Party.Password.Removed=[[GREEN]]Party password has been cleared.
|
||||
Party.Player.Invalid=That is not a valid player.
|
||||
Party.NotOnline=[[DARK_RED]]{0} is not online!
|
||||
Party.Player.InSameParty={0} already is in your party!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} is not in a party
|
||||
Party.Specify=You must specify a party.
|
||||
Party.Teleport.Dead=You can't teleport to a dead player.
|
||||
Party.Teleport.Hurt=You have been hurt in the last {0} seconds and cannot teleport.
|
||||
Party.Teleport.Player=[[GREEN]]You have teleported to {0}.
|
||||
Party.Teleport.Self=You can't teleport to yourself!
|
||||
Party.Teleport.Target=[[GREEN]]{0} has teleported to you.
|
||||
Party.Teleport.Disabled={0} doesn't allow party teleportation.
|
||||
Party.Rename.Same=That is already the name of your party!
|
||||
Party.Join.Self=You can't join yourself!
|
||||
Party.Unlocked=[[GRAY]]Party is unlocked
|
||||
Party.Disband=[[GRAY]]The party has been disbanded
|
||||
Party.Alliance.Formed=[[GRAY]]Your party is now allies with [[GREEN]]{0}
|
||||
Party.Alliance.Disband=[[GRAY]]Your party is no longer allies with [[RED]]{0}
|
||||
Party.Status.Locked=[[DARK_RED]](INVITE-ONLY)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](OPEN)
|
||||
Party.LevelUp=Party level increased by {0}. Total ({1})
|
||||
Party.Feature.Chat=Party Chat
|
||||
Party.Feature.Teleport=Party Teleport
|
||||
Party.Feature.Alliance=Alliances
|
||||
Party.Feature.ItemShare=Item Sharing
|
||||
Party.Feature.XpShare=XP Sharing
|
||||
Party.Feature.Locked.Chat=LOCKED UNTIL {0}+ (PARTY CHAT)
|
||||
Party.Feature.Locked.Teleport=LOCKED UNTIL {0}+ (PARTY TELEPORT)
|
||||
Party.Feature.Locked.Alliance=LOCKED UNTIL {0}+ (ALLIANCES)
|
||||
Party.Feature.Locked.ItemShare=LOCKED UNTIL {0}+ (ITEM SHARING)
|
||||
Party.Feature.Locked.XpShare=LOCKED UNTIL {0}+ (XP SHARING)
|
||||
Party.Feature.Disabled.1=Party chat is not unlocked yet.
|
||||
Party.Feature.Disabled.2=Party teleport is not unlocked yet.
|
||||
Party.Feature.Disabled.3=Party alliances are not unlocked yet.
|
||||
Party.Feature.Disabled.4=Party item sharing is not unlocked yet.
|
||||
Party.Feature.Disabled.5=Party XP sharing is not unlocked yet.
|
||||
Party.ShareType.Xp=XP
|
||||
Party.ShareType.Item=ITEM
|
||||
Party.ShareMode.None=NONE
|
||||
Party.ShareMode.Equal=EQUAL
|
||||
Party.ShareMode.Random=RANDOM
|
||||
Party.ItemShare.Category.Loot=Loot
|
||||
Party.ItemShare.Category.Mining=Mining
|
||||
Party.ItemShare.Category.Herbalism=Herbalism
|
||||
Party.ItemShare.Category.Woodcutting=Woodcutting
|
||||
Party.ItemShare.Category.Misc=Misc
|
||||
##xp
|
||||
Commands.XPGain.Acrobatics=Fallen
|
||||
Commands.XPGain.Alchemy=Tr\u00E4nke brauen
|
||||
Commands.XPGain.Archery=Monster angreifen
|
||||
Commands.XPGain.Axes=Monster angreifen
|
||||
Commands.XPGain.Child=Levelerhalt durch Verbesserung der Eltern-Skills
|
||||
Commands.XPGain.Excavation=Graben und Sch\u00E4tze finden
|
||||
Commands.XPGain.Fishing=Angeln
|
||||
Commands.XPGain.Herbalism=Ernten
|
||||
Commands.XPGain.Mining=Erze und Steine abbauen
|
||||
Commands.XPGain.Repair=Reparieren
|
||||
Commands.XPGain.Swords=Monster angreifen
|
||||
Commands.XPGain.Taming=Monster z\u00E4hmen, mit dem Wolf k\u00E4mpfen
|
||||
Commands.XPGain.Unarmed=Monster angreifen
|
||||
Commands.XPGain.Woodcutting=B\u00E4ume f\u00E4llen
|
||||
Commands.XPGain=[[DARK_GRAY]]XP ZUWACHS: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Deine XP Anzeige ist nun auf {0} festgesetzt!
|
||||
Commands.xplock.unlocked=[[GOLD]]Deine XP Anzeige ist nun wieder [[GREEN]]FREIGEGEBEN[[GOLD]]!
|
||||
Commands.xprate.modified=The XP RATE wurde auf {0} gesetzt!
|
||||
Commands.xprate.over=Das mcMMO XP Rate Event ist vor\u00fcber!!
|
||||
Commands.xprate.proper.0=Korrekte Eingabe f\u00fcr XP Rate Wechsel: /xprate <integer> <true/false>
|
||||
Commands.xprate.proper.1=Korrekte Eingabe f\u00fcr R\u00fccksetzung auf Standard XP Rate: /xprate reset
|
||||
Commands.xprate.proper.2=Bitte spezifiziere mit true/false ob dies ein XP-Event ist oder nicht.
|
||||
Commands.xprate.started.0=[[GOLD]]Das XP EVENT f\u00fcr mcMMO hat BEGONNEN!
|
||||
Commands.xprate.started.1=[[GOLD]]Die mcMMO XP RATE liegt nun bei {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO hat gerade ein XP-RATE Event. Derzeitige XP Rate: {0}x!
|
||||
#EFFECTS
|
||||
##generic
|
||||
Effects.Effects=EFFEKTE
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
#GUIDES
|
||||
Guides.Available=[[GRAY]]Anleitung f\u00FCr {0} vorhanden - tippe /{1} ? [Seite]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Anleitung[[GOLD]]=-
|
||||
Guides.Page.Invalid=Keine g\u00FCltige Seitenzahl!
|
||||
Guides.Page.OutOfRange=Es gibt nur insgesamt {0} Seiten.
|
||||
Guides.Usage=Der Befehl ist /{0} ? [Seite]
|
||||
##Acrobatics
|
||||
Guides.Acrobatics.Section.0=[[DARK_AQUA]]\u00DCber Akrobatik:\n[[YELLOW]]Akrobatik ist die Kunst sich grazi\u00F6s fortzubewegen.\n[[YELLOW]]Fall- und Kampfschaden werden reduziert\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]XP sammelst du indem du in K\u00E4mpfen\n[[YELLOW]]ausweichst, oder St\u00FCrze aus gro\u00DFen H\u00F6hen \u00FCberlebst.
|
||||
Guides.Acrobatics.Section.1=[[DARK_AQUA]]Wie funktioniert Rollen?\n[[YELLOW]]Ab und zu rollst du beim Fallen ab und der Fallschaden wird\n[[YELLOW]]reduziert. Wenn du den Schleichen Knopf w\u00E4hrend dem Fallen\n[[YELLOW]]h\u00E4ltst, verdoppelt sich die Wahrscheinlichkeit abzurollen.\n[[YELLOW]]In dem Fall rollst du grazi\u00F6s ab.\n[[YELLOW]]Grazi\u00F6se Rollen sind gleich wie normale Rollen, nur dass\n[[YELLOW]]sie \u00F6fter passieren und damit mehr Schutz vor St\u00FCrzen\n[[YELLOW]]liefern.
|
||||
Guides.Acrobatics.Section.2=[[DARK_AQUA]]Wie funktioniert Ausweichen?\n[[YELLOW]]Ausweichen ist eine passive F\u00E4higkeit\n[[YELLOW]]die ab und zu den Schaden in K\u00E4mpfen halbiert.\n[[YELLOW]]Die Wahrscheinlichkeit auszuweichen ist abh\u00E4ngig vom \n[[YELLOW]]Akrobatiklevel.
|
||||
##Alchemy
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]\u00DCber Alchemie:\n[[YELLOW]]In Alchemie musst du Tr\u00E4nke brauen.\n[[YELLOW]]Mit h\u00F6herem Level werden die Tr\u00E4nke schneller\n[[YELLOW]]gebraut und neue Zutaten f\u00FCr zun\u00E4chst unerh\u00E4ltliche Tr\u00E4nke \n[[YELLOW]]freigeschaltet.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Tr\u00E4nke brauen.
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]Wie funktioniert Katalyse?\n[[YELLOW]]Katalyse beschleunigt das Brauen von Tr\u00E4nken bis\n[[YELLOW]]zu 4-facher Geschwindigkeit bei Level 1000.\n[[YELLOW]]
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]Wie funktioniert Braukunst?\n[[YELLOW]]Braukunst erm\u00F6glich das Brauen weiterer Tr\u00E4nke mit neuen\n[[YELLOW]]Zutaten.\n[[YELLOW]]Welche Zutaten m\u00F6glich sind, h\u00E4ngt vom Rang ab.\n[[YELLOW]]Insgesamt gibt es 8 R\u00E4nge zum freischalten.
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]Braukunst Tier 1 Zutaten:\n[[YELLOW]]Lohnenstaub, Fermentierte Spinnenaugen, Ghast Tr\u00E4nen,\n[[YELLOW]]Redstone, Glowstonestaub, Zucker, Glitzernde Melone,\n[[YELLOW]]Goldene Karotte, Magma Creme, Netherwarzen, Spinnenaugen, \n[[YELLOW]]Schwarzpulver, Seerose, Kugelfisch (Vanilla Tr\u00E4nke)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]Braukunst Tier 2 Zutaten:\n[[YELLOW]]Karotte (Eile)\n[[YELLOW]]Schleimball (Langsamkeit)\n\n[[DARK_AQUA]]Braukunst Tier 3 Zutaten:\n[[YELLOW]]Quarz (Absoption)\n[[YELLOW]]Roter Pilz (Springen)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]Braukunst Tier 4 Zutaten:\n[[YELLOW]]Apfel (Gesundheitsboost)\n[[YELLOW]]Verrottetes Fleisch (Hunger)\n\n[[DARK_AQUA]]Braukunst Tier 5 Zutaten:\n[[YELLOW]]Brauner Pilz(\u00DCbelkeit)\n[[YELLOW]]Tintensack (Blindheit)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]Braukunst Tier 6 Zutaten:\n[[YELLOW]]Gras (S\u00E4ttigung)\n\n[[DARK_AQUA]]Braukunst Tier 7 Zutaten:\n[[YELLOW]]Giftige Kartoffel(Verwesung)\n\n[[DARK_AQUA]]Braukunst Tier 8 Zutaten:\n[[YELLOW]]Normaler Goldener Apfel (Resistenz)
|
||||
##Archery
|
||||
Guides.Archery.Section.0=[[DARK_AQUA]]\u00DCber Bogenschie\u00DFen:\n[[YELLOW]]In Bogenschie\u00DFen geht es um die Verwendung von Pfeil und\n[[YELLOW]]Bogen.\n\n[[YELLOW]]Es gibt unterschiedliche Kampfboni, wie Zusatzschaden,\n[[YELLOW]]der mit dem Level steigt und der F\u00E4higkeit Feinde im PVP\n[[YELLOW]]zu bet\u00E4uben. Zus\u00E4tzlich kannst du einige verschossene\n[[YELLOW]]Pfeile aus den Leichen deiner Feinde wiedergewinnen.
|
||||
Guides.Archery.Section.1=[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]XP erh\u00E4ltst du durch das Abschie\u00DFen von Monstern und\n[[YELLOW]]anderen Spielern.
|
||||
Guides.Archery.Section.2=[[DARK_AQUA]]Wie funktioniert der Kunstschuss?\n[[YELLOW]]Kunstschuss erh\u00F6ht den Schaden deines Schusses.\n[[YELLOW]]Der Zusatzschaden steigt mit deinem Bogen Level.\n[[YELLOW]]In den Standardeinstellungen steigt der Schaden um 10%\n[[YELLOW]]alle 50 Level, mit einem Maximum von 200% extra.
|
||||
Guides.Archery.Section.3=[[DARK_AQUA]]Wie Funktioniert Bet\u00E4ubung?\n[[YELLOW]]Du hast eine passive Wahrscheinlichkeit andere Spieler\n[[YELLOW]]zu bet\u00E4uben wenn du sie anschie\u00DFt. Der Spieler wird\n[[YELLOW]]gezwungen f\u00FCr eine kurze Weile senkrecht nach oben zu\n[[YELLOW]]schauen.\n[[YELLOW]]Ein Bet\u00E4ubungsschuss f\u00FCgt au\u00DFerdem 4 Schadenspunkte \n[[YELLOW]](2 Herzen) extra zu.
|
||||
Guides.Archery.Section.4=[[DARK_AQUA]]Wie funktioniert die Pfeilr\u00FCckgewinnung?\n[[YELLOW]]Du hast eine passive Wahrscheinlichkeit einige Pfeile\n[[YELLOW]]zur\u00FCckzubekommen wenn du Monster mit dem Bogen t\u00F6test.\n[[YELLOW]]Die Wahrscheinlichkeit steigt mit dem Bogen Level.\n[[YELLOW]]Standardm\u00E4\u00DFig steigt diese F\u00E4higkeit um 0.1% pro Level, bis\n[[YELLOW]]100% bei Level 1000.
|
||||
##Axes
|
||||
Guides.Axes.Section.0=[[DARK_AQUA]]\u00DCber Axt:\n[[YELLOW]]Mit dem Axt Skill kannst du die Axt f\u00FCr viel mehr als\n[[YELLOW]]nur abholzen verwenden! Du kannst Monster und Spieler\n[[YELLOW]]sprichw\u00F6rtlich weghacken und ihnen t\u00F6dliche\n[[YELLOW]]Schl\u00E4ge verpassen oder sie zur\u00FCckweichen lassen\n[[YELLOW]]Deine Axt zerst\u00F6rt au\u00DFerdem sehr gut R\u00FCstungen,\n[[YELLOW]]was mit h\u00F6herem Level noch mehr ansteigt.
|
||||
Guides.Axes.Section.1=[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Um XP zu bekommen musst du Spieler oder Monster \n[[YELLOW]]mit einer Axt schlagen.
|
||||
Guides.Axes.Section.2=[[DARK_AQUA]]Wie funktioniert der Sch\u00E4delspalter?\n[[YELLOW]]Diese F\u00E4higkeit erlaubt dir einen Angriff mit Fl\u00E4chenschaden\n[[YELLOW]]auszuf\u00FChren.\n[[YELLOW]]Der Fl\u00E4chenschaden ist halb so gro\u00DF wie der \n[[YELLOW]]Hauptangriff, also perfekt f\u00FCr gro\u00DFe Ansammlungen von Mobs.
|
||||
Guides.Axes.Section.3=[[DARK_AQUA]]Wie funktionieren kritische Treffer?\n[[YELLOW]]Kritische Treffer sind eine passive F\u00E4higkeit\n[[YELLOW]]die ab und zu Zusatzschaden zuf\u00FCgen.\n[[YELLOW]]In den Standardeinstellungen wird alle 2 Level \n[[YELLOW]]die Wahrscheinlichkeit um 0.1% erh\u00F6ht. Das f\u00FCgt Mobs\n[[YELLOW]]doppelten und anderen Spielern 1,5 fachen Schaden zu.
|
||||
Guides.Axes.Section.4=[[DARK_AQUA]]Wie funktioniert die Axt-Beherrschung?\n[[YELLOW]]Axt Beherrschung ist eine passive F\u00E4higkeit die deinen\n[[YELLOW]]Axt-Schl\u00E4gen Zusatzschaden hinzuf\u00FCgt.\n[[YELLOW]]Standardm\u00E4\u00DFig steigt der Schaden um 1 alle 50 Level,\n[[YELLOW]]maximal auf 4 Extraschaden bei Level 200.
|
||||
Guides.Axes.Section.5=[[DARK_AQUA]]Wie funktioniert Wucht?\n[[YELLOW]]Schlage m\u00E4chtig zu und zerst\u00F6re R\u00FCstungen!\n[[YELLOW]]Wucht hat eine passive Wahrscheinlichkeit gegnerische\n[[YELLOW]]R\u00FCstung zu besch\u00E4digen. Dieser Schaden steigt mit deinem Axt\n[[YELLOW]]Level.
|
||||
Guides.Axes.Section.6=[[DARK_AQUA]]Wie funktioniert der Wucht-Schlag?\n[[YELLOW]]Du hast eine passive Chance Monster und\n[[YELLOW]]Spieler beim Schlag zur\u00FCckweichen zu lassen\n[[YELLOW]]Standardm\u00E4\u00DFig ist die Wahrscheinlichkeit 25%\n[[YELLOW]]Zus\u00E4tzlich f\u00FCgst du Zusatzschaden zu.
|
||||
##Excavation
|
||||
Guides.Excavation.Section.0=[[DARK_AQUA]]\u00DCber Graben:\n[[YELLOW]]Graben ist die F\u00E4higkeit Sch\u00E4tze im Dreck zu finden.\n[[YELLOW]]Durch Aufgraben des Landes wirst du Sch\u00E4tze finden\n[[YELLOW]]Je l\u00E4nger du das tust, desto mehr Sch\u00E4tze findest du.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]XP erh\u00E4ltst du durch Schaufeln.\n[[YELLOW]]Nur bestimmte Materialen geben XP und Sch\u00E4tze.
|
||||
Guides.Excavation.Section.1=[[DARK_AQUA]]Kompatible Materialien:\n[[YELLOW]]Gras, Erde, Sand, Lehm, Kies, Myzel, Seelensand, Schnee
|
||||
Guides.Excavation.Section.2=[[DARK_AQUA]]Wie funktioniert der Giga Bohrer?\n[[YELLOW]]Halte eine Schaufel in der Hand und mach Rechtsklick.\n[[YELLOW]]Von nun an hast du ca. 4 Sekunden um einen kompatiblem\n[[YELLOW]]Block abzubauen.\n[[YELLOW]]Daraufhin wird der Giga Bohrer aktiviert.
|
||||
Guides.Excavation.Section.3=[[DARK_AQUA]]Was ist der Giga Bohrer?\n[[YELLOW]]Giga Bohrer ist eine F\u00E4higkeit deren Dauer vom Graben Skill\n[[YELLOW]]abh\u00E4ngt.\n[[YELLOW]]Es verdreifacht die Wahrscheinlichkeit Sch\u00E4tze zu finden\n[[YELLOW]]und erm\u00F6glicht sofortiges Abbauen kompatibler Materialien.
|
||||
Guides.Excavation.Section.4=[[DARK_AQUA]]Wie funktioniert der Schatz J\u00E4ger?\n[[YELLOW]]Jeder m\u00F6gliche Schatz hat seine eigene Level Voraussetzung\n[[YELLOW]]um zu erscheinen, folglich ist es schwer[[YELLOW]]zu sagen inwiefern es \n[[YELLOW]]dir hilft ein höheres Level zu haben.\n[[YELLOW]]Je h\u00F6her das Level, desto mehr Sch\u00E4tze k\u00F6nnen gefunden\n[[YELLOW]]werden.
|
||||
Guides.Excavation.Section.5=Beachte au\u00DFerdem, dass jedes kompatible Material seine\n[[YELLOW]]eigenen einzigartigen Sch\u00E4tze hat.\n[[YELLOW]]Anders ausgedr\u00FCckt: Sch\u00E4tze die du in Kies findest\n[[YELLOW]]gibt es nicht zwingend in Erde.
|
||||
Guides.Excavation.Section.6=[[DARK_AQUA]]Bemerkung zu Graben:\n[[YELLOW]]Graben Drops sind vollkommen anpassbar\n[[YELLOW]]Ergebnisse unterscheiden sich deshalb von Server zu Server.
|
||||
##Fishing
|
||||
Guides.Fishing.Section.0=[[DARK_AQUA]]\u00DCber Angeln:\n[[YELLOW]]Mit dem Angeln Skill ist Angeln wieder aufregend!\n[[YELLOW]]Finde versteckte Sch\u00E4tze oder Rei\u00DFe Items von Monstern.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Fang Fische.
|
||||
Guides.Fishing.Section.1=[[DARK_AQUA]]Wie funktioniert der Schatz J\u00E4ger?\n[[YELLOW]]Mit dieser F\u00E4higkeit kannst du beim Angeln Sch\u00E4tze finden.\n[[YELLOW]]Diese k\u00F6nnen sogar verzaubert sein!\n[[YELLOW]]Jeder m\u00F6gliche Schatz kann mit jedem Level gefunden\n[[YELLOW]]werden. Die H\u00E4ufigkeit h\u00E4ngt von dem Wert des Items ab.\n[[YELLOW]]Je h\u00F6her der Angeln Skill ist, desto einfacher wird es\n[[YELLOW]]wertvolle Sch\u00E4tze zu finden.
|
||||
Guides.Fishing.Section.2=[[DARK_AQUA]]Wie funktioniert Eisangeln?\n[[YELLOW]]Mit dieser F\u00E4higkeit kannst du in Eisseen angeln!\n[[YELLOW]]Wirf deine Angeln in einem Eissee aus\n[[YELLOW]]um ein kleines Loch zum Angeln zu erstellen.
|
||||
Guides.Fishing.Section.3=[[DARK_AQUA]]Wie funktioniert die Profiangel?\n[[YELLOW]]Mit dieser passiven F\u00E4higkeit bei\u00DFen mehr Fische an.\n[[YELLOW]]Sobald die F\u00E4higkeit freigeschaltet ist bringt das Angeln\n[[YELLOW]]in einem Boot oder Ozean die doppelte \n[[YELLOW]]Anbei\u00DFwahrscheinlichkeit.
|
||||
Guides.Fishing.Section.4=[[DARK_AQUA]]Wie funktioniert Rei\u00DFen?\n[[YELLOW]]Diese F\u00E4higkeit erm\u00F6glich es Monstern Items zu entrei\u00DFen,\n[[YELLOW]]indem du sie an deine Angel h\u00E4ngst. \n[[YELLOW]]Die Monster lassen das Item, das sie normalerweise beim Tod\n[[YELLOW]]fallen lassen fallen.\n[[YELLOW]]Au\u00DFerdem gibt es eine kleine Wahrscheinlichkeit Monstersch\u00E4del\n[[YELLOW]]zu bekommen.
|
||||
Guides.Fishing.Section.5=[[DARK_AQUA]]Wie funktioniert die Fischer-Mahlzeit?\n[[YELLOW]]Du wirst beim Essen von Fisch besser satt.
|
||||
Guides.Fishing.Section.6=[[DARK_AQUA]]Bemerkung zum Angeln:\n[[YELLOW]]Angeln Drops sind vollkommen anpassbar.\n[[YELLOW]]Ergebnisse unterscheiden sich deshalb von Server zu Server.
|
||||
##Herbalism
|
||||
Guides.Herbalism.Section.0=[[DARK_AQUA]]\u00DCber Pflanzenkunde\n[[YELLOW]]In Pflanzenkunde geht es um das Ernten.\n\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Ernte Pflanzen.
|
||||
Guides.Herbalism.Section.1=[[DARK_AQUA]]Kompatible Blocks\n[[YELLOW]]Weizen, Kartoffeln, Karotten, Melonen, K\u00FCrbisse,\n[[YELLOW]]Zuckerrohr, Kakaobohnen, Blumen, Kakteen,\n[[YELLOW]]Pilze, Netherwarzen, Seerosen und Ranken.
|
||||
Guides.Herbalism.Section.2=[[DARK_AQUA]]Wie funktioniert Gr\u00FCnes Land?\n[[YELLOW]]Gr\u00FCnes Land ist eine aktive F\u00E4higkeit die du aktivierst indem du\n[[YELLOW]]mit einer Harke in der Hand rechtsklickst.\n[[YELLOW]]Gr\u00FCnes Land erm\u00f6glicht einen 3-fachen Ertrag beim Ernten.\n[[YELLOW]]Au\u00DFerdem erm\u00F6glich es Leben in zu hauchen und sie\n[[YELLOW]]mithilfe von Samen aus dem Inventar zu verwandeln.
|
||||
Guides.Herbalism.Section.3=[[DARK_AQUA]]Wie funktioniert der Gr\u00FCne Daumen (Samen)?\n[[YELLOW]]Diese passive F\u00E4higkeit pflanz automatisch beim Ernten nach.\n[[YELLOW]]Der Erfolg h\u00E4ngt vom Pflanzenkunde Level ab.
|
||||
Guides.Herbalism.Section.4=[[DARK_AQUA]]Wie funktioniert der Gr\u00FCne Daumen(Blocks)?\n[[YELLOW]]Diese aktive F\u00E4higkeit erm\u00F6glich es Bl\u00F6cke in ihre \n[[YELLOW]]"Naturverwandte" Form zu verwandeln. Klicke dazu mit der\n[[YELLOW]]rechten Maustaste auf einen Block, w\u00E4hrend du Samen in\n[[YELLOW]]der Hand h\u00E4ltst. \n[[YELLOW]]Pro Versuch kostet es dich einen Samen.\n[[YELLOW]]Der Erfolg h\u00E4ngt vom Pflanzenkunde Level ab.
|
||||
Guides.Herbalism.Section.5=[[DARK_AQUA]]Wie funktioniert das Bauernfr\u00FChst\u00FCck?\n[[YELLOW]]Du wirst beim Essen von Brot, Keksen, Melonen, Pilzsuppe,\n[[YELLOW]]Karotten und Kartoffeln satter.
|
||||
Guides.Herbalism.Section.6=[[DARK_AQUA]]Wie funktioniert Hylians Gl\u00FCck?\n[[YELLOW]]Diese passive F\u00E4higkeit gibt dir eine Chance Items zu finden\n[[YELLOW]]wenn du bestimmte Bl\u00F6cke mit dem Schwert abbaust.
|
||||
Guides.Herbalism.Section.7=[[DARK_AQUA]]Wie funktionieren Doppeldrops?\n[[YELLOW]]Du erh\u00E4ltst beim Ernten mehr Ertrag.
|
||||
##Mining
|
||||
Guides.Mining.Section.0=[[DARK_AQUA]]\u00DCber Bergbau:\n[[YELLOW]]Im Bergbau musst du Steine und Erze sammeln. Du erh\u00E4ltst\n[[YELLOW]]ab und zu zus\u00E4tzliche Drops.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Um Erfahrung zu sammeln musst du mit der Spitzhacke abbauen.\n[[YELLOW]]Nur bestimmte Blocks geben XP.
|
||||
Guides.Mining.Section.1=[[DARK_AQUA]]Kompatible Materialien:\n[[YELLOW]]Stein, Kohleerz, Eisenerz, Golderz, Diamanterz, Redstoneerz,\n[[YELLOW]]Lapiserz, Obsidian, Bemooster Bruchstein, Endstein,\n[[YELLOW]]Glowstone, und Netherrack.
|
||||
Guides.Mining.Section.2=[[DARK_AQUA]]Wie funktioniert Super-Brecher?:\n[[YELLOW]]Mache einen Rechtsklick w\u00E4hrend du eine Spitzhacke in der\n[[YELLOW]]Hand h\u00E4ltst.\n[[YELLOW]]Von nun an hast du ungef\u00E4hr 4 Sekunden um ein mit Bergbau\n[[YELLOW]]kompatibles Material abzubauen, daraufhin wird Super-Brecher\n[[YELLOW]]aktiviert.
|
||||
Guides.Mining.Section.3=[[DARK_AQUA]]Was ist Super-Brecher?\n[[YELLOW]]Super-Brecher ist eine F\u00E4higkeit deren Dauer\n[[YELLOW]]vom Bergbau Skill abh\u00E4ngt. Es verdreifacht die \n[[YELLOW]]Wahrscheinlichkeit Sch\u00E4tze zu finden und erm\u00F6glicht\n[[YELLOW]]sofortiges Abbauen kompatibler Materialien.
|
||||
Guides.Mining.Section.4=[[DARK_AQUA]]Wie benutzt man Z\u00FCndstoff?:\n[[YELLOW]]Halte ein Feuerzeug in der Hand, b\u00FCck dich und klicke aus\n[[YELLOW]]sicherer Entfernung mit der rechten Maustaste auf das TNT.\n[[YELLOW]]Das TNT wird sofort explodieren.
|
||||
Guides.Mining.Section.5=[[DARK_AQUA]]Wie funktioniert Z\u00FCndstoff?\n[[YELLOW]]Z\u00FCndstoff ist eine F\u00E4higkeit mit einer Abklingzeit, deren St\u00E4rke\n[[YELLOW]]vom Level abh\u00E4ngt. Sie erlaubt dir beim Abbauen mit TNT dieses\n[[YELLOW]]aus der Ferne zu z\u00FCnden. Z\u00FCndstoff besteht aus 3 Teilen.\n[[YELLOW]]Erstens dem Sprengmeister mit gr\u00F6\u00DFeren Explosionen\n[[YELLOW]]Zweitens dem Explosions-Experten, der Schaden von TNT\n[[YELLOW]]reduziert.\n[[YELLOW]]Die dritte F\u00E4higkeit erh\u00F6ht einfach den Erzertrag und\n[[YELLOW]]und reduziert den Schutt.
|
||||
##Repair
|
||||
Guides.Repair.Section.0=[[DARK_AQUA]]\u00DCber Reparatur:\n[[YELLOW]]Reparatur erlaub dir an einem Eisenblock Werkzeuge und\n[[YELLOW]]Waffen zu reparieren.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Repariere Werkzeuge am Eisenblockamboss\n[[RED]]Achtung: [[YELLOW]]Das ist nicht der normale Minecraft Amboss!
|
||||
Guides.Repair.Section.1=[[DARK_AQUA]]Wie kann ich Reparatur verwenden?\n[[YELLOW]]Platziere einen mcMMO Amboss, halte das zu reparierende Item\n[[YELLOW]]in der Hand und klicke mit der rechten Maustaste auf ihn. Zum\n[[YELLOW]]Reparieren benötigst du die Ausgangsmaterialien im Inventar,\n[[YELLOW]]diese werden dir im Zuge der Reparatur abgezogen.
|
||||
Guides.Repair.Section.2=[[DARK_AQUA]]Wie funktioniert der Reparatur Meister?\n[[YELLOW]]Mit dem Reparatur Meister wird dein Werkzeug ein bisschen\n[[YELLOW]]besser als normalerweise repariert.\n[[YELLOW]]Der Bonus ist abh\u00E4ngig vom Reparatur Level.
|
||||
Guides.Repair.Section.3=[[DARK_AQUA]]Wie funktioniert Super Reparatur?\n[[YELLOW]]Mit Super Reparatur werden ab und zu deine Items\n[[YELLOW]]doppelt so gut repariert.
|
||||
Guides.Repair.Section.4=[[DARK_AQUA]]Wie funktioniert Arkanes Schmieden?\n[[YELLOW]]Diese F\u00E4higkeit erm\u00F6glicht dir mit einer gewissen\n[[YELLOW]]Wahrscheinlichkeit Verzauberungen auf Items zu erhalten.\n[[YELLOW]]Verzauberungen k\u00F6nnen erhalten, vermindert werden oder\n[[YELLOW]]ganz verloren gehen.
|
||||
##Salvage
|
||||
Guides.Salvage.Section.0=[[DARK_AQUA]]\u00DCber Verwerten:\n[[YELLOW]]Mit einem Goldamboss kannst du R\u00FCstungen und\n[[YELLOW]]Werkzeuge verwerten.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Verwerten ist ein vom Angeln und Reparieren abh\u00E4ngiger Skill\n[[YELLOW]]Sein Level ist die H\u00E4lfte von deren Summe.
|
||||
Guides.Salvage.Section.1=[[DARK_AQUA]]Wie funktioniert Verwerten?\n[[YELLOW]]Platziere einen Goldamboss und rechtsklicke mit dem Item in\n[[YELLOW]]der Hand. Das item wird zerst\u00F6rt und in seine\n[[YELLOW]]Bestandteile zerlegt.\n\n[[YELLOW]]Beispielsweise gibt eine Eisenaxt Eisenbarren.
|
||||
Guides.Salvage.Section.2=[[DARK_AQUA]]Wie funktioniert Fortgeschrittenes Verwerten?\n[[YELLOW]]Sobald freigeschaltet, kannst du besch\u00E4digte Items verwerten.\n[[YELLOW]]Der Ertrag steigt mit dem Level.\n[[YELLOW]]Der Mindestertrag ist immer 1 Item, ansonsten kannst du nicht\n[[YELLOW]]verwerten.
|
||||
Guides.Salvage.Section.3=[[DARK_AQUA]]Zur Verbildlichung ein Beispiel:\n[[YELLOW]]Sagen wir verwerten eine Goldene Spitzhacke mit 80%\n[[YELLOW]]Haltbarkeit, bedeutet das, dass wir nur 2 Gold bekommen\n[[YELLOW]]k\u00F6nnen (Spitzhacke=3 Goldbarren, also jeder 33,33%\n[[YELLOW]]Haltbarkeit) was 66% entspricht. Wenn dein\n[[YELLOW]]Ertragsprozentsatz unter 66% liegt wirst du keine 2 Barren\n[[YELLOW]]bekommen k\u00F6nnen. Wenn sie dar\u00FCber ist, kannst du den\n[[YELLOW]]"gesamten Betrag" bekommen, der aus 2 Eisenbarren besteht.
|
||||
Guides.Salvage.Section.4=[[DARK_AQUA]]Wie funktioniert Arkanes Verwerten?\n[[YELLOW]]Diese F\u00E4higkeit erm\u00F6glicht es verzauberte B\u00FCcher beim\n[[YELLOW]]Verwerten von verzauberten Items zu bekommen.\n[[YELLOW]]Verzauberungen k\u00F6nnen vollkommen oder teilweise extrahiert\n[[YELLOW]]werden.\n[[YELLOW]]Bei einer teilweisen Extraktion wird das Verzauberungslevel\n[[YELLOW]]reduziert.
|
||||
##Smelting
|
||||
Guides.Smelting.Section.0=Kommt irgendwann mal...
|
||||
Guides.Smelting.Section.1=Immer noch hier?
|
||||
##Swords
|
||||
Guides.Swords.Section.0=[[DARK_AQUA]]\u00DCber Schwerter:\n[[YELLOW]]Diese F\u00E4higkeit gibt Kampfboni bei Benutzung\n[[YELLOW]]des Schwertes.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Verletze Monster und Spieler mit dem Schwert.
|
||||
Guides.Swords.Section.1=[[DARK_AQUA]]Wie funktioniert der S\u00E4gezahnschlag??\n[[YELLOW]]S\u00E4gezahnschlag ist eine aktive F\u00E4higkeit die du mit Rechtsklick \n[[YELLOW]]aktivierst.\n[[YELLOW]]Mit dieser F\u00E4higkeit kannst du Fl\u00E4chenschaden verteilen. \n[[YELLOW]]Au\u00DFerdem blutet das Ziel f\u00FCr kurze Zeit.
|
||||
Guides.Swords.Section.2=[[DARK_AQUA]]Wie funktioniert der Gegenangriff?\n[[YELLOW]]Gegenangriff ist eine aktive F\u00E4higkeit,\n[[YELLOW]]bei der Angriffe von Monstern beim Blocken um bis zu 50%\n[[YELLOW]]des erhaltenen Schadens reflektiert werden k\u00F6nnen.
|
||||
Guides.Swords.Section.3=[[DARK_AQUA]]Wie funktioniert Blutung?\n[[YELLOW]]Blutung f\u00FCgt den Gegnern alle 2 Sekunden Schaden zu. Das\n[[YELLOW]]Bluten geht solange bis die F\u00E4higkeit ausl\u00E4uft oder der\n[[YELLOW]]Gegner stirbt.\n[[YELLOW]]Die Dauer der Blutung erh\u00F6ht sich mit dem Schwert Skill.
|
||||
##Taming
|
||||
Guides.Taming.Section.0=[[DARK_AQUA]]\u00DCber Z\u00E4hmen:\n[[YELLOW]]Z\u00E4hmen gibt dem Spieler diverse Kampfboni beim Kampf mit\n[[YELLOW]]gez\u00E4hmten W\u00F6lfen.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Um XP zu bekommen musst du Tiere z\u00E4hmen oder mit\n[[YELLOW]]deinen W\u00F6lfen k\u00E4mpfen.
|
||||
Guides.Taming.Section.1=[[DARK_AQUA]]Wie funktioniert Ruf der Wildnis?\n[[YELLOW]]Ruf der Wildnis ist eine aktive F\u00E4higkeit die dir erlaubt\n[[YELLOW]]einen Wolf, einen Ozelot oder ein Pferd an deine Seite zu\n[[YELLOW]]rufen. \n[[YELLOW]]Das tust du, indem du Linksklickst w\u00E4hrend du Knochen, Fisch\n[[YELLOW]]oder \u00C4pfel in der Hand h\u00E4ltst.
|
||||
Guides.Taming.Section.2=[[DARK_AQUA]]Wie funktioniert Bestienkunde?\n[[YELLOW]]Bestienkunde erlaubt es die Haustiere zu inspizieren\n[[YELLOW]]Halte einen Knochen in der Hand und klick mit linker Maustaste\n[[YELLOW]]auf das Haustier um Bestienkunde zu aktivieren.
|
||||
Guides.Taming.Section.3=[[DARK_AQUA]]Wie funktioniert Aufschlitzen?\n[[YELLOW]]Aufschlitzen ist eine passive F\u00E4higkeit die beim Ziel\n[[YELLOW]]des Wolfes Blutungen hervorrufen kann. Der Erfolg h\u00E4ngt\n[[YELLOW]]vom Z\u00E4hmen Level ab.
|
||||
Guides.Taming.Section.4=[[DARK_AQUA]]Wie funktionieren gesch\u00E4rfte Klauen?\n[[YELLOW]]Gesch\u00E4rfte Klauen geben Zusatzschaden in Abh\u00E4ngigkeit\n[[YELLOW]]vom Z\u00E4hmen Level.
|
||||
Guides.Taming.Section.5=[[DARK_AQUA]]Wie funktioniert Umweltbewusst?\n[[YELLOW]]Diese passive F\u00E4higkeit erm\u00F6glich W\u00F6lfen sich zu dir zu\n[[YELLOW]]teleportieren wenn sie in die N\u00E4he von Gefahren wie \n[[YELLOW]]Kakteen/Lava kommen. \n[[YELLOW]]Zus\u00E4tzlich sind W\u00F6lfe immun gegen Fallschaden.
|
||||
Guides.Taming.Section.6=[[DARK_AQUA]]Wie funktioniert Dicker Pelz?\n[[YELLOW]]Diese passive F\u00E4higkeit reduziert Schaden und \n[[YELLOW]]macht W\u00F6lfe feuerresistent.
|
||||
Guides.Taming.Section.7=[[DARK_AQUA]]Wie funktioniert Schocksicher?\n[[YELLOW]]Diese passive F\u00E4higkeit reduziert den Schaden\n[[YELLOW]]durch Explosionen.
|
||||
Guides.Taming.Section.8=[[DARK_AQUA]]Wie funktioniert Schnell-Imbiss?\n[[YELLOW]]Diese passive F\u00E4higkeit gibt dem Wolf eine Chance sich zu \n[[YELLOW]]erholen wann immer er einen Gegner verletzt.
|
||||
##Unarmed
|
||||
Guides.Unarmed.Section.0=[[DARK_AQUA]]\u00DCber Unbewaffnet:\n[[YELLOW]]Mit Unbewaffnet kann der echte Mann endlich mit seinen\n[[YELLOW]]F\u00E4usten angemessen zuschlagen. \n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]K\u00E4mpfe unbewaffnet gegen Monster und andere Spieler
|
||||
Guides.Unarmed.Section.1=[[DARK_AQUA]]Wie funktioniert Berserker?\n[[YELLOW]]Berserker ist eine aktive F\u00E4higkeit die mit Rechtsklick\n[[YELLOW]]aktiviert wird.\n[[YELLOW]]Im Berserker Modus f\u00FCgst du 50% mehr Schaden zu und\n[[YELLOW]]kannst weiche Materiale wie Gras und Erde sofort abbauen.
|
||||
Guides.Unarmed.Section.2=[[DARK_AQUA]]Wie funktioniert der Eiserne Arm?\n[[YELLOW]]Eiserner Arm erh\u00F6ht den Monstern und Spielern mit den\n[[YELLOW]]F\u00E4usten zugef\u00FCgten Schaden.
|
||||
Guides.Unarmed.Section.3=[[DARK_AQUA]]Wie funktioniert Pfeilablenkung?\n[[YELLOW]]Pfeilablenkung ist eine passive F\u00E4higkeit die ab und zu\n[[YELLOW]]Pfeile von Skeletten und angreifenden Spielern ablenkt.\n[[YELLOW]]Diese Pfeile prallen einfach ab und fallen auf den Boden.
|
||||
Guides.Unarmed.Section.4=[[DARK_AQUA]]Wie funktioniert der Eiserne Griff?\n[[YELLOW]]Eiserner Griff ist eine passive F\u00E4higkeit die Entwaffnung\n[[YELLOW]]verhindert. Mit h\u00F6herem Level ist es umso einfacher\n[[YELLOW]]Entwaffnung zu verhindern.
|
||||
Guides.Unarmed.Section.5=[[DARK_AQUA]]Wie funktioniert Entwaffnen?\n[[YELLOW]]Diese passive F\u00E4higkeit erm\u00F6glich es den Gegner zu\n[[YELLOW]]entwaffnen, sodass seine Waffe auf den Boden f\u00E4llt.
|
||||
##Woodcutting
|
||||
Guides.Woodcutting.Section.0=[[DARK_AQUA]]\u00DCber Holzf\u00E4ller:\n[[YELLOW]]Im Holzf\u00E4llen geht es um das F\u00E4llen von B\u00E4umen.\n\n[[DARK_AQUA]]XP ZUWACHS:\n[[YELLOW]]Du kriegst XP f\u00FCr das abholzen von Baumst\u00E4mmen.
|
||||
Guides.Woodcutting.Section.1=[[DARK_AQUA]]Wie funktioniert der Baumf\u00E4ller?\n[[YELLOW]]Baumf\u00E4ller ist eine aktive F\u00E4higkeit. Mache mit der Axt in der\n[[YELLOW]]Hand einen Rechtsklick um sie zu aktivieren. Der Baum\n[[YELLOW]]wird sofortig gef\u00E4llt und alle St\u00E4mme abgebaut.
|
||||
Guides.Woodcutting.Section.2=[[DARK_AQUA]]Wie funktioniert Bl\u00E4ttersturm?\n[[YELLOW]]Bl\u00E4ttersturm ist eine passive F\u00E4higkeit die Bl\u00E4tter\n[[YELLOW]]bei Ber\u00FChrung mit der Axt sofortig bricht. Standardm\u00E4\u00DFig\n[[YELLOW]]wird diese F\u00E4higkeit bei Level 100 freigeschaltet.
|
||||
Guides.Woodcutting.Section.3=[[DARK_AQUA]]Wie funktionieren Doppel-Drops?\n[[YELLOW]]Diese passive F\u00E4higkeit gibt dir ab und zu doppelten\n[[YELLOW]]Ertrag f\u00FCr jeden Stamm den du f\u00E4llst.
|
||||
#INSPECT
|
||||
Inspect.Offline=[[RED]]Du hast nicht die Rechte um offline Spieler zu inspizieren!
|
||||
Inspect.OfflineStats=mcMMO Stats f\u00FCr Offline Spieler [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Stats f\u00FCr [[YELLOW]]{0}
|
||||
Inspect.TooFar=Du bist zu weit entfernt um den Spieler zu inspizieren!
|
||||
#ITEMS
|
||||
Item.ChimaeraWing.Fail=**CHIMAERA FL\u00DCGEL GESCHEITERT!**
|
||||
Item.ChimaeraWing.Pass=**CHIMAERA FL\u00DCGEL*
|
||||
Item.ChimaeraWing.Name=Chimaera Fl\u00FCgel
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Teleportiert dich zu deinem Bett.
|
||||
Item.Generic.Wait=Du musst warten bis du das wieder verwenden kannst! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=Du wurdest vor kurzem verletzt und musst warten bis du das verwenden kannst. [[YELLOW]]({0}s)
|
||||
Item.FluxPickaxe.Name=Flux Spitzhacke
|
||||
Item.FluxPickaxe.Lore.1=[[GRAY]]Hat eine Wahrscheinlichkeit Erze sofort zu schmelzen.
|
||||
Item.FluxPickaxe.Lore.2=[[GRAY]]Ben\u00F6tigt Schmelzen Level {0}+
|
||||
#TELEPORTATION
|
||||
Teleport.Commencing=[[GRAY]]Beginne Teleport in [[GOLD]]({0}) [[GRAY]]Sekunden, bitte stillhalten...
|
||||
Teleport.Cancelled=[[DARK_RED]]Teleport abgebrochen!
|
||||
#SKILLS
|
||||
Skills.Child=[[GOLD]](VERWANDTER SKILL)
|
||||
Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Du brauchst mehr[[GRAY]]{0}
|
||||
Skills.Parents=ELTERN
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.ChildStats={0}[[GREEN]]{1}
|
||||
Skills.TooTired=Du bist zu m\u00FCde um diese F\u00E4higkeit zu verwenden. [[YELLOW]]({0}s)
|
||||
Skills.Cancelled={0} abgebrochen!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Erneuter Rechtsklick zur Best\u00E4tigung [[GOLD]]{0}[[GREEN]]. Linksklick zum abbrechen.
|
||||
#STATISTICS
|
||||
Stats.Header.Combat=[[GOLD]]-=KAMPFSKILLS=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=SAMMELSKILLS=-
|
||||
Stats.Header.Misc=[[GOLD]]-=DIV.SKILLS=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Stats
|
||||
#PERKS
|
||||
Perks.XP.Name=Erfahrung
|
||||
Perks.XP.Desc=Erhalte mehr Erfahrung in bestimmen Skills.
|
||||
Perks.Lucky.Name=Gl\u00FCck
|
||||
Perks.Lucky.Desc={0} Skills und F\u00E4higkeiten werden um 33.3% \u00F6fter aktiviert.
|
||||
Perks.Lucky.Desc.Login=Bestimmte Skills und F\u00E4higkeiten werden um 33.3% \u00F6fter aktiviert.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} mit Gl\u00FCcksbonus)
|
||||
Perks.Cooldowns.Name=Schnelle Erholung
|
||||
Perks.Cooldowns.Desc=Verk\u00FCrzt die Abklingzeit um {0}.
|
||||
Perks.ActivationTime.Name=Ausdauer
|
||||
Perks.ActivationTime.Desc=Erh\u00F6ht die F\u00E4higkeitszeit um {0} Sekunden.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s mit Ausdauer Bonus)
|
||||
#HARDCORE
|
||||
Hardcore.Mode.Disabled=[[GOLD]][mcMMO] Hardcore Modus {0} deaktiviert f\u00FCr {1}.
|
||||
Hardcore.Mode.Enabled=[[GOLD]][mcMMO] Hardcore Modus {0} aktiviert f\u00FCr {1}.
|
||||
Hardcore.DeathStatLoss.Name=Skillverlust bei Tod:
|
||||
Hardcore.DeathStatLoss.PlayerDeath=[[GOLD]][mcMMO] [[DARK_RED]]Du hast durch den Tod[[BLUE]]{0}[[DARK_RED]] Level verloren.
|
||||
Hardcore.DeathStatLoss.PercentageChanged=[[GOLD]][mcMMO] Der Verlustprozentsatz wurde auf {0} ge\u00E4ndert.
|
||||
Hardcore.Vampirism.Name=Vampirismus
|
||||
Hardcore.Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] war nicht erfahren genug um dir Wissen zu hinterlassen.
|
||||
Hardcore.Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]Du hast [[BLUE]]{0}[[DARK_AQUA]] Level von [[YELLOW]]{1} [[DARK_AQUA]] gestohlen.
|
||||
Hardcore.Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] hat es nicht geschafft Wissen von dir zu stehlen!
|
||||
Hardcore.Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] hat[[BLUE]]{1}[[DARK_RED]] Level von dir gestohlen!
|
||||
Hardcore.Vampirism.PercentageChanged=[[GOLD]][mcMMO] Der Vampirismus Prozentsatz wurde auf {0} ge\u00E4ndert.
|
||||
#MOTD
|
||||
MOTD.Donate=[[DARK_AQUA]]Spenden Info:
|
||||
MOTD.Hardcore.Enabled=[[GOLD]][mcMMO] [[DARK_AQUA]]Hardcore Modus aktiviert: [[DARK_RED]]{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Skillverlust bei Tod: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Vampirismus Prozentsatz: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO Boni]
|
||||
MOTD.Version=[[GOLD]][mcMMO] Verwende Version[[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO Webseite
|
||||
#SMELTING
|
||||
Smelting.Ability.FluxMining=Schmelztiegel: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=Brennstoff Effizienz Multiplikator: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0=GESPERRT bis {0}+ Skill (XP BOOST)
|
||||
Smelting.Ability.Locked.1=GESPERRT bis {0}+ Skill (SCHMELZTIEGEL)
|
||||
Smelting.Ability.SecondSmelt=Extra Schmelzung: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=Vanilla XP Multiplikator: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=Brennstoff Effizienz
|
||||
Smelting.SubSkill.FuelEfficiency.Description=Erh\u00F6he die Brenndauer des Brennstoffes in \u00D6fen
|
||||
Smelting.SubSkill.SecondSmelt.Name=Extra Schmelzung
|
||||
Smelting.SubSkill.SecondSmelt.Description=Verdoppelt den Ertrag beim Schmelzen
|
||||
Smelting.Effect.4=Vanilla XP Boost
|
||||
Smelting.Effect.5=Erh\u00F6ht die erhaltene Erfahrung beim Schmelzen
|
||||
Smelting.SubSkill.FluxMining.Name=Schmelztiegel
|
||||
Smelting.SubSkill.FluxMining.Description=M\u00F6glichkeit, Erze direkt beim Abbauen zu Schmelzen
|
||||
Smelting.Listener=Schmelzen:
|
||||
Smelting.SkillName=SCHMELZEN
|
||||
#COMMAND DESCRIPTIONS
|
||||
Commands.Description.addlevels=Gib einem Spieler mcMMO Level
|
||||
Commands.Description.adminchat=Schalte den mcMMO Adminchat an/aus oder sende Adminchat Nachrichten
|
||||
Commands.Description.addxp=Gib einem Spieler mcMMO XP
|
||||
Commands.Description.hardcore=\u00C4ndere den mcMMO hardcore Prozentsatz oder schalte den hardcore Modus an/aus
|
||||
Commands.Description.inspect=Sieh detaillierte mcMMO Informationen \u00FCber einen anderen Spieler
|
||||
Commands.Description.mcability=Schalte die Bereitschaft von mcMMO F\u00E4higkeiten bei Rechtsklick an/aus
|
||||
Commands.Description.mccooldown=Sieh alle mcMMO F\u00E4higkeiten Abklingzeiten
|
||||
Commands.Description.mcgod=Schalte mcMMO godmode an/aus
|
||||
Commands.Description.mchud=\u00C4ndere deinen mcMMO HUD Stil
|
||||
Commands.Description.mcmmo=Zeige eine kurze Beschreibung von mcMMO
|
||||
Commands.Description.mcnotify=Schalte die meisten mcMMO F\u00E4higkeiten Hinweise im Chat an/aus
|
||||
Commands.Description.mcpurge=Bereinige die mcMMO Datenbank von Spielern die {0} Monate nicht online waren oder 0 Level haben.
|
||||
Commands.Description.mcrank=Zeige das mcMMO Ranking f\u00FCr einen Spieler
|
||||
Commands.Description.mcrefresh=Aktualisiere alle Abklingzeiten f\u00FCr mcMMO
|
||||
Commands.Description.mcremove=Entferne einen Benutzer aus der mcMMO Datenbank
|
||||
Commands.Description.mcscoreboard=Verwalte deine mcMMO \u00DCbersicht
|
||||
Commands.Description.mcstats=Zeige deine mcMMO Level und XP
|
||||
Commands.Description.mctop=Zeige die mcMMO Bestenlisten
|
||||
Commands.Description.mmoedit=Editiere die mcMMO Level bei einem Benutzer
|
||||
Commands.Description.mmoupdate=Migriere die mcMMO Datenbank von einer alten Datenbank zur aktuellen
|
||||
Commands.Description.mcconvert=Konvertiert Datenbanktypen oder Erfahrungsformeln
|
||||
Commands.Description.mmoshowdb=Zeige den Namen der aktuellen Datenbank (zur Benutzung mit /mmoupdate)
|
||||
Commands.Description.party=Steuere verschiedene mcMMO Party Einstellungen
|
||||
Commands.Description.partychat=Schalte den mcMMO Party Chat an/aus oder send Party Nachrichten
|
||||
Commands.Description.ptp=Teleportiere zu einem mcMMO Party Mitglied
|
||||
Commands.Description.Skill=Zeige detaillierte Informationen zu einem mcMMO Skill {0}
|
||||
Commands.Description.skillreset=Setze die mcMMO Level f\u00FCr einen Spieler zur\u00FCck
|
||||
Commands.Description.vampirism=Schalte Vampirismus an/aus / \u00E4ndere den Vampirismus Prozentsatz
|
||||
Commands.Description.xplock=Setze deine mcMMO XP-Leiste auf einen bestimmten Skill fest
|
||||
Commands.Description.xprate=\u00C4ndere die mcMMO XP Rate oder starte ein XP Event
|
||||
#UPDATE CHECKER
|
||||
UpdateChecker.Outdated=Du verwendest eine veraltete mcMMO Version!
|
||||
UpdateChecker.NewAvailable=Eine neue Version ist auf BukkitDev erh\u00E4ltlich.
|
||||
#SCOREBOARD HEADERS
|
||||
Scoreboard.Header.PlayerStats=mcMMO Stats
|
||||
Scoreboard.Header.PlayerCooldowns=mcMMO Abklingzeiten
|
||||
Scoreboard.Header.PlayerRank=mcMMO Bestenlisten
|
||||
Scoreboard.Header.PlayerInspect=mcMMO Stats: {0}
|
||||
Scoreboard.Header.PowerLevel=Gesamt Level
|
||||
Scoreboard.Misc.PowerLevel=[[GOLD]]Gesamt Level
|
||||
Scoreboard.Misc.Level=[[DARK_AQUA]]Level
|
||||
Scoreboard.Misc.CurrentXP=[[GREEN]]Aktuelle XP
|
||||
Scoreboard.Misc.RemainingXP=Verbliebene XP
|
||||
Scoreboard.Misc.Cooldown=[[LIGHT_PURPLE]]Abklingzeit
|
||||
Scoreboard.Misc.Overall=[[GOLD]]Insgesamt
|
||||
Scoreboard.Misc.Ability=F\u00E4higkeit
|
||||
#DATABASE RECOVERY
|
||||
Profile.Loading.Success=[[GREEN]]Your mcMMO profile has been loaded.
|
||||
Profile.Loading.Failure=mcMMO still cannot load your data. You may want to [[AQUA]]contact the server owner.\n[[YELLOW]]You can still play on the server, but you will have [[BOLD]]no mcMMO levels[[YELLOW]] and any XP you get [[BOLD]]will not be saved[[YELLOW]].
|
||||
Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]] mcMMO was unable to load the player data for [[YELLOW]]{0}[[RED]]. [[LIGHT_PURPLE]]Please inspect your database setup.
|
||||
@@ -1,862 +0,0 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Atterrissage gracieux**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Esquiv\u00e9**
|
||||
Acrobatics.DodgeChance=Probabilit\u00e9 d\'esquive : [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Roulade
|
||||
Acrobatics.SubSkill.Roll.Description=R\u00e9duit ou annule les d\u00e9g\u00e2ts de chute
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=Roulade gracieuse
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Deux fois plus efficace qu\'une roulade classique
|
||||
Acrobatics.SubSkill.Dodge.Name=Esquive
|
||||
Acrobatics.SubSkill.Dodge.Description=R\u00e9duit de moiti\u00e9 les d\u00e9g\u00e2ts re\u00e7us
|
||||
Acrobatics.Listener=Acrobatie :
|
||||
Acrobatics.SubSkill.Roll.Chance=Probabilit\u00e9 de roulade : [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Probabilit\u00e9 de roulade gracieuse : [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**ROULADE**
|
||||
Acrobatics.SkillName=ACROBATIE
|
||||
Acrobatics.Skillup=Le talent Acrobatie augmente de {0}. Total ({1})
|
||||
Alchemy.SubSkill.Catalysis.Name=Catalyse
|
||||
Alchemy.SubSkill.Catalysis.Description=Augmente la vitesse de confection des potions
|
||||
Alchemy.SubSkill.Concoctions.Name=Concoctions
|
||||
Alchemy.SubSkill.Concoctions.Description=Confection des potions avec plus d\u2019ingr\u00e9dients
|
||||
Alchemy.Listener=Alchimie
|
||||
Alchemy.Ability.Locked.0=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux de talent (CATALYSE)
|
||||
Alchemy.Catalysis.Speed=Vitesse de confection des poitions : [[YELLOW]]{0}
|
||||
Alchemy.Concoctions.Rank=Classement des confectionneurs de potions: [[YELLOW]]{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=Ingr\u00e9dients [[[YELLOW]]{0}[[RED]]]: [[YELLOW]]{1}
|
||||
Alchemy.SkillName=ALCHIMIE
|
||||
Alchemy.Skillup=Le talent Alchimie augmente de {0}. Total ({1})
|
||||
Archery.Combat.DazeChance=Probabilit\u00e9 de d\u00e9sorienter : [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Probabilit\u00e9 de r\u00e9cup\u00e9rer des fl\u00e8ches : [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Tir pr\u00e9cis, bonus de d\u00e9g\u00e2ts : [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Tir pr\u00e9cis
|
||||
Archery.SubSkill.SkillShot.Description=Augmente les d\u00e9g\u00e2ts inflig\u00e9s
|
||||
Archery.SubSkill.Daze.Name=Chance de d\u00e9sorienter : [[YELLOW]]{0}%
|
||||
Archery.SubSkill.Daze.Description=D\u00e9soriente les adversaires en leur faisant {0} dommages
|
||||
Archery.SubSkill.ArrowRetrieval.Name=R\u00e9cup\u00e9ration de fl\u00e8che
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Probabilit\u00e9 de r\u00e9cup\u00e9rer des fl\u00e8ches sur les corps
|
||||
Archery.Listener=Archerie :
|
||||
Archery.SkillName=ARCHERIE
|
||||
Archery.Skillup=Le talent Archerie augmente de {0}. Total ({1})
|
||||
Axes.Ability.Bonus.0=Ma\u00eetrise des haches
|
||||
Axes.Ability.Bonus.1={0} de d\u00e9g\u00e2ts en plus
|
||||
Axes.Ability.Bonus.2=Impact
|
||||
Axes.Ability.Bonus.3=Inflige {0} de d\u00e9g\u00e2ts \u00e0 l\'armure
|
||||
Axes.Ability.Bonus.4=Impact puissant
|
||||
Axes.Ability.Bonus.5=Inflige {0} de d\u00e9g\u00e2ts en plus aux ennemis sans armure
|
||||
Axes.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOTRE HACHE**
|
||||
Axes.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOTRE HACHE**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Vous avez re\u00e7u un coup critique !
|
||||
Axes.Combat.CritChance=Chance d\'infliger un coup critique : [[YELLOW]]{0}%
|
||||
Axes.Combat.CriticalHit=COUP CRITIQUE !
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**FRAPP\u00c9 D\'UNE VIOLENTE INOU\u00cfE**
|
||||
Axes.Combat.GI.Struck=**TOUCH\u00c9 PAR UN IMPACT PUISSANT**
|
||||
Axes.Combat.SS.Struck=[[DARK_RED]]Bloqu\u00e9 par TRANCHE-CR\u00c2NE !
|
||||
Axes.Combat.SS.Length=Dur\u00e9e de Tranche-cr\u00e2ne : [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=Tranche-cr\u00e2ne (Comp\u00e9tence)
|
||||
Axes.SubSkill.SkullSplitter.Description=Inflige des d\u00e9g\u00e2ts de zone
|
||||
Axes.SubSkill.CriticalStrikes.Name=Coup critique
|
||||
Axes.SubSkill.CriticalStrikes.Description=D\u00e9g\u00e2ts doubl\u00e9s
|
||||
Axes.SubSkill.AxeMastery.Name=Ma\u00eetrise des haches
|
||||
Axes.SubSkill.AxeMastery.Description=Ajoute des d\u00e9g\u00e2ts
|
||||
Axes.SubSkill.ArmorImpact.Name=Impact
|
||||
Axes.SubSkill.ArmorImpact.Description=Frappe avec suffisamment de force pour briser l\'armure
|
||||
Axes.SubSkill.GreaterImpact.Name=Impact puissant
|
||||
Axes.SubSkill.GreaterImpact.Description=Inflige des d\u00e9g\u00e2ts bonus aux ennemis sans armure
|
||||
Axes.Listener=Haches :
|
||||
Axes.SkillName=HACHES
|
||||
Axes.Skills.SS.Off=**Tranche-cr\u00e2ne est termin\u00e9**
|
||||
Axes.Skills.SS.On=[[GREEN]]**TRANCHE-CR\u00c2NE ACTIV\u00c9**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Tranche-cr\u00e2ne [[GREEN]]est pr\u00eate !
|
||||
Axes.Skills.SS.Other.Off=Tranche-cr\u00e2ne[[GREEN]] s\'est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Tranche-cr\u00e2ne !
|
||||
Axes.Skillup=Le talent Haches augmente de {0}. Total ({1})
|
||||
Axes.Ability.Bonus.0=Ma\u00eetrise des haches
|
||||
Excavation.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOTRE PELLE**
|
||||
Excavation.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOTRE PELLE**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Foreur (Comp\u00e9tence)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=Drops x3, XP x3, plus rapide
|
||||
Excavation.SubSkill.TreasureHunter.Name=Chasseur de tr\u00e9sors
|
||||
Excavation.SubSkill.TreasureHunter.Description=Capacit\u00e9 \u00e0 d\u00e9terrer des tr\u00e9sors
|
||||
Excavation.Effect.Length=Dur\u00e9e de Foreur : [[YELLOW]]{0}s
|
||||
Excavation.Listener=Excavation:
|
||||
Excavation.SkillName=EXCAVATION
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Votre comp\u00e9tence Foreur est termin\u00e9e**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**FOREUR ACTIV\u00c9**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Foreur [[GREEN]]est pr\u00eate !
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=Foreur[[GREEN]] est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Foreur !
|
||||
Excavation.Skillup=La comp\u00e9tence excavation augmente de {0}. Total ({1})
|
||||
Fishing.Ability.Chance=Chance que \u00e7a morde: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=P\u00eache magique : [[GRAY]] **S\'am\u00e9liore via Chasseur de tr\u00e9sors**
|
||||
Fishing.Ability.Locked.0=BLOCKE JUSQU\'A {0}+ COMPETENCE (SHAKE)
|
||||
Fishing.Ability.Locked.1=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux de talent (PECHEUR SUR GLACE)
|
||||
Fishing.Ability.Locked.2=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveau(x) (Ma\u00eetre P\u00eacheur)
|
||||
Fishing.Ability.Rank=Chasseur de tr\u00e9sors : [[YELLOW]]{0}/{1}
|
||||
Fishing.Ability.TH.DropRate=Taux de Loot: [[DARK_RED]]Pi\u00e8ge: [[YELLOW]]{0} [[GRAY]]Commun: [[YELLOW]]{1} [[GREEN]]Non commun: [[YELLOW]]{2}\n[[BLUE]]Rare: [[YELLOW]]{3} [[LIGHT_PURPLE]]\u00c9pique: [[YELLOW]]{4} [[GOLD]]L\u00e9gendaire: [[YELLOW]]{5} [[AQUA]]Record: [[YELLOW]]{6}
|
||||
Fishing.Ability.TH.MagicRate=Chasse magique: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Chance d\'esquive : [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=P\u00eache sur Glace: Allez p\u00eacher sur de la glace
|
||||
Fishing.Ability.FD=R\u00e9gime de p\u00e9cheur: [[YELLOW]]Classement {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Chasseur de tr\u00e9sors
|
||||
Fishing.SubSkill.TreasureHunter.Description=Remonte des objets inhabituels
|
||||
Fishing.SubSkill.MagicHunter.Name=P\u00eache magique
|
||||
Fishing.SubSkill.MagicHunter.Description=Remonte des objets magiques
|
||||
Fishing.SubSkill.Shake.Name=Secousse (sur monstres)
|
||||
Fishing.SubSkill.Shake.Description=Fait tomber des objets des monstres avec une canne \u00e0 p\u00eache
|
||||
Fishing.SubSkill.FishermansDiet.Name=R\u00e9gime de fermier
|
||||
Fishing.SubSkill.FishermansDiet.Description=Am\u00e9liore la nutrition des produits de la ferme
|
||||
Fishing.SubSkill.MasterAngler.Name=Ma\u00eetre P\u00eacheur
|
||||
Fishing.SubSkill.MasterAngler.Description=Augmente les chances que \u00e7a morde lors de la p\u00eache
|
||||
Fishing.SubSkill.IceFishing.Name=P\u00eache sur Glace
|
||||
Fishing.SubSkill.IceFishing.Description=Vous permet de p\u00eacher dans les biomes glac\u00e9s
|
||||
Fishing.Chance.Raining=[[BLUE]] Bonus de pluie
|
||||
Fishing.Listener=P\u00eache :
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]Vous ressentez quelque chose de magique dans cette prise...
|
||||
Fishing.Ability.TH.Boom=[[GRAY]]TEMPS D\'EXPLOSION !!!
|
||||
Fishing.Ability.TH.Poison=[[GRAY]]Quelque chose n\'a pas bien cuit...
|
||||
Fishing.SkillName=P\u00caCHE
|
||||
Fishing.Skillup=Le talent p\u00eache augmente de {0}. Total ({1})
|
||||
Herbalism.Ability.DoubleDropChance=Double Drop: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=R\u00e9gime du fermier: [[YELLOW]]Classement {0}
|
||||
Herbalism.Ability.GTe.Length=Dur\u00e9e de Main verte : [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=Vous avez besoin de plus de graines pour r\u00e9pandre la terre verte
|
||||
Herbalism.Ability.GTh.Chance=Chances de Mains Vertes: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**MAINS VERTES \u00c9CHOU\u00c9ES**
|
||||
Herbalism.Ability.GTh.Stage=Vos sens de jardinier vous indique que [[YELLOW]] Ce champ est en train de pousser {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**DOIGTS VERTS**
|
||||
Herbalism.Ability.HylianLuck=Probabilit\u00e9 de chance d\'Hylian: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOTRE HOUE**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOTRE HOUE**
|
||||
Herbalism.Ability.ShroomThumb.Chance=Doigts \u00e0 Champignons, Chance: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**DOIGTS VERTS \u00c9CHOU\u00c9**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Main verte (Comp\u00e9tence)
|
||||
Herbalism.SubSkill.GreenTerra.Description=Propage les plantes / triple drops
|
||||
Herbalism.SubSkill.GreenThumb.Name=Mains Vertes (Bl\u00e9)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Plantation automatique apres recolte du champ
|
||||
Herbalism.Effect.4=Mains Vertes (Blocs)
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Faire des briques avec mousse ou faire pousser l\'herbe
|
||||
Herbalism.SubSkill.FarmersDiet.Name=R\u00e9gime de fermier
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Am\u00e9liore la nutrition des produits de la ferme
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Double drops
|
||||
Herbalism.SubSkill.DoubleDrops.Description=Double la quantit\u00e9 r\u00e9colt\u00e9e
|
||||
Herbalism.SubSkill.HylianLuck.Name=Chance d\'Hylian
|
||||
Herbalism.SubSkill.HylianLuck.Description=Donne une petite chance de trouver de rares objets
|
||||
Herbalism.SubSkill.ShroomThumb.Name=Doigts \u00e0 Champignons
|
||||
Herbalism.SubSkill.ShroomThumb.Description=Etend le mycelium sur la terre et l\'herbe
|
||||
Herbalism.HylianLuck=[[GREEN]]la chance d\'Hyrule est avec vous aujourd\'hui !
|
||||
Herbalism.Listener=Herboristerie :
|
||||
Herbalism.SkillName=HERBORISTERIE
|
||||
Herbalism.Skills.GTe.Off=**Votre comp\u00e9tence Main verte est termin\u00e9e**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**MAIN VERTE ACTIV\u00c9**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Main verte [[GREEN]]est pr\u00eate !
|
||||
Herbalism.Skills.GTe.Other.Off=Main verte[[GREEN]] est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Main verte !
|
||||
Herbalism.Skillup=Le talent Herboristerie augmente de {0}. Total ({1})
|
||||
Mining.Ability.Length=Dur\u00e9e de Broyeur : [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux du talent (MINAGE PAR EXPLOSIONS)
|
||||
Mining.Ability.Locked.1=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveau(x) (Grosses Explosions)
|
||||
Mining.Ability.Locked.2=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveau(x) (Expert en d\u00e9molition)
|
||||
Mining.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOTRE PIOCHE**
|
||||
Mining.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOTRE PIOCHE**
|
||||
Mining.SubSkill.SuperBreaker.Name=Broyeur (Comp\u00e9tence)
|
||||
Mining.SubSkill.SuperBreaker.Description=Plus rapide, chance de triple drops
|
||||
Mining.SubSkill.DoubleDrops.Name=Double drops
|
||||
Mining.SubSkill.DoubleDrops.Description=Double la quantit\u00e9 r\u00e9colt\u00e9e
|
||||
Mining.SubSkill.BlastMining.Name=Minage explosif
|
||||
Mining.SubSkill.BlastMining.Description=Bonus au minage \u00e0 l\'explosif
|
||||
Mining.SubSkill.BiggerBombs.Name=Grosses explosions
|
||||
Mining.SubSkill.BiggerBombs.Description=Augmente le rayon d\'explosion de la TNT
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Expert en d\u00e9molition
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=R\u00e9duit les d\u00e9g\u00e2ts provenant de la TNT
|
||||
Mining.Effect.Decrease=Baisse de l\'expertise en d\u00e9molition: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=Double Drop: [[YELLOW]]{0}
|
||||
Mining.Listener=Minage :
|
||||
Mining.SkillName=MINAGE
|
||||
Mining.Skills.SuperBreaker.Off=**Votre comp\u00e9tence Broyeur est termin\u00e9e**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**BROYEUR ACTIV\u00c9**
|
||||
Mining.Skills.SuperBreaker.Other.Off=Broyeur[[GREEN]] est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Broyeur !
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Broyeur [[GREEN]]est pr\u00eate !
|
||||
Mining.Skillup=Le talent Minage augmente de {0}. Total ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOUM**
|
||||
Mining.Blast.Effect=+{0} de r\u00e9colte des minerais, -{1} de r\u00e9colte des d\u00e9bris, {2}x les r\u00e9compenses
|
||||
Mining.Blast.Radius.Increase=Rayon d\'explosion : [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=Minage explosif : [[YELLOW]]Rang {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Minage explosif !
|
||||
Mining.Blast.Refresh=[[GREEN]]Votre capacit\u00e9 [[YELLOW]]Minage Explosif[[GREEN]] est pr\u00eate !
|
||||
Repair.SubSkill.Repair.Name=R\u00e9paration
|
||||
Repair.SubSkill.Repair.Description=R\u00e9parer Outils & Armures
|
||||
Repair.SubSkill.GoldRepair.Name=R\u00e9paration d\'Or ({0}+ SKILL)
|
||||
Repair.SubSkill.GoldRepair.Description=R\u00e9parer Outils & Armures en Or
|
||||
Repair.SubSkill.IronRepair.Name=R\u00e9paration en Fer ({0}+ SKILL)
|
||||
Repair.SubSkill.IronRepair.Description=R\u00e9paration Outils & Armures en Fer
|
||||
Repair.SubSkill.StoneRepair.Name=R\u00e9paration en Pierre ({0}+ SKILL)
|
||||
Repair.SubSkill.StoneRepair.Description=R\u00e9parer Outils en Pierre
|
||||
Repair.SubSkill.RepairMastery.Name=Ma\u00eetrise de la forge
|
||||
Repair.SubSkill.RepairMastery.Description=Am\u00e9liore la r\u00e9paration
|
||||
Repair.SubSkill.SuperRepair.Name=Superbe r\u00e9paration
|
||||
Repair.SubSkill.SuperRepair.Description=Double l\'efficacit\u00e9
|
||||
Repair.SubSkill.DiamondRepair.Name=R\u00e9paration du diamant (talent {0}+)
|
||||
Repair.SubSkill.DiamondRepair.Description=R\u00e9pare les outils et armures en diamant
|
||||
Repair.SubSkill.ArcaneForging.Name=Forge arcanique
|
||||
Repair.SubSkill.ArcaneForging.Description=R\u00e9pare les objets magiques
|
||||
Repair.Error=[[DARK_RED]]McMMO a rencontr\u00e9 une erreur en essayant de r\u00e9parer cet objet !
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Vous venez de poser une enclume, elle peut \u00eatre utilis\u00e9e pour r\u00e9parer votre \u00e9quipement.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]Tu as plac\u00e9 une enclume sauvage, utilises la pour r\u00e9parer les outils et armures sauvages.
|
||||
Repair.Listener=R\u00e9paration :
|
||||
Repair.SkillName=R\u00c9PARATION
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Vous n\'\u00eates pas suffisamment comp\u00e9tent pour r\u00e9parer le diamant.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Vous n\'\u00eates pas suffisamment comp\u00e9tent pour r\u00e9parer l\'or.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Vous n\'\u00eates pas suffisamment comp\u00e9tent pour r\u00e9parer le fer.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Vous n\'\u00eates pas suffisamment comp\u00e9tent pour r\u00e9parer la pierre.
|
||||
Repair.Skills.Adept=Vous devez avoir le niveau [[YELLOW]]{0}[[RED]] pour pouvoir r\u00e9parer [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Plut\u00f4t facile.
|
||||
Repair.Skills.FullDurability=[[GRAY]]C\'est d\u00e9j\u00e0 r\u00e9par\u00e9.
|
||||
Repair.Skills.Mastery=Maitrise de la forge: [[YELLOW]]Extra {0} durabilit\u00e9 en place
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas r\u00e9parer les objets empil\u00e9s.
|
||||
Repair.Skills.Super.Chance=Chance Super R\u00e9paration: [[YELLOW]]{0}
|
||||
Repair.Skillup=Le talent R\u00e9paration augmente de {0}. Total ({1})
|
||||
Repair.Pretty.Name=R\u00e9paration
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]Forge arcanique, chance de d\u00e9gradation : [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]Forge arcanique, taux de succ\u00e8s : [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=Les \u00e9nergies arcaniques ont \u00e9t\u00e9 affaiblies sur cet objet.
|
||||
Repair.Arcane.Fail=Les \u00e9nergies arcaniques ont quitt\u00e9 cet objet.
|
||||
Repair.Arcane.Lost=Vous n\'\u00e9tiez pas suffisamment comp\u00e9tent pour pr\u00e9server les enchantements.
|
||||
Repair.Arcane.Perfect=[[GREEN]]Vous avez pr\u00e9serv\u00e9 les \u00e9nergies arcaniques de cet objet.
|
||||
Repair.Arcane.Rank=Forge arcanique : [[YELLOW]]Rang {0}/4
|
||||
Salvage.Pretty.Name=Recyclage
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=Recyclage Avanc\u00e9
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=Recyclage des objets endommag\u00e9s
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=Recyclage Arcanique
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=Extrait les enchantements des objets
|
||||
Salvage.Ability.Locked.0=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveau(x) du talent (Recyclage Avanc\u00e9)
|
||||
Salvage.Ability.Bonus.0=Recyclage Avanc\u00e9
|
||||
Salvage.Ability.Bonus.1=Rendement maximal {0} objet(s) d\u00e9truit(s)
|
||||
Salvage.Arcane.Rank=Recyclage Arcanique: [[YELLOW]]Rang {0}/{1}
|
||||
Salvage.Arcane.ExtractFull=[[GRAY]]Recyclage Arcanique : Chance d\'un enchantement complet
|
||||
Salvage.Arcane.ExtractPartial=[[GRAY]]Recyclage Arcanique : Chance d\'un enchantement partiel
|
||||
Salvage.Skills.Success=[[GREEN]]Objet recycl\u00e9 !
|
||||
Salvage.Skills.Adept.Damaged=[[DARK_RED]]Vous n\'\u00eates pas assez talentueux pour recycler des objets endommag\u00e9s.
|
||||
Salvage.Skills.Adept.Level=Vous devez \u00eatre niveau [[YELLOW]]{0}[[RED]] pour recycler [[YELLOW]]{1}
|
||||
Salvage.Skills.TooDamaged=[[DARK_RED]]C\'est objet est trop endommag\u00e9 pour \u00eatre recycl\u00e9.
|
||||
Salvage.Skills.ArcaneFailed=Vous avez \u00e9t\u00e9 incapable d\'extraire la connaissance contenue dans cet objet.
|
||||
Salvage.Skills.ArcanePartial=Vous avez \u00e9t\u00e9 capable d\'extraire toute la connaissance contenue dans cet objet.
|
||||
Salvage.Skills.ArcaneSuccess=[[GREEN]]Vous avez \u00e9t\u00e9 capable d\'extraire toute la connaissance contenue dans cet objet.
|
||||
Salvage.Listener.Anvil=[[DARK_RED]]Vous avez plac\u00e9 une enclume de r\u00e9paration, utilisez-la pour recycler vos outils et vos armures.
|
||||
Salvage.Listener=Recyclage:
|
||||
Salvage.SkillName=RECYCLAGE
|
||||
Swords.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOTRE \u00c9P\u00c9E**
|
||||
Swords.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOTRE \u00c9P\u00c9E**
|
||||
Swords.Combat.Bleed.Chance=Chance de saignement: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=Dur\u00e9e de saignement : [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTE : [[YELLOW]]1 tick toutes les 2 secondes
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Tu saignes!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Le saignement s\'est [[GREEN]]arr\u00eat\u00e9[[GRAY]] !
|
||||
Swords.Combat.Bleeding=[[GREEN]]**L\'ENNEMI SAIGNE**
|
||||
Swords.Combat.Counter.Chance=Chance de Contre Attaque: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Touch\u00e9 par une contre-attaque !
|
||||
Swords.Combat.Countered=[[GREEN]]**CONTRE-ATTAQUE**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Frapp\u00e9 par ATTAQUE D\u00c9CHIRANTE !
|
||||
Swords.SubSkill.CounterAttack.Name=Contre-attaque
|
||||
Swords.SubSkill.CounterAttack.Description=Renvoie {0} des dommages pris en bloquant
|
||||
Swords.SubSkill.SerratedStrikes.Name=Attaque D\u00e9chirante (Capacit\u00e9)
|
||||
Swords.SubSkill.SerratedStrikes.Description={0} DMG AoE, Saignement+ AoE
|
||||
Swords.Effect.4=Saignement d\'Attaque d\u00e9chirante
|
||||
Swords.Effect.5={0} Intervale entre les saignements
|
||||
Swords.SubSkill.Bleed.Name=Saignement
|
||||
Swords.SubSkill.Bleed.Description=Applique un saignement
|
||||
Swords.Listener=\u00c9p\u00e9es :
|
||||
Swords.SkillName=\u00c9P\u00c9ES
|
||||
Swords.Skills.SS.Off=**Votre comp\u00e9tence Attaque d\u00e9chirante est termin\u00e9e**
|
||||
Swords.Skills.SS.On=[[GREEN]]**ATTAQUE D\u00c9CHIRANTE ACTIV\u00c9E**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Attaque d\u00e9chirante [[GREEN]]est pr\u00eate !
|
||||
Swords.Skills.SS.Other.Off=Attaque d\u00e9chirante[[GREEN]] s\'est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Attaque d\u00e9chirante !
|
||||
Swords.Skillup=Ep\u00e9e augmente de {0}. Total ({1})
|
||||
Swords.SS.Length=Dur\u00e9e d\'Attaque d\u00e9chirante : [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=Attentif \u00e0 l\'environnement
|
||||
Taming.Ability.Bonus.1=Les loups \u00e9vitent les dangers
|
||||
Taming.Ability.Bonus.2=Fourrure \u00e9paisse
|
||||
Taming.Ability.Bonus.3=R\u00e9duction de d\u00e9g\u00e2t, r\u00e9sistance au feu
|
||||
Taming.Ability.Bonus.4=R\u00e9sistance aux chocs
|
||||
Taming.Ability.Bonus.5=Les explosifs font 1/{0} compar\u00e9 au dommage normal
|
||||
Taming.Ability.Bonus.6=Griffes ac\u00e9r\u00e9es
|
||||
Taming.Ability.Bonus.7=+{0} Damage
|
||||
Taming.Ability.Bonus.8=Fast food
|
||||
Taming.Ability.Bonus.9={0} Chance d\'etre soign\u00e9 lors de d\'une attaque
|
||||
Taming.Ability.Bonus.10=Super chien de chasse
|
||||
Taming.Ability.Bonus.11=Regagne de la vie lorsqu\'endommag\u00e9 par de la magie ou du poison
|
||||
Taming.Ability.Locked.0=Attentif \u00e0 l\'environnement
|
||||
Taming.Ability.Locked.1=Fourrure \u00e9paisse
|
||||
Taming.Ability.Locked.2=R\u00e9sistance aux chocs
|
||||
Taming.Ability.Locked.3=Griffes ac\u00e9r\u00e9es
|
||||
Taming.Ability.Locked.4=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveau(x) (SERVICE FAST FOOD)
|
||||
Taming.Ability.Locked.5=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux du talent (Super chien de chasse)
|
||||
Taming.Ability.Lower=[[GRAY]]**VOS LOUPS SE METTENT EN RETRAIT**
|
||||
Taming.Ability.Ready=[[GRAY]]**VOUS PREPAREZ VOS LOUPS**
|
||||
Taming.Combat.Chance.Gore=Chance Gore: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=Connaissances des b\u00eates
|
||||
Taming.SubSkill.BeastLore.Description=Bone-whacking inspects wolves & ocelots
|
||||
Taming.SubSkill.ShockProof.Name=R\u00e9sistance aux chocs
|
||||
Taming.SubSkill.ShockProof.Description=R\u00e9duction des d\u00e9g\u00e2ts explosifs
|
||||
Taming.SubSkill.CallOfTheWild.Name=Appel de la nature
|
||||
Taming.SubSkill.CallOfTheWild.Description=Appelle un animal \u00e0 vos c\u00f4t\u00e9s
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW: Accroupissez vous et faites un clic-gauche avec\n{0} {1} (Ocelot), {2} {3} (Loup), {4} {5} (Cheval)
|
||||
Taming.SubSkill.FastFoodService.Name=Fast food
|
||||
Taming.SubSkill.FastFoodService.Description=Probabilit\u00e9 de voler la vie en attaquant
|
||||
Taming.SubSkill.HolyHound.Name=Super chien de chasse
|
||||
Taming.SubSkill.HolyHound.Description=Soign\u00e9 par la Magie et le Poison
|
||||
Taming.SubSkill.Gore.Name=Morsure
|
||||
Taming.SubSkill.Gore.Description=Coup critique faisant saigner
|
||||
Taming.SubSkill.SharpenedClaws.Name=Griffes ac\u00e9r\u00e9es
|
||||
Taming.SubSkill.SharpenedClaws.Description=Bonus aux d\u00e9g\u00e2ts
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Attentif \u00e0 l\'environnement
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Phobie des cactus et de la lave, immunis\u00e9 aux chutes
|
||||
Taming.SubSkill.ThickFur.Name=Fourrure \u00e9paisse
|
||||
Taming.SubSkill.ThickFur.Description=R\u00e9duction de d\u00e9g\u00e2t, r\u00e9sistance au feu
|
||||
Taming.SubSkill.Gore.Name0=Charge (Abilit\u00e9)
|
||||
Taming.SubSkill.Gore.Name1=Ennemi cible, Rapidit\u00e9 de Loup++
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Votre loup se pr\u00e9cipite \u00e0 vos c\u00f4t\u00e9s...
|
||||
Taming.Listener=Apprivoisement :
|
||||
Taming.SkillName=APPRIVOISEMENT
|
||||
Taming.Skills.Charge.Off=**Charge s\'est arr\u00eat\u00e9e**
|
||||
Taming.Skills.Charge.On=[[GREEN]]**CHARGE ACTIV\u00c9E**
|
||||
Taming.Skills.Charge.Other.Off=Charge[[GREEN]] s\'est arr\u00eat\u00e9e pour [[YELLOW]]{0}
|
||||
Taming.Skills.Charge.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Charge!
|
||||
Taming.Skills.Charge.Refresh=[[GREEN]]Votre capacit\u00e9 [[YELLOW]]Charge [[GREEN]]a \u00e9t\u00e9 renouvel\u00e9e!
|
||||
Taming.Skills.Charge.NoneNearby=**AUCUN LOUP DISPONIBLE A PROXIMIT\u00c9**
|
||||
Taming.Skills.Charge.NoTarget=**AUCUNE CIBLE TROUV\u00c9E**
|
||||
Taming.Skillup=Le talent Apprivoisement augmente de {0}. Total ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Appel r\u00e9ussi
|
||||
Taming.Summon.Lifespan=(Dur\u00e9e de vie: {0}s)
|
||||
Taming.Summon.Fail.Ocelot=Il y a d\u00e9j\u00e0 trop d\'ocelots dans les environs.
|
||||
Taming.Summon.Fail.Wolf=Il y a d\u00e9j\u00e0 trop de loups dans les environs.
|
||||
Taming.Summon.Fail.Horse=Il y a d\u00e9j\u00e0 trop de chevaux dans les environs.
|
||||
Taming.Summon.Fail.TooMany=Vous ne pouvez pas appeler plus d\'animaux \u00e0 vos c\u00f4t\u00e9s. [[YELLOW]]({0})
|
||||
Taming.Summon.Name.Format={1} de {0}
|
||||
Unarmed.Ability.Berserk.Length=Dur\u00e9e de Berserk : [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Poings de fer
|
||||
Unarmed.Ability.Bonus.1=+{0} de d\u00e9g\u00e2ts
|
||||
Unarmed.Ability.Chance.ArrowDeflect=D\u00e9viation de fl\u00e8che: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=Chance D\u00e9sarmer: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=Chance de Poigne de Fer: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Votre adversaire a une poigne de fer !
|
||||
Unarmed.Ability.IronGrip.Defender=Votre poigne de fer vous a emp\u00each\u00e9 d\'\u00eatre d\u00e9sarm\u00e9 !
|
||||
Unarmed.Ability.Lower=[[GRAY]]**VOUS ABAISSEZ VOS POINGS**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**VOUS LEVEZ VOS POINGS**
|
||||
Unarmed.SubSkill.Berserk.Name=Berserk (Comp\u00e9tence)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% de d\u00e9g\u00e2ts, casse les mat\u00e9riaux souples
|
||||
Unarmed.SubSkill.Disarm.Name=D\u00e9sarmement (sur joueurs)
|
||||
Unarmed.SubSkill.Disarm.Description=Fait tomber l\'arme des ennemis
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Poings de fer
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Durcit vos poings au fil du temps
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=D\u00e9viation de fl\u00e8che
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=D\u00e9vie les fl\u00e8ches
|
||||
Unarmed.SubSkill.IronGrip.Name=Poigne de Fer
|
||||
Unarmed.SubSkill.IronGrip.Description=Vous emp\u00eache d\'\u00eatre d\u00e9sarm\u00e9
|
||||
Unarmed.Listener=Poings :
|
||||
Unarmed.SkillName=POINGS
|
||||
Unarmed.Skills.Berserk.Off=**Votre capacit\u00e9 Furie est termin\u00e9e**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERK ACTIV\u0081\u00c9**
|
||||
Unarmed.Skills.Berserk.Other.Off=Berserk[[GREEN]] s\'est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Furie !
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Berserk [[GREEN]]est pr\u00eate !
|
||||
Unarmed.Skillup=La comp\u00e9tence Poings augmente de {0}. Total ({1})
|
||||
Woodcutting.Ability.0=Souffleur de Feuilles
|
||||
Woodcutting.Ability.1=Souffle les feuilles
|
||||
Woodcutting.Ability.Chance.DDrop=Double Drop: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=Dur\u00e9e d\'Abbateur : [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux du talent (EXPLOSEUR DE FEUILLES)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Abatteur (Comp\u00e9tence)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=Fait exploser les arbres
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Soufflage
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Souffle les feuilles
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Double drops
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Double la quantit\u00e9 r\u00e9colt\u00e9e
|
||||
Woodcutting.Listener=B\u00fbcheronnage :
|
||||
Woodcutting.SkillName=B\u00dbCHERONNAGE
|
||||
Woodcutting.Skills.TreeFeller.Off=**Votre comp\u00e9tence Abatteur est termin\u00e9e**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**ABATTEUR ACTIV\u00c9**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Votre comp\u00e9tence [[YELLOW]]Abatteur [[GREEN]]est pr\u00eate !
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=Abatteur[[GREEN]] est termin\u00e9 pour [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] a utilis\u00e9 [[RED]]Abatteur !
|
||||
Woodcutting.Skills.TreeFeller.Splinter=VOTRE HACHE SE BRISE EN MILLE MORCEAUX !
|
||||
Woodcutting.Skills.TreeFeller.Threshold=Cet arbre est trop large!
|
||||
Woodcutting.Skillup=La comp\u00e9tence B\u00fbcheronnage augmente de {0}. Total ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**COMP\u00c9TENCES RAFRA\u00ceCHIES !**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template={0} : [[YELLOW]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**FL\u00c8CHE DEVI\u00c9E**
|
||||
Combat.BeastLore=[[GREEN]]**CONNAISSANCE DES B\u00caTES**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Propri\u00e9taire ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**SANG**
|
||||
Combat.StruckByGore=**FRAPP\u00c9 JUSQU\'AU SANG**
|
||||
Combat.TargetDazed=La cible a \u00e9t\u00e9 [[DARK_RED]]\u00c9tourdi
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez \u00e9tourdi.
|
||||
mcMMO.Description=[[DARK_AQUA]]About the [[YELLOW]]mcMMO[[DARK_AQUA]] Project:,[[GOLD]]mcMMO is an [[RED]]open source[[GOLD]] RPG mod created in February 2011,[[GOLD]]by [[BLUE]]com.gmail.nossr50[[GOLD]]. The goal is to provide a quality RPG experience.,[[DARK_AQUA]]Tips:,[[GOLD]] - [[GREEN]]Use [[RED]]/mcmmo help[[GREEN]] to see commands,[[GOLD]] - [[GREEN]]Type [[RED]]/SKILLNAME[[GREEN]] to see detailed skill info,[[DARK_AQUA]]Developers:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](Founder & Project Lead),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Former Project Lead),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Developer),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](Developer),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](Developer),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](Developer),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](Developer),[[DARK_AQUA]]Useful Links:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] Bug Reporting,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Vous avez \u00e9t\u00e9 r\u00e9compens\u00e9 de {0} niveau(x) dans tous les talents !
|
||||
Commands.addlevels.AwardAll.2=Tous les talents ont \u00e9t\u00e9 modifi\u00e9s pour {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Vous avez re\u00e7u {0} niveau dans {1}!
|
||||
Commands.addlevels.AwardSkill.2={0} a \u00e9t\u00e9 modifi\u00e9 pour {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Vous avez \u00e9t\u00e9 r\u00e9compens\u00e9 de {0} experiences dans chaque comp\u00e9tences!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Vous avez \u00e9t\u00e9 r\u00e9compens\u00e9 de {0} experiences dans {1} !
|
||||
Commands.Ability.Off=Utilisation des comp\u00e9tences [[RED]]Off
|
||||
Commands.Ability.On=Utilisation des comp\u00e9tences [[GREEN]]On
|
||||
Commands.Ability.Toggle=L\'utilisation des capacit\u00e9s a \u00e9t\u00e9 modifi\u00e9e pour [[YELLOW]]{0}
|
||||
Commands.AdminChat.Off=Canal admin [[RED]]Off
|
||||
Commands.AdminChat.On=Canal admin [[GREEN]]On
|
||||
Commands.AdminToggle=[[GREEN]]- Active/d\u00e9sactive le tchat admin
|
||||
Commands.Chat.Console=*Console*
|
||||
Commands.Cooldowns.Header=[[GOLD]]--= [[GREEN]]Temps d\'attente des capacit\u00e9s McMMO[[GOLD]] =--
|
||||
Commands.Cooldowns.Row.N=\ [[RED]]{0}[[WHITE]] - [[GOLD]]{1} secondes restantes
|
||||
Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]] Pr\u00eat !
|
||||
Commands.Database.Cooldown=Vous devez attendre 1 seconde avant de pouvoir utiliser cette commande de nouveau.
|
||||
Commands.Database.Processing=Votre commande pr\u00e9c\u00e9dente est toujours en ex\u00e9cution. Veuillez patienter.
|
||||
Commands.Disabled=Cette commande est d\u00e9sactiv\u00e9e.
|
||||
Commands.DoesNotExist=Ce joueur est absent de la base de donn\u00e9es !
|
||||
Commands.GodMode.Disabled=mcMMO Godmode d\u00e9sactiv\u00e9
|
||||
Commands.GodMode.Enabled=mcMMO Godmode activ\u00e9
|
||||
Commands.GodMode.Forbidden=[mcMMO] Le Godmode n\'est pas permis sur ce monde (voir les permissions)
|
||||
Commands.GodMode.Toggle=Le mode Dieu a \u00e9t\u00e9 modifi\u00e9 pour [[YELLOW]]{0}
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO] Le type d\'affichage de la barre de vie a \u00e9t\u00e9 chang\u00e9 en [[RED]]C\u0153urs[[WHITE]].
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] Le type d\'affichage de la barre de vie a \u00e9t\u00e9 chang\u00e9 en [[YELLOW]]Bo\u00eetes[[WHITE]].
|
||||
Commands.Healthbars.Changed.DISABLED=[mcMMO] La barre de vie des entit\u00e9s a \u00e9t\u00e9 [[GRAY]]d\u00e9sactiv\u00e9e[[WHITE]].
|
||||
Commands.Healthbars.Invalid=Type de barre de vie invalide !
|
||||
Commands.Inspect=<joueur> [[GREEN]]- Voir les infos d\u00e9taill\u00e9es sur le joueur
|
||||
Commands.Invite.Success=[[GREEN]]Invitation envoy\u00e9e.
|
||||
Commands.Leaderboards=<talent> <page> [[GREEN]]- Classement
|
||||
Commands.mcc.Header=---[][[GREEN]]Commandes McMMO[[RED]][]---
|
||||
Commands.mcgod=[[GREEN]]- Active/D\u00e9sactive le \"Mode Dieu\"
|
||||
Commands.mchud.Invalid=Ce n\'est pas un type valide d\'HUD.
|
||||
Commands.mcpurge.Success=[[GREEN]]La base de donn\u00e9es a \u00e9t\u00e9 purg\u00e9e avec succ\u00e8s !
|
||||
Commands.mcrank.Heading=[[GOLD]]-=CLASSEMENT PERSONNEL=-
|
||||
Commands.mcrank.Overall=Toutes competences confondues[[GREEN]] - [[GOLD]]Classement [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=CIBLE : [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Classement [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Non class\u00e9
|
||||
Commands.mcrefresh.Success=Le temps d\'attente de {0} a \u00e9t\u00e9 refra\u00eechi.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} a \u00e9t\u00e9 enlev\u00e9(e) de la base de donn\u00e9es avec succ\u00e8s !
|
||||
Commands.mctop.Tip=[[GOLD]]Astuce : Utilisez [[RED]]/mcrank[[GOLD]] pour voir vos positions dans les diff\u00e9rents classements !
|
||||
Commands.mmoedit=[joueur] <comp\u00e9tence> <nouvellevaleur> [[GREEN]] - Modifie la cible
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]Le niveau de tous vos talents a \u00e9t\u00e9 mis \u00e0 {0} !
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Votre niveau en {0} a \u00e9t\u00e9 modifi\u00e9 \u00e0 {1}!
|
||||
Commands.mmoedit.Modified.2={0} a \u00e9t\u00e9 modifi\u00e9 pour {1}.
|
||||
Commands.mcconvert.Database.Same=Vous utilisez d\u00e9j\u00e0 le/la {0} base de donn\u00e9es !
|
||||
Commands.mcconvert.Database.InvalidType={0} n\'est pas un type de base de donn\u00e9es valide.
|
||||
Commands.mcconvert.Database.Start=[[GRAY]]Commencement de la conversion de {0} \u00e0 {1}...
|
||||
Commands.mcconvert.Database.Finish=[[GRAY]]La migration de la base de donn\u00e9es a \u00e9t\u00e9 achev\u00e9e; la {1} base de donn\u00e9es a d\u00e9sormais toutes les donn\u00e9es de/du {0} base de donn\u00e9es.
|
||||
Commands.mmoshowdb=La base de donn\u00e9es actuellement utilis\u00e9e est [[GREEN]]{0}
|
||||
Commands.mcconvert.Experience.Invalid=Type de formule inconnu! Les types valides sont: [[GREEN]]LINEAR [[RED]]and [[GREEN]]EXPONENTIAL.
|
||||
Commands.mcconvert.Experience.Same=Vous utilisez d\u00e9j\u00e0 une formule type {0}
|
||||
Commands.mcconvert.Experience.Start=[[GRAY]]Commencement de la conversion de {0} \u00e0 {1}...
|
||||
Commands.mcconvert.Experience.Finish=[[GRAY]]Changement de formule appliqu\u00e9; utilisation d\u00e9sormais de {0} pour la courbe d\'EXP.
|
||||
Commands.ModDescription=[[GREEN]]- Lire la br\u00e8ve description du mod
|
||||
Commands.NoConsole=Cette commande ne peut \u00eatre utilis\u00e9e via la console.
|
||||
Commands.Notifications.Off=Les notifications des capacit\u00e9s ont \u00e9t\u00e9 [[RED]]d\u00e9sactiv\u00e9es
|
||||
Commands.Notifications.On=Les notifications des capacit\u00e9s ont \u00e9t\u00e9 [[GREEN]]activ\u00e9es
|
||||
Commands.Offline=Cette commande ne fonctionne pas sur les joueurs non connect\u00e9s.
|
||||
Commands.NotLoaded=Le profil du joueur n\'est pas encore charg\u00e9.
|
||||
Commands.Other=---[][[GREEN]]AUTRES COMMANDES[[RED]][]---
|
||||
Commands.Party.Header=-----[][[GREEN]]GUILDE[[RED]][]-----
|
||||
Commands.Party.Features.Header=-----[][[GREEN]]FONCTIONALIT\u00c9S[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]NOM: [[WHITE]]{0} {1} [[DARK_GRAY]]NIVEAU: [[DARK_AQUA]]{2}
|
||||
Commands.Party.Status.Alliance=[[DARK_GRAY]]ALLIANCES: [[WHITE]]{0}
|
||||
Commands.Party.UnlockedFeatures=[[DARK_GRAY]]Fonctionnalit\u00e9s D\u00e9bloqu\u00e9es: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]MODE PARTAGE :
|
||||
Commands.Party.ItemShare=[[GRAY]]OBJETS [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]EXP [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]Partage d\'objets: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]A C\u00d4T\u00c9 DE VOUS [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[GREEN]]- Accepter l\'invitation de la guilde
|
||||
Commands.Party.Chat.Off=Canal guilde [[RED]]d\u00e9sactiv\u00e9
|
||||
Commands.Party.Chat.On=Canal guilde [[RED]]activ\u00e9
|
||||
Commands.Party.Commands=---[][[GREEN]]COMMANDES DE GUILDE[[RED]][]---
|
||||
Commands.Party.Invite.0=ALERT: [[GREEN]]Vous avez re\u00e7u une invitation de {1} pour rejoindre la guilde {0}
|
||||
Commands.Party.Invite.1=Tapez [[GREEN]]/party accept[[YELLOW]] pour accepter l\'invitation de guilde
|
||||
Commands.Party.Invite=[[GREEN]]- Envoyer une invitation de groupe.
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]Invitation accept\u00e9e. Vous avez rejoint la guilde {0}
|
||||
Commands.Party.Join=[[GRAY]]a rejoint la guilde: {0}
|
||||
Commands.Party.Create=[[GRAY]]Groupe Cr\u00e9\u00e9: {0}
|
||||
Commands.Party.Rename=[[GRAY]]Le nom de la guilde a \u00e9t\u00e9 chang\u00e9 en : [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]Le partage des {0} de la guilde a \u00e9t\u00e9 mis \u00e0: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]Le partage d\'objets de guilde [[GOLD]]{0} [[GRAY]]a \u00e9t\u00e9 [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]La guilde {0} existe d\u00e9j\u00e0!
|
||||
Commands.Party.Kick=Vous avez \u00e9t\u00e9 \u00e9ject\u00e9 du groupe {0} !
|
||||
Commands.Party.Leave=Vous avez quitt\u00e9 la guilde.
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]MEMBRES[[RED]][]-----
|
||||
Commands.Party.None=Vous n\'\u00eates pas dans une guilde.
|
||||
Commands.Party.Quit=[[GREEN]]- Quitter votre pr\u00e9sente guilde
|
||||
Commands.Party.Teleport=[[GREEN]]- Vous t\u00e9l\u00e9porte \u00e0 un membre de la guilde
|
||||
Commands.Party.Toggle=[[GREEN]]- Active/d\u00e9sactive le tchat de guilde
|
||||
Commands.Party1=[[GREEN]]- Cr\u00e9er une nouvelle guilde
|
||||
Commands.Party2=[[GREEN]]- Rejoindre une guilde
|
||||
Commands.Party.Alliance.Header=-----[][[GREEN]]ALLIANCE DE LA GUILDE[[RED]][]-----
|
||||
Commands.Party.Alliance.Ally=[[WHITE]]{0} [[DARK_GRAY]]EST ALLI\u00c9 AVEC : [[WHITE]]{1}
|
||||
Commands.Party.Alliance.Members.Header=-----[][[GREEN]]MEMBRES DE L\'ALLIANCE[[RED]][]-----
|
||||
Commands.Party.Alliance.Invite.0=ALERTE: [[GREEN]]Vous avez re\u00e7u une invitation d\'alliance de guilde de {1} pour {0}
|
||||
Commands.Party.Alliance.Invite.1=Tapez [[GREEN]]/party alliance accept[[YELLOW]] pour accepter l\'invitation
|
||||
Commands.Party.Alliance.Invite.Accepted=[[GREEN]]Invitation d\'alliance accept\u00e9e.
|
||||
Commands.Party.Alliance.None=Votre groupe n\'a pas d\'alli\u00e9.
|
||||
Commands.Party.Alliance.AlreadyAllies=Votre groupe a d\u00e9j\u00e0 une alliance. D\u00e9faites-la avec [[DARK_AQUA]]/party alliance disband
|
||||
Commands.Party.Alliance.Help.0=Cette guilde n\'a pas form\u00e9 d\'alliance. Invitez un chef de groupe.
|
||||
Commands.Party.Alliance.Help.1=\u00e0 une alliance [[DARK_AQUA]]/party alliance invite <joueur>[[RED]].
|
||||
Commands.ptp.Enabled=T\u00e9l\u00e9portation de guilde [[GREEN]]activ\u00e9e
|
||||
Commands.ptp.Disabled=T\u00e9l\u00e9portation de guilde [[RED]]d\u00e9sactiv\u00e9e
|
||||
Commands.ptp.NoRequests=Vous n\'avez pas de requ\u00eates de t\u00e9l\u00e9portation en ce moment
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] Vous n\'avez pas la permission de vous t\u00e9l\u00e9porter dans le monde {0}.
|
||||
Commands.ptp.Request1={0} [[GREEN]] vous a envoy\u00e9 une requ\u00eate de t\u00e9l\u00e9portation vers vous.
|
||||
Commands.ptp.Request2=[[GREEN]]pour vous t\u00e9l\u00e9porter, tapez [[YELLOW]]/ptp accept[[GREEN]]. La requ\u00eate expire dans [[RED]]{0} [[GREEN]]secondes.
|
||||
Commands.ptp.AcceptAny.Enabled=Confirmation de la demande de t\u00e9l\u00e9portation de guilde [[GREEN]]activ\u00e9e
|
||||
Commands.ptp.AcceptAny.Disabled=Confirmation de la demande de t\u00e9l\u00e9portation du guilde [[RED]]d\u00e9sactiv\u00e9e
|
||||
Commands.ptp.RequestExpired=La requ\u00eate de t\u00e9l\u00e9portation de guilde a expir\u00e9!
|
||||
Commands.PowerLevel.Leaderboard=--Classement mcMMO ([[BLUE]]Niveau Global[[YELLOW]])--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]NIVEAU GLOBAL: [[GREEN]]{0} [[DARK_RED]]NIVEAU MAX ATTEINT: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]NIVEAU GLOBAL : [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Toutes vos comp\u00e9tences ont \u00e9t\u00e9 remises \u00e0 zero.
|
||||
Commands.Reset.Single=[[GREEN]]Ta comp\u00e9tence {0} a \u00e9t\u00e9 remise \u00e0 zero.
|
||||
Commands.Reset=[[GREEN]]- Remise \u00e0 0 d\'un talent
|
||||
Commands.Scoreboard.Clear=[[DARK_AQUA]]Le tableau des scores McMMO a \u00e9t\u00e9 enlev\u00e9.
|
||||
Commands.Scoreboard.NoBoard=Le tableau des scores McMMO n\'est pas actif.
|
||||
Commands.Scoreboard.Keep=[[DARK_AQUA]]Le tableau des scores McMMO restera affich\u00e9 tant que vous n\'utiliserez pas [[GREEN]]/mcscoreboard clear[[DARK_AQUA]].
|
||||
Commands.Scoreboard.Timer=[[DARK_AQUA]]Le tableau des scores mcMMO sera enlev\u00e9 dans [[GOLD]]{0}[[DARK_AQUA]] secondes \u00e0 compter de maintenant.
|
||||
Commands.Scoreboard.Help.0=[[GOLD]] == [[GREEN]]Aide pour [[RED]]/mcscoreboard[[GOLD]] ==
|
||||
Commands.Scoreboard.Help.1=[[DARK_AQUA]]/mcscoreboard[[AQUA]] clear [[WHITE]] - enl\u00e8ve le tableau des scores McMMO
|
||||
Commands.Scoreboard.Help.2=[[DARK_AQUA]]/mcscoreboard[[AQUA]] keep [[WHITE]] - Garde le tableau des scores affich\u00e9
|
||||
Commands.Scoreboard.Help.3=[[DARK_AQUA]]/mcscoreboard[[AQUA]] time [n] [[WHITE]] - enl\u00e8ve le tableau des scores McMMO apr\u00e8s [[LIGHT_PURPLE]]n[[WHITE]] secondes
|
||||
Commands.Scoreboard.Tip.Keep=[[GOLD]]Astuce : Utilisez [[RED]]/mcscoreboard keep[[GOLD]] quand le tableau des scores est affich\u00e9 pour l\'emp\u00eacher de s\'en aller.
|
||||
Commands.Scoreboard.Tip.Clear=[[GOLD]]Astuce : Utilisez [[RED]]/mcscoreboard clear[[GOLD]] pour de d\u00e9barrasser du tableau des scores.
|
||||
Commands.Skill.Invalid=Ce talent n\'existe pas !
|
||||
Commands.Skill.Leaderboard=--Classement mcMMO ([[BLUE]]{0}[[YELLOW]])--
|
||||
Commands.SkillInfo=[[GREEN]]- Voir des informations d\u00e9taill\u00e9es \u00e0 propos d\'un talent
|
||||
Commands.Stats.Self=VOS STATISTIQUES
|
||||
Commands.Stats=[[GREEN]]- Voir vos statistiques McMMO
|
||||
Commands.ToggleAbility=[[GREEN]]- Active/D\u00e9sactive la possibilit\u00e9 d\'activation d\'une capacit\u00e9 avec un clic droit
|
||||
Commands.Usage.0=L\'utilisation correcte est /{0}
|
||||
Commands.Usage.1=L\'utilisation correcte est /{0} {1}
|
||||
Commands.Usage.2=L\'utilisation correcte est /{0} {1} {2}
|
||||
Commands.Usage.3=L\'utilisation correcte est /{0} {1} {2} {3}
|
||||
Commands.Usage.FullClassName=nom de classe
|
||||
Commands.Usage.Level=niveau
|
||||
Commands.Usage.Message=message
|
||||
Commands.Usage.Page=page
|
||||
Commands.Usage.PartyName=nom
|
||||
Commands.Usage.Password=mot de passe
|
||||
Commands.Usage.Player=joueur
|
||||
Commands.Usage.Rate=taux
|
||||
Commands.Usage.Skill=Comp\u00e9tence
|
||||
Commands.Usage.XP=exp
|
||||
mcMMO.NoInvites=Vous n\'avez pas \u00e9t\u00e9 invit\u00e9
|
||||
mcMMO.NoPermission=[[DARK_RED]]Vous n\'avez pas les droits.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Si vous n\'avez pas les droits pour une comp\u00e9tence, il n\'appara\u00eetra pas ici.
|
||||
Party.Forbidden=[mcMMO] Les groupes ne sont pas permis dans ce monde (voir les permissions)
|
||||
Party.Help.0=L\'utilisation correcte est [[DARK_AQUA]]{0} <joueur> [mot de passe].
|
||||
Party.Help.1=pour cr\u00e9er une guilde, utilisez [[DARK_AQUA]]{0} <name> [mot de passe].
|
||||
Party.Help.2=Consultez [[DARK_AQUA]]{0} [[RED]]pour plus d\'informations
|
||||
Party.Help.3=Utilisez [[DARK_AQUA]]{0} <player> [motdepasse] [[RED]]pour rejoindre, ou [[DARK_AQUA]]{1} [[RED]]pour quitter
|
||||
Party.Help.4=Pour bloquer ou d\u00e9bloquer votre groupe, utilisez [[DARK_AQUA]]{0}
|
||||
Party.Help.5=Pour prot\u00e9ger votre guilde avec un mot de passe, utilisez [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=Pour expulser un joueur de la guilde, utilisez [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=Pour transmettre la possession de votre groupe, utilisez [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=Pour d\u00e9faire le groupe, utilisez [[DARK_AQUA]]{0}
|
||||
Party.Help.9=Utilisez [[DARK_AQUA]]{0} [[RED]]pour partager des objets avec les membres du groupe
|
||||
Party.Help.10=Utilisez [[DARK_AQUA]]{0} [[RED]]pour activer le partage d\'EXP entre les membres du groupe.
|
||||
Party.InformedOnJoin={0} [[GREEN]]a rejoint votre groupe
|
||||
Party.InformedOnQuit={0} [[GREEN]]a quitt\u00e9 votre groupe
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]a modifi\u00e9 le nom du groupe en [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]Ce n\'est pas un nom valide de guilde.
|
||||
Party.Invite.Self=Vous ne pouvez pas vous inviter vous-m\u00eame !
|
||||
Party.IsLocked=Ce groupe est d\u00e9j\u00e0 verrouill\u00e9 !
|
||||
Party.IsntLocked=Cette guilde n\'est pas verrouill\u00e9e !
|
||||
Party.Locked=Le groupe est verrouill\u00e9, seul le chef de groupe peut inviter.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} n\'est pas dans votre guilde.
|
||||
Party.NotOwner=[[DARK_RED]]Vous n\'\u00eates pas le chef de cette guilde.
|
||||
Party.Target.NotOwner=[[DARK_RED]]{0} n\'est pas le chef de la guilde.
|
||||
Party.Owner.New=[[GREEN]]{0} est le nouveau chef de la guilde.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]Vous n\'\u00eates d\u00e9sormais plus le chef de la guilde.
|
||||
Party.Owner.Player=[[GREEN]]Vous \u00eates d\u00e9sormais le chef de la guilde.
|
||||
Party.Password.None=Cette guilde est prot\u00e9g\u00e9e par un mot de passe. S\'il vous pla\u00eet, renseignez le mot de passe pour la rejoindre.
|
||||
Party.Password.Incorrect=Le mot de passe de la guilde est incorrect.
|
||||
Party.Password.Set=[[GREEN]]Mot de passe de la guilde r\u00e9gl\u00e9 \u00e0 {0}
|
||||
Party.Password.Removed=[[GREEN]]Le mot de passe du groupe a \u00e9t\u00e9 enlev\u00e9.
|
||||
Party.Player.Invalid=Ce joueur n\'existe pas.
|
||||
Party.NotOnline=[[DARK_RED]]{0} n\'est pas connect\u00e9 !
|
||||
Party.Player.InSameParty={0} est d\u00e9j\u00e0 dans votre guilde !
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} n\'est pas dans votre guilde
|
||||
Party.Specify=Vous devez sp\u00e9cifier une guilde.
|
||||
Party.Teleport.Dead=Vous ne pouvez pas vous t\u00e9l\u00e9porter sur un joueur mort.
|
||||
Party.Teleport.Hurt=Vous avez \u00e9t\u00e9 bless\u00e9 dans les derni\u00e8res {0} secondes et vous ne pouvez par cons\u00e9quent pas \u00eatre t\u00e9l\u00e9port\u00e9.
|
||||
Party.Teleport.Player=[[GREEN]]Vous vous \u00eates t\u00e9l\u00e9port\u00e9 sur {0}.
|
||||
Party.Teleport.Self=Vous ne pouvez pas vous t\u00e9l\u00e9porter \u00e0 vous m\u00eame !
|
||||
Party.Teleport.Target=[[GREEN]]{0} s\'est t\u00e9l\u00e9port\u00e9 sur vous.
|
||||
Party.Teleport.Disabled={0} n\'a pas rendu possible la t\u00e9l\u00e9portation.
|
||||
Party.Rename.Same=C\'est d\u00e9j\u00e0 le nom de votre groupe!
|
||||
Party.Join.Self=Vous ne pouvez pas vous rejoindre vous-m\u00eame !
|
||||
Party.Unlocked=[[GRAY]]Le groupe est d\u00e9verrouill\u00e9.
|
||||
Party.Disband=[[GRAY]]La guilde a \u00e9t\u00e9 dissoute
|
||||
Party.Alliance.Formed=[[GRAY]]Votre groupe est d\u00e9sormais alli\u00e9 avec [[GREEN]]{0}
|
||||
Party.Alliance.Disband=[[GRAY]]Votre groupe n\'est d\u00e9sormais plus alli\u00e9 avec [[RED]]{0}
|
||||
Party.Status.Locked=[[DARK_RED]](INVITATION-SEULEMENT)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](OUVERT)
|
||||
Party.LevelUp=Le niveau de votre guilde a \u00e9t\u00e9 augment\u00e9 de {0}. Total ({1})
|
||||
Party.Feature.Chat=Tchat de guilde
|
||||
Party.Feature.Teleport=T\u00e9l\u00e9portation de guilde
|
||||
Party.Feature.Alliance=Alliances
|
||||
Party.Feature.ItemShare=Partage d\'objets
|
||||
Party.Feature.XpShare=Partage d\'EXP
|
||||
Party.Feature.Locked.Chat=Bloqu\u00e9 jusqu\'\u00e0 {0}+ (Tchat de guilde)
|
||||
Party.Feature.Locked.Teleport=Bloqu\u00e9 jusqu\'\u00e0 {0}+ (T\u00e9l\u00e9portation de guilde)
|
||||
Party.Feature.Locked.Alliance=Bloqu\u00e9 jusqu\'\u00e0 {0}+ (Alliances)
|
||||
Party.Feature.Locked.ItemShare=Bloqu\u00e9 jusqu\'\u00e0 {0}+ (Partage d\'objets)
|
||||
Party.Feature.Locked.XpShare=Bloqu\u00e9 jusqu\'\u00e0 {0}+ (Partage d\'EXP)
|
||||
Party.Feature.Disabled.1=Le tchat de guilde n\'est pas d\u00e9bloqu\u00e9 pour le moment.
|
||||
Party.Feature.Disabled.2=La t\u00e9l\u00e9portation de guilde n\'est pas d\u00e9bloqu\u00e9e pour le moment.
|
||||
Party.Feature.Disabled.3=Les alliances de guilde ne sont pas d\u00e9bloqu\u00e9es pour le moment.
|
||||
Party.Feature.Disabled.4=Le partage d\'objets avec la guilde n\'est pas d\u00e9bloqu\u00e9 pour le moment.
|
||||
Party.Feature.Disabled.5=Le partage d\'EXP gr\u00e2ce \u00e0 la guilde n\'est pas d\u00e9bloqu\u00e9 pour le moment.
|
||||
Party.ShareType.Xp=EXP
|
||||
Party.ShareType.Item=OBJET
|
||||
Party.ShareMode.None=AUCUN
|
||||
Party.ShareMode.Equal=EGAL
|
||||
Party.ShareMode.Random=Al\u00e9atoire
|
||||
Party.ItemShare.Category.Loot=R\u00e9compenses
|
||||
Party.ItemShare.Category.Mining=Minage
|
||||
Party.ItemShare.Category.Herbalism=Herboristerie
|
||||
Party.ItemShare.Category.Woodcutting=B\u00fbcheronnage
|
||||
Party.ItemShare.Category.Misc=Divers
|
||||
Commands.XPGain.Acrobatics=Chuter
|
||||
Commands.XPGain.Alchemy=Confection de potions
|
||||
Commands.XPGain.Archery=Attaquer des monstres
|
||||
Commands.XPGain.Axes=Attaquer des monstres
|
||||
Commands.XPGain.Child=Gagne les niveaux des Talents Parents
|
||||
Commands.XPGain.Excavation=Creuser et d\u00e9couvrir des tr\u00e9sors
|
||||
Commands.XPGain.Fishing=P\u00eacher
|
||||
Commands.XPGain.Herbalism=Cueillette de v\u00e9g\u00e9taux
|
||||
Commands.XPGain.Mining=Miner de la Pierre & des Minerais
|
||||
Commands.XPGain.Repair=R\u00e9paration
|
||||
Commands.XPGain.Swords=Attaquer des monstres
|
||||
Commands.XPGain.Taming=Apprivoisement d\'Animaux, ou combat avec vous loups
|
||||
Commands.XPGain.Unarmed=Attaquer des monstres
|
||||
Commands.XPGain.Woodcutting=Abbatage de bois
|
||||
Commands.XPGain=[[DARK_GRAY]]Gain d\'exp\u00e9rience: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Votre barre d\'XP est maintenant verrouill\u00e9e sur {0} !
|
||||
Commands.xplock.unlocked=[[GOLD]]Votre barre d\'XP est maintenant [[GREEN]]D\u00c9VERROUILL\u00c9E[[GOLD]] !!
|
||||
Commands.xprate.modified=Le TAUX D\'EXP a \u00e9t\u00e9 pass\u00e9 \u00e0 {0}
|
||||
Commands.xprate.over=L\u2019\u00e9v\u00e9nement de bonus d\'XP mcMMO est TERMIN\u00c9 !!
|
||||
Commands.xprate.proper.0=L\'usage correct pour changer le taux d\'XP est /xprate <valeur> <true/false>
|
||||
Commands.xprate.proper.1=L\'usage correct pour restaurer le taux d\'XP est /xprate reset
|
||||
Commands.xprate.proper.2=Veuillez sp\u00e9cifier true ou false pour indiquer si il s\'agit ou pas d\'un \u00e9v\u00e9nement temporaire
|
||||
Commands.xprate.started.0=[[GOLD]]L\u2019\u00c9V\u00c9NEMENT BONUS D\'XP mcMMO VIENT DE COMMENCER !
|
||||
Commands.xprate.started.1=[[GOLD]]Le bonus d\'XP mcMMO est maintenant de {0}x !
|
||||
XPRate.Event=[[GOLD]]Un \u00e9v\u00e9nement bonus d\'Exp\u00e9rience est actuellement lanc\u00e9 ! Le bonus est de {0}x !
|
||||
Effects.Effects=EFFETS
|
||||
Effects.Child=[[DARK_GRAY]]NIVEAU: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]NIV : [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0} : [[GREEN]]{1}
|
||||
Guides.Available=[[GRAY]]Guide pour le/la {0} est disponible - \u00e9crivez /{1} ? [page]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Guide[[GOLD]]=-
|
||||
Guides.Page.Invalid=Le num\u00e9ro de page est invalide
|
||||
Guides.Page.OutOfRange=Cette page n\'existe pas, il y a seulement {0} pages totales.
|
||||
Guides.Usage=L\'utilisation est /{0} ? [page]
|
||||
Guides.Acrobatics.Section.0=[[DARK_AQUA]]A propos de l\'Acrobatie:\n[[YELLOW]]L\'acrobatie est l\'art de bouger gracieusement dans mcMMO.\n[[YELLOW]]Donne des bonus au combat et de r\u00e9sistance aux d\u00e9g\u00e2ts physiques.\n[[DARK_AQUA]]GAIN D\'XP:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience, vous devez esquiver des d\u00e9g\u00e2ts\n[[YELLOW]]en combat ou encaisser des d\u00e9g\u00e2ts de chute.
|
||||
Guides.Acrobatics.Section.1=[[DARK_AQUA]]Comment fonctionne la Roulade?\n[[YELLOW]]Vous avez une chance, lorsque vous prenez des d\u00e9g\u00e2ts dus \u00e0 une chute,\n[[YELLOW]]d\'esquiver ces d\u00e9g\u00e2ts. Maintenez la touche pour s\'accroupir\n[[YELLOW]]pour doubler les chances d\'esquiver ces d\u00e9g\u00e2ts.\n[[YELLOW]]Cette manipulation activera la Roulade Gracieuse. \n[[YELLOW]]La Roulade Gracieuse fonctionne comme une Roulade classique,\n[[YELLOW]]mais vous avez deux fois plus de chance d\'\u00e9chapper aux d\u00e9g\u00e2ts.\n[[YELLOW]]Votre pourcentage de chance de Roulade d\u00e9pend du niveau de votre Comp\u00e9tence.
|
||||
Guides.Acrobatics.Section.2=[[DARK_AQUA]]Comment fonctionne l\'esquive?\n[[YELLOW]]L\'esquive est une capacit\u00e9 passive qui peut vous permettre de\n[[YELLOW]]diminuer les d\u00e9g\u00e2ts de moiti\u00e9 lorsque vous \u00eates bless\u00e9 au combat.\n[[YELLOW]]Les chances d\'esquiver sont fonction de votre niveau de comp\u00e9tence.
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]A propos de l\'alchimie:\n[[YELLOW]]L\'alchimie est l\'art de pr\u00e9parer des potions.\n[[YELLOW]]Donne des bonus de vitesse \u00e0 la pr\u00e9paration des potions mais aussi\n[[YELLOW]]l\'ajout de nouvelles potions (pr\u00e9c\u00e8demment) incraftables.\n[[DARK_AQUA]]GAIN D\'XP:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience vous devez pr\u00e9parer des potions.
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]Comment fonctionne Catalyse?\n[[YELLOW]]Catalyse acc\u00e8lere le processus de pr\u00e9paration des potions,\n[[YELLOW]]jusqu\'\u00e0 4x plus vite au niveau 1000.\n[[YELLOW]]Par d\u00e9faut, cette capacit\u00e9 est d\u00e9bloqu\u00e9e au niveau 100.
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]Comment fonctionne Concoction?\n[[YELLOW]]Concoction vous permet de pr\u00e9parer plus de potions \u00e0 l\'aide [[YELLOW]]d\'ingr\u00e9dients sp\u00e9ciaux..\n[[YELLOW]]Les ingr\u00e9dients que vous pouvez utiliser sont d\u00e9termin\u00e9s\n[[YELLOW]]par votre rang. Il y a 8 rangs \u00e0 d\u00e9bloquer.
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 4 :\n[[YELLOW]]Poudre d\'Incendiaire, \u0152il Ferment\u00e9 d\u2019Araign\u00e9e, Larme de Ghast, Redstone,\n[[YELLOW]]Poudre de Pierre Lumineuse, Sucre, Melon Scintillant, Carotte Dor\u00e9e,\n[[YELLOW]]Cr\u00e8me de Magma, Verrue du Nether, \u0152il d\'Araign\u00e9e, Poudre \u00e0 Canon, N\u00e9nuphar,\n[[YELLOW]]Poisson-Globe\n[[YELLOW]](Potions de Minecraft Vanilla)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 2 :\n[[YELLOW]]Carotte (Potion de H\u00e2te)\n[[YELLOW]]Boule de Slime (Potion de Lassitude)\n[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 3 :\n[[YELLOW]]Quartz (Potion d\'Absorption)\n[[YELLOW]]Champignon Rouge (Potion de Saut Boost\u00e9)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 4 :\n[[YELLOW]]Pomme (Potion de Boost de Vie)\n[[YELLOW]]Viande Putr\u00e9fi\u00e9e (Potion de Faim)\n[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 5 :\n[[YELLOW]]Champignon Brun (Potion de Naus\u00e9e)\n[[YELLOW]]Poche d\'Encre (Potion d\'Aveuglement)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 6 :\n[[YELLOW]]Herbes Hautes (Potion de Saturation)\n[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 7 :\n[[YELLOW]]Patate Empoisonn\u00e9e (Potion de Wither)\n[[DARK_AQUA]]Ingr\u00e9dients pour la confections de niveau 8 :\n[[YELLOW]]Pomme d\'or normale (Potion de R\u00e9sistance)
|
||||
Guides.Archery.Section.0=[[DARK_AQUA]]A propos de l\'Archerie:\n[[YELLOW]]L\'archerie est l\'art du tir \u00e0 l\'arc.\n[[YELLOW]]Cette comp\u00e9tence fournit divers bonus de combat, par exemple une\n[[YELLOW]]augmentation des d\u00e9g\u00e2ts proportionelle \u00e0 votre niveau, la capacit\u00e9\n[[YELLOW]]de rendre confus d\'autres joueurs en PvP,etc. En plus de cela, vous\n[[YELLOW]]pouvez aussi r\u00e9cup\u00e9rer quelques fl\u00e8ches des corps de vos ennemis.\n[[DARK_AQUA]]GAIN D\'XP:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience dans cette discipline vous devez infliger\n[[YELLOW]]des d\u00e9g\u00e2ts \u00e0 l\'aide de vos fl\u00e8ches.
|
||||
Guides.Archery.Section.1=[[DARK_AQUA]]Comment fonctionne tir pr\u00e9cis?\n[[YELLOW]]Tir pr\u00e9cis augmente les d\u00e9g\u00e2ts de vos tirs.\n[[YELLOW]]L\'augmentation des d\u00e9g\u00e2ts est fonction de\n[[YELLOW]]votre niveau en tir \u00e0 l\'arc..\n[[YELLOW]]Par d\u00e9faut, vos d\u00e9g\u00e2ts augmentent de 10% tous les\n[[YELLOW]]50 niveaux, jusqu\'\u00e0 un maximum de 200% de bonus.
|
||||
Guides.Archery.Section.2=[[DARK_AQUA]]Comment fonctionne d\u00e9sorienter?\n[[YELLOW]]Vous avez une chance de d\u00e9sorienter votre cible lorsque vous lui\n[[YELLOW]]tirez dessus. Sous l\'effet de d\u00e9sorienter, votre cible regarde droit\n[[YELLOW]]vers le ciel pendant une courte dur\u00e9e.\n[[YELLOW]]Un tir qui d\u00e9soriente inflige 4 d\u00e9g\u00e2ts suppl\u00e9mentaires (2 coeurs).
|
||||
Guides.Archery.Section.3=[[DARK_AQUA]]Comment fonctionne la r\u00e9cup\u00e9ration de fl\u00e8ches?\n[[YELLOW]]Vous avez une chance de r\u00e9cup\u00e9rer certaines de vos fl\u00e8ches\n[[YELLOW]]lorsque vous tuez un mob \u00e0 l\'arc.\n[[YELLOW]]Cette chance augmente avec votre niveau en Tir \u00e0 l\'arc.\n[[YELLOW]]Cette capacit\u00e9 augmente de 0.1% par niveau, jusqu\'\u00e0 100%\n[[YELLOW]]au niveau 1000.
|
||||
Guides.Axes.Section.0=[[DARK_AQUA]]Concernant les Haches:\n[[YELLOW]]Avec la comp\u00e9tence Hache vous pouvez utiliser votre Hache pour bien plus\n[[YELLOW]]que de la d\u00e9forestation! Vous pourrez d\u00e9couper des mobs et des joueurs\n[[YELLOW]]pour gagner de l\'exp\u00e9rience, attaquer des mobs avec un effet de recul\n[[YELLOW]]et infliger des coups critiques MORTELS sur mobs et joueurs.\n[[YELLOW]]Votre hache devient aussi un outil redoutable pour perforer\n[[YELLOW]]l\'armure de vos ennemis au fur et \u00e0 mesure que votre niveau\n[[YELLOW]]augmente.\n[[DARK_AQUA]]Gain d\'exp\u00e9rience:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience, il vous faut attaquer un joueur ou un mob\n[[YELLOW]]avec une Hache.
|
||||
Guides.Axes.Section.1=[[DARK_AQUA]]Comment fonctionne le Pourfendeur de Cr\u00e2nes?\n[[YELLOW]]Cette capacit\u00e9 vous permet d\'infliger des d\u00e9g\u00e2ts de zone.\n[[YELLOW]]Ce d\u00e9g\u00e2t de zone infligera la moiti\u00e9 de ce que vous avez inflig\u00e9 \u00e0 votre\n[[YELLOW]]cible principale et s\'av\u00e8re donc utile pour s\'attaquer \u00e0 des hordes de mobs.
|
||||
Guides.Axes.Section.2=[[DARK_AQUA]]Comment fonctionne le Coup Critique?\n[[YELLOW]]Le Coup Critique est une capacit\u00e9 automatique qui donne une chance\n[[YELLOW]]d\'infliger des d\u00e9g\u00e2ts suppl\u00e9mentaires.\n[[YELLOW]]Par d\u00e9faut, par pallier de 2 niveaux dans la Comp\u00e9tence Hache, vous gagnez\n[[YELLOW]]0.1% de chance de porter le Coup Critique, causant 2 fois plus de d\u00e9g\u00e2ts aux mobs\n[[YELLOW]]ou 1.5 fois de d\u00e9g\u00e2ts aux joueurs.
|
||||
Guides.Axes.Section.3=[[DARK_AQUA]]Comment fonctionne la Ma\u00eetrise de la Hache?\n[[YELLOW]] la Ma\u00eetrise de la Hache est une capacit\u00e9 automatique qui permet d\'infliger plus de d\u00e9g\u00e2ts\n[[YELLOW]]\u00e0 vos cibles en utilisant une Hache.\n[[YELLOW]]Par d\u00e9faut, ce bonus augmente vos d\u00e9g\u00e2t inflig\u00e9s de 1 par pallier de 50 niveaux\n[[YELLOW]]pour atteindre un maximum de 4 au niveau 200.
|
||||
Guides.Axes.Section.4=[[DARK_AQUA]]Comment fonctionne l\'Impact d\'Armure?\n[[YELLOW]]Frappez avez suffisamment de force pour briser une armure!\n[[YELLOW]]Cette capacit\u00e9 a une chance passive de d\u00e9t\u00e9riorer l\'armure de votre ennemi.\n[[YELLOW]] de votre ennemi. Ces d\u00e9g\u00e2ts augmentent avec votre niveau de la Comp\u00e9tence Haches.
|
||||
Guides.Axes.Section.5=[[DARK_AQUA]]Comment fonctionne l\'Impact Am\u00e9lior\u00e9?\n[[YELLOW]]Vous avez une chance, automatique, pour obtenir un impact plus important\n[[YELLOW]]lorsque vous attaquez avec votre hache.\n[[YELLOW]]Par d\u00e9faut cette chance est de 25%. Cette capacit\u00e9 a\n[[YELLOW]]un effet de recul consid\u00e9rable, similaire \u00e0 l\u2019enchantement Frappe II.\n[[YELLOW]]En plus, les d\u00e9g\u00e2ts sont augment\u00e9s avec cette capacit\u00e9.
|
||||
Guides.Excavation.Section.0=[[DARK_AQUA]]A propos de l\'Excavation :\n[[YELLOW]]L\'Excavation est l\'action de creuser la terre pour y trouver des tr\u00e9sors.\n[[YELLOW]]En excavant le monde, vous trouverez des tr\u00e9sors.\n[[YELLOW]]Plus vous effectuerez ceci, plus vous pourrez trouver de tr\u00e9sors.\n[[DARK_AQUA]]Gain d\'exp\u00e9rience:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience dans cette comp\u00e9tence vous devez creuser avec une pelle en main.\n[[YELLOW]]Seulement certains mat\u00e9riaux peuvent \u00eatre creus\u00e9s pour des tr\u00e9sors et de l\'exp\u00e9rience.
|
||||
Guides.Excavation.Section.1=[[DARK_AQUA]]Mat\u00e9riaux compatibles:\n[[YELLOW]]Herbe, Terre, Sable, Argile, Gravier, Mycelium, Sable des \u00e2mes
|
||||
Guides.Excavation.Section.2=[[DARK_AQUA]]Comment utiliser le Giga Broyeur:\n[[YELLOW]]Avec une pioche dans votre main, faites clic droit pour pr\u00e9parer votre outil.\n[[YELLOW]]Une fois cela fait, vous avez jusqu\'\u00e0 4 secondes pour commencer \u00e0 miner\n[[YELLOW]]des mat\u00e9riaux compatibles, ce qui activera le Broyeur.
|
||||
Guides.Excavation.Section.3=[[DARK_AQUA]]Comment fonctionne Foreur?\n[[YELLOW]]Foreur est une capacit\u00e9 avec temps de recharge, li\u00e9e\n[[YELLOW]]\u00e0 votre comp\u00e9tence d\'excavation. Cela triple les chances\n[[YELLOW]]de trouver des tr\u00e9sors et d\u00e9truis instantan\u00e9ment les\n[[YELLOW]]blocs excavables.
|
||||
Guides.Excavation.Section.4=[[DARK_AQUA]]Comment fonctionne Chasseur de Tr\u00e9sors?\n[[YELLOW]]Les tr\u00e9sors r\u00e9cup\u00e9rables requi\u00e8rent d\'avoir un certain niveau\n[[YELLOW]]en excavation pour avoir une chance de les faire tomber, en [[YELLOW]]cons\u00e9quence de quoi il est difficile d\'estimer son utilit\u00e9.\n[[YELLOW]]Mais gardez \u00e0 l\'esprit que plus votre niveau est \u00e9lev\u00e9,\n[[YELLOW]]plus vous pourrez trouver de tr\u00e9sors diff\u00e9rents.\n[[YELLOW]]Rappelez vous aussi que chaque type de bloc excavable\n[[YELLOW]]contient sa propre liste de tr\u00e9sors uniques.\n[[YELLOW]]En d\'autres termes, vous trouverez des tr\u00e9sors diff\u00e9rents en creusant\n[[YELLOW]]du sable plut\u00f4t que du gravier (par exemple).
|
||||
Guides.Excavation.Section.5=[[DARK_AQUA]]Notes sur l\'Excavation:\n[[YELLOW]]Les loots de l\'excavation sont enti\u00e8rement modifiables\n[[YELLOW]]donc les r\u00e9sultats varient selon les serveurs.
|
||||
Guides.Fishing.Section.0=[[DARK_AQUA]]Concernant la P\u00eache:\n[[YELLOW]]La Comp\u00e9tence P\u00eache rend la P\u00eache int\u00e9ressante!\n[[YELLOW]]Trouvez des tr\u00e9sors cach\u00e9s, et d\u00e9robez des objets aux mobs!\n[[DARK_AQUA]]Gain d\'Exp\u00e9rience:\n[[YELLOW]]P\u00eachez des poissons!
|
||||
Guides.Fishing.Section.1=[[DARK_AQUA]]Comment fonctionne le Chasseur de Tr\u00e9sors?\n[[YELLOW]]Cette capacit\u00e9 vous permet de trouver des tr\u00e9sors en p\u00eachant\n[[YELLOW]]avec une petite chance de trouver des objets enchant\u00e9s.\n[[YELLOW]]Tous les tr\u00e9sors possibles sont trouvables \u00e0 n\'importe\n[[YELLOW]]quel niveau de la Comp\u00e9tence P\u00eache. Trouver un objet\n[[YELLOW]]d\u00e9pend n\u00e9anmoins de la raret\u00e9 de ce dernier.\n[[YELLOW]]Plus votre Comp\u00e9tence P\u00eache est \u00e9lev\u00e9e, plus\n[[YELLOW]]vous aurez de chances de trouver de meilleurs tr\u00e9sors!
|
||||
Guides.Fishing.Section.2=[[DARK_AQUA]]Comment fonctionne la P\u00eache sur Glace?\n[[YELLOW]]Cette capacit\u00e9 passive vous permet de p\u00eacher sur des lacs gel\u00e9s!\n[[YELLOW]]Lancez votre cane \u00e0 p\u00eache dans un lac gel\u00e9 et cette capacit\u00e9\n[[YELLOW]]cr\u00e9era un trou dans la glace pour p\u00eacher.
|
||||
Guides.Fishing.Section.3=[[DARK_AQUA]]Comment fonctionne Ma\u00eetre P\u00eacheur?\n[[YELLOW]]Cette capacit\u00e9 passive augmente la chance d\'une touche sur votre ligne de p\u00eache.\n[[YELLOW]]Lorsque vous avez d\u00e9bloqu\u00e9 cette capacit\u00e9, en p\u00eachant dans un bateau\n[[YELLOW]]ou lorsque vous \u00eates dans un biome oc\u00e9an, la chance d\'une touche est doubl\u00e9e.
|
||||
Guides.Fishing.Section.4=[[DARK_AQUA]]Comment fonctionne la Secousse?\n[[YELLOW]]Cette capacit\u00e9 active vous permet de r\u00e9cup\u00e9rer des objets sur les mobs\n[[YELLOW]]en les crochetant avec une cane \u00e0 p\u00eache.\n[[YELLOW]]Les mobs feront alors tomber au sol ce qu\'ils laisseraient normalement \u00e0 leur mort.\n[[YELLOW]]Il est aussi possible de r\u00e9cup\u00e9rer des cr\u00e2nes de mobs, qui sont normalement\n[[YELLOW]]non r\u00e9cup\u00e9rables.
|
||||
Guides.Fishing.Section.5=[[DARK_AQUA]]Comment fonctionne le Repas du P\u00eacheur?\n[[YELLOW]]Cette capacit\u00e9 passive vous permet d\'augmenter la vie r\u00e9cup\u00e9r\u00e9e\n[[YELLOW]]en mangeant du poisson.
|
||||
Guides.Fishing.Section.6=[[DARK_AQUA]]Notes sur la P\u00eache:\n[[YELLOW]]Les loots de la P\u00eache sont enti\u00e8rement modifiables\n[[YELLOW]]donc les r\u00e9sultats varient selon les serveurs.
|
||||
Guides.Herbalism.Section.0=[[DARK_AQUA]]A propos de l\'herboristerie:\n[[YELLOW]]L\'herboristerie concerne la culture et la r\u00e9colte de plantes et d\'herbes.\n[[DARK_AQUA]]GAIN D\'XP:\n[[YELLOW]]R\u00e9colte de plantes et d\'herbes.
|
||||
Guides.Herbalism.Section.1=[[DARK_AQUA]]Blocs compatibles\n[[YELLOW]]Bl\u00e9, Potatoes, Carrotes, Melons, \n[[YELLOW]]Citrouilles, Canne \u00e0 sucre, F\u00e8ves de Cacao, Fleurs, Cactus, Champignons,\n[[YELLOW]]Verrues du Nether, N\u00e9nuphars, et Lianes.
|
||||
Guides.Herbalism.Section.2=[[DARK_AQUA]]Comment fonctionne Main Verte?\n[[YELLOW]]Main Verte est une capacit\u00e9 activ\u00e9e, gr\u00e2ce \u00e0 un clic-droit\n[[YELLOW]]lorsque vous tenez une houe.\n[[YELLOW]]Main Verte donne au joueur une chance de r\u00e9cup\u00e9rer 3x ce que\n[[YELLOW]]donnerai la plante r\u00e9colt\u00e9e. Vous pouvez \u00e9galement utiliser des\n[[YELLOW]]graines pour insufler la vie \u00e0 certains blocs \n[[YELLOW]]afin de les transformer.
|
||||
Guides.Herbalism.Section.3=[[DARK_AQUA]]Comment Mains Vertes (Plantations) fonctionne ?\n[[YELLOW]]Cette capacit\u00e9 passive va automatiquement replanter les \n[[YELLOW]]plantations lorsque celles-ci ont \u00e9t\u00e9 r\u00e9colt\u00e9es.\n[[YELLOW]]Les chances de succ\u00e8es d\u00e9pendent de votre talent Herborisme.
|
||||
Guides.Herbalism.Section.4=[[DARK_AQUA]]Comment Mains Vertes (Pierre/Briques de Pierre/Terre) fonctionent-elles ?\n[[YELLOW]]Cette cpacit\u00e9 active vous permet de transformer les blocs dans leur\n[[YELLOW]]forme homologue (Pierre Moussue/Brique de Pierre Moussue/Herbe).\n[[YELLOW]]Vous pouvez faire ceci en effectuant un clic droit\n[[YELLOW]]sur le bloc, en tenant des graines. une graine sera alors consomm\u00e9e.
|
||||
Guides.Herbalism.Section.5=[[DARK_AQUA]]Comment fonctionne r\u00e9gime fermier?\n[[YELLOW]]Cette capacit\u00e9 passive augmente le montant d\'\u00e9nergie rendue \n[[YELLOW]]lorsque vous mangez du pain, cookies, past\u00e8que, soupe \n[[YELLOW]]de champignons, carottes et patates.
|
||||
Guides.Herbalism.Section.6=[[DARK_AQUA]]Comment fonctione Chance d\'Hyrule?\n[[YELLOW]]Cette capacit\u00e9 passive vous donne une chance de trouver des\n[[YELLOW]]objets rares lorsque vous cassez certains blocs avec une \u00e9p\u00e9e.
|
||||
Guides.Herbalism.Section.7=[[DARK_AQUA]]Comment fonctionne Double Drops?\n[[YELLOW]]Cette capacit\u00e9 passive donne au joueur\n[[YELLOW]]plus d\'objets lors de ses r\u00e9coltes.
|
||||
Guides.Mining.Section.0=[[DARK_AQUA]]A propos du Minage:\n[[YELLOW]]Le Minage consiste \u00e0 miner de la pierre et des minerais.\n[[YELLOW]]Il occtroie des bonus sur le nombre de minerais obtenus lors du minage.\n[[DARK_AQUA]]Gain d\'exp\u00e9rience:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience dans cette comp\u00e9tence, vous devez simplement miner avec une pioche.\n[[YELLOW]]Seulement certains blocs rapportent de l\'exp\u00e9rience.
|
||||
Guides.Mining.Section.1=[[DARK_AQUA]]Mat\u00e9riaux compatibles:\n[[YELLOW]]Pierre lisse, Minerais de Charbon, Minerais de Fer, Minerais d\'Or, Minerais de Diamant, Minerais de Redstone,\n[[YELLOW]]Minerais de Lapis, Obsidienne, Pierre Moussue, Pierre de l\'End,\n[[YELLOW]]Pierre Lumineuse, et Netherrack.
|
||||
Guides.Mining.Section.2=[[DARK_AQUA]]Comment utiliser le Broyeur:\n[[YELLOW]]Avec une pioche dans votre main, faites clic droit pour pr\u00e9parer votre outil.\n[[YELLOW]]Une fois cela fait, vous avez jusqu\'\u00e0 4 secondes pour commencer \u00e0 miner\n[[YELLOW]]des mat\u00e9riaux compatibles, ce qui activera le Broyeur.
|
||||
Guides.Mining.Section.3=[[DARK_AQUA]]Qu\'est-ce que le Super Briseur?\n[[YELLOW]]Le Super Briseur est une capacit\u00e9 avec un temps de r\u00e9cup\u00e9ration li\u00e9 \u00e0 la Comp\u00e9tence\n[[YELLOW]]minage. Il triple vos chances de r\u00e9cup\u00e9rer des objets et\n[[YELLOW]]permet la casse instantan\u00e9e sur des minerais.
|
||||
Guides.Mining.Section.4=[[DARK_AQUA]]Comment utiliser le Minage Explosif:\n[[YELLOW]]Avec un d\u00e9tonateur en main, \u00e0 savoir un briquet par d\u00e9faut,\n[[YELLOW]]s\'accroupir et faire un clic droit sur de la TNT \u00e0 distance. Ceci fera\n[[YELLOW]]exploser instantan\u00e9ment la TNT.
|
||||
Guides.Mining.Section.5=[[DARK_AQUA]]Comment fonctionne le Minage par Explosions?\n[[YELLOW]]Le Minage par Explosions est une capacit\u00e9 avec un temps de recharge li\u00e9 au talent\n[[YELLOW]]de Minage. Il donne des bonus lors de l\'utilisation nde TNT pour le minage et vous permet\n[[YELLOW]]de contr\u00f4ler l\'explosion de TNT. Il y a 3 parties du Minage par Explosions.\n[[YELLOW]]La premi\u00e8re est les Grosses Bombes. Elle vous permet d\'augmenter le rayon d\'explosion.\n[[YELLOW]]La seconde est la Demolition Experte, qui diminue les d\u00e9g\u00e2ts provenants des explosions de TNT\n[[YELLOW]]La troisi\u00e8me augmente le nombre de minerais obtenus par la TNT et diminue les pertes.
|
||||
Guides.Repair.Section.0=[[DARK_AQUA]]A propos de la R\u00e9paration :\n[[YELLOW]]La r\u00e9paration vous permet d\'utiliser un bloc de fer pour r\u00e9parer\n[[YELLOW]]des armures et des outils.\n[[DARK_AQUA]]Gain d\'exp\u00e9rience:\n[[YELLOW]]R\u00e9parer des outils ou des armures en utilisant l\'enclume de mcMMO.\n[[YELLOW]]C\'est un bloc de fer par d\u00e9faut et il ne doit pas \u00eatre confondu avec\n[[YELLOW]]l\'enclume de Minecraft Vanilla.
|
||||
Guides.Repair.Section.1=[[DARK_AQUA]]Comment utiliser R\u00e9paration?\n[[YELLOW]]Placez une enclume mcMMO et faites un clic droit pour r\u00e9parer l\'objet\n[[YELLOW]]que vous avez en main. Ceci consomme 1 objet \u00e0 chaque utilisation.
|
||||
Guides.Repair.Section.2=[[DARK_AQUA]]Comment fonctionne Ma\u00eetrise de la Forge?\n[[YELLOW]]Ma\u00eetrise de la Forge augmente la quantit\u00e9 de r\u00e9parations effectu\u00e9es.\n[[YELLOW]]La quantit\u00e9 de durabilit\u00e9 suppl\u00e9mentaire attribu\u00e9e est fonction de \n[[YELLOW]]votre niveau en R\u00e9paration.
|
||||
Guides.Repair.Section.3=[[DARK_AQUA]]Comment fonctionne la Super R\u00e9paration?\n[[YELLOW]]La Super R\u00e9paration est une capacit\u00e9 passive . Lors de la r\u00e9paration d\'un \u00e9l\u00e9ment ,\n[[YELLOW]]elle accorde aux joueurs une chance de r\u00e9parer un \u00e9l\u00e9ment avec\n[[YELLOW]]une double efficacit\u00e9.
|
||||
Guides.Repair.Section.4=[[DARK_AQUA]]Comment fonctionne Forge arcanique?\n[[YELLOW]]Cette capacit\u00e9 passive vous permet de r\u00e9parer des objets avec une\n[[YELLOW]]certaine chance de conserver les enchantements. Ces derniers\n[[YELLOW]]pourrons \u00eatre conserv\u00e9 \u00e0 leur niveau, rendus \u00e0 un niveau inf\u00e9rieur\n[[YELLOW]]ou compl\u00e8tement perdus.
|
||||
Guides.Salvage.Section.0=[[DARK_AQUA]]A propos du Recyclage:\n[[YELLOW]]Le Recyclage vous permet d\'utiliser un bloc d\'or pour r\u00e9cup\u00e9rer des mati\u00e8res premi\u00e8res\n[[YELLOW]]sur de l\'armure ou des outils.\n[[DARK_AQUA]]Gain d\'Exp\u00e9rience:\n[[YELLOW]]Le Recyclage est une Comp\u00e9tence enfant des comp\u00e9tences R\u00e9paration et P\u00eache, votre niveau\n[[YELLOW]]de Recyclage est donc bas\u00e9 sur les niveaux des comp\u00e9tences R\u00e9paration et P\u00eache.
|
||||
Guides.Salvage.Section.1=[[DARK_AQUA]]Comment utiliser le Recyclage?\n[[YELLOW]]Placez une Enclume de Recyclage mcMMO et faites un clic-droit pour recycler \n[[YELLOW]]l\'objet que vous avez en main. Ceci cassera votre objet\n[[YELLOW]]et vous rendra les mat\u00e9riaux qui composent l\'objet.\n[[YELLOW]]Par exemple, recycler une pioche en fer vous rendra des barres de fer.
|
||||
Guides.Salvage.Section.2=[[DARK_AQUA]]Comment fonctionne le Recyclage Avanc\u00e9?\n[[YELLOW]]Lorsque d\u00e9bloqu\u00e9e, cette capacit\u00e9 vous permet de recycler des objets d\u00e9t\u00e9rior\u00e9s.\n[[YELLOW]]Votre pourcentage de r\u00e9cup\u00e9ration de mat\u00e9riaux augmente avec votre niveau. Un pourcentage\n[[YELLOW]]plus \u00e9lev\u00e9 signifie que vous pouvez r\u00e9cup\u00e9rer davantage de mat\u00e9riaux.\n[[YELLOW]]Avec le Recyclage Avanc\u00e9 vous r\u00e9cup\u00e9rerez toujours un mat\u00e9riaux \n[[YELLOW]]sauf si l\'objet est trop endommag\u00e9. Vous n\'aurez donc pas \u00e0 vous\n[[YELLOW]]soucier de casser des objets sans avoir rien r\u00e9cup\u00e9r\u00e9.
|
||||
Guides.Salvage.Section.3=[[DARK_AQUA]]Voici une illustration pour expliquer comment cela fonctionne:\n[[YELLOW]]Disons que nous recyclons une pioche en or endommag\u00e9e \u00e0 20%,\n[[YELLOW]]ce qui veux dire que le montant maximum que vous pouvez r\u00e9cup\u00e9rer est 2 (66%).\n[[YELLOW]](parce que la pioche est constitu\u00e9e de 3 lingots, valant chacun\n[[YELLOW]]33,33% de durabilit\u00e9). Si votre pourcentage de r\u00e9cup\u00e9ration de mat\u00e9riaux\n[[YELLOW]]est en dessous de 66% vous ne pourrez pas r\u00e9cup\u00e9rer 2 lingots.\n[[YELLOW]]Si ce pourcentage est au dessus de 66% vous pourrez r\u00e9cup\u00e9rer le\n[[YELLOW]]\"montant maximum\", donc 2 lingots.
|
||||
Guides.Salvage.Section.4=[[DARK_AQUA]]Comment fonctionne le Recyclage Arcanique?\n[[YELLOW]]Cette capacit\u00e9 vous permet de r\u00e9cup\u00e9rer des livres enchant\u00e9s lors que vous recyclez\n[[YELLOW]]des objets enchant\u00e9s. En fonction de votre niveau, la chance de r\u00e9cup\u00e9rer avec succ\u00e8s\n[[YELLOW]]des enchantements entiers ou partiels varie.\n[[YELLOW]]Lorsqu\'un enchantement est partiellement r\u00e9cup\u00e9r\u00e9, le livre enchant\u00e9\n[[YELLOW]]aura un niveau d\'enchantement plus bas compar\u00e9 \u00e0 l\'enchantement\n[[YELLOW]]de l\'objet que recyclez.
|
||||
Guides.Smelting.Section.0=Arrive bient\u00f4t...
|
||||
Guides.Swords.Section.0=[[DARK_AQUA]]A propos du combat \u00e0 l\'\u00e9p\u00e9e::\n[[YELLOW]]Cette comp\u00e9tence octroie un bonus si vous combattez avec\n[[YELLOW]]une \u00e9p\u00e9e.\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Le gain d\'XP est bas\u00e9 sur le montant des d\u00e9gats inflig\u00e9s aux mobs \n[[YELLOW]]et autres joueurs avec une \u00e9p\u00e9e.
|
||||
Guides.Swords.Section.1=[[DARK_AQUA]]Comment fonctionne coups d\u00e9chirants?\n[[YELLOW]]Coups d\u00e9chirants est une capacit\u00e9 acitv\u00e9e, vous pouvez l\'activer\n[[YELLOW]]avec un clic droit, une \u00e9p\u00e9e \u00e0 la main. Cette capacit\u00e9 vous permet \n[[YELLOW]]d\'infliger des d\u00e9g\u00e2ts de zone (AoE). Cette AoE inflige un bonus de 25%\n[[YELLOW]]de dommage et fais saigner la cilbe pendant 5 ticks.
|
||||
Guides.Swords.Section.2=[[DARK_AQUA]]Comment fonctionne la Contre-Attaque?\n[[YELLOW]]La Contre-Attaque est une capacit\u00e9 active. En bloquant les attaques\n[[YELLOW]]des mobs, vous avez une chance de repousser 50% des\n[[YELLOW]]d\u00e9g\u00e2ts qui vous sont inflig\u00e9s.
|
||||
Guides.Swords.Section.3=[[DARK_AQUA]]Comment fonctionne le Saignement?\n[[YELLOW]]Le Saignement fait saigner vos ennemis, perdant de la vie toutes les deux secondes.\n[[YELLOW]]La cible saignera jusqu\'\u00e0 ce que l\'effet s\'estompe, ou qu\'il meure,\n[[YELLOW]]en fonction de ce qui arrive en premier!\n[[YELLOW]]La durabilit\u00e9 du Saignement est augment\u00e9 avec votre Comp\u00e9tence \u00c9p\u00e9e.
|
||||
Guides.Taming.Section.0=[[DARK_AQUA]]A propos de l\'Apprivoisement:\n[[YELLOW]]L\'apprivoisement conf\u00e8re au joueur divers bonus de combat\n[[YELLOW]]lorsqu\'il utilise un animal (loup/ocelot).\n[[DARK_AQUA]]GAIN D\'XP:\n[[YELLOW]]Pour gagner de l\'exp\u00e9rience, vous devez apprivoiser des loups ou des\n[[YELLOW]]ocelots
|
||||
Guides.Taming.Section.1=[[DARK_AQUA]]Comment fonctionne l\'Appel de la Nature?\n[[YELLOW]]Appel de la Nature est une capacit\u00e9 active qui vous permet de faire appel\n[[YELLOW]]\u00e0 un loup ou un ocelot. Vous pouvez faire ceci en faisant\n[[YELLOW]]un clic gauche en tenant des os ou du poisson.
|
||||
Guides.Taming.Section.2=[[DARK_AQUA]]Comment fonctionne connaissance des b\u00eates?\n[[YELLOW]]Connaissance des b\u00eates permet au joueur d\'inspecter les stats\n[[YELLOW]]de ses animaux. Cliquez gauche un loup ou un ocelot pour\n[[YELLOW]]utiliser Connaissance des b\u00eates.
|
||||
Guides.Taming.Section.3=[[DARK_AQUA]]Comment fonctione Gore?\n[[YELLOW]]Gore est une capacit\u00e9 passive qui a une chance d\'infliger un effet\n[[YELLOW]]de saignement sur la cible de votre loup.
|
||||
Guides.Taming.Section.4=[[DARK_AQUA]]Comment fonctionne Griffes aiguis\u00e9es?\n[[YELLOW]]Griffes aiguis\u00e9es ajoute un bonus de d\u00e9g\u00e2ts inflig\u00e9s par votre loup.\n[[YELLOW]]Le bonus de d\u00e9g\u00e2ts d\u00e9pend de votre niveau en Apprivoisement.
|
||||
Guides.Taming.Section.5=[[DARK_AQUA]]Comment fonctionne Attentif \u00e0 l\'environnement?\n[[YELLOW]]Cette capacit\u00e9 passive permet \u00e0 votre loup de se t\u00e9l\u00e9porter sur vous\n[[YELLOW]]lorsqu\'il se rapproche de dangers (cactus, lave, etc). Cela lui donne\n[[YELLOW]]\u00e9galemment l\'immunit\u00e9 contre les d\u00e9g\u00e2ts de chute.
|
||||
Guides.Taming.Section.6=[[DARK_AQUA]]Comment fonctionne Poil \u00c9pais?\n[[YELLOW]]Cette capacit\u00e9 passive rend vos loups moins vuln\u00e9rables\n[[YELLOW]]et r\u00e9sistants au feu.
|
||||
Guides.Taming.Section.7=[[DARK_AQUA]]Comment fonctionne r\u00e9sistance aux chocs?\n[[YELLOW]]Cette capacit\u00e9 passive r\u00e9duit les d\u00e9g\u00e2ts inflig\u00e9s \u00e0 vos loups\n[[YELLOW]]par les explosions.
|
||||
Guides.Taming.Section.8=[[DARK_AQUA]]Comment fonctionne Service Fast Food?\n[[YELLOW]]Cette capacit\u00e9 passive donne \u00e0 vos loups une chance de\n[[YELLOW]]se soigner lorsqu\'ils effectuent une attaque.
|
||||
Guides.Unarmed.Section.0=[[DARK_AQUA]]A propos des Poings:\n[[YELLOW]]Utiliser ses Poings pour se battre donnera des bonus divers lorsque\n[[YELLOW]]vous combattez.\n[[DARK_AQUA]]Gain d\'Exp\u00e9rience:\n[[YELLOW]]Vous gagnez de l\'exp\u00e9rience en fonction des d\u00e9g\u00e2ts inflig\u00e9s aux mobs\n[[YELLOW]]ou aux autres joueurs lors d\'un combat avec vos Poings.
|
||||
Guides.Unarmed.Section.1=[[DARK_AQUA]]Comment fonctionne la Furie?\n[[YELLOW]]Furie est une capacit\u00e9 active qui est activ\u00e9e en faisant un clic-droit,\n[[YELLOW]]en n\'ayant rien \u00e0 la main. En mode Furie, vous infligerez 50% plus\n[[YELLOW]]de d\u00e9g\u00e2ts et vous pourrez casser des mat\u00e9riaux faibles instantan\u00e9ment,\n[[YELLOW]]comme l\'Herbe et la Terre.
|
||||
Guides.Unarmed.Section.2=[[DARK_AQUA]]Comment fonctionne le Bras de Fer?\n[[YELLOW]]Bras de Fer augmente les d\u00e9g\u00e2ts inflig\u00e9s lorsque vous attaquez des mobs ou\n[[YELLOW]]des joueurs avec les Poings.
|
||||
Guides.Unarmed.Section.3=[[DARK_AQUA]]Comment fonctionne la D\u00e9viation de Fl\u00e8che?\n[[YELLOW]]La D\u00e9viation de Fl\u00e8che est une capacit\u00e9 \n[[YELLOW]]qui permet de d\u00e9vier une fl\u00e8che tir\u00e9e par un Squelette ou un joueur.\n[[YELLOW]]Cette fl\u00e8che tombera alors au sol, inoffensive.
|
||||
Guides.Unarmed.Section.4=[[DARK_AQUA]]Comment fonctionne la Poigne de Fer?\n[[YELLOW]]Poigne de Fer est une capacit\u00e9 passive qui contre le d\u00e9sarmement. En am\u00e9liorant\n[[YELLOW]]votre comp\u00e9tence Poings, la chance de parer un d\u00e9sarmement augmente.
|
||||
Guides.Unarmed.Section.5=[[DARK_AQUA]]Comment fonctionne d\u00e9sarmement?\n[[YELLOW]]Cette capacit\u00e9 passive permet le joueur de d\u00e9sarmer d\'autres joueurs,\n[[YELLOW]]provoquant la chute au sol de ses objets \u00e9quip\u00e9s.
|
||||
Guides.Woodcutting.Section.0=[[DARK_AQUA]]A propos de b\u00fbcheronnage:\n[[YELLOW]]Le b\u00fbcheronnage concerne l\'abattement d\'arbres.\n[[DARK_AQUA]]Gain d\'Exp\u00e9rience:\n[[YELLOW]]Vous gagniez de l\'exp\u00e9rience pour chaque bloc de bois cass\u00e9.
|
||||
Guides.Woodcutting.Section.1=[[DARK_AQUA]]Comment fonctionne le Fendeur d\'Arbres?\n[[YELLOW]]Le Fendage d\'Arbres est une capacit\u00e9 active, en faisant un clic-droit\n[[YELLOW]]avec une hache \u00e0 la main, vous activerez cette capacit\u00e9. Ceci vous\n[[YELLOW]]permettra d\'abattre un arbre int\u00e9gralement, en r\u00e9cup\u00e9rant\n[[YELLOW]]toutes les b\u00fbches d\'un coup.
|
||||
Guides.Woodcutting.Section.2=[[DARK_AQUA]]Comment fonctionne le Souffleur de Feuilles?\n[[YELLOW]]Souffleur de Feuilles est une capacit\u00e9 passive qui permet de casser un\n[[YELLOW]]bloc de feuilles instantan\u00e9ment quand vous les cassez avec un hache. Par d\u00e9faut,\n[[YELLOW]]cette capacit\u00e9 est disponible au niveau 100 de la Comp\u00e9tence B\u00fbcheronnage.
|
||||
Guides.Woodcutting.Section.3=[[DARK_AQUA]]Comment fonctionne Double Bois?\n[[YELLOW]]Cette capacit\u00e9 passive vous donne une chance\n[[YELLOW]]de r\u00e9cup\u00e9rer une b\u00fbche suppl\u00e9mentaire par bloc de bois cass\u00e9.
|
||||
Inspect.Offline=Tu n\'as pas la permission d\'inspecter un joueur hors ligne!
|
||||
Inspect.OfflineStats=mcMMO Stats for Offline Player [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0}
|
||||
Inspect.TooFar=Vous \u00eates trop \u00e9loign\u00e9 de ce joueur pour l\'inspecter !
|
||||
Item.ChimaeraWing.Fail=**\u00c9CHEC D\'AILE DE CHIM\u00c8RE !**
|
||||
Item.ChimaeraWing.Pass=**AILE DE CHIM\u00c8RE**
|
||||
Item.ChimaeraWing.Name=Aile de Chim\u00e8re
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Vous t\u00e9l\u00e9porte \u00e0 votre lit.
|
||||
Item.Generic.Wait=Vous devez attendre avant de pouvoir utiliser cela de nouveau ! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=Vous avez \u00e9t\u00e9 bless\u00e9 r\u00e9cemment et devez attendre pour utiliser cela. [[YELLOW]]({0}s)
|
||||
Item.FluxPickaxe.Name=Pioche de Flux
|
||||
Item.FluxPickaxe.Lore.1=[[GRAY]]A une chance de fondre des minerais instantan\u00e9ment.
|
||||
Item.FluxPickaxe.Lore.2=[[GRAY]]Requi\u00e8re niveau de Forge {0}+
|
||||
Teleport.Commencing=[[GRAY]]La t\u00e9l\u00e9portation commence dans [[GOLD]]({0}) [[GRAY]]secondes, pri\u00e8re de ne pas bouger...
|
||||
Teleport.Cancelled=[[DARK_RED]]T\u00e9l\u00e9portation annul\u00e9e !
|
||||
Skills.Child=[[GOLD]](TALENT ENFANT)
|
||||
Skills.Disarmed=[[DARK_RED]]Vous avez \u00e9t\u00e9 d\u00e9sarm\u00e9 !
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus
|
||||
Skills.Parents=PARENTS
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP ([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.ChildStats={0}[[GREEN]]{1}
|
||||
Skills.TooTired=Vous \u00eates trop fatigu\u00e9 pour r\u00e9utiliser cette comp\u00e9tence maintenant.
|
||||
Skills.Cancelled={0} annul\u00e9(e) !
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Fa\u00eetes de nouveau un clic droit pour confirmer [[GOLD]]{0}[[GREEN]]. Clic gauche pour annuler.
|
||||
Stats.Header.Combat=[[GOLD]]-=COMP\u00c9TENCES DE COMBAT=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=COMP\u00c9TENCES DE R\u00c9COLTE=-
|
||||
Stats.Header.Misc=[[GOLD]]-=AUTRES TALENTS=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Statistiques
|
||||
Perks.XP.Name=Exp\u00e9rience
|
||||
Perks.XP.Desc=Gain d\'EXP boost\u00e9 dans certains talents.
|
||||
Perks.Lucky.Name=Chance
|
||||
Perks.Lucky.Desc=Donnes {0} comp\u00e9tences et abilet\u00e9s 33.3% de chance d\'\u00eatre activ\u00e9es.
|
||||
Perks.Lucky.Desc.Login=Donne \u00e0 certaines comp\u00e9tences 33.3% de chance d\'\u00eatre activ\u00e9es.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} avec votre avantage de chance)
|
||||
Perks.Cooldowns.Name=Reg\u00e9n\u00e9ration rapide
|
||||
Perks.Cooldowns.Desc=Temps d\'attente r\u00e9duits de {0}.
|
||||
Perks.ActivationTime.Name=Endurance
|
||||
Perks.ActivationTime.Desc=Augmente la dur\u00e9e de l\'abil\u00e9t\u00e9 de {0} secondes.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s avec votre avantage d\'endurance)
|
||||
Hardcore.Mode.Disabled=[[GOLD]][mcMMO] Le mode Hardcore {0} a \u00e9t\u00e9 d\u00e9sactiv\u00e9 pour {1}.
|
||||
Hardcore.Mode.Enabled=[[GOLD]][mcMMO] Le mode Hardcore {0} a \u00e9t\u00e9 activ\u00e9 pour {1}.
|
||||
Hardcore.DeathStatLoss.Name=P\u00e9nalit\u00e9s sur les talents lors de la mort
|
||||
Hardcore.DeathStatLoss.PlayerDeath=[[GOLD]][mcMMO] [[DARK_RED]]Vous avez perdu [[BLUE]]{0}[[DARK_RED]] niveau(x) dans votre mort.
|
||||
Hardcore.DeathStatLoss.PercentageChanged=[[GOLD]][mcMMO] Le pourcentage de perte de statistiques a \u00e9t\u00e9 chang\u00e9 \u00e0 {0}.
|
||||
Hardcore.Vampirism.Name=Vampirisme
|
||||
Hardcore.Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] \u00e9tait trop maladroit pour am\u00e9liorer votre connaissance.
|
||||
Hardcore.Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]Vous avez vol\u00e9 [[BLUE]]{0}[[DARK_AQUA]] niveau(x) de [[YELLOW]]{1}.
|
||||
Hardcore.Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] Il n\'a pas \u00e9t\u00e9 capable de vous voler votre connaissance !
|
||||
Hardcore.Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] a vol\u00e9 [[BLUE]]{1}[[DARK_RED]] de vos niveaux !
|
||||
Hardcore.Vampirism.PercentageChanged=[[GOLD]][mcMMO] Le pourcentage de perte de statistiques a \u00e9t\u00e9 chang\u00e9 \u00e0 {0}.
|
||||
MOTD.Donate=[[DARK_AQUA]]Donation Info:
|
||||
MOTD.Hardcore.Enabled=[[GOLD]][mcMMO] [[DARK_AQUA]]Mode Hardcore activ\u00e9 : [[DARK_RED]]{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]P\u00e9nalit\u00e9s sur les talents lors de la mort : [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Pourcentage de perte de statistiques de Vampirisme: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO Comp\u00e9tences]
|
||||
MOTD.Version=[[GOLD]][mcMMO] Version [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO Website
|
||||
Smelting.Ability.FluxMining=Chance de Minage en Flux : [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=Multiplicateur d\'efficacit\u00e9 des Combustibles: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux de talent (BOOST D\'EXPERIENCE VANILLA)
|
||||
Smelting.Ability.Locked.1=Bloqu\u00e9 jusqu\'\u00e0 {0}+ niveaux du talent (MINAGE PAR EXPLOSIONS)
|
||||
Smelting.Ability.SecondSmelt=Chance de seconde cuisson: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=Multiplicateur d\'EXP Vanilla: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=Efficacit\u00e9 du combustible
|
||||
Smelting.SubSkill.FuelEfficiency.Description=Augmente la dur\u00e9e de vie du combustible utilis\u00e9 dans les fours lors des cuissons
|
||||
Smelting.SubSkill.SecondSmelt.Name=Seconde Cuisson
|
||||
Smelting.SubSkill.SecondSmelt.Description=Double les ressources obtenues par cuisson
|
||||
Smelting.Effect.4=Bonus d\'experience Vanilla
|
||||
Smelting.Effect.5=Augmente l\'EXP Vanilla aquise lors des cuissons
|
||||
Smelting.SubSkill.FluxMining.Name=Minage en Flux
|
||||
Smelting.SubSkill.FluxMining.Description=Chance pour que les minerais soient instantan\u00e9ment cuits lors de leur minage
|
||||
Smelting.Listener=Cuisson:
|
||||
Smelting.SkillName=FONTE
|
||||
Commands.Description.addlevels=Ajouter des niveaux McMMO a un utilisateur
|
||||
Commands.Description.adminchat=Modifie le tchat McMMO admin en activ\u00e9/d\u00e9sactiv\u00e9 ou envoie des messages dans le tchat admin
|
||||
Commands.Description.addxp=Ajoute de l\'EXP McMMO \u00e0 un utilisateur
|
||||
Commands.Description.hardcore=Modifier le pourcentage de difficult\u00e9 de mcMMO ou activer ou non le mode hardcore
|
||||
Commands.Description.inspect=Voir les infos d\u00e9taill\u00e9es d\'un autre joueur
|
||||
Commands.Description.mcability=Modifie la possibilit\u00e9 que les capacit\u00e9s McMMO soient pr\u00eates par un clic droit en activ\u00e9/d\u00e9sactiv\u00e9
|
||||
Commands.Description.mccooldown=Voir tous les temps d\'attentes des capacit\u00e9s McMMO
|
||||
Commands.Description.mcgod=Modifie le mode Dieu de McMMO en activ\u00e9/d\u00e9sactiv\u00e9
|
||||
Commands.Description.mchud=Change le style du HUD McMMO
|
||||
Commands.Description.mcmmo=Montre une br\u00e8ve description de McMMO
|
||||
Commands.Description.mcnotify=Modifie l\'affichage des notifications dans le tchat des capacit\u00e9s mcMMO en activ\u00e9/d\u00e9sactiv\u00e9
|
||||
Commands.Description.mcpurge=Purge les utilisateurs avec aucun niveaux McMMO et les utilisateurs qui ne se sont pas connect\u00e9s dans les {0} derniers mois de la base de donn\u00e9es McMMO.
|
||||
Commands.Description.mcrank=Montre le classement McMMO d\'un joueur
|
||||
Commands.Description.mcrefresh=Rafra\u00eechi tous les temps d\'attente McMMO
|
||||
Commands.Description.mcremove=Enl\u00e8ve un utilisateur de la base de donn\u00e9es
|
||||
Commands.Description.mcscoreboard=Modifiez votre tableau des scores McMMO
|
||||
Commands.Description.mcstats=Montre vos niveaux McMMO et votre EXP
|
||||
Commands.Description.mctop=Montre le classement McMMO
|
||||
Commands.Description.mmoedit=Modifie les niveaux McMMO pour un utilisateur
|
||||
Commands.Description.mmoupdate=Migration de la base de donn\u00e9es mcMMO \u00e0 partir d\'une ancienne vers l\'actuelle.
|
||||
Commands.Description.mcconvert=Convertie les types de base de donn\u00e9es ou les types de formule d\'experience
|
||||
Commands.Description.mmoshowdb=Montre le nom de la base de donn\u00e9es actuellement utilis\u00e9e (vous pouvez obtenir la derni\u00e8re avec /mmoupdate)
|
||||
Commands.Description.party=Contr\u00f4le les divers r\u00e9glages des guildes McMMO
|
||||
Commands.Description.partychat=Modifie le tchat McMMO de la guilde en activ\u00e9/d\u00e9sactiv\u00e9 ou envoie des messages dans le tchat de la guilde.
|
||||
Commands.Description.ptp=Vous t\u00e9l\u00e9porte \u00e0 un membre de votre groupe mcMMO
|
||||
Commands.Description.Skill=Affiche des infos d\u00e9taill\u00e9es du talent McMMO {0}
|
||||
Commands.Description.skillreset=Remet \u00e0 0 tous les niveaux McMMO pour un utilisateur
|
||||
Commands.Description.vampirism=Modifie le mode Dieu de McMMO en activ\u00e9/d\u00e9sactiv\u00e9
|
||||
Commands.Description.xplock=Bloque votre barre d\'EXP McMMO pour un talent sp\u00e9cifique
|
||||
Commands.Description.xprate=Modifie le taux d\'EXP McMMO ou d\u00e9bute un event XP McMMO
|
||||
UpdateChecker.Outdated=Vous utilisez une ancienne version de McMMO !
|
||||
UpdateChecker.NewAvailable=Une nouvelle version est disponible sur BukkitDev.
|
||||
Scoreboard.Header.PlayerStats=Statistiques McMMO
|
||||
Scoreboard.Header.PlayerCooldowns=Temps d\'attente McMMO
|
||||
Scoreboard.Header.PlayerRank=Classement McMMO
|
||||
Scoreboard.Header.PlayerInspect=Statistiques McMMO: {0}
|
||||
Scoreboard.Header.PowerLevel=Niveau de puissance
|
||||
Scoreboard.Misc.PowerLevel=[[GOLD]]Niveau de puissance
|
||||
Scoreboard.Misc.Level=[[DARK_AQUA]]Niveau
|
||||
Scoreboard.Misc.CurrentXP=[[GREEN]]EXP actuelle
|
||||
Scoreboard.Misc.RemainingXP=EXP restante
|
||||
Scoreboard.Misc.Cooldown=[[LIGHT_PURPLE]]Temps d\'attente
|
||||
Scoreboard.Misc.Overall=[[GOLD]]Global
|
||||
Scoreboard.Misc.Ability=Capacit\u00e9
|
||||
Profile.Loading.Success=[[GREEN]]G\u00e9nial! Vos donn\u00e9es McMMO ont \u00e9t\u00e9 charg\u00e9es.
|
||||
Profile.Loading.Failure=McMMO ne peut toujours pas charger vos donn\u00e9es. Vous devriez sans doute [[AQUA]]contacter le possesseur du serveur.\n[[YELLOW]]Vous pouvez toujours jouer sur le serveur, mais vous n\'aurez [[BOLD]]pas de niveaux McMMO[[YELLOW]] et chaque EXP obtenu[[BOLD]]ne sera pas sauvergard\u00e9[[YELLOW]].
|
||||
Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]] McMMO a \u00e9t\u00e9 incapable de charger les donn\u00e9es du joueur [[YELLOW]]{0}[[RED]]. [[LIGHT_PURPLE]]Veuillez inspecter votre installation de la base de donn\u00e9es.
|
||||
@@ -1,903 +0,0 @@
|
||||
#ACROBATICS
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Atterraggio Aggraziato**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Schivato**
|
||||
Acrobatics.DodgeChance=Possibilit\u00E0 di Schivata: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Capriola
|
||||
Acrobatics.SubSkill.Roll.Description=Riduce o annulla il danno da caduta
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=Capriola Aggraziata
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Il doppio pi\u00F9 efficiente di una normale Capriola
|
||||
Acrobatics.SubSkill.Dodge.Name=Schivata
|
||||
Acrobatics.SubSkill.Dodge.Description=Riduce il danno degli attacchi della met\u00E0
|
||||
Acrobatics.Listener=Acrobatica:
|
||||
Acrobatics.SubSkill.Roll.Chance=Possibilit\u00E0 di Capriola: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Possibilit\u00E0 di Capriola Aggraziata: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Capriola Eseguita**
|
||||
Acrobatics.SkillName=ACROBATICA
|
||||
Acrobatics.Skillup=L'abilit\u00E0 Acrobatica \u00E8 aumentata di {0}. Totale ({1})
|
||||
#ALCHEMY
|
||||
Alchemy.SubSkill.Catalysis.Name=Catalisi
|
||||
Alchemy.SubSkill.Catalysis.Description=Aumenta la velocit\u00E0 di produzione delle pozioni
|
||||
Alchemy.SubSkill.Concoctions.Name=Intrugli
|
||||
Alchemy.SubSkill.Concoctions.Description=Crea pozioni con pi\u00F9 ingredienti
|
||||
Alchemy.Listener=Alchimia:
|
||||
Alchemy.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (CATALISI)
|
||||
Alchemy.Catalysis.Speed=Velocit\u00E0 di Preparazione: [[YELLOW]]{0}
|
||||
Alchemy.Concoctions.Rank=Grado Intrugli: [[YELLOW]]{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=Ingredienti [[[YELLOW]]{0}[[RED]]]: [[YELLOW]]{1}
|
||||
Alchemy.SkillName=ALCHIMIA
|
||||
Alchemy.Skillup=L'abilit\u00E0 Alchimia \u00E8 aumentata di {0}. Totale ({1})
|
||||
#ARCHERY
|
||||
Archery.Combat.DazeChance=Possibilit\u00E0 di Stordire: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Possibilit\u00E0 di Recuperare Frecce: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Bonus al Danno di Tiro da Maestro: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Tiro da Maestro
|
||||
Archery.SubSkill.SkillShot.Description=Aumenta il danno fatto con gli archi
|
||||
Archery.SubSkill.Daze.Name=Stordire (Giocatori)
|
||||
Archery.SubSkill.Daze.Description=Disorienta i nemici e infligge {0} Danni
|
||||
Archery.SubSkill.ArrowRetrieval.Name=Recupero Frecce
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Probabilit\u00E0 di recuperare frecce dai cadaveri
|
||||
Archery.Listener=Tiro con l'Arco:
|
||||
Archery.SkillName=Arco
|
||||
Archery.Skillup=L'abilit\u00E0 Tiro con l'Arco \u00E8 aumentata di {0}. Totale ({1})
|
||||
#AXES
|
||||
Axes.Ability.Bonus.0=Maestria con l'Ascia
|
||||
Axes.Ability.Bonus.1={0} Danni Bonus
|
||||
Axes.Ability.Bonus.2=Sfonda Armature
|
||||
Axes.Ability.Bonus.3=Infliggi {0} Danni Bonus alle armature
|
||||
Axes.Ability.Bonus.4=Impatto Maggiore
|
||||
Axes.Ability.Bonus.5=Infliggi {0} danni bonus ai nemici senza armatura
|
||||
Axes.Ability.Lower=[[GRAY]]**ABBASSI L'ASCIA**
|
||||
Axes.Ability.Ready=[[GREEN]]**PREPARI L'ASCIA**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Hai subito un colpo CRITICO!
|
||||
Axes.Combat.CritChance=Probabilit\u00E0 di un colpo critico: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=COLPO CRITICO!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**COLPITO CON GRANDE FORZA**
|
||||
Axes.Combat.GI.Struck=**COLPITO DA IMPATTO MAGGIORE**
|
||||
Axes.Combat.SS.Struck=[[DARK_RED]]Colpito da SPACCA CRANI!
|
||||
Axes.Combat.SS.Length=Durata di Spacca Crani: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=Spacca Crani (Capacit\u00E0)
|
||||
Axes.SubSkill.SkullSplitter.Description=Infligge Danno ad Area
|
||||
Axes.SubSkill.CriticalStrikes.Name=Colpi Critici
|
||||
Axes.SubSkill.CriticalStrikes.Description=Doppio Danno
|
||||
Axes.SubSkill.AxeMastery.Name=Maestria con l'Ascia
|
||||
Axes.SubSkill.AxeMastery.Description=Aggiunge Danni bonus
|
||||
Axes.SubSkill.ArmorImpact.Name=Sfonda Armature
|
||||
Axes.SubSkill.ArmorImpact.Description=Colpisci con forza sufficiente da fracassare le armature
|
||||
Axes.SubSkill.GreaterImpact.Name=Impatto Maggiore
|
||||
Axes.SubSkill.GreaterImpact.Description=Infligge danno bonus ai nemici senza armatura
|
||||
Axes.Listener=Asce:
|
||||
Axes.SkillName=ASCE
|
||||
Axes.Skills.SS.Off=**Spacca Crani si \u00E8 esaurito**
|
||||
Axes.Skills.SS.On=[[GREEN]]**Spacca Crani ATTIVATA**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Spacca Crani [[GREEN]]si \u00E8 rigenerata!
|
||||
Axes.Skills.SS.Other.Off=Spacca Crani[[GREEN]] si \u00E8 esaurito per [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Spacca Crani!
|
||||
Axes.Skillup=L'abilit\u00E0 Asce \u00E8 aumentata di {0}. Totale ({1})
|
||||
#EXCAVATION
|
||||
Excavation.Ability.Lower=[[GRAY]]**ABBASSI LA PALA**
|
||||
Excavation.Ability.Ready=[[GREEN]]**PREPARI LA PALA**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Giga-Trivella Demolitrice (CAPACIT\u00C0)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=Drop x3, XP x3, +Velocit\u00E0
|
||||
Excavation.SubSkill.TreasureHunter.Name=Cacciatore di Tesori
|
||||
Excavation.SubSkill.TreasureHunter.Description=Capacit\u00E0 di disseppellire tesori
|
||||
Excavation.Effect.Length=Durata di Giga-Trivella Demolitrice: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Escavazione:
|
||||
Excavation.SkillName=ESCAVAZIONE
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Giga-Trivella Demolitrice si \u00E8 esaurita**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA-TRIVELLA DEMOLITRICE ATTIVATA**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Giga-Trivella Demolitrice [[GREEN]]si \u00E8 rigenerata!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=Giga-Trivella Demolitrice[[GREEN]] si \u00E8 esaurita per [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Giga-Trivella Demolitrice!
|
||||
Excavation.Skillup=L'abilit\u00E0 Escavazione \u00E8 aumentata di {0}. Totale ({1})
|
||||
#FISHING
|
||||
Fishing.Ability.Chance=Possibilit\u00E0 di Morso: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=Cacciatore di Magia: [[GRAY]] **Migliora insieme al Grado di Cacciatore di Tesori**
|
||||
Fishing.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (SCUOTERE)
|
||||
Fishing.Ability.Locked.1=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (PESCA SUL GHIACCIO)
|
||||
Fishing.Ability.Locked.2=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (PESCATORE PROVETTO)
|
||||
Fishing.Ability.Rank=Grado di Cacciatore di Tesori: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.TH.DropRate=Tasso di Drop: [[DARK_RED]]Trap: [[YELLOW]]{0} [[GRAY]]Comune: [[YELLOW]]{1} [[GREEN]]Non Comune: [[YELLOW]]{2}\n[[BLUE]]Raro: [[YELLOW]]{3} [[LIGHT_PURPLE]]Epico: [[YELLOW]]{4} [[GOLD]]Leggendario: [[YELLOW]]{5} [[AQUA]]Record: [[YELLOW]]{6}
|
||||
Fishing.Ability.TH.MagicRate=Possibilit\u00E0 di Cacciatore di Magia: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Probabilit\u00E0 di Scuotere: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=Pesca sul Ghiaccio: Vai a pescare sul ghiaccio
|
||||
Fishing.Ability.FD=Dieta del Pescatore: [[YELLOW]]Grado {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Cacciatore di Tesori (Passivo)
|
||||
Fishing.SubSkill.TreasureHunter.Description=Ripesca oggetti vari
|
||||
Fishing.SubSkill.MagicHunter.Name=Cacciatore di Magia
|
||||
Fishing.SubSkill.MagicHunter.Description=Trova Oggetti Incantati
|
||||
Fishing.SubSkill.Shake.Name=Scuotere (contro Entit\u00E0)
|
||||
Fishing.SubSkill.Shake.Description=Scrolla oggetti di dosso ai mob con una canna da pesca
|
||||
Fishing.SubSkill.FishermansDiet.Name=Dieta del Pescatore
|
||||
Fishing.SubSkill.FishermansDiet.Description=Aumenta la fame recuperata tramite cibi pescati
|
||||
Fishing.SubSkill.MasterAngler.Name=Pescatore Provetto
|
||||
Fishing.SubSkill.MasterAngler.Description=Migliora le possibilit\u00E0 di ricevere un morso mentre si pesca
|
||||
Fishing.SubSkill.IceFishing.Name=Pesca sul Ghiaccio
|
||||
Fishing.SubSkill.IceFishing.Description=Ti permette di pescare nei biomi ghiacciati
|
||||
Fishing.Chance.Raining=[[BLUE]] Bonus Pioggia
|
||||
Fishing.Listener=Pesca:
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]Senti un tocco di magia in questa cattura...
|
||||
Fishing.Ability.TH.Boom=[[GRAY]]TEMPO DI BOOM!!!
|
||||
Fishing.Ability.TH.Poison=[[GRAY]]C'\u00E8 qualcosa che non va bene...
|
||||
Fishing.SkillName=PESCA
|
||||
Fishing.Skillup=L'abilit\u00E0 Pesca \u00E8 aumentata di {0}. Totale ({1})
|
||||
#HERBALISM
|
||||
Herbalism.Ability.DoubleDropChance=Possibilit\u00E0 di Doppio Drop: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=Dieta del Contadino: [[YELLOW]]Grado {0}
|
||||
Herbalism.Ability.GTe.Length=Durata di Terra Verde: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=Ti servono pi\u00F9 semi per diffondere Terra Verde.
|
||||
Herbalism.Ability.GTh.Chance=Possibilit\u00E0 di Pollice Verde: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=[[RED]]**POLLICE VERDE FALLITO**
|
||||
Herbalism.Ability.GTh.Stage=Stadio di Pollice Verde: [[YELLOW]] Il raccolto cresce allo stadio {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**POLLICE VERDE**
|
||||
Herbalism.Ability.HylianLuck=Probabilit\u00E0 di Fortuna Hylian: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**ABBASSI LA ZAPPA**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**PREPARI LA ZAPPA**
|
||||
Herbalism.Ability.ShroomThumb.Chance=Possibilit\u00E0 di Pollice Fungo: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**POLLICE FUNGO FALLITO**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Terra Verde (CAPACIT\u00C0)
|
||||
Herbalism.SubSkill.GreenTerra.Description=Diffonde il Verde, Drop x3
|
||||
Herbalism.SubSkill.GreenThumb.Name=Pollice Verde (Grano)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Auto-Pianta il grano quando viene raccolto
|
||||
Herbalism.Effect.4=Pollice Verde (Blocchi)
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Rende i mattoni muscosi, o fa crescere l'erba
|
||||
Herbalism.SubSkill.FarmersDiet.Name=Dieta del Contadino
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Aumenta la fame recuperata tramite cibi coltivati
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Doppi Drop (Ogni Pianta)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=Raddoppia il normale drop
|
||||
Herbalism.SubSkill.HylianLuck.Name=Fortuna Hylian
|
||||
Herbalism.SubSkill.HylianLuck.Description=D\u00E0 una modesta possibilit\u00E0 di trovare oggetti rari
|
||||
Herbalism.SubSkill.ShroomThumb.Name=Pollice Fungo
|
||||
Herbalism.SubSkill.ShroomThumb.Description=Diffonde il micelio su terra & erba
|
||||
Herbalism.HylianLuck=[[GREEN]]Oggi la fortuna di Hyrule \u00E8 con te!
|
||||
Herbalism.Listener=Erboristeria:
|
||||
Herbalism.SkillName=ERBORISTERIA
|
||||
Herbalism.Skills.GTe.Off=**Terra Verde si \u00E8 esaurita**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**TERRA VERDE ATTIVATA**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]La tua abilit\u00E0 [[YELLOW]]Terra Verde [[GREEN]]si \u00E8 rigenerata!
|
||||
Herbalism.Skills.GTe.Other.Off=Terra Verde[[GREEN]] si \u00E8 esaurita per [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Terra Verde!
|
||||
Herbalism.Skillup=L'abilit\u00E0 Erboristeria \u00E8 aumentata di {0}. Totale ({1})
|
||||
#MINING
|
||||
Mining.Ability.Length=Durata di Super Demolitore: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (ESTRAZIONE ESPLOSIVA)
|
||||
Mining.Ability.Locked.1=BLOCCATO FINO AD ABILIT\u00C0 {0} (BOMBE PI\u00D9 GRANDI)
|
||||
Mining.Ability.Locked.2=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (PERIZIA NELLE DEMOLIZIONI)
|
||||
Mining.Ability.Lower=[[GRAY]]**ABBASSI IL PICCONE**
|
||||
Mining.Ability.Ready=[[GREEN]]**PREPARI IL PICCONE**
|
||||
Mining.SubSkill.SuperBreaker.Name=Super Demolitore (CAPACIT\u00C0)
|
||||
Mining.SubSkill.SuperBreaker.Description=+ Velocit\u00E0, Possibilit\u00E0 di Triplo Drop
|
||||
Mining.SubSkill.DoubleDrops.Name=Doppi Drop
|
||||
Mining.SubSkill.DoubleDrops.Description=Raddoppia il normale drop
|
||||
Mining.SubSkill.BlastMining.Name=Estrazione Esplosiva
|
||||
Mining.SubSkill.BlastMining.Description=Bonus a estrarre minerali col TNT
|
||||
Mining.SubSkill.BiggerBombs.Name=Bombe Pi\u00F9 Grandi
|
||||
Mining.SubSkill.BiggerBombs.Description=Incrementa il raggio di esplosione del TNT
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Perizia nelle Demolizioni
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=Riduce il danno da esplosioni di TNT
|
||||
Mining.Effect.Decrease=Riduzione del Danno da Esperto di Demolizioni: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=Possibilit\u00E0 di Doppio Drop: [[YELLOW]]{0}
|
||||
Mining.Listener=Estrazione:
|
||||
Mining.SkillName=ESTRAZIONE
|
||||
Mining.Skills.SuperBreaker.Off=**Super Demolitore si \u00E8 esaurito**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER DEMOLITORE ATTIVATO**
|
||||
Mining.Skills.SuperBreaker.Other.Off=Super Demolitore[[GREEN]] si \u00E8 esaurito per [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Super Demolitore!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Super Demolitore [[GREEN]]si \u00E8 rigenerata!
|
||||
Mining.Skillup=L'abilit\u00E0 Estrazione \u00E8 aumentata di {0}. Totale ({1})
|
||||
#Blast Mining
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Effect=+{0} minerale raccolto, -{1} macerie prodotte, drop x{2}
|
||||
Mining.Blast.Radius.Increase=Incremento del Raggio di Esplosione: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=Estrazione Esplosiva: [[YELLOW]] Grado {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Estrazione Esplosiva!
|
||||
Mining.Blast.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Estrazione Esplosiva [[GREEN]]si \u00E8 rigenerata!
|
||||
#REPAIR
|
||||
Repair.SubSkill.Repair.Name=Riparazione
|
||||
Repair.SubSkill.Repair.Description=Ripara Attrezzi & Armature
|
||||
Repair.SubSkill.GoldRepair.Name=Riparazione Oro (ABILIT\u00C0 {0}+)
|
||||
Repair.SubSkill.GoldRepair.Description=Ripara Attrezzi & Armature d'Oro
|
||||
Repair.SubSkill.IronRepair.Name=Riparazione Ferro (ABILIT\u00C0 {0}+)
|
||||
Repair.SubSkill.IronRepair.Description=Ripara Attrezzi & Armature di Ferro
|
||||
Repair.SubSkill.StoneRepair.Name=Riparazione Pietra (ABILIT\u00C0 {0}+)
|
||||
Repair.SubSkill.StoneRepair.Description=Ripara Attrezzi di Pietra
|
||||
Repair.SubSkill.RepairMastery.Name=Maestria nella Riparazione
|
||||
Repair.SubSkill.RepairMastery.Description=Riparazione incrementata
|
||||
Repair.SubSkill.SuperRepair.Name=Super Riparazione
|
||||
Repair.SubSkill.SuperRepair.Description=Doppia efficacia
|
||||
Repair.SubSkill.DiamondRepair.Name=Ripara Diamante (ABILIT\u00C0 {0}+)
|
||||
Repair.SubSkill.DiamondRepair.Description=Ripara Attrezzi & Armature di Diamante
|
||||
Repair.SubSkill.ArcaneForging.Name=Forgiatura Arcana
|
||||
Repair.SubSkill.ArcaneForging.Description=Ripara oggetti magici
|
||||
Repair.Error=[[DARK_RED]]mcMMO si \u00E8 imbattuto in un errore mentre tentava di riparare questo oggetto!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Hai piazzato un'incudine; le incudini possono riparare attrezzi e armature.
|
||||
Repair.Listener=Riparazione:
|
||||
Repair.SkillName=RIPARAZIONE
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Non sei abbastanza abile da riparare il Diamante.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Non sei abbastanza abile da riparare l'Oro.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Non sei abbastanza abile da riparare il Ferro.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Non sei abbastanza abile da riparare la Pietra.
|
||||
Repair.Skills.Adept=Devi essere di livello [[YELLOW]]{0}[[RED]] per riparare [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Ti \u00E8 sembrato facile.
|
||||
Repair.Skills.FullDurability=[[GRAY]]\u00C8 gi\u00E0 a piena durevolezza.
|
||||
Repair.Skills.Mastery=Maestria nella Riparazione: [[YELLOW]]{0} durabilit\u00E0 aggiuntiva ripristinata
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Non puoi riparare oggetti ammucchiati.
|
||||
Repair.Skills.Super.Chance=Possibilit\u00E0 Super Riparazione: [[YELLOW]]{0}
|
||||
Repair.Skillup=L'abilit\u00E0 Riparazione \u00E8 aumentata di {0}. Totale ({1})
|
||||
Repair.Pretty.Name=Riparazione
|
||||
#Arcane Forging
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]Probabilit\u00E0 di Degradazione di FA: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]Tasso di Successo di FA: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=Il potere arcano di questo oggetto \u00E8 diminuito.
|
||||
Repair.Arcane.Fail=Il potere arcano ha abbandonato l'oggetto permanentemente.
|
||||
Repair.Arcane.Lost=Non sei stato abbastanza abile da mantenere alcun incantesimo.
|
||||
Repair.Arcane.Perfect=[GREEN]]Hai mantenuto le energie arcane in questo oggetto.
|
||||
Repair.Arcane.Rank=Forgiatura Arcana: [[YELLOW]]Grado {0}/4
|
||||
#SALVAGE
|
||||
Salvage.Pretty.Name=Rottamazione
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=Rottamazione Avanzata
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=Rottama oggetti danneggiati
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=Rottamazione Arcana
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=Estrai incantesimi dagli oggetti
|
||||
Salvage.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (ROTTAMAZIONE AVANZATA)
|
||||
Salvage.Ability.Bonus.0=Rottamazione Avanzata
|
||||
Salvage.Ability.Bonus.1=Massima resa {0} oggetti distrutti
|
||||
Salvage.Arcane.Rank=Recupero Arcano: [[YELLOW]]Grado {0}/{1}
|
||||
Salvage.Arcane.ExtractFull=[[GRAY]]Probabilit\u00E0 di incantamento AS completo
|
||||
Salvage.Arcane.ExtractPartial=[[GRAY]]Probabilit\u00E0 di incantamento AS parziale
|
||||
Salvage.Skills.Success=[[GREEN]]Oggetto rottamato!
|
||||
Salvage.Skills.Adept.Damaged=[[DARK_RED]]Non sei abbastanza abile da rottamare gli oggetti danneggiati.
|
||||
Salvage.Skills.Adept.Level=Devi essere di livello [[YELLOW]]{0}[[RED]] per rottamare [[YELLOW]]{1}
|
||||
Salvage.Skills.TooDamaged=[[DARK_RED]]Questo oggetto \u00E8 troppo danneggiato per essere rottamato.
|
||||
Salvage.Skills.ArcaneFailed=Non sei stato capace di estrarre la conoscenza contenuta in questo oggetto.
|
||||
Salvage.Skills.ArcanePartial=Sei stato solo in grado di estrarre alcune delle conoscenze contenute all'interno di questo oggetto.
|
||||
Salvage.Skills.ArcaneSuccess=[[GREEN]]Sei in grado di estrarre tutte le conoscenze contenute in questo oggetto!
|
||||
Salvage.Listener.Anvil=[[DARK_RED]]Hai piazzato un'incudine da Rottamazione, usala per Rottamare attrezzi e armature.
|
||||
Salvage.Listener=Rottamazione:
|
||||
Salvage.SkillName=ROTTAMAZIONE
|
||||
#SWORDS
|
||||
Swords.Ability.Lower=[[GRAY]]**ABBASSI LA SPADA**
|
||||
Swords.Ability.Ready=[[GREEN]]**PREPARI LA SPADA**
|
||||
Swords.Combat.Bleed.Chance=Possibilit\u00E0 di Emorragia: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=Durata di Emorragia: [[YELLOW]]{0} tick
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTA: [[YELLOW]]1 Tick si verifica ogni 2 secondi
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Stai sanguinando!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]L'emorragia si \u00E8 [[GREEN]]fermata[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**IL NEMICO HA UN'EMORRAGIA**
|
||||
Swords.Combat.Counter.Chance=Possibilit\u00E0 di Contrattacco: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Colpisci con un contrattacco!
|
||||
Swords.Combat.Countered=[[GREEN]]**CONTRATTACCATO**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Colpito da COLPI SEGHETTATI!
|
||||
Swords.SubSkill.CounterAttack.Name=Contrattacco
|
||||
Swords.SubSkill.CounterAttack.Description=Riflette il {0} del danno sub\u00ECto mentre si blocca
|
||||
Swords.SubSkill.SerratedStrikes.Name=Colpi Seghettati (CAPACIT\u00C0)
|
||||
Swords.SubSkill.SerratedStrikes.Description={0} Danni EaA, Emorragia+ EaA
|
||||
Swords.Effect.4=Colpi Seghettati Emorragia+
|
||||
Swords.Effect.5={0} Tick di Emorragia
|
||||
Swords.SubSkill.Bleed.Name=Emorragia
|
||||
Swords.SubSkill.Bleed.Description=Infligge danno ciclico da sanguinamento
|
||||
Swords.Listener=Spade:
|
||||
Swords.SkillName=SPADE
|
||||
Swords.Skills.SS.Off=**Colpi Seghettati si \u00E8 esaurito**
|
||||
Swords.Skills.SS.On=[[GREEN]]**SERRATED STRIKES ACTIVATED**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Colpi Seghettati [[GREEN]]si \u00E8 rigenerata!
|
||||
Swords.Skills.SS.Other.Off=Colpi Seghettati[[GREEN]] si \u00E8 esaurito per [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Colpi Seghettati!
|
||||
Swords.Skillup=L'abilit\u00E0 Spade \u00E8 aumentata di {0}. Totale ({1})
|
||||
Swords.SS.Length=Durata di Colpi Seghettati: [[YELLOW]]{0}s
|
||||
#TAMING
|
||||
Taming.Ability.Bonus.0=Sicurezza Ambientale
|
||||
Taming.Ability.Bonus.1=I lupi evitano il pericolo
|
||||
Taming.Ability.Bonus.2=Pelliccia Folta
|
||||
Taming.Ability.Bonus.3=1/{0} Danno, Resistenza al Fuoco
|
||||
Taming.Ability.Bonus.4=A Prova d'Urto
|
||||
Taming.Ability.Bonus.5=Gli esplosivi fanno 1/{0} del normale danno
|
||||
Taming.Ability.Bonus.6=Artigli Affilati
|
||||
Taming.Ability.Bonus.7=+{0} al Danno
|
||||
Taming.Ability.Bonus.8=Servizio Fast Food
|
||||
Taming.Ability.Bonus.9={0} Probabilit\u00E0 di guarire quando si attacca
|
||||
Taming.Ability.Bonus.10=Segugio del Cielo
|
||||
Taming.Ability.Bonus.11=Recupera salute quando viene danneggiato da magia o veleno
|
||||
Taming.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (SICUREZZA AMBIENTALE)
|
||||
Taming.Ability.Locked.1=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (PELLICCIA FOLTA)
|
||||
Taming.Ability.Locked.2=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (A PROVA D'URTO)
|
||||
Taming.Ability.Locked.3=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (ARTIGLI AFFILATI)
|
||||
Taming.Ability.Locked.4=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (SERVIZIO FAST FOOD)
|
||||
Taming.Ability.Locked.5=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (SEGUGIO DEL CIELO)
|
||||
Taming.Combat.Chance.Gore=Possibilit\u00E0 di Sbranare: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=Conoscenza delle Bestie
|
||||
Taming.SubSkill.BeastLore.Description=Esamina lupi e ocelot picchiandoli con un osso
|
||||
Taming.SubSkill.ShockProof.Name=A Prova d'Urto
|
||||
Taming.SubSkill.ShockProof.Description=Riduzione del Danno da Esplosione.
|
||||
Taming.SubSkill.CallOfTheWild.Name=Richiamo della Natura
|
||||
Taming.SubSkill.CallOfTheWild.Description=Evoca un animale al tuo fianco
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW: Accovacciati e fai click destro con\n {0} {1} (Ocelot), {2} {3} (Lupo), {4} {5} (Cavallo)
|
||||
Taming.SubSkill.FastFoodService.Name=Servizio Fast Food
|
||||
Taming.SubSkill.FastFoodService.Description=Probabilit\u00E0 per i lupi di guarire quando attaccano
|
||||
Taming.SubSkill.HolyHound.Name=Segugio del Cielo
|
||||
Taming.SubSkill.HolyHound.Description=Guarito da Magia & Veleno
|
||||
Taming.SubSkill.Gore.Name=Sbranare
|
||||
Taming.SubSkill.Gore.Description=Colpo Critico che applica Emorragia
|
||||
Taming.SubSkill.SharpenedClaws.Name=Artigli Affilati
|
||||
Taming.SubSkill.SharpenedClaws.Description=Danno Bonus
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Sicurezza Ambientale
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Evita Cactus/Lava, Immune alle Cadute
|
||||
Taming.SubSkill.ThickFur.Name=Pelliccia Folta
|
||||
Taming.SubSkill.ThickFur.Description=Riduzione del Danno, Resistenza al Fuoco
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Il tuo lupo si precipita da te...
|
||||
Taming.Listener=Addomesticamento:
|
||||
Taming.SkillName=ADDOMESTICAMENTO
|
||||
Taming.Skillup=L'abilit\u00E0 Addomesticamento \u00E8 aumentata di {0}. Totale ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Evocazione completa
|
||||
Taming.Summon.Lifespan=(Durata: {0}s)
|
||||
Taming.Summon.Fail.Ocelot=Hai troppi ocelot vicino per poterne evocare degli altri.
|
||||
Taming.Summon.Fail.Wolf=Hai troppi lupi vicino per poterne evocare degli altri.
|
||||
Taming.Summon.Fail.Horse=Hai troppi cavalli nelle vicinanze per evocarne altri.
|
||||
Taming.Summon.Fail.TooMany=Hai raggiunto il limite massimo di animali evocabili. [[YELLOW]]({0})
|
||||
Taming.Summon.Name.Format={1} di {0}
|
||||
#UNARMED
|
||||
Unarmed.Ability.Berserk.Length=Durata di Furore: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Stile del Braccio di Ferro
|
||||
Unarmed.Ability.Bonus.1=Potenziamento Danno +{0}
|
||||
Unarmed.Ability.Chance.ArrowDeflect=Possibilit\u00E0 di Deviare Freccia: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=Possibilit\u00E0 di Disarmare: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=Probabilit\u00E0 di Presa di Ferro: [[YELLOW]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Il tuo avversario ha una presa di ferro!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]La tua presa di ferro ha evitato che venissi disarmato!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**ABBASSI I PUGNI**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**PREPARI I PUGNI**
|
||||
Unarmed.SubSkill.Berserk.Name=Furore (CAPACIT\u00C0)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% Danni, Rompe materiali fragili
|
||||
Unarmed.SubSkill.Disarm.Name=Disarmare (Giocatori)
|
||||
Unarmed.SubSkill.Disarm.Description=Fa cadere l'oggetto tenuto in mano dal nemico
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Stile del Braccio di Ferro
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Ti indurisce il braccio col passare del tempo
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=Deviazione Frecce
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=Deviare frecce
|
||||
Unarmed.SubSkill.IronGrip.Name=Presa di Ferro
|
||||
Unarmed.SubSkill.IronGrip.Description=Ti impedisce di venire disarmato
|
||||
Unarmed.Listener=Lotta:
|
||||
Unarmed.SkillName=LOTTA
|
||||
Unarmed.Skills.Berserk.Off=**Furore si \u00E8 esaurito**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**FURORE ATTIVATO**
|
||||
Unarmed.Skills.Berserk.Other.Off=Furore[[GREEN]] si \u00E8 esaurito per [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Furore!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Furore [[GREEN]]si \u00E8 rigenerata!
|
||||
Unarmed.Skillup=L'abilit\u00E0 Lotta \u00E8 aumentata di {0}. Totale ({1})
|
||||
#WOODCUTTING
|
||||
Woodcutting.Ability.0=Soffia Foglie
|
||||
Woodcutting.Ability.1=Soffia via le foglie
|
||||
Woodcutting.Ability.Chance.DDrop=Possibilit\u00E0 di Doppio Drop: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=Durata di Abbatti Alberi: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (SOFFIA FOGLIE)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Abbattitore d'Alberi (CAPACIT\u00C0)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=Fa esplodere gli alberi
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Soffia Foglie
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Soffia via le foglie
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Doppi Drop
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Raddoppia il normale drop
|
||||
Woodcutting.Listener=Taglialegna:
|
||||
Woodcutting.SkillName=TAGLIALEGNA
|
||||
Woodcutting.Skills.TreeFeller.Off=**Abbattitore d'Alberi si \u00E8 esaurito**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**ABBATTITORE D'ALBERI ATTIVATO**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]La tua capacit\u00E0 [[YELLOW]]Abbattitore d'Alberi [[GREEN]]si \u00E8 rigenerata!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=Abbattitore d'Alberi[[GREEN]] si \u00E8 esaurito per [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Abbattitore d'Alberi!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=LA TUA ASCIA SI FRANTUMA IN DECINE DI PEZZI!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=Quell'albero \u00E8 troppo grande!
|
||||
Woodcutting.Skillup=L'abilit\u00E0 Taglialegna \u00E8 aumentata di {0}. Totale ({1})
|
||||
#ABILITIY
|
||||
##generic
|
||||
Ability.Generic.Refresh=[[GREEN]]**CAPACIT\u00C0 RIGENERATE!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
#COMBAT
|
||||
Combat.ArrowDeflect=[[WHITE]]**FRECCIA DEVIATA**
|
||||
Combat.BeastLore=[[GREEN]]**CONOSCENZA DELLE BESTIE**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Salute ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Proprietario ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**SBRANATO**
|
||||
Combat.StruckByGore=**SEI STATO SBRANATO**
|
||||
Combat.TargetDazed=Il bersaglio \u00E8 rimasto [[DARK_RED]]Stordito
|
||||
Combat.TouchedFuzzy=Urto Stordino. Vado nel Pallone.
|
||||
#COMMANDS
|
||||
##generic
|
||||
mcMMO.Description=[[DARK_AQUA]]Riguardo il [[DARK_AQUA]]Progetto [[YELLOW]]mcMMO:,[[GOLD]]mcMMO \u00E8 una mod GdR [[RED]]open source[[GOLD]] creata nel Febbraio 2011,[[GOLD]]da [[BLUE]]com.gmail.nossr50[[GOLD]]. L'obiettivo \u00E8 quello di fornire un'esperienza GdR di qualit\u00E0.,[[DARK_AQUA]]Suggerimenti:,[[GOLD]] - [[GREEN]]Usa [[RED]]/mcmmo help[[GREEN]] per vedere i comandi,[[GOLD]] - [[GREEN]]Digita [[RED]]/NOMEABILIT\u00C0[[GREEN]] per vedere informazioni dettagliate su un'abilit\u00E0,[[DARK_AQUA]]Sviluppatori:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](Fondatore),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Capo Progetto),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Sviluppatore),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](Sviluppatore),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](Sviluppatore),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](Sviluppatore),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](Sviluppatore),[[DARK_AQUA]]Link Utili:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] Segnalazione Bug,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Ti sono stati aggiudicati {0} livelli in tutte le abilit\u00E0!
|
||||
Commands.addlevels.AwardAll.2=Tutte le abilit\u00E0 sono state modificate per {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Ti sono stati aggiudicati {0} livelli in {1}!
|
||||
Commands.addlevels.AwardSkill.2={0} \u00E8 stata modificata per {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Ti sono stati aggiudicati {0} punti esperienza in tutte le abilit\u00E0!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Ti sono stati aggiudicati {0} punti esperienza in {1}!
|
||||
Commands.Ability.Off=Uso delle capacit\u00E0 [[RED]]disattivato
|
||||
Commands.Ability.On=Uso delle capacit\u00E0 [[GREEN]]attivato
|
||||
Commands.Ability.Toggle=L'uso delle abilit\u00E0 \u00E8 stato attivato/disattivato per [[YELLOW]]{0}
|
||||
Commands.AdminChat.Off=Chat solo Amministratori [[RED]]Inattiva
|
||||
Commands.AdminChat.On=Chat solo Amministratori [[GREEN]]Attiva
|
||||
Commands.AdminToggle=[[GREEN]]- Attiva/disattiva la chat amministratori
|
||||
Commands.Chat.Console=*Console*
|
||||
Commands.Cooldowns.Header=[[GOLD]]--= [[GREEN]]Ricariche Abilit\u00E0 mcMMO[[GOLD]] =--
|
||||
Commands.Cooldowns.Row.N=\ [[RED]]{0}[[WHITE]] - [[GOLD]]{1} secondi rimanenti
|
||||
Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]]Pronto!
|
||||
Commands.Database.Cooldown=Devi aspettare {0} secondi prima di poter usare questo comando ancora.
|
||||
Commands.Database.Processing=Il comando precedente \u00E8 ancora in fase di elaborazione. Attendere prego.
|
||||
Commands.Disabled=Questo comando \u00E8 disabilitato.
|
||||
Commands.DoesNotExist=Il giocatore non esiste nel database!
|
||||
Commands.GodMode.Disabled=Modalit\u00E0 Dio di mcMMO Disabilitata
|
||||
Commands.GodMode.Enabled=Modalit\u00E0 Dio di mcMMO Abilitata
|
||||
Commands.GodMode.Forbidden=[mcMMO] Modalit\u00E0 Dio non permessa in questo mondo (Vedi i Permessi)
|
||||
Commands.GodMode.Toggle=La modalit\u00E0 Dio \u00E8 stata attivata/disattivata per [[YELLOW]]{0}
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO] Il tuo tipo di barra della salute \u00E8 stato cambiato a [[RED]]Cuori[[WHITE]].
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] Il tuo tipo di barra della salute \u00E8 stato cambiato a [[YELLOW]]Caselle[[WHITE]].
|
||||
Commands.Healthbars.Changed.DISABLED=[mcMMO] Le tue barre di salute dei mob sono state [[GRAY]]disabilitate[[WHITE]].
|
||||
Commands.Healthbars.Invalid=Tipo di barra della salute non valido!
|
||||
Commands.Inspect=<giocatore> [[GREEN]]- Visualizza informazioni dettagliate sul giocatore
|
||||
Commands.Invite.Success=[[GREEN]]Invito inviato con successo.
|
||||
Commands.Leaderboards=<abilit\u00E0> <pagina> [[GREEN]]- Classifiche
|
||||
Commands.mcc.Header=---[][[GREEN]]Comandi di mcMMO[[RED]][]---
|
||||
Commands.mcgod=[[GREEN]]- Attiva o disattiva la Modalit\u00E0 Dio
|
||||
Commands.mchud.Invalid=Quello non \u00E8 un tipo di HUD valido.
|
||||
Commands.mcpurge.Success=[[GREEN]]Il database \u00E8 stato ripulito con successo!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=GRADUATORIA PERSONALE=-
|
||||
Commands.mcrank.Overall=Complessivo[[GREEN]] - [[GOLD]]Grado [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=BERSAGLIO: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Grado [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Non Classificato
|
||||
Commands.mcrefresh.Success=Le ricariche di {0} sono stati rigenerate.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} \u00E8 stato rimosso con successo dal database!
|
||||
Commands.mctop.Tip=[[GOLD]]Suggerimento: Usa [[RED]]/mcrank[[GOLD]] per visualizzare tutte le tue graduatorie personali!
|
||||
Commands.mmoedit=[giocatore] <abilit\u00E0> <nuovovalore> [[GREEN]] - Modifica il bersaglio
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]Il tuo livello in tutte le abilit\u00E0 \u00E8 stato portato a {0}!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Il tuo livello di {0} \u00E8 stato portato a {1}!
|
||||
Commands.mmoedit.Modified.2={0} \u00E8 stata modificata per {1}.
|
||||
Commands.mcconvert.Database.Same=Stai gi\u00E0 usando il database {0}!
|
||||
Commands.mcconvert.Database.InvalidType={0} non \u00E8 un tipo di database valido.
|
||||
Commands.mcconvert.Database.Start=[[GRAY]]Avviando la conversione da {0} a {1}...
|
||||
Commands.mcconvert.Database.Finish=[[GRAY]]Migrazione del database completa; il database {1} ora ha tutti i dati dal database {0}.
|
||||
Commands.mmoshowdb=Il database attualmente in uso \u00E8 [[GREEN]]{0}
|
||||
Commands.mcconvert.Experience.Invalid=Tipo di formula sconosciuta! I tipi validi sono: [[GREEN]]LINEAR [[RED]]e [[GREEN]]EXPONENTIAL.
|
||||
Commands.mcconvert.Experience.Same=Tipo di formula {0} gi\u00E0 in uso
|
||||
Commands.mcconvert.Experience.Start=[[GRAY]]Avviando conversione da {0} a {1}
|
||||
Commands.mcconvert.Experience.Finish=[[GRAY]]Conversione formula completata; adesso in uso {0} XP.
|
||||
Commands.ModDescription=[[GREEN]]- Leggi breve descrizione di mod
|
||||
Commands.NoConsole=Questo comando non supporta l'uso da console.
|
||||
Commands.Notifications.Off=Notifiche delle capacit\u00E0 [[RED]]disattivate
|
||||
Commands.Notifications.On=Notifiche delle capacit\u00E0 [[GREEN]]attivate
|
||||
Commands.Offline=Questo comando non funziona per i giocatori offline.
|
||||
Commands.NotLoaded=Il profilo del giocatore non \u00E8 stato ancora caricato.
|
||||
Commands.Other=---[][[GREEN]]ALTRI COMANDI[[RED]][]---
|
||||
Commands.Party.Header=-----[][[GREEN]]GRUPPO[[RED]][]-----
|
||||
Commands.Party.Features.Header=-----[][[GREEN]]CARATTERISTICHE[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]NOME: [[WHITE]]{0} {1} [[DARK_GRAY]]LIVELLO: [[DARK_AQUA]]{2}
|
||||
Commands.Party.Status.Alliance=[[DARK_GRAY]]ALLEATO: [[WHITE]]{0}
|
||||
Commands.Party.UnlockedFeatures=[[DARK_GRAY]]Caratteristiche sbloccate: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]MODALIT\u00C0 SPARTIZIONE:
|
||||
Commands.Party.ItemShare=[[GRAY]]OGGETTI [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]ESPERIENZA [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]Condivisione Oggetti: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]VICINO A TE [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[GREEN]]- Accetta l'invito di un gruppo
|
||||
Commands.Party.Chat.Off=Chat Gruppo [[GREEN]]Inattiva
|
||||
Commands.Party.Chat.On=Chat Gruppo [[GREEN]]Attiva
|
||||
Commands.Party.Commands=---[][[GREEN]]COMANDI GRUPPO[[RED]][]---
|
||||
Commands.Party.Invite.0=AVVISO: [[GREEN]]Hai ricevuto un invito ad unirti al gruppo {0} da {1}
|
||||
Commands.Party.Invite.1=Digita [[GREEN]]/party accept[[YELLOW]] per accettare l'invito
|
||||
Commands.Party.Invite=[[GREEN]]- Invia un invito a entrare nel gruppo
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]Invito Accettato. Ti sei unito al gruppo {0}
|
||||
Commands.Party.Join=[[GRAY]]Ti sei unito al Gruppo: {0}
|
||||
Commands.Party.Create=[[GRAY]]Creato il Gruppo: {0}
|
||||
Commands.Party.Rename=[[GRAY]]Nome del gruppo cambiato a: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]Modalit\u00E0 spartizione del gruppo {0} impostata a: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]La condivisione oggetti del gruppo per [[GOLD]]{0} [[GRAY]]\u00E8 stata [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]Il gruppo {0} esiste gi\u00E0!
|
||||
Commands.Party.Kick=Sei stato espulso dal gruppo {0}!
|
||||
Commands.Party.Leave=Hai abbandonato quel gruppo
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]MEMBRI[[RED]][]-----
|
||||
Commands.Party.None=Non sei in un gruppo.
|
||||
Commands.Party.Quit=[[GREEN]]- Abbandona il tuo gruppo attuale
|
||||
Commands.Party.Teleport=[[GREEN]]- Teletrasportati da un membro del gruppo
|
||||
Commands.Party.Toggle=[[GREEN]]- Attiva/disattiva la Chat Gruppo
|
||||
Commands.Party1=[[GREEN]]- Crea un nuovo gruppo
|
||||
Commands.Party2=[[GREEN]]- Unisciti a un gruppo di giocatori
|
||||
Commands.Party.Alliance.Header=-----[][[GREEN]]ALLEANZA DEL GRUPPO[[RED]][]-----
|
||||
Commands.Party.Alliance.Ally=[[WHITE]]{0} [[DARK_GRAY]]\u00C8 ALLEATO CON: [[WHITE]]{1}
|
||||
Commands.Party.Alliance.Members.Header=-----[][[GREEN]]MEMBRI ALLEANZA[[RED]][]-----
|
||||
Commands.Party.Alliance.Invite.0=AVVISO: [[GREEN]]Hai ricevuto un invito di alleanza del gruppo per {0} da {1}
|
||||
Commands.Party.Alliance.Invite.1=Digita [[GREEN]]/party alliance accept[[YELLOW]] per accettare l'invito
|
||||
Commands.Party.Alliance.Invite.Accepted=[[GREEN]]Invito di alleanza accettato.
|
||||
Commands.Party.Alliance.None=Il tuo gruppo non ha un alleato.
|
||||
Commands.Party.Alliance.AlreadyAllies=Il tuo gruppo ha gi\u00E0 un'alleato. Sciogli l'alleanza con [[DARK_AQUA]]/party alliance disband
|
||||
Commands.Party.Alliance.Help.0=Questo gruppo non ha formato un'alleanza. Invita un capo gruppo.
|
||||
Commands.Party.Alliance.Help.1=fai un'alleanza con [[DARK_AQUA]]/party alliance invite <giocatore>[[RED]].
|
||||
Commands.ptp.Enabled=Teletrasporto del gruppo [[GREEN]]abilitato
|
||||
Commands.ptp.Disabled=Teletrasporto del gruppo [[RED]]disabilitato
|
||||
Commands.ptp.NoRequests=Non hai richieste di teletrasporto in questo momento
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] Non hai il permesso di teletrasportarti verso il mondo {0}.
|
||||
Commands.ptp.Request1={0} [[GREEN]]ha richiesto di teletrasportarsi da te.
|
||||
Commands.ptp.Request2=[[GREEN]]Per teletrasportarti digita [[YELLOW]]/ptp accept[[GREEN]]. La richiesta scadr\u00E0 tra [[RED]]{0} [[GREEN]]secondi.
|
||||
Commands.ptp.AcceptAny.Enabled=Conferma delle richieste di teletrasporto del gruppo [[GREEN]]abilitata
|
||||
Commands.ptp.AcceptAny.Disabled=Conferma delle richieste di teletrasporto del gruppo [[RED]]disabilitata
|
||||
Commands.ptp.RequestExpired=La richiesta di teletrasporto del gruppo \u00E8 scaduta!
|
||||
Commands.PowerLevel.Leaderboard=--Classifica mcMMO dei [[BLUE]]Livelli di Potere[[YELLOW]]--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]LIVELLO DI POTERE: [[GREEN]]{0} [[DARK_RED]]LIVELLO MASSIMO: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]LIVELLO DI POTERE: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Tutti i tuoi livelli di abilit\u00E0 sono stati azzerati con successo.
|
||||
Commands.Reset.Single=[[GREEN]]La tua abilit\u00E0 {0} \u00E8 stata azzerata con successo.
|
||||
Commands.Reset=[[GREEN]]- Reimposta un livello di abilit\u00E0 a 0
|
||||
Commands.Scoreboard.Clear=[[DARK_AQUA]]scoreboard mcMMO cancellata.
|
||||
Commands.Scoreboard.NoBoard=La scoreboard mcMMO non \u00E8 attiva.
|
||||
Commands.Scoreboard.Keep=[[DARK_AQUA]]La scoreboard mcMMO rimmarr\u00E0 fino a quando non userai [[GREEN]]/mcscoreboard clear[[DARK_AQUA]].
|
||||
Commands.Scoreboard.Timer=[[DARK_AQUA]]La scoreboard mcMMO sar\u00E0 cancellata tra [[GOLD]]{0}[[DARK_AQUA]] secondi da adesso.
|
||||
Commands.Scoreboard.Help.0=[[GOLD]] == [[GREEN]]Aiuto per [[RED]]/mcscoreboard[[GOLD]] ==
|
||||
Commands.Scoreboard.Help.1=[[DARK_AQUA]]/mcscoreboard[[AQUA]] clear [[WHITE]] - cancella la scoreboard McMMO
|
||||
Commands.Scoreboard.Help.2=[[DARK_AQUA]]/mcscoreboard[[AQUA]] keep [[WHITE]] - mantiene la scoreboard mcMMO attiva
|
||||
Commands.Scoreboard.Help.3=[[DARK_AQUA]]/mcscoreboard[[AQUA]] time [n] [[WHITE]] - cancella la scoreboard McMMO dopo [[LIGHT_PURPLE]]n[[WHITE]] secondi
|
||||
Commands.Scoreboard.Tip.Keep=[[GOLD]]Suggerimento: Usa [[RED]]/mcscoreboard keep[[GOLD]] mentre la scoreboard \u00E8 attiva per evitare che vada via.
|
||||
Commands.Scoreboard.Tip.Clear=[[GOLD]]Suggerimento: Usa [[RED]]/mcscoreboard clear[[GOLD]] per sbarazzarti della scoreboard.
|
||||
Commands.Skill.Invalid=Questo non \u00E8 un nome di abilit\u00E0 valido!
|
||||
Commands.Skill.Leaderboard=--Classifica mcMMO di [[BLUE]]{0}[[YELLOW]]--
|
||||
Commands.SkillInfo=[[GREEN]]- Vedi informazioni dettagliate su un'abilit\u00E0
|
||||
Commands.Stats.Self=LE TUE STATISTICHE
|
||||
Commands.Stats=[[GREEN]]- Visualizza le tue statistiche mcMMO
|
||||
Commands.ToggleAbility=[[GREEN]]- Attiva o disattiva l'attivazione delle abilit\u00E0 con click destro
|
||||
Commands.Usage.0=[[RED]]L'uso appropriato \u00E8 /{0}
|
||||
Commands.Usage.1=L'uso appropriato \u00E8 /{0} {1}
|
||||
Commands.Usage.2=L'uso appropriato \u00E8 /{0} {1} {2}
|
||||
Commands.Usage.3=L'uso appropriato \u00E8 /{0} {1} {2} {3}
|
||||
Commands.Usage.FullClassName=nome classe
|
||||
Commands.Usage.Level=livello
|
||||
Commands.Usage.Message=messaggio
|
||||
Commands.Usage.Page=pagina
|
||||
Commands.Usage.PartyName=nome
|
||||
Commands.Usage.Password=password
|
||||
Commands.Usage.Player=giocatore
|
||||
Commands.Usage.Rate=tasso
|
||||
Commands.Usage.Skill=abilit\u00E0
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=Non hai inviti in questo momento
|
||||
mcMMO.NoPermission=[[DARK_RED]]Permessi insufficienti.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Se non hai accesso a un'abilit\u00E0 non sar\u00E0 mostrata qui.
|
||||
##party
|
||||
Party.Forbidden=[mcMMO] I gruppi non sono permessi in questo mondo (vedi i Permessi)
|
||||
Party.Help.0=L'uso appropriato \u00E8 [[DARK_AQUA]]{0} <giocatore> [password].
|
||||
Party.Help.1=Per creare un gruppo, usa [[DARK_AQUA]]{0} <nome> [password].
|
||||
Party.Help.2=Consulta [[DARK_AQUA]]{0} [[RED]]per maggiori informazioni
|
||||
Party.Help.3=Usa [[DARK_AQUA]]{0} <giocatore> [password] [[RED]]per unirti o [[DARK_AQUA]]{1} [[RED]]per congedarti
|
||||
Party.Help.4=Per chiudere o aprire il tuo gruppo, usa [[DARK_AQUA]]{0}
|
||||
Party.Help.5=Per proteggere il tuo gruppo con una password, usa [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=Per espellere un giocatore dal tuo gruppo, usa [[DARK_AQUA]]{0} <giocatore>
|
||||
Party.Help.7=Per trasferire la propriet\u00E0 del tuo gruppo, usa [[DARK_AQUA]]{0} <giocatore>
|
||||
Party.Help.8=Per sciogliere il tuo gruppo, usa [[DARK_AQUA]]{0}
|
||||
Party.Help.9=Usa [[DARK_AQUA]]{0} [[RED]]per condividere oggetti con i membri del tuo gruppo
|
||||
Party.Help.10=Usa [[DARK_AQUA]]{0} [[RED]]per abilitare la condivisione di XP con i membri del tuo gruppo
|
||||
Party.InformedOnJoin={0} [[GREEN]]si \u00E8 unito al tuo gruppo
|
||||
Party.InformedOnQuit={0} [[GREEN]]ha abbandonato il tuo gruppo
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]ha impostato il nome del gruppo a [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]Questo non \u00E8 un nome di gruppo valido.
|
||||
Party.Invite.Self=Non puoi invitare te stesso!
|
||||
Party.IsLocked=Questo gruppo \u00E8 gi\u00E0 chiuso!
|
||||
Party.IsntLocked=Questo gruppo non \u00E8 chiuso!
|
||||
Party.Locked=Il gruppo \u00E8 chiuso, solo il capo del gruppo pu\u00F2 fare inviti.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} non \u00E8 nel tuo gruppo
|
||||
Party.NotOwner=[[DARK_RED]]Non sei il capo del gruppo.
|
||||
Party.Target.NotOwner=[[DARK_RED]]{0} non \u00E8 il capo del gruppo.
|
||||
Party.Owner.New=[[GREEN]]{0} \u00E8 il nuovo capo del gruppo.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]Non sei pi\u00F9 il capo del gruppo.
|
||||
Party.Owner.Player=[[GREEN]]Ora sei il capo del gruppo.
|
||||
Party.Password.None=Questo gruppo \u00E8 protetto da password. Sei pregato di fornire una password per unirti ad esso.
|
||||
Party.Password.Incorrect=La password del gruppo \u00E8 errata.
|
||||
Party.Password.Set=[[GREEN]]Password del gruppo impostata a {0}
|
||||
Party.Password.Removed=[[GREEN]]La password del gruppo \u00E8 stata rimossa.
|
||||
Party.Player.Invalid=Quello non \u00E8 un giocatore valido.
|
||||
Party.NotOnline=[[DARK_RED]]{0} non \u00E8 online!
|
||||
Party.Player.InSameParty={0} \u00E8 gi\u00E0 nel tuo gruppo!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} non \u00E8 in un gruppo
|
||||
Party.Specify=Devi specificare un gruppo.
|
||||
Party.Teleport.Dead=Non puoi teletrasportarti da un giocatore morto.
|
||||
Party.Teleport.Hurt=Sei stato ferito negli ultimi {0} secondi e non puoi teletrasportarti.
|
||||
Party.Teleport.Player=[[GREEN]]Ti sei teletrasportato da {0}.
|
||||
Party.Teleport.Self=Non puoi teletrasportarti verso te stesso!
|
||||
Party.Teleport.Target=[[GREEN]]{0} ti ha teletrasportato.
|
||||
Party.Teleport.Disabled={0} non consente il teletrasporto del gruppo.
|
||||
Party.Rename.Same=Questo \u00E8 gi\u00E0 il nome del tuo gruppo!
|
||||
Party.Join.Self=Non puoi unirti a te stesso!
|
||||
Party.Unlocked=[[GRAY]]Il gruppo \u00E8 aperto
|
||||
Party.Disband=[[GRAY]]Il gruppo \u00E8 stato sciolto
|
||||
Party.Alliance.Formed=[[GRAY]]Il tuo gruppo \u00E8 ora alleato con [[GREEN]]{0}
|
||||
Party.Alliance.Disband=[[GRAY]]Il tuo gruppo non \u00E8 pi\u00F9 alleato con [[RED]]{0}
|
||||
Party.Status.Locked=[[DARK_RED]](SOLO SU INVITO)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](APERTO)
|
||||
Party.LevelUp=Livello del gruppo aumentato di {0}. Totale ({1})
|
||||
Party.Feature.Chat=Chat Gruppo
|
||||
Party.Feature.Teleport=Teletrasporto del Gruppo
|
||||
Party.Feature.Alliance=Alleanze
|
||||
Party.Feature.ItemShare=Condivisione Oggetti
|
||||
Party.Feature.XpShare=Condivisione XP
|
||||
Party.Feature.Locked.Chat=BLOCCATO FINO A {0}+ (CHAT GRUPPO)
|
||||
Party.Feature.Locked.Teleport=BLOCCATO FINO A {0}+ (TELETRASPORTO DEL GRUPPO)
|
||||
Party.Feature.Locked.Alliance=BLOCCATO FINO A {0}+ (ALLEANZE)
|
||||
Party.Feature.Locked.ItemShare=BLOCCATO FINO A {0}+ (CONDIVISIONE OGGETTI)
|
||||
Party.Feature.Locked.XpShare=BLOCCATO FINO A {0}+ (CONDIVISIONE XP)
|
||||
Party.Feature.Disabled.1=La chat del gruppo non \u00E8 stata ancora sbloccata.
|
||||
Party.Feature.Disabled.2=Il teletrasporto del gruppo non \u00E8 stato ancora sbloccato.
|
||||
Party.Feature.Disabled.3=Le alleanze del gruppo non sono ancora state sbloccate.
|
||||
Party.Feature.Disabled.4=La condivisione del gruppo degli oggetti non \u00E8 ancora sbloccata.
|
||||
Party.Feature.Disabled.5=La condivisione di XP del gruppo non \u00E8 stata ancora sbloccata.
|
||||
Party.ShareType.Xp=XP
|
||||
Party.ShareType.Item=OGGETTO
|
||||
Party.ShareMode.None=NESSUNA
|
||||
Party.ShareMode.Equal=EQUA
|
||||
Party.ShareMode.Random=CASUALE
|
||||
Party.ItemShare.Category.Loot=Bottino
|
||||
Party.ItemShare.Category.Mining=Estrazione
|
||||
Party.ItemShare.Category.Herbalism=Erboristeria
|
||||
Party.ItemShare.Category.Woodcutting=Taglialegna
|
||||
Party.ItemShare.Category.Misc=Varie
|
||||
##xp
|
||||
Commands.XPGain.Acrobatics=Cadere
|
||||
Commands.XPGain.Alchemy=Preparazione Pozioni
|
||||
Commands.XPGain.Archery=Attaccare Mostri
|
||||
Commands.XPGain.Axes=Attaccando Mostri
|
||||
Commands.XPGain.Child=Ottiene livelli dalle Abilit\u00E0 Madri
|
||||
Commands.XPGain.Excavation=Scavare e trovare tesori
|
||||
Commands.XPGain.Fishing=Pescare (ma va'?!)
|
||||
Commands.XPGain.Herbalism=Raccogliere Piante
|
||||
Commands.XPGain.Mining=Estrarre Pietra e Minerali Grezzi
|
||||
Commands.XPGain.Repair=Riparare
|
||||
Commands.XPGain.Swords=Attaccare Mostri
|
||||
Commands.XPGain.Taming=Addomesticare Animali, o combattere con i tuoi lupi
|
||||
Commands.XPGain.Unarmed=Attaccare Mostri
|
||||
Commands.XPGain.Woodcutting=Abbattere alberi
|
||||
Commands.XPGain=[[DARK_GRAY]]GUADAGNO XP: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]La tua BARRA XP \u00E8 ora bloccata a {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]La tua BARRA XP \u00E8 ora [[GREEN]]SBLOCCATA[[GOLD]]!
|
||||
Commands.xprate.modified=Il TASSO XP \u00E8 stato portato a {0}
|
||||
Commands.xprate.over=L'evento mcMMO di tasso XP \u00E8 FINITO!!
|
||||
Commands.xprate.proper.0=L'uso corretto per cambiare il tasso di XP \u00E8 /xprate <numero intero> <true/false>
|
||||
Commands.xprate.proper.1=L'uso corretto per ripristinare il tasso di XP al valore originale \u00E8 /xprate reset
|
||||
Commands.xprate.proper.2=Per favore specifica "true" o "false" per indicare se questo \u00E8 un evento XP o meno
|
||||
Commands.xprate.started.0=[[GOLD]]\u00C8 INIZIATO UN EVENTO XP PER mcMMO!
|
||||
Commands.xprate.started.1=[[GOLD]]IL TASSO DI XP DI mcMMO ORA \u00C8 {0}x!
|
||||
XPRate.Event=[[GOLD]]\u00C8 in corso un evento mcMMO sul tasso XP! Il tasso XP \u00E8 {0}x!
|
||||
#EFFECTS
|
||||
##generic
|
||||
Effects.Effects=EFFETTI
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
#GUIDES
|
||||
Guides.Available=[[GRAY]]Guida per {0} disponibile - digita /{1} ? [pagina]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Guida[[GOLD]]=-
|
||||
Guides.Page.Invalid=Non \u00E8 un numero di pagina valido!
|
||||
Guides.Page.OutOfRange=Quella pagina non esiste, ci sono solo {0} pagine in totale.
|
||||
Guides.Usage=L'uso \u00E8 /{0} ? [pagina]
|
||||
##Acrobatics
|
||||
Guides.Acrobatics.Section.0=[[DARK_AQUA]]Riguardo L'Acrobatica:\n[[YELLOW]]L'Acrobatica \u00E8 l'arte di muoversi con grazia in mcMMO.\n[[YELLOW]]Essa fornisce bonus di combattimento e bonus di danni ambientali.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0 \u00E8 necessario\n[[YELLOW]]eseguire schivate in combattimento\n[[YELLOW]]o sopravvivere a cadute che danneggiano.
|
||||
Guides.Acrobatics.Section.1=[[DARK_AQUA]]Come funziona Rotolamento?\n[[YELLOW]]Hai una possibilit\u00E0 passiva quando prendi danni da caduta\n[[YELLOW]]di annullare il danno subito. Puoi tenere premuto il pulsante di\n[[YELLOW]]accovacciata per raddoppiare la possibilit\u00E0 durante la caduta.\n[[YELLOW]]Questo attiva una Capriola Aggraziata invece di quella\n[[YELLOW]]standard. Le Capriole Aggraziate sono come quelle normali\n[[YELLOW]]ma hanno il doppio delle probabilit\u00E0 di verificarsi e forniscono\n[[YELLOW]]pi\u00F9 sicurezza. La possibilit\u00E0 di capriola \u00E8 legata al livello abilit\u00E0
|
||||
Guides.Acrobatics.Section.2=[[DARK_AQUA]]Come funziona la Schivata?\n[[YELLOW]]La Schivata \u00E8 una possibilit\u00E0 passiva quando si \u00E8\n[[YELLOW]]feriti in combattimento di dimezzare il danno preso.\n[[YELLOW]]\u00C8 legato al tuo livello di abilit\u00E0.
|
||||
##Alchemy
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]Riguardo l'Alchimia:\n[[YELLOW]]L'Alchimia riguarda il preparare pozioni.\n[[YELLOW]]Fornisce un aumento di velocit\u00E0 nella produzione di pozioni, cos\u00EC\n[[YELLOW]]come l'aggiunta di nuove (prima) pozioni introvabili.\n\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0 devi preparare pozioni.
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]Come funziona la Catalisi?\n[[YELLOW]]La Catalisi accelera il processo di preparazione,\n[[YELLOW]]con una velocit\u00E0 massima di 4x al livello 1000.\n[[YELLOW]]Questa abilit\u00E0 \u00E8 sbloccata al livello 100 di default.
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]Come funziona Intrugli?\n[[YELLOW]]Intrugli consente di preparare pi\u00F9 pozioni con ingredienti\n[[YELLOW]]personalizzati. Quali ingredienti speciali sono sbloccati\n[[YELLOW]]\u00C8 determinato dal tuo Grado. Ci sono 8 Gradi da sbloccare.
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]Ingredienti Intrugli livello 1:\n[[YELLOW]]Polvere di Blaze, Occhio di Ragno Fermentato, Lacrima di Ghast,\n[[YELLOW]]Polvere di Luminite, Zucchero, Melone Luccicante,\n[[YELLOW]]Carota d'Oro, Crema di Magma, Verruca del Nether,\n[[YELLOW]]Occhio di Ragno, Zolfo, Ninfea, Pesce Palla\n[[YELLOW]](Pozioni Vanilla)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]Ingredienti Intrugli livello 2:\n[[YELLOW]]Carota (Pozione della Velocit\u00E0)\n[[YELLOW]]Palla di Gelatina (Pozione di Noia)\n\n[[DARK_AQUA]]Ingredienti Intrugli livello 3:\n[[YELLOW]]Quarzo (Pozione di Assorbimento)\n[[YELLOW]]Fungo Rosso (Pozione del Salto)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]Ingredienti Intrugli livello 4:\n[[YELLOW]]Mela (Pozione di Potenziamento Salute)\n[[YELLOW]]Carne Marcia (Pozione della Fame)\n\n[[DARK_AQUA]]Ingredienti Intrugli livello 5:\n[[YELLOW]]Fungo Marrone (Pozione di Nausea)\n[[YELLOW]]Sacca d'Inchiostro (Pozione di Cecit\u00E0)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]Ingredienti Intrugli livello 6:\n[[YELLOW]]Felce (Pozione di Saturazione)\n\n[[DARK_AQUA]]Ingredienti Intrugli livello 7:\n[[YELLOW]]Patata Velenosa (Pozione di Decadimento)\n\n[[DARK_AQUA]]Concoctions tier 8 ingredients:\n[[YELLOW]]Mela d'Oro (Pozione di Resistenza)
|
||||
##Archery
|
||||
Guides.Archery.Section.0=[[DARK_AQUA]]Riguardo Tiro con l'Arco:\n[[YELLOW]]Tiro con l'Arco riguarda il tirare con arco e freccia.\n[[YELLOW]]Fornisce vari bonus di combattimento, come un incremento\n[[YELLOW]]di danno che scala con il livello e l'abilit\u00E0 di stordire i tuoi\n[[YELLOW]]avversari in PvP. Inoltre puoi recuperare alcune delle\n[[YELLOW]]frecce spese dai cadaveri dei tuoi nemici.\n\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0 \u00E8 necessario\n[[YELLOW]]colpire i mob o gli altri giocatori.
|
||||
Guides.Archery.Section.1=[[DARK_AQUA]]Come funziona Tiro da Maestro?\n[[YELLOW]]Tiro da Maestro fornisce un danno aggiuntivo ai tuoi colpi.\n[[YELLOW]]Il danno bonus da Tiro da Maestro aumenta\n[[YELLOW]]all'aumentare del livello di Tiro con l'Arco.\n[[YELLOW]]Con le impostazioni di default, il danno dei tiri con l'arco\n[[YELLOW]]aumenta del 10% ogni 50 livelli, fino a un massimo del 200%.
|
||||
Guides.Archery.Section.2=[[DARK_AQUA]]Come funziona Stordire?\n[[YELLOW]]Hai una possibilit\u00E0 passiva di stordire gli altri giocatori quando\n[[YELLOW]]li colpisci. Quando Stordire si innesca costringe gli avversari\n[[YELLOW]]a guardare verso l'alto per una breve durata.\n[[YELLOW]]Un colpo di Stordire procura anche ulteriori 4 danni (2 cuori).
|
||||
Guides.Archery.Section.3=[[DARK_AQUA]]Come funziona Recupero Frecce?\n[[YELLOW]]Hai una possibilit\u00E0 passiva di recuperare alcune\n[[YELLOW]]delle tue frecce quando uccidi un mob con l'arco.\n[[YELLOW]]Questa possibilit\u00E0 \u00E8 aumentata dal livello in Tiro con l'Arco.\n[[YELLOW]Di default, questa capacit\u00E0 aumenta di 0.1% per livello,\n[[YELLOW]]fino al 100% al livello 1000.
|
||||
##Axes
|
||||
Guides.Axes.Section.0=[[DARK_AQUA]]Riguardo Asce:\n[[YELLOW]]Con l'abilit\u00E0 Asce \u00E8 possibile utilizzare l'ascia per molto di\n[[YELLOW]]pi\u00F9 che solo deforestare! \u00E8 possibile incidere e sgretolare\n[[YELLOW]]mob e giocatori per guadagnare XP, colpire mob con l'effetto\n[[YELLOW]]di contraccolpo e infliggere danni critici MORTALI sui mob e\n[[YELLOW]]giocatori. La tua ascia diventa anche un biotrituratore\n[[YELLOW]]portatile, abbattendo l'armatura del nemico con facilit\u00E0 con\n[[YELLOW]]l'aumentare del livello.\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0 devi colpire mob\n[[YELLOW]]o altri giocatori con la tua Ascia.
|
||||
Guides.Axes.Section.1=[[DARK_AQUA]]Come funziona Spacca Crani?\n[[YELLOW]]Questa capacit\u00E0 consente di fare un colpo EaA\n[[YELLOW]](Effetto ad Area). Questo EaA infligger\u00E0 la met\u00E0 del danno\n[[YELLOW]]fatto all'obbiettivo principale, quindi \u00E8 ottimo per sgombrare\n[[YELLOW]]grandi mucchi di mob.
|
||||
Guides.Axes.Section.2=[[DARK_AQUA]]Come funziona Colpi Critici?\n[[YELLOW]]Colpi Critici \u00E8 una capacit\u00E0 passiva che d\u00E0 ai giocatori\n[[YELLOW]]la possibilit\u00E0 di fare danno aggiuntivo.\n[[YELLOW]]Con le impostazioni predefinite, ogni 2 livelli in Asce aggiudica\n[[YELLOW]]lo 0.1% di possibilit\u00E0 di fare un Colpo Critico, causando 2 volte\n[[YELLOW]]il danno ai mob, o 1.5 volte il danno agli altri giocatori.
|
||||
Guides.Axes.Section.3=[[DARK_AQUA]]Come funziona Mestria con l'Ascia?\n[[YELLOW]]Maestria con l'Ascia \u00E8 una capacit\u00E0 passiva\n[[YELLOW]]che aggiunge danno ai tuoi colpi quando usi delle Asce.\n[[YELLOW]]Di default il bonus danno aumenta di 1 ogni 50 livelli,\n[[YELLOW]]fino a 4 danni extra al livello 200.
|
||||
Guides.Axes.Section.4=[[DARK_AQUA]]Come funziona Sfonda Armature?\n[[YELLOW]]Un attacco con abbastanza forza da frantumare un armatura!\n[[YELLOW]]Sfonda Armature ha una possibilit\u00E0 passiva di danneggiare\n[[YELLOW]]l'armatura dell'avversario. Il livello in Asce aumenta il danno.
|
||||
Guides.Axes.Section.5=[[DARK_AQUA]]Come funziona Impatto Maggiore?\n[[YELLOW]]Hai una possibilit\u00E0 passiva di ottenere un maggiore impatto\n[[YELLOW]]colpendo i mob o i giocatori con un'ascia.\n[[YELLOW]]Di default la possibilit\u00E0 \u00E8 del 25%. Questa capacit\u00E0\n[[YELLOW]]ha un estremo effetto contraccolpo, simile all'incantesimo\n[[YELLOW]]Contraccolpo. Inoltre, infligge danno bonus al bersaglio.
|
||||
##Excavation
|
||||
Guides.Excavation.Section.0=[[DARK_AQUA]]Riguardo l'Escavazione:\n[[YELLOW]]L'Escavazione \u00E8 l'atto di scavare per trovare tesori.\n[[YELLOW]]Scavando la terra si trovano tesori.\n[[YELLOW]]Quanto pi\u00F9 si esegue questa operazione\n[[YELLOW]]pi\u00F9 tesori si possono trovare.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP devi scavare con una pala in mano.\n[[YELLOW]]Solo alcuni materiali possono essere scavati per tesori e XP.
|
||||
Guides.Excavation.Section.1=[[DARK_AQUA]]Materiali Compatibili:\n[[YELLOW]]Erba, Terra, Sabbia, Argilla, Ghiaia, Micelio,\n[[YELLOW]]Sabbia delle Anime, Neve
|
||||
Guides.Excavation.Section.2=[[DARK_AQUA]]Come usare Giga-Trivella Demolitrice:\n[[YELLOW]]Con una pala in mano tasto destro del mouse per preparare\n[[YELLOW]]lo strumento. Una volta in questo stato si dispone di circa\n[[YELLOW]]4 secondi per fare contatto con i materiali compatibili,\n[[YELLOW]]questo attiver\u00E0 Giga-Trivella Demolitrice.
|
||||
Guides.Excavation.Section.3=[[DARK_AQUA]]Cos'\u00E8 Giga-Trivella Demolitrice?\n[[YELLOW]]Giga-Trivella Demolitrice \u00E8 una capacit\u00E0 con raffreddamento\n[[YELLOW]]legata all'abilit\u00E0 Escavazione. Triplica la possibilit\u00E0\n[[YELLOW]]di trovare tesori e abilita la rottura istantanea\n[[YELLOW]]sui materiali di Escavazione.
|
||||
Guides.Excavation.Section.4=[[DARK_AQUA]]Come funziona Cacciatore di Tesori?\n[[YELLOW]]Ogni possibile tesoro per Escavazione ha il suo livello\n[[YELLOW]]di abilit\u00E0 richiesto per essere droppato, di conseguenza \u00E8\n[[YELLOW]]difficile dire quanto ti sta aiutando.\n[[YELLOW]]Basta tenere a mente che pi\u00F9 alta \u00E8 l'abilit\u00E0 di Escavazione,\n[[YELLOW]]pi\u00F9 tesori si possono trovare.\n[[YELLOW]]E anche tenere a mente che ogni tipo di materiale\n[[YELLOW]]di Escavazione compatibile ha la sua lista di tesori unici.\n[[YELLOW]]In altre parole si trovano diversi tesori nella Terra\n[[YELLOW]]da quelli che si troverebbero nella Ghiaia.
|
||||
Guides.Excavation.Section.5=[[DARK_AQUA]]Note sull'Escavazione:\n[[YELLOW]]I drop dell'Escavazione sono completamente personalizzabili\n[[YELLOW]]Quindi, i risultati variano da server a server.
|
||||
##Fishing
|
||||
Guides.Fishing.Section.0=[[DARK_AQUA]]Riguardo la Pesca:\n[[YELLOW]]Con l'abilit\u00E0 Pesca, pescare \u00E8 di nuovo emozionante!\n[[YELLOW]]Trovare tesori nascosti, e scrollare oggetti dai mob.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Catturare pesci.
|
||||
Guides.Fishing.Section.1=[[DARK_AQUA]]Come funziona Cacciatore di Tesori?\n[[YELLOW]]Questa capacit\u00E0 consente di trovare tesori pescando\n[[YELLOW]]con una piccola possibilit\u00E0 di oggetti incantati.\n[[YELLOW]]Ogni possibile tesoro di pesca ha una possibilit\u00E0\n[[YELLOW]]di uscire a ogni livello. Dipende per\u00F2 dalla\n[[YELLOW]]rarit\u00E0 dell'oggetto ogni quanto esce.\n[[YELLOW]]Pi\u00F9 \u00E8 alta la tua abilit\u00E0 di Pesca, maggiori\n[[YELLOW]]sono le possibilit\u00E0 di trovare tesori migliori.
|
||||
Guides.Fishing.Section.2=[[DARK_AQUA]]Come funziona Pesca sul Ghiaccio?\n[[YELLOW]]Questa capacit\u00E0 passiva permette di pescare nei laghi\n[[YELLOW]]ghiacciati! Lancia la tua canna da pesca e la capacit\u00E0\n[[YELLOW]]creer\u00E0 un piccolo buco nel ghiaccio dove pescare.
|
||||
Guides.Fishing.Section.3=[[DARK_AQUA]]Come funziona Pescatore Provetto?\n[[YELLOW]]Questa capacit\u00E0 passiva aumenta la possibilit\u00E0 di far abboccare\n[[YELLOW]]mentre si pesca. Quando hai sbloccato questa capacit\u00E0,\n[[YELLOW]]pescare in barca o in un bioma oceano raddoppia\n[[YELLOW]]la possibilit\u00E0 di far abboccare.
|
||||
Guides.Fishing.Section.4=[[DARK_AQUA]]Come funziona Scuotere?\n[[YELLOW]]Questa capacit\u00E0 attiva consente di scrollare oggetti sciolti\n[[YELLOW]]dai mob agganciandoli con una canna da pesca.\n[[YELLOW]]I mob dropperanno gli oggetti che normalmente droppano\n[[YELLOW]]alla morte. \u00C8 anche possibile acquisire le teste dei mob,\n[[YELLOW]]che sono normalmente inottenibili in modalit\u00E0 sopravvivenza.
|
||||
Guides.Fishing.Section.5=[[DARK_AQUA]]Come funziona Dieta del Pescatore?\n[[YELLOW]]Questa capacit\u00E0 passiva aumenta la fame ripristinata \n[[YELLOW]]mangiando pesce.
|
||||
Guides.Fishing.Section.6=[[DARK_AQUA]]Note sulla Pesca:\n[[YELLOW]]I drop di pesca sono completamente personalizzabili,\n[[YELLOW]]quindi variano da server a server.
|
||||
##Herbalism
|
||||
Guides.Herbalism.Section.0=[[DARK_AQUA]]Riguardo l'Erboristeria:\n[[YELLOW]]L'Erboristeria riguarda il raccogliere le erbe e le piante.\n\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Raccogliendo piante ed erbe.
|
||||
Guides.Herbalism.Section.1=[[DARK_AQUA]]Blocchi Compatibili\n[[YELLOW]]Grano, Patate, Carote, Meloni, \n[[YELLOW]]Zucchine, Canne da Zucchero, Fave di Cacao, Fiori, Cactus,\n[[YELLOW]]Funghi, Verruche del Nether, Ninfee, e Rampicanti.
|
||||
Guides.Herbalism.Section.2=[[DARK_AQUA]]Come funziona Terra Verde?\n[[YELLOW]]Terra Verde \u00E8 una capacit\u00E0 attiva, puoi fare tasto destro\n[[YELLOW]]mentre tieni in mano una zappa per attivare Terra Verde.\n[[YELLOW]]Terra Verde concede una possibilit\u00E0 di ottenere drop 3x\n[[YELLOW]]dalle piante raccolte. D\u00E0 anche ai giocatori la capacit\u00E0\n[[YELLOW]]di diffondere la vita nei blocchi e trasformarli utilizzando\n[[YELLOW]]semi dal tuo inventario.
|
||||
Guides.Herbalism.Section.3=[[DARK_AQUA]]Come funziona Pollice Verde (Colture)?\n[[YELLOW]]Questa abilit\u00E0 passiva ripianta le colture quando\n[[YELLOW]]vengono raccolte.\n[[YELLOW]]Questa possibilit\u00E0 dipende dal tuo livello in Erboristeria.
|
||||
Guides.Herbalism.Section.4=[[DARK_AQUA]]Come funziona Pollice Verde (Pietre/Mattoni di Pietra/Terra)?\n[[YELLOW]]Questa capacit\u00E0 attiva consente di trasformare i blocchi nelle\n[[YELLOW]]controparti "piante correlate". Puoi farlo con click destro\n[[YELLOW]]su un blocco, con in mano dei semi. Consumer\u00E0 1 seme.
|
||||
Guides.Herbalism.Section.5=[[DARK_AQUA]]Come funziona Dieta del Contadino?\n[[YELLOW]]Questa capacit\u00E0 passiva aumenta la fame ripristinata \n[[YELLOW]]mangiando Pane, Biscotti, Meloni, Zuppe di Funghi, Carote,\n[[YELLOW]]e Patate.
|
||||
Guides.Herbalism.Section.6=[[DARK_AQUA]]Come funziona Fortuna Hylian?\n[[YELLOW]]Questa capacit\u00E0 passiva d\u00E0 una possibilit\u00E0 di trovare\n[[YELLOW]]oggetti rari quando certi blocchi sono rotti con una spada.
|
||||
Guides.Herbalism.Section.7=[[DARK_AQUA]]Come funziona il Doppio Drop?\n[[YELLOW]]Questa abilit\u00E0 passiva d\u00E0 ai giocatori pi\u00F9 resa\n[[YELLOW]]dai loro raccolti.
|
||||
##Mining
|
||||
Guides.Mining.Section.0=[[DARK_AQUA]]Riguardo l'Estrazione:\n[[YELLOW]]L'Estrazione consiste nell'estrarre pietra e minerali.\n[[YELLOW]]Fornisce bonus alla quantit\u00E0 di materiali droppati minando.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0, devi minare con un piccone.\n[[YELLOW]]Solo alcuni blocchi assegnano XP.
|
||||
Guides.Mining.Section.1=[[DARK_AQUA]]Materiali compatibili:\n[[YELLOW]]Pietra, Carbone Grezzo, Ferro Grezzo, Oro Grezzo, Diamante Grezzo, Pietrarossa Grezza,\n[[YELLOW]]Lapislazzuli Grezzo, Ossidiana, Pietra Muschiosa, Pietra dell'End,\n[[YELLOW]]Luminite e Netherrack.
|
||||
Guides.Mining.Section.2=[[DARK_AQUA]]Come usare il Super Demolitore:\n[[YELLOW]]Con un piccone in mano, tasto destro del mouse\n[[YELLOW]]per preparare lo strumento.\n[[YELLOW]]Una volta in questo stato si dispone di 4 secondi\n[[YELLOW]]per entrare in contatto con i materiali compatibili,\n[[YELLOW]]che attiveranno il Super Demolitore.
|
||||
Guides.Mining.Section.3=[[DARK_AQUA]]Cos'\u00E8 il Super Demolitore?\n[[YELLOW]]Il Super Demolitore \u00E8 una capacit\u00E0 a tempo legata all'abilit\u00E0\n[[YELLOW]]Estrazione. Triplica la possibilit\u00E0 di drop di oggetti extra e\n[[YELLOW]]abilita la rottura istantanea dei materiali estratti.
|
||||
Guides.Mining.Section.4=[[DARK_AQUA]]Come usare l'Estrazione Esplosiva:\n[[YELLOW]]Con un detonatore in mano, un acciarino di default,\n[[YELLOW]]accovacciati e fai click destro su TNT a distanza. Questo causer\u00E0\n[[YELLOW]]l'esplosione istantanea della TNT.
|
||||
Guides.Mining.Section.5=[[DARK_AQUA]]Come funziona Estrazione Esplosiva?\n[[YELLOW]]Estrazione Esplosiva \u00E8 una capacit\u00E0 legata all'abilit\u00E0\n[[YELLOW]]Estrazione. Da bonus minando con la TNT e consente di\n[[YELLOW]]detonare da lontano la TNT. Ci sono tre parti di Estrazione\n[[YELLOW]]Esplosiva. La prima parte \u00E8 Bombe Pi\u00F9 Grandi, che aumenta il\n[[YELLOW]]raggio d'esplosione. La seconda parte \u00E8 Esperto di Demolizioni,\n[[YELLOW]]che riduce il danno dalle esplosioni di TNT. La terza parte\n[[YELLOW]]aumenta semplicemente la quantit\u00E0 di minerali droppati dalla \n[[YELLOW]]TNT e riduce i detriti droppati.
|
||||
##Repair
|
||||
Guides.Repair.Section.0=[[DARK_AQUA]]Riguardo la Riparazione:\n[[YELLOW]]La Riparazione consente di utilizzare un blocco di ferro\n[[YELLOW]]per riparare armature e strumenti.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Riparando strumenti e armature con l'incudine mcMMO.\n[[YELLOW]]Questa \u00E8 di default un blocco di ferro e non deve essere\n[[YELLOW]]confusa con l'incudine di Minecraft Vanilla.
|
||||
Guides.Repair.Section.1=[[DARK_AQUA]]Come posso usare Riparazione?\n[[YELLOW]]Piazza un'incudine mcMMO e fai click destro per riparare \n[[YELLOW]]l'oggetto in mano. Questo consuma 1 oggetto per ogni uso.
|
||||
Guides.Repair.Section.2=[[DARK_AQUA]]Come funziona Maestria nella Riparazione?\n[[YELLOW]]Maestria nella Riparazione aumenta la quantit\u00E0 di riparazione.\n[[YELLOW]]La riparazione extra dipende dal tuo livello di Riparazione.
|
||||
Guides.Repair.Section.3=[[DARK_AQUA]]Come funziona Super Riparazione?\n[[YELLOW]]Super Riparazione \u00E8 una capacit\u00E0 passiva. Riparando un oggetto,\n[[YELLOW]]concede ai giocatori una possibilit\u00E0 di riparare un oggetto con\n[[YELLOW]]doppia efficacia.
|
||||
Guides.Repair.Section.4=[[DARK_AQUA]]Come funziona Forgiatura Arcana?\n[[YELLOW]]Questa capacit\u00E0 passiva consente di riparare oggetti con\n[[YELLOW]]una certa possibilit\u00E0 di mantenere i suoi incantesimi. Gli\n[[YELLOW]]incantesimi possono essere mantenuti ai loro livelli,\n[[YELLOW]]degradati a livelli pi\u00F9 bassi, o persi del tutto.
|
||||
##Salvage
|
||||
Guides.Salvage.Section.0=[[DARK_AQUA]]Riguardo la Rottamazione:\n[[YELLOW]]La Rottamazione consente di usare un blocco d'oro\n[[YELLOW]]per rottamare armature e strumenti.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Rottamazione \u00E8 un'abilit\u00E0 figlia di Riparazione\n[[YELLOW]]e Pesca, il livello di abilit\u00E0 \u00E8 basato sui livelli\n[[YELLOW]]di Pesca e Riparazione.
|
||||
Guides.Salvage.Section.1=[[DARK_AQUA]]Come posso usare la Rottamazione?\n[[YELLOW]]Piazza un'incudine di Rottamazione mcMMO e facci click\n[[YELLOW]]destro per rottamare l'oggetto che hai in mano. Esso si\n[[YELLOW]]romper\u00E0 e restituir\u00E0 i materiali usati per costruirlo.\n\n[[YELLOW]]Per esempio, rottamando un piccone di ferro dar\u00E0 lingotti\n[[YELLOW]]di ferro.
|
||||
Guides.Salvage.Section.2=[[DARK_AQUA]]Come funziona la Rottamazione Avanzata?\n[[YELLOW]]Quando sbloccata, questa capacit\u00E0 consente di rottamare\n[[YELLOW]]oggetti danneggiati. La percentuale di resa aumenta con\n[[YELLOW]]il salire di livello. Una resa maggiore significa che si possono\n[[YELLOW]]ottenere pi\u00F9 materiali indietro. Con la Rottamazione\n[[YELLOW]]Avanzata si otterr\u00E0 sempre 1 materiale indietro, a meno che\n[[YELLOW]]non sia troppo danneggiato. Quindi non ci si deve preoccupare\n[[YELLOW]]di distruggere oggetti senza ottenere nulla in cambio.
|
||||
Guides.Salvage.Section.3=[[DARK_AQUA]]Per illustrare come funziona, ecco un esempio:\n[[YELLOW]]Diciamo che rottamiamo un piccone d'oro danneggiato per il 20%,\n[[YELLOW]]ci\u00F2 significa che l'importo massimo che potrebbe ottenere solo 2\n[[YELLOW]](Perch\u00E9 il piccone \u00E8 fatto con 3 lingotti - ciascuno del valore di\n[[YELLOW]]33,33% durabilit\u00E0) che \u00E8 uguale a 66%. Se la percentuale di\n[[YELLOW]]resa \u00E8 sotto il 66% non si \u00E8 in grado di ottenere 2 lingotti.\n[[YELLOW]]Se \u00E8 al di sopra di questo valore si \u00E8 in grado di ottenere lo\n[[YELLOW]]"intero importo", il che significa che si otterranno 2 lingotti.
|
||||
Guides.Salvage.Section.4=[[DARK_AQUA]]Come funziona la Rottamazione Arcana?\n[[YELLOW]]Questa capacit\u00E0 consente di ottenere libri incantati\n[[YELLOW]]durante la rottamazione di oggetti incantati. A seconda del\n[[YELLOW]]livello la possibilit\u00E0 di estrarre con successo\n[[YELLOW]]un incantesimo totale o parziale varia.\n\n[[YELLOW]]Quando un incantesimo \u00E8 parzialmente estratto, il libro\n[[YELLOW]]incantato avr\u00E0 un livello inferiore.
|
||||
##Smelting
|
||||
Guides.Smelting.Section.0=Prossimamente...
|
||||
##Swords
|
||||
Guides.Swords.Section.0=[[DARK_AQUA]]Riguardo Spade:\n[[YELLOW]]Questa abilit\u00E0 d\u00E0 bonus di combattimento a chi\n[[YELLOW]]combatte con una spada.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Il guadagno degli XP \u00E8 basato sul danno inflitto\n[[YELLOW]]ai mob o ad altri giocatori con una spada.
|
||||
Guides.Swords.Section.1=[[DARK_AQUA]]Come funziona Colpi Seghettati?\n[[YELLOW]]Colpi Seghettati \u00E8 una capacit\u00E0 attiva, puoi attivarla facendo\n[[YELLOW]]click destro con una spada. Questa capacit\u00E0 permette di fare\n[[YELLOW]]un colpo EaA (Effetto ad Area). Questo EaA far\u00E0 il 25% in pi\u00F9\n[[YELLOW]]di danni e infligger\u00E0 un effetto di sanguinamento che dura 5 tick.
|
||||
Guides.Swords.Section.2=[[DARK_AQUA]]Come funziona Contrattacco?\n[[YELLOW]]Contrattacco \u00E8 una capacit\u00E0 attiva. Quando si ricevono\n[[YELLOW]]colpi dai mob, hai una possibilit\u00E0 di riflettere il 50% \n[[YELLOW]]del danno preso.
|
||||
Guides.Swords.Section.3=[[DARK_AQUA]]Come funziona Emorragia?\n[[YELLOW]]Emorragia causa ai nemici danno ogni due secondi. Il \n[[YELLOW]]bersaglio sanguina fino allo svanire dell'effetto,\n[[YELLOW]]o alla morte, quello che viene prima.\n[[YELLOW]]La durata dell'Emorragia \u00E8 aumentata dall'abilit\u00E0 Spade.
|
||||
##Taming
|
||||
Guides.Taming.Section.0=[[DARK_AQUA]]Riguardo l'Addomesticamento:\n[[YELLOW]]L'Addomesticamento dar\u00E0 ai giocatori vari bonus di combattimento\n[[YELLOW]]quando si usano lupi addomesticati.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00E0, devi addomesticare\n[[YELLOW]]lupi/ocelot o entrare in combattimento con i tuoi lupi.
|
||||
Guides.Taming.Section.1=[[DARK_AQUA]]Come funziona Richiamo della Natura?\n[[YELLOW]]Richiamo della Natura \u00E8 una capacit\u00E0 attiva che consente\n[[YELLOW]]di evocare un lupo o un ocelot al proprio fianco. Puoi\n[[YELLOW]]farlo facendo click sinistro con in mano ossa o pesce.
|
||||
Guides.Taming.Section.2=[[DARK_AQUA]]Come funziona Conoscenza delle Bestie?\n[[YELLOW]]Conoscenza delle Bestie consente ai giocatori di ispezionare\n[[YELLOW]]gli animali da compagnia e controllare lo stato di lupi\n[[YELLOW]]e ocelot. Click-sinistro su un lupo o un ocelot\n[[YELLOW]]per usare Conoscenza delle Bestie.
|
||||
Guides.Taming.Section.3=[[DARK_AQUA]]Come funziona Sbranare?\n[[YELLOW]]Sbranare \u00E8 una capacit\u00E0 passiva che ha una possibilit\u00E0\n[[YELLOW]]di infliggere un effetto sanguinamento ai bersagli dei lupi.
|
||||
Guides.Taming.Section.4=[[DARK_AQUA]]Come funziona Artigli Affilati?\n[[YELLOW]]Artigli Affilati offre un bonus di danni al danno inflitto\n[[YELLOW]]dai lupi. Il bonus danni dipende dal livello di Addomesticamento.
|
||||
Guides.Taming.Section.5=[[DARK_AQUA]]Come funziona Sicurezza Ambientale?\n[[YELLOW]]Questa capacit\u00E0 passiva consente ai lupi di teletrasportarsi\n[[YELLOW]]da te quando si trovano vicino ai pericoli come Cactus/Lava.\n[[YELLOW]]D\u00E0 anche ai lupi l'immunit\u00E0 alle cadute.
|
||||
Guides.Taming.Section.6=[[DARK_AQUA]]Come funziona Pelliccia Folta?\n[[YELLOW]]Questa capacit\u00E0 passiva riduce il danno\n[[YELLOW]]e rende i lupi resistenti al fuoco.
|
||||
Guides.Taming.Section.7=[[DARK_AQUA]]Come funziona A Prova d'Urto?\n[[YELLOW]]Questa capacit\u00E0 passiva riduce il danno fatto ai lupi\n[[YELLOW]]dalle esplosioni.
|
||||
Guides.Taming.Section.8=[[DARK_AQUA]]Come funziona il Servizio Fast Food?\n[[YELLOW]]Questa capacit\u00E0 passiva d\u00E0 ai lupi la possibilit\u00E0 di guarire\n[[YELLOW]]ogni volta che fanno un attacco.
|
||||
##Unarmed
|
||||
Guides.Unarmed.Section.0=[[DARK_AQUA]]Riguardo la Lotta:\n[[YELLOW]]La Lotta dar\u00E0 ai giocatori vari bonus di combattimento\n[[YELLOW]]quando si usano i pugni come arma.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Gli XP si ottengono in base alla quantit\u00E0 di danno\n[[YELLOW]]inflitto ai mob o agli altri giocatori senza armi.
|
||||
Guides.Unarmed.Section.1=[[DARK_AQUA]]Come funziona Furore?\n[[YELLOW]]Furore \u00E8 una capacit\u00E0 attiva che si attiva con il click\n[[YELLOW]]destro. In modalit\u00E0 Furore, Fai il 50% di danni\n[[YELLOW]]in pi\u00F9 e puoi rompere istantaneamente i materiali\n[[YELLOW]]deboli, come Terra ed Erba.
|
||||
Guides.Unarmed.Section.2=[[DARK_AQUA]]Come funziona Braccio di Ferro?\n[[YELLOW]]Braccio di Ferro aumenta il danno quando si colpiscono\n[[YELLOW]]mob o giocatori con i pugni.
|
||||
Guides.Unarmed.Section.3=[[DARK_AQUA]]Come funziona Deviazione Frecce?\n[[YELLOW]]Deviare Frecce \u00E8 una capacit\u00E0 passiva che d\u00E0 la\n[[YELLOW]]possibilit\u00E0 di deviare frecce tirate da Scheletri o altri\n[[YELLOW]]giocatori. La freccia cadr\u00E0 a terra innocuamente.
|
||||
Guides.Unarmed.Section.4=[[DARK_AQUA]]Come funziona Presa di Ferro?\n[[YELLOW]]Presa di Ferro \u00E8 una capacit\u00E0 passiva che disarma.\n[[YELLOW]]Come sale il livello di lotta, aumenta la possibilit\u00E0\n[[YELLOW]]di prevenire un disarmo.
|
||||
Guides.Unarmed.Section.5=[[DARK_AQUA]]Come funziona Disarmo?\n[[YELLOW]]Questa capacit\u00E0 passiva permette ai giocatori di\n[[YELLOW]]disarmare gli altri giocatori, facendo cadere\n[[YELLOW]]a terra l'oggetto in mano del bersaglio.
|
||||
##Woodcutting
|
||||
Guides.Woodcutting.Section.0=[[DARK_AQUA]]Riguardo Taglialegna:\n[[YELLOW]]Taglialegna sta tutto nell'abbattere alberi.\n\n[[DARK_AQUA]]GUADAGNO XP:\n[[YELLOW]]Gli XP si guadagnano ogni volta che si rompono ceppi di legno.
|
||||
Guides.Woodcutting.Section.1=[[DARK_AQUA]]Come funziona Abbattitore d'Alberi?\n[[YELLOW]]Abbattitore d'Alberi \u00E8 una capacit\u00E0 attiva, puoi fare\n[[YELLOW]]click destro con in mano un'Ascia. Questo causer\u00E0\n[[YELLOW]]la rottura istantanea dell'albero, droppando tutto\n[[YELLOW]]il suo legno contemporaneamente.
|
||||
Guides.Woodcutting.Section.2=[[DARK_AQUA]]Come funziona Soffia Foglie?\n[[YELLOW]]Soffia Foglie \u00E8 una capacit\u00E0 passiva che causer\u00E0 la\n[[YELLOW]]rottura istantanea dei blocchi di foglie colpiti con un ascia.\n[[YELLOW]]Di default, questa capacit\u00E0 si sblocca al livello 100.
|
||||
Guides.Woodcutting.Section.3=[[DARK_AQUA]]Come funziona Doppi Drop?\n[[YELLOW]]Questa \u00E8 una capacit\u00E0 passiva che permette di ottenere\n[[YELLOW]]un blocco extra per ogni ceppo di legno che si taglia.
|
||||
#INSPECT
|
||||
Inspect.Offline=Non hai il permesso di esaminare giocatori disconnessi!
|
||||
Inspect.OfflineStats=Statistiche mcMMO del Giocatore Disconnesso [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]Statistiche mcMMO di [[YELLOW]]{0}
|
||||
Inspect.TooFar=Sei troppo lontano da quel giocatore per esaminarlo!
|
||||
#ITEMS
|
||||
Item.ChimaeraWing.Fail=**ALA CHIMERICA FALLITA!**
|
||||
Item.ChimaeraWing.Pass=**ALA CHIMERICA**
|
||||
Item.ChimaeraWing.Name=Ala Chimerica
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Ti teletrasporta al tuo letto.
|
||||
Item.Generic.Wait=Devi aspettare prima di poterlo usare di nuovo! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=Sei stato ferito di recente e devi aspettare per usarlo. [[YELLOW]]({0}s)
|
||||
Item.FluxPickaxe.Name=Piccone Cuocente
|
||||
Item.FluxPickaxe.Lore.1=[[GRAY]]Ha la possibilit\u00E0 di fusione immediata dei minerali.
|
||||
Item.FluxPickaxe.Lore.2=[[GRAY]]Richiede livello di Fusione {0}+
|
||||
#TELEPORTATION
|
||||
Teleport.Commencing=[[GRAY]]Il teletrasporto avr\u00E0 inizio fra [[GOLD]]({0}) [[GRAY]]secondi, resta fermo per favore...
|
||||
Teleport.Cancelled=[[DARK_RED]]Teletrasporto annullato!
|
||||
#SKILLS
|
||||
Skills.Child=[[GOLD]](ABILIT\u00C0 FIGLIA)
|
||||
Skills.Disarmed=[[DARK_RED]]Sei stato disarmato!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Hai bisogno di pi\u00F9 [[GRAY]]{0}
|
||||
Skills.Parents=ABILIT\u00C0 MADRI
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.ChildStats={0}[[GREEN]]{1}
|
||||
Skills.TooTired=Sei troppo stanco per usare ancora questa capacit\u00E0. [[YELLOW]]({0}s)
|
||||
Skills.Cancelled={0} annullata!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Clicca ancora col destro per confermare [[GOLD]]{0}[[GREEN]]. Clicca col sinistro per annullare.
|
||||
#STATISTICS
|
||||
Stats.Header.Combat=[[GOLD]]-=ABILIT\u00C0 DI COMBATTIMENTO=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=ABILIT\u00C0 DI RACCOLTA=-
|
||||
Stats.Header.Misc=[[GOLD]]-=ABILIT\u00C0 VARIE=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Statistiche
|
||||
#PERKS
|
||||
Perks.XP.Name=Esperienza
|
||||
Perks.XP.Desc=Ricevi XP incrementati in determinate abilit\u00E0.
|
||||
Perks.Lucky.Name=Fortuna
|
||||
Perks.Lucky.Desc=Aumenta del 33.3% le probabilit\u00E0 di attivarsi delle abilit\u00E0 e capacit\u00E0 di {0}.
|
||||
Perks.Lucky.Desc.Login=Aumenta del 33.3% le probabilit\u00E0 di attivarsi di certe abilit\u00E0 e capacit\u00E0.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} con il Vantaggio Fortuna)
|
||||
Perks.Cooldowns.Name=Recupero Rapido
|
||||
Perks.Cooldowns.Desc=Riduce la durata della ricarica di {0}.
|
||||
Perks.ActivationTime.Name=Resistenza
|
||||
Perks.ActivationTime.Desc=Incrementa il tempo di attivazione della capacit\u00E0 di {0} secondi.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s con il Vantaggio Resistenza)
|
||||
#HARDCORE
|
||||
Hardcore.Mode.Disabled=[[GOLD]][mcMMO] Modalit\u00E0 Hardcore {0} disattivata per {1}.
|
||||
Hardcore.Mode.Enabled=[[GOLD]][mcMMO] Modalit\u00E0 Hardcore {0} attivata per {1}.
|
||||
Hardcore.DeathStatLoss.Name=Penalit\u00E0 alle Abilit\u00E0 per Morte
|
||||
Hardcore.DeathStatLoss.PlayerDeath=[[GOLD]][mcMMO] [[DARK_RED]]Hai perso [[BLUE]]{0}[[DARK_RED]] livelli dalla morte.
|
||||
Hardcore.DeathStatLoss.PercentageChanged=[[GOLD]][mcMMO] La percentuale di perdita delle statistiche \u00E8 stata portata a {0}.
|
||||
Hardcore.Vampirism.Name=Vampirismo
|
||||
Hardcore.Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] era troppo inesperto per concedere alcuna conoscenza.
|
||||
Hardcore.Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]Hai rubato [[BLUE]]{0}[[DARK_AQUA]] livelli da [[YELLOW]]{1}.
|
||||
Hardcore.Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] non \u00E8 riuscito a rubarti ci\u00F2 che conosci!
|
||||
Hardcore.Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] ti ha rubato [[BLUE]]{1}[[DARK_RED]] livelli!
|
||||
Hardcore.Vampirism.PercentageChanged=[[GOLD]][mcMMO] La percentuale di perdita \u00E8 cambiata a {0}.
|
||||
#MOTD
|
||||
MOTD.Donate=[[DARK_AQUA]]Info Donazioni:
|
||||
MOTD.Hardcore.Enabled=[[GOLD]][mcMMO] [[DARK_AQUA]]Modalit\u00E0 hardcore abilitata: [[DARK_RED]]{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Penalit\u00E0 alle Abilit\u00E0 causa Morte: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Salasso di Statistiche da Vampirismo: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[Vantaggi mcMMO]
|
||||
MOTD.Version=[[GOLD]][mcMMO] versione [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - Sito di mcMMO
|
||||
#SMELTING
|
||||
Smelting.Ability.FluxMining=Possibilit\u00E0 di Estrazione Cuocente: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=Moltiplicatore di Efficienza Combustibile: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (INCREMENTO XP VANILLA)
|
||||
Smelting.Ability.Locked.1=BLOCCATO FINO AD ABILIT\u00C0 {0}+ (ESTRAZIONE CUOCENTE)
|
||||
Smelting.Ability.SecondSmelt=Possibilit\u00E0 di Seconda Fusione: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=Moltiplicatore XP Vanilla: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=Efficienza Combustibile
|
||||
Smelting.SubSkill.FuelEfficiency.Description=Aumenta il tempo di combustione del carburante usato nelle fornaci
|
||||
Smelting.SubSkill.SecondSmelt.Name=Seconda Fusione
|
||||
Smelting.SubSkill.SecondSmelt.Description=Raddoppia le risorse guadagnate con la fusione
|
||||
Smelting.Effect.4=Incremento XP Vanilla
|
||||
Smelting.Effect.5=Aumenta i normali XP ottenuti fondendo
|
||||
Smelting.SubSkill.FluxMining.Name=Estrazione Cuocente
|
||||
Smelting.SubSkill.FluxMining.Description=Probabilit\u00E0 che i minerali siano fusi istantaneamente mentre li si estrae
|
||||
Smelting.Listener=Fusione:
|
||||
Smelting.SkillName=FUSIONE
|
||||
#COMMAND DESCRIPTIONS
|
||||
Commands.Description.addlevels=Aggiungi XP di mcMMO a un utente
|
||||
Commands.Description.adminchat=Attiva o disattiva la chat amministratori di mcMMO o invia messaggi in chat amministratori
|
||||
Commands.Description.addxp=Aggiunge XP mcMMO a un utente
|
||||
Commands.Description.hardcore=Modifica la percentuale hardcore di mcMMO o attiva/disattiva la modalit\u00E0 hardcore
|
||||
Commands.Description.inspect=Visualizza dettagliate informazioni mcMMO su un altro giocatore
|
||||
Commands.Description.mcability=Attiva o disattiva il fatto che le capacit\u00E0 mcMMO vengano preparate con un clic destro.
|
||||
Commands.Description.mccooldown=Vedi tutto sulle ricariche delle abilit\u00E0 mcMMO
|
||||
Commands.Description.mcgod=Attiva o Disattiva la modalit\u00E0 dio mcMMO
|
||||
Commands.Description.mchud=Cambia il tuo stile di HUD di mcMMO
|
||||
Commands.Description.mcmmo=Mostra una breve descrizione di mcMMO
|
||||
Commands.Description.mcnotify=Attiva o disattiva la visualizzazione delle notifiche delle capacit\u00E0 di mcMMO in chat
|
||||
Commands.Description.mcpurge=Elimina dal database mcMMO gli utenti senza livelli mcMMO e quelli che non si sono connessi negli ultimi {0} mesi.
|
||||
Commands.Description.mcrank=Mostra la graduatoria mcMMO di un giocatore
|
||||
Commands.Description.mcrefresh=Rigenera tutte le ricariche di mcMMO
|
||||
Commands.Description.mcremove=Rimuovi un utente dal database mcMMO
|
||||
Commands.Description.mcscoreboard=Gestisci la tua Scoreboard mcMMO
|
||||
Commands.Description.mcstats=Mostra i tuoi livelli e XP mcMMO
|
||||
Commands.Description.mctop=Mostra le classifiche mcMMO
|
||||
Commands.Description.mmoedit=Modifica i livelli mcMMO di un utente
|
||||
Commands.Description.mmoupdate=Migra un database mcMMO da un database vecchio a quello attuale
|
||||
Commands.Description.mcconvert=Converte tipi di database oppure tipi di formule esperienza
|
||||
Commands.Description.mmoshowdb=Mostra il nome dell'attuale tipo di database (per uso successivo con /mmoupdate)
|
||||
Commands.Description.party=Controlla varie impostazioni del gruppo mcMMO
|
||||
Commands.Description.partychat=Attiva o disattiva la chat del gruppo mcMMO o invia un messaggio in chat gruppo
|
||||
Commands.Description.ptp=Teletrasportati da un membro del gruppo mcMMO
|
||||
Commands.Description.Skill=Visualizza informazioni dettagliate sull'abilit\u00E0 mcMMO {0}
|
||||
Commands.Description.skillreset=Azzera i livelli mcMMO di un utente
|
||||
Commands.Description.vampirism=Modify the mcMMO vampirism percentage or toggle vampirism mode on/off
|
||||
Commands.Description.xplock=Blocca la tua barra XP di mcMMO su una specifica abilit\u00E0 di mcMMO
|
||||
Commands.Description.xprate=Modifica il tasso XP di mcMMO o d\u00E0 inizio a un evento XP mcMMO.
|
||||
#UPDATE CHECKER
|
||||
UpdateChecker.Outdated=Stai usando una versione non aggiornata di mcMMO!
|
||||
UpdateChecker.NewAvailable=\u00C8 disponibile una nuova versione su BukkitDev.
|
||||
#SCOREBOARD HEADERS
|
||||
Scoreboard.Header.PlayerStats=Statistiche mcMMO
|
||||
Scoreboard.Header.PlayerCooldowns=Ricariche mcMMO
|
||||
Scoreboard.Header.PlayerRank=Graduatorie McMMO
|
||||
Scoreboard.Header.PlayerInspect=Statistiche mcMMO: {0}
|
||||
Scoreboard.Header.PowerLevel=Livello di Potere
|
||||
Scoreboard.Misc.PowerLevel=[[GOLD]]Livello di Potere
|
||||
Scoreboard.Misc.Level=[[DARK_AQUA]]Livello
|
||||
Scoreboard.Misc.CurrentXP=[[GREEN]]XP attuali
|
||||
Scoreboard.Misc.RemainingXP=XP restanti
|
||||
Scoreboard.Misc.Cooldown=[[LIGHT_PURPLE]]Ricarica
|
||||
Scoreboard.Misc.Overall=[[GOLD]]Complessivo
|
||||
Scoreboard.Misc.Ability=Capacit\u00E0
|
||||
#DATABASE RECOVERY
|
||||
Profile.Loading.Success=[[GREEN]]Il tuo profilo mcMMO \u00E8 stato caricato.
|
||||
Profile.Loading.Failure=mcMMO non pu\u00F2 ancora caricare i tuoi dati. Si consiglia di [[AQUA]]contattare il proprietario del server.\n[[YELLOW]]Puoi ancora giocare sul server, ma non avrai [[BOLD]]livelli mcMMO[[YELLOW]] e gli XP che otterrai [[BOLD]]non verranno salvati[[YELLOW]].
|
||||
Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]] mcMMO non \u00E8 stato in grado di caricare i dati del giocatore [[YELLOW]]{0}[[RED]]. [[LIGHT_PURPLE]]Si prega di controllare la configurazione del database.
|
||||
Binary file not shown.
@@ -1,920 +0,0 @@
|
||||
# korean locale file v2.0
|
||||
# -----------------
|
||||
# Setting up a new standard for string names, for easier localization.
|
||||
# SkillName.SubType.LocalEffect.Increment
|
||||
# Skill name, such as ACROBATICS, MINING.
|
||||
# Sub-type, such as EFFECT, ABILITY, COMBAT.
|
||||
# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE.
|
||||
# Increment, for multi-line or array-like lists.
|
||||
# ######
|
||||
#
|
||||
# EXAMPLES:
|
||||
#
|
||||
# Acrobatics.Ability.Proc
|
||||
# Axes.Ability.Refresh.1
|
||||
#
|
||||
# --wolfwork
|
||||
#ACROBATICS
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**\uC6B0\uC544\uD55C \uAD6C\uB974\uAE30**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**\uD68C\uD53C**
|
||||
Acrobatics.DodgeChance=\uD68C\uD53C \uD655\uB960: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=\uAD6C\uB974\uAE30
|
||||
Acrobatics.SubSkill.Roll.Description=\uCD94\uB77D \uB370\uBBF8\uC9C0 \uAC10\uC18C \uB610\uB294 \uBB34\uD6A8
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=\uC6B0\uC544\uD55C \uAD6C\uB974\uAE30
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=\uAD6C\uB974\uAE30 2\uBC30 \uD6A8\uACFC
|
||||
Acrobatics.SubSkill.Dodge.Name=\uD68C\uD53C
|
||||
Acrobatics.SubSkill.Dodge.Description=\uB099\uD558 \uB370\uBBF8\uC9C0 \uC808\uBC18 \uAC10\uC18C
|
||||
Acrobatics.Listener=\uACE1\uC608(ACROBATICS):
|
||||
Acrobatics.SubSkill.Roll.Chance=\uAD6C\uB974\uAE30 \uD655\uB960: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=\uC6B0\uC544\uD55C \uAD6C\uB974\uAE30 \uD655\uB960: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**\uAD6C\uB974\uAE30**
|
||||
Acrobatics.SkillName=\uACE1\uC608
|
||||
Acrobatics.Skillup=\uB099\uBC95 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#ALCHEMY
|
||||
Alchemy.SubSkill.Catalysis.Name=\uCD09\uB9E4
|
||||
Alchemy.SubSkill.Catalysis.Description=\uD3EC\uC158 \uC591\uC870 \uC18D\uB3C4 \uC99D\uAC00
|
||||
Alchemy.SubSkill.Concoctions.Name=\uD63C\uD569
|
||||
Alchemy.SubSkill.Concoctions.Description=\uB354 \uB9CE\uC740 \uC131\uBD84\uC758 \uD3EC\uC158 \uC591\uC870
|
||||
Alchemy.Listener=\uC5F0\uAE08\uC220(ALCHEMY):
|
||||
Alchemy.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uAE30\uC220\uD574\uC81C (\uCD09\uB9E4)
|
||||
Alchemy.Catalysis.Speed=\uC591\uC870 \uC18D\uB3C4: [[YELLOW]]{0}
|
||||
Alchemy.Concoctions.Rank=\uD63C\uD569 \uB7AD\uD06C: [[YELLOW]]{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=\uC131\uBD84 [[[YELLOW]]{0}[[RED]]]: [[YELLOW]]{1}
|
||||
Alchemy.SkillName=\uC5F0\uAE08\uC220
|
||||
Alchemy.Skillup=\uC5F0\uAE08\uC220 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#ARCHERY
|
||||
Archery.Combat.DazeChance=\uD604\uD639 \uD655\uB960: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=\uD654\uC0B4 \uD68C\uC218 \uD655\uB960: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=\uC3D8\uAE30 \uC19C\uC528 \uCD94\uAC00 \uD53C\uD574 \uD655\uB960: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=\uC3D8\uAE30 \uC19C\uC528
|
||||
Archery.SubSkill.SkillShot.Description=\uD65C \uD53C\uD574 \uC601\uAD6C \uC99D\uAC00
|
||||
Archery.SubSkill.Daze.Name=\uD604\uD639 (\uD50C\uB808\uC774\uC5B4)
|
||||
Archery.SubSkill.Daze.Description=\uC801\uC5D0\uAC8C \uD63C\uB780, {0} \uD53C\uD574 \uCD94\uAC00
|
||||
Archery.SubSkill.ArrowRetrieval.Name=\uD654\uC0B4 \uD68C\uC218
|
||||
Archery.SubSkill.ArrowRetrieval.Description=\uC2DC\uCCB4\uC5D0\uC11C \uD654\uC0B4 \uD68C\uC218 \uD655\uB960 \uC99D\uAC00
|
||||
Archery.Listener=\uAD81\uC220(ARCHERY):
|
||||
Archery.SkillName=\uAD81\uC220
|
||||
Archery.Skillup=\uAD81\uC220 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#AXES
|
||||
Axes.Ability.Bonus.0=\uB3C4\uB07C \uB9C8\uC2A4\uD130\uB9AC
|
||||
Axes.Ability.Bonus.1={0} \uCD94\uAC00 \uD53C\uD574
|
||||
Axes.Ability.Bonus.2=\uAC11\uC637 \uCDA9\uACA9
|
||||
Axes.Ability.Bonus.3=\uBC29\uC5B4\uAD6C \uCD94\uAC00 \uD53C\uD574: {0}
|
||||
Axes.Ability.Bonus.4=\uC5C4\uCCAD\uB09C \uCDA9\uACA9
|
||||
Axes.Ability.Bonus.5=\uBE44\uBB34\uC7A5 \uCD94\uAC00 \uD53C\uD574: {0}
|
||||
Axes.Ability.Lower=[[GRAY]]**\uB3C4\uB07C \uC900\uBE44 \uD574\uC81C**
|
||||
Axes.Ability.Ready=[[GREEN]]**\uB3C4\uB07C \uC900\uBE44 \uC644\uB8CC**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]\uD06C\uB9AC\uD2F0\uCEEC \uD788\uD2B8\uC5D0 \uB9DE\uC558\uC2B5\uB2C8\uB2E4!
|
||||
Axes.Combat.CritChance=\uD06C\uB9AC\uD2F0\uCEEC \uD788\uD2B8 \uD655\uB960: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=\uD06C\uB9AC\uD2F0\uCEEC \uD788\uD2B8!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**\uCD5C\uACE0\uC758 \uAC15\uD0C0\uB97C \uB54C\uB838\uC2B5\uB2C8\uB2E4**
|
||||
Axes.Combat.GI.Struck=**\uC5C4\uCCAD\uB09C \uCDA9\uACA9\uC744 \uBC1B\uC558\uC2B5\uB2C8\uB2E4**
|
||||
Axes.Combat.SS.Struck=[[DARK_RED]]\uBF08 \uCABC\uAC1C\uAE30\uC5D0 \uB9DE\uC558\uC2B5\uB2C8\uB2E4!
|
||||
Axes.Combat.SS.Length=\uBF08 \uCABC\uAC1C\uAE30 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
Axes.SubSkill.SkullSplitter.Name=\uBF08 \uCABC\uAC1C\uAE30 (\uB2A5\uB825)
|
||||
Axes.SubSkill.SkullSplitter.Description=\uAD11\uC5ED \uCD94\uAC00 \uD53C\uD574
|
||||
Axes.SubSkill.CriticalStrikes.Name=\uD06C\uB9AC\uD2F0\uCEEC \uC2A4\uD2B8\uB77C\uC774\uD06C
|
||||
Axes.SubSkill.CriticalStrikes.Description=\uD53C\uD574 2\uBC30
|
||||
Axes.SubSkill.AxeMastery.Name=\uB3C4\uB07C \uB9C8\uC2A4\uD130\uB9AC
|
||||
Axes.SubSkill.AxeMastery.Description=\uCD94\uAC00 \uD2B9\uD61C \uD53C\uD574
|
||||
Axes.SubSkill.ArmorImpact.Name=\uAC11\uC637 \uCDA9\uACA9
|
||||
Axes.SubSkill.ArmorImpact.Description=\uAC11\uC637 \uD30C\uAD34 \uACF5\uACA9
|
||||
Axes.SubSkill.GreaterImpact.Name=\uC5C4\uCCAD\uB09C \uCDA9\uACA9
|
||||
Axes.SubSkill.GreaterImpact.Description=\uBE44\uBB34\uC7A5 \uCD94\uAC00 \uD53C\uD574
|
||||
Axes.Listener=\uBD80\uC220(AXES):
|
||||
Axes.SkillName=\uBD80\uC220
|
||||
Axes.Skills.SS.Off=**\uBF08 \uCABC\uAC1C\uAE30 \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\uBF08 \uCABC\uAC1C\uAE30 \uBC1C\uB3D9**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uBF08 \uCABC\uAC1C\uAE30 [[GREEN]]\uAE30\uC220\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Axes.Skills.SS.Other.Off={0}\uB2D8\uC774 [[RED]]\uBF08 \uCABC\uAC1C\uAE30\uB97C[[GREEN]] \uC900\uBE44 \uD574\uC81C\uD588\uC2B5\uB2C8\uB2E4
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC774 [[RED]]\uBF08 \uCABC\uAC1C\uAE30\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Axes.Skillup=\uBD80\uC220 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D ({1}) \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#EXCAVATION
|
||||
Excavation.Ability.Lower=[[GRAY]]**\uC0BD \uC900\uBE44 \uD574\uC81C**
|
||||
Excavation.Ability.Ready=[[GREEN]]**\uC0BD \uC900\uBE44 \uC644\uB8CC**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4 (\uB2A5\uB825)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=\uB4DC\uB86D \uC18D\uB3C4 3\uBC30, \uACBD\uD5D8\uCE58 3\uBC30, \uC18D\uB3C4 \uC99D\uAC00
|
||||
Excavation.SubSkill.TreasureHunter.Name=\uBCF4\uBB3C \uC0AC\uB0E5\uAFBC
|
||||
Excavation.SubSkill.TreasureHunter.Description=\uBCF4\uBB3C \uBC1C\uAD74 \uB2A5\uB825
|
||||
Excavation.Effect.Length=\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
Excavation.Listener=\uBC1C\uAD74(EXCAVATION):
|
||||
Excavation.SkillName=\uBC1C\uAD74
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4 \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4 \uBC1C\uB3D9**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4 [[GREEN]]\uAE30\uC220\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uAE30\uAC00 \uB4DC\uB9B4 \uBC84\uC11C\uCEE4\uB97C \uC0AC\uC6A9 \uD588\uC2B5\uB2C8\uB2E4!
|
||||
Excavation.Skillup=\uBC1C\uAD74 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#FISHING
|
||||
Fishing.Ability.Chance=\uC785\uC9C8 \uD655\uB960: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=\uB9E4\uC9C1 \uD5CC\uD130: [[GRAY]] **\uD2B8\uB808\uC838 \uD5CC\uD130 \uB7AD\uD06C \uD5A5\uC0C1**
|
||||
Fishing.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uD754\uB4E4\uAE30)
|
||||
Fishing.Ability.Locked.1={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uC5BC\uC74C \uB09A\uC2DC)
|
||||
Fishing.Ability.Locked.2={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uB09A\uC2DC\uAFBC \uC7A5\uC778)
|
||||
Fishing.Ability.Rank=\uD2B8\uB808\uC838 \uD5CC\uD130 \uB7AD\uD06C: [[YELLOW]]{0}/5\uB7AD\uD06C
|
||||
Fishing.Ability.TH.DropRate=\uB4DC\uB86D \uBE44\uC728: [[DARK_RED]]\uD568\uC815: [[YELLOW]]{0} [[GRAY]]\uACF5\uD1B5: [[YELLOW]]{1} [[GREEN]]\uBE44\uACF5\uD1B5: [[YELLOW]]{2}\n[[BLUE]]\uB808\uC5B4: [[YELLOW]]{3} [[LIGHT_PURPLE]]\uC5D0\uD53D: [[YELLOW]]{4} [[GOLD]]\uB808\uC804\uB4DC\uB9AC: [[YELLOW]]{5} [[AQUA]]\uB808\uCF54\uB4DC: [[YELLOW]]{6}
|
||||
Fishing.Ability.TH.MagicRate=\uB9E4\uC9C1 \uD5CC\uD130 \uD655\uB960: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=\uD754\uB4E4\uAE30 \uD655\uB960: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=\uC5BC\uC74C \uB09A\uC2DC: \uC5BC\uC74C\uC5D0\uC11C \uB09A\uC2DC
|
||||
Fishing.Ability.FD=\uC5B4\uBD80\uC758 \uB2E4\uC774\uC5B4\uD2B8 \uB7AD\uD06C: [[YELLOW]]{0}\uB7AD\uD06C
|
||||
Fishing.SubSkill.TreasureHunter.Name=\uD2B8\uB808\uC838 \uD5CC\uD130 (\uD328\uC2DC\uBE0C)
|
||||
Fishing.SubSkill.TreasureHunter.Description=\uBB3C\uAC74(\uADF8\uC678) \uB09A\uC2DC
|
||||
Fishing.SubSkill.MagicHunter.Name=\uB9E4\uC9C1 \uD5CC\uD130
|
||||
Fishing.SubSkill.MagicHunter.Description=\uC778\uCC48\uD2B8 \uC544\uC774\uD15C \uBC1C\uACAC
|
||||
Fishing.SubSkill.Shake.Name=\uD754\uB4E4\uAE30 (vs. \uB3C5\uB9BD\uCCB4)
|
||||
Fishing.SubSkill.Shake.Description=\uC544\uC774\uD15C\uC744 \uBAB9\uC774\uB098 \uB09A\uC2DC\uC5D0\uC11C \uC5BB\uC74C
|
||||
Fishing.SubSkill.FishermansDiet.Name=\uC5B4\uBD80\uC758 \uB2E4\uC774\uC5B4\uD2B8
|
||||
Fishing.SubSkill.FishermansDiet.Description=\uC5B4\uB958 \uC74C\uC2DD \uD5C8\uAE30 \uD68C\uBCF5 \uC99D\uAC00
|
||||
Fishing.SubSkill.MasterAngler.Name=\uB09A\uC2DC\uAFBC \uC7A5\uC778
|
||||
Fishing.SubSkill.MasterAngler.Description=\uB09A\uC2DC\uC911 \uC785\uC9C8 \uD655\uB960 \uC99D\uAC00
|
||||
Fishing.SubSkill.IceFishing.Name=\uC5BC\uC74C \uB09A\uC2DC
|
||||
Fishing.SubSkill.IceFishing.Description=\uC5BC\uC74C\uC774 \uB36E\uD600\uC788\uB294 \uD658\uACBD\uC5D0\uC11C \uB09A\uC2DC \uAC00\uB2A5
|
||||
Fishing.Chance.Raining=[[BLUE]] \uBE44 \uD2B9\uD61C
|
||||
Fishing.Listener=\uB09A\uC2DC(FISHING):
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]\uC774 \uC785\uC9C8\uC5D0\uC11C \uB9C8\uBC95\uC774 \uB290\uAEF4\uC9D1\uB2C8\uB2E4...
|
||||
Fishing.Ability.TH.Boom=[[GRAY]]\uD3ED\uBC1C \uC2DC\uAC04!!!
|
||||
Fishing.Ability.TH.Poison=[[GRAY]]\uB08C\uC0C8\uAC00 \uC88B\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4...
|
||||
Fishing.SkillName=\uB09A\uC2DC
|
||||
Fishing.Skillup=\uB09A\uC2DC \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#HERBALISM
|
||||
Herbalism.Ability.DoubleDropChance=2\uBC30 \uB4DC\uB86D \uD655\uB960: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=\uB18D\uBD80\uC758 \uB2E4\uC774\uC5B4\uD2B8: [[YELLOW]]{0}\uB7AD\uD06C
|
||||
Herbalism.Ability.GTe.Length=\uC7AC\uBC30\uC758 \uB300\uC9C0 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
Herbalism.Ability.GTe.NeedMore=\uC7AC\uBC30\uC758 \uB300\uC9C0\uC5D0 \uBFCC\uB9B4 \uC528\uAC00 \uC880\uB354 \uD544\uC694\uD569\uB2C8\uB2E4.
|
||||
Herbalism.Ability.GTh.Chance=\uC7AC\uBC30\uC758 \uC7AC\uB2A5 \uD655\uB960: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**\uC7AC\uBC30\uC758 \uC7AC\uB2A5 \uC2E4\uD328**
|
||||
Herbalism.Ability.GTh.Stage=\uC7AC\uBC30\uC758 \uC7AC\uB2A5 \uB2E8\uACC4: [[YELLOW]] \uC791\uBB3C \uC7AC\uBC30 {0}\uB2E8\uACC4
|
||||
Herbalism.Ability.GTh=[[GREEN]]**\uC7AC\uBC30\uC758 \uC7AC\uB2A5**
|
||||
Herbalism.Ability.HylianLuck=\uD558\uC77C\uB9AC\uC548\uC758 \uD589\uC6B4 \uD655\uB960: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**\uD638\uBBF8 \uC900\uBE44 \uD574\uC81C**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**\uD638\uBBF8 \uC900\uBE44 \uC644\uB8CC**
|
||||
Herbalism.Ability.ShroomThumb.Chance=\uBC84\uC12F\uC7AC\uBC30\uC790\uC758 \uC228\uACB0 \uD655\uB960: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**\uBC84\uC12F\uC7AC\uBC30\uC790\uC758 \uC228\uACB0 \uC2E4\uD328**
|
||||
Herbalism.SubSkill.GreenTerra.Name=\uC7AC\uBC30\uC758 \uB300\uC9C0 (\uB2A5\uB825)
|
||||
Herbalism.SubSkill.GreenTerra.Description=\uB300\uC9C0 \uBFCC\uB9AC\uAE30, \uB4DC\uB86D 3\uBC30
|
||||
Herbalism.SubSkill.GreenThumb.Name=\uC7AC\uBC30\uC758 \uC7AC\uB2A5 (\uBC00)
|
||||
Herbalism.SubSkill.GreenThumb.Description=\uC218\uD655\uC2DC \uC790\uB3D9 \uC528 \uC2EC\uAE30
|
||||
Herbalism.Effect.4=\uC7AC\uBC30\uC758 \uC7AC\uB2A5 (\uBE14\uB85D\uB4E4)
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=\uC774\uB07C\uB080 \uBE14\uB85D \uB9CC\uB4E4\uAE30, \uC794\uB514 \uC790\uB77C\uAC8C\uD558\uAE30
|
||||
Herbalism.SubSkill.FarmersDiet.Name=\uB18D\uBD80\uC758 \uB2E4\uC774\uC5B4\uD2B8
|
||||
Herbalism.SubSkill.FarmersDiet.Description=\uB18D\uC791\uBB3C \uBC30\uACE0\uD488 \uD68C\uBCF5 \uD5A5\uC0C1
|
||||
Herbalism.SubSkill.DoubleDrops.Name=2\uBC30 \uB4DC\uB86D (\uBAA8\uB4E0 \uC791\uBB3C)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=\uD56D\uC0C1 \uB4DC\uB86D 2\uBC30
|
||||
Herbalism.SubSkill.HylianLuck.Name=\uD558\uC77C\uB9AC\uC548\uC758 \uD589\uC6B4
|
||||
Herbalism.SubSkill.HylianLuck.Description=\uC801\uC740 \uD655\uB960\uB85C \uB808\uC5B4\uC544\uC774\uD15C \uC5BB\uC74C
|
||||
Herbalism.SubSkill.ShroomThumb.Name=\uBC84\uC12F\uC7AC\uBC30\uC790\uC758 \uC228\uACB0
|
||||
Herbalism.SubSkill.ShroomThumb.Description=\uD759 & \uC794\uB514\uC5D0 \uADE0\uC0AC\uCCB4 \uC0B4\uD3EC
|
||||
Herbalism.HylianLuck=[[GREEN]]\uD558\uC774\uB784\uC758 \uD589\uC6B4\uC774 \uC624\uB298 \uB108\uC5D0\uAC8C \uB530\uB974\uB294\uAD6C\uB098!
|
||||
Herbalism.Listener=\uC57D\uCD08\uD559(HERBALISM):
|
||||
Herbalism.SkillName=\uC57D\uCD08\uD559
|
||||
Herbalism.Skills.GTe.Off=**\uC7AC\uBC30\uC758 \uB300\uC9C0 \uBE44\uD65C\uC131\uD654\uB428**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**\uC7AC\uBC30\uC758 \uB300\uC9C0 \uD65C\uC131\uD654\uB428**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uC7AC\uBC30\uC758 \uB300\uC9C0 [[GREEN]]\uAE30\uC220\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Herbalism.Skills.GTe.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uC7AC\uBC30\uC758 \uB300\uC9C0\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uC7AC\uBC30\uC758 \uB300\uC9C0\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Herbalism.Skillup=\uC57D\uCD08\uD559 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#MINING
|
||||
Mining.Ability.Length=\uD30C\uAD34\uC790 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uD3ED\uBC1C \uCC44\uAD74)
|
||||
Mining.Ability.Locked.1={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uAC70\uB300 \uD3ED\uBC1C)
|
||||
Mining.Ability.Locked.2={0}\uB808\uBCA8 \uB54C \uAE30\uC220 \uD574\uC81C (\uC804\uBB38 \uD3ED\uD30C)
|
||||
Mining.Ability.Lower=[[GRAY]]**\uACE1\uAD2D\uC774 \uC900\uBE44 \uD574\uC81C**
|
||||
Mining.Ability.Ready=[[GREEN]]**\uACE1\uAD2D\uC774 \uC900\uBE44 \uC644\uB8CC**
|
||||
Mining.SubSkill.SuperBreaker.Name=\uD30C\uAD34\uC790 (\uB2A5\uB825)
|
||||
Mining.SubSkill.SuperBreaker.Description=\uC18D\uB3C4 \uD5A5\uC0C1, \uB4DC\uB86D \uD655\uB960 3\uBC30
|
||||
Mining.SubSkill.DoubleDrops.Name=\uB4DC\uB86D 2\uBC30
|
||||
Mining.SubSkill.DoubleDrops.Description=\uD56D\uC0C1 \uB4DC\uB86D 2\uBC30
|
||||
Mining.SubSkill.BlastMining.Name=\uD3ED\uBC1C \uCC44\uAD74
|
||||
Mining.SubSkill.BlastMining.Description=TNT\uB85C \uCC44\uAD74\uC2DC \uCD94\uAC00 \uAD11\uBB3C
|
||||
Mining.SubSkill.BiggerBombs.Name=\uAC70\uB300 \uD3ED\uBC1C
|
||||
Mining.SubSkill.BiggerBombs.Description=TNT \uD3ED\uBC1C\uAC70\uB9AC \uC99D\uAC00
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=\uC804\uBB38 \uD3ED\uD30C
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=TNT \uD3ED\uBC1C \uD53C\uD574 \uAC10\uC18C
|
||||
Mining.Effect.Decrease=\uC804\uBB38 \uD3ED\uD30C \uD53C\uD574 \uAC10\uC18C: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=\uB4DC\uB86D 2\uBC30 \uD655\uB960: [[YELLOW]]{0}
|
||||
Mining.Listener=\uCC44\uAD11(MINING):
|
||||
Mining.SkillName=\uCC44\uAD11
|
||||
Mining.Skills.SuperBreaker.Off=**\uD30C\uAD34\uC790 \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**\uD30C\uAD34\uC790 \uBC1C\uB3D9**
|
||||
Mining.Skills.SuperBreaker.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uD30C\uAD34\uC790\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uD30C\uAD34\uC790\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uD30C\uAD34\uC790\uB294 [[GREEN]]\uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Mining.Skillup=\uCC44\uAD11 \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#Blast Mining
|
||||
Mining.Blast.Boom=[[GRAY]]**\uD3ED\uBC1C**
|
||||
Mining.Blast.Effect=+{0} \uAD11\uBB3C \uC774\uC775, -{1} \uD30C\uD3B8 \uC0B0\uCD9C, {2}x \uB4DC\uB86D
|
||||
Mining.Blast.Radius.Increase=\uD3ED\uBC1C \uBC18\uACBD \uC99D\uAC00: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=\uD3ED\uBC1C \uCC44\uAD74: [[YELLOW]]{0}/8\uB7AD\uD06C [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uD3ED\uBC1C \uCC44\uAD74\uC744 \uC0AC\uC6A9\uD558\uC168\uC2B5\uB2C8\uB2E4!
|
||||
Mining.Blast.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uD3ED\uBC1C \uCC44\uAD74 [[GREEN]]\uAE30\uC220\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
#REPAIR
|
||||
Repair.SubSkill.Repair.Name=\uC218\uB9AC
|
||||
Repair.SubSkill.Repair.Description=\uB3C4\uAD6C & \uBC29\uC5B4\uAD6C \uC218\uB9AC
|
||||
Repair.SubSkill.GoldRepair.Name=\uAE08 \uC218\uB9AC ({0}\uB808\uBCA8 \uC774\uC0C1)
|
||||
Repair.SubSkill.GoldRepair.Description=\uAE08 \uB3C4\uAD6C & \uBC29\uC5B4\uAD6C \uC218\uB9AC
|
||||
Repair.SubSkill.IronRepair.Name=\uCCA0 \uC218\uB9AC ({0}\uB808\uBCA8 \uC774\uC0C1)
|
||||
Repair.SubSkill.IronRepair.Description=\uCCA0 \uB3C4\uAD6C & \uBC29\uC5B4\uAD6C \uC218\uB9AC
|
||||
Repair.SubSkill.StoneRepair.Name=\uB3CC \uC218\uB9AC ({0}\uB808\uBCA8 \uC774\uC0C1)
|
||||
Repair.SubSkill.StoneRepair.Description=\uB3CC \uB3C4\uAD6C \uC218\uB9AC
|
||||
Repair.SubSkill.RepairMastery.Name=\uC218\uB9AC \uB9C8\uC2A4\uD130\uB9AC
|
||||
Repair.SubSkill.RepairMastery.Description=\uC218\uB9AC \uC591 \uC99D\uAC00
|
||||
Repair.SubSkill.SuperRepair.Name=\uC288\uD37C \uC218\uB9AC
|
||||
Repair.SubSkill.SuperRepair.Description=\uD6A8\uC728 2\uBC30
|
||||
Repair.SubSkill.DiamondRepair.Name=\uB2E4\uC774\uC544\uBAAC\uB4DC \uC218\uB9AC ({0} \uB808\uBCA8)
|
||||
Repair.SubSkill.DiamondRepair.Description=\uB2E4\uC774\uC544\uBAAC\uB4DC \uB3C4\uAD6C & \uBC29\uC5B4\uAD6C \uC218\uB9AC
|
||||
Repair.SubSkill.ArcaneForging.Name=\uC778\uCC48\uD2B8 \uC544\uC774\uD15C \uC218\uB9AC
|
||||
Repair.SubSkill.ArcaneForging.Description=\uB9C8\uBC95 \uC544\uC774\uD15C \uC218\uB9AC
|
||||
Repair.Error=[[DARK_RED]]mcMMO\uC774 \uC544\uC774\uD15C\uC744 \uC218\uB9AC\uD558\uB824\uACE0 \uC2DC\uB3C4\uD558\uB294 \uB3D9\uC548 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uBAA8\uB8E8\uB97C \uB193\uC558\uC2B5\uB2C8\uB2E4, \uBAA8\uB8E8\uB294 \uB3C4\uAD6C\uB4E4\uACFC \uBC29\uC5B4\uAD6C\uB97C \uC218\uB9AC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Listener=\uC218\uB9AC(REPAIR):
|
||||
Repair.SkillName=\uC218\uB9AC
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uC544\uC9C1 \uB2E4\uC774\uC544\uBAAC\uB4DC\uB97C \uC218\uB9AC\uD560 \uC218 \uC788\uB294 \uAE30\uC220\uC744 \uBC30\uC6B0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uC544\uC9C1 \uAE08\uC744 \uC218\uB9AC\uD560 \uC218 \uC788\uB294 \uAE30\uC220\uC744 \uBC30\uC6B0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uC544\uC9C1 \uCCA0\uC744 \uC218\uB9AC\uD560 \uC218 \uC788\uB294 \uAE30\uC220\uC744 \uBC30\uC6B0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uC544\uC9C1 \uB3CC\uC744 \uC218\uB9AC\uD560 \uC218 \uC788\uB294 \uAE30\uC220\uC744 \uBC30\uC6B0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.Adept=\uB2F9\uC2E0\uC740 [[YELLOW]]{1}\uC744/\uB97C \uC218\uB9AC\uD560\uB824\uBA74 [[YELLOW]]{0}[[RED]]\uB808\uBCA8\uC774 \uD544\uC694\uD569\uB2C8\uB2E4
|
||||
Repair.Skills.FeltEasy=[[GRAY]]\uC26C\uC6B4 \uB290\uB08C~
|
||||
Repair.Skills.FullDurability=[[GRAY]]\uB0B4\uAD6C\uB3C4\uAC00 \uAF49 \uCC3C\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.Mastery=\uC218\uB9AC \uB9C8\uC2A4\uD130\uB9AC: [[YELLOW]]\uCD94\uAC00 \uB0B4\uAD6C\uC131 \uBCF5\uAD6C: {0}
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]\uD55C\uBC88\uC5D0 \uB9CE\uC740 \uC544\uC774\uD15C\uC744 \uC218\uB9AC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Skills.Super.Chance=\uC288\uD37C \uC218\uB9AC \uD655\uB960: [[YELLOW]]{0}
|
||||
Repair.Skillup=\uC218\uB9AC \uAE30\uC220\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Repair.Pretty.Name=\uC218\uB9AC
|
||||
#Arcane Forging
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]\uC778\uCC48\uD2B8 \uC218\uB9AC \uACA9\uD558 \uD655\uB960: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]\uC778\uCC48\uD2B8 \uC218\uB9AC \uC131\uACF5 \uD655\uB960: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=\uC774 \uC544\uC774\uD15C\uC758 \uC778\uCC48\uD2B8\uB294 \uAC10\uC18C\uD588\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Arcane.Fail=\uC774 \uC544\uC774\uD15C\uC758 \uC778\uCC48\uD2B8\uB294 \uC601\uAD6C\uC801\uC73C\uB85C \uC18C\uBA78\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Arcane.Lost=\uB2F9\uC2E0\uC740 \uBAA8\uB4E0 \uC778\uCC48\uD2B8\uB97C \uC720\uC9C0\uD560 \uAE30\uC220\uC774 \uCDA9\uBD84\uCE58 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Arcane.Perfect=[[GREEN]]\uC774 \uC544\uC774\uD15C\uC758 \uC778\uCC48\uD2B8\uB97C \uC9C0\uC18D\uC2DC\uCF30\uC2B5\uB2C8\uB2E4.
|
||||
Repair.Arcane.Rank=\uC778\uCC48\uD2B8 \uC218\uB9AC: [[YELLOW]]{0}/{1}\uB7AD\uD06C
|
||||
#SALVAGE
|
||||
Salvage.Pretty.Name=\uD68C\uC218
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=\uC804\uBB38\uC801\uC778 \uD68C\uC218
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=\uC190\uC0C1\uB41C \uC544\uC774\uD15C \uD68C\uC218
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=\uC2E0\uBE44\uB85C\uC6B4 \uD68C\uC218
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=\uC544\uC774\uD15C\uC758 \uC778\uCC48\uD2B8 \uCD94\uCD9C
|
||||
Salvage.Ability.Locked.0={0} \uB808\uBCA8 \uB54C \uAE30\uC220\uD574\uC81C (\uC804\uBB38\uC801\uC778 \uD68C\uC218)
|
||||
Salvage.Ability.Bonus.0=\uC804\uBB38\uC801\uC778 \uD68C\uC218
|
||||
Salvage.Ability.Bonus.1=\uBD80\uC154\uC9C4 \uC544\uC774\uD15C\uC758 \uCD5C\uB300 \uCD94\uCD9C\uB7C9 {0}
|
||||
Salvage.Arcane.Rank=\uC2E0\uBE44\uB85C\uC6B4 \uD68C\uC218: [[YELLOW]]Rank {0}/{1}
|
||||
Salvage.Arcane.ExtractFull=[[GRAY]]\uCD5C\uB300-\uC778\uCC48\uD2B8 \uAE30\uD68C \uBD80\uACFC
|
||||
Salvage.Arcane.ExtractPartial=[[GRAY]]\uC77C\uBD80-\uC778\uCC48\uD2B8 \uAE30\uD68C \uBD80\uACFC
|
||||
Salvage.Skills.Success=[[GREEN]]\uC544\uC774\uD15C \uD68C\uC218\uB428!
|
||||
Salvage.Skills.Adept.Damaged=[[DARK_RED]]\uC190\uC0C1\uB41C \uC544\uC774\uD15C\uC744 \uD68C\uC218\uD560 \uB2A5\uB825\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Salvage.Skills.Adept.Level={1}\uB97C [[RED]]\uD68C\uC218\uD558\uB824\uBA74 [[YELLOW]]{0}[[RED]] \uB808\uBCA8\uC774 \uB418\uC57C\uD569\uB2C8\uB2E4
|
||||
Salvage.Skills.TooDamaged=[[DARK_RED]]\uC774 \uC544\uC774\uD15C\uC740 \uC2EC\uD558\uAC8C \uC190\uC0C1\uB418\uC5B4 \uD68C\uC218\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Salvage.Skills.ArcaneFailed=\uB2F9\uC2E0\uC740 \uC774 \uC544\uC774\uD15C \uC18D\uC758 \uC9C0\uC2DD\uC744 \uCD94\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Salvage.Skills.ArcanePartial=\uB2F9\uC2E0\uC740 \uC774 \uC544\uC774\uD15C \uC18D\uC758 \uC9C0\uC2DD\uC758 \uC77C\uBD80\uB9CC \uCD94\uCD9C\uD560 \uC218 \uC788\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Salvage.Skills.ArcaneSuccess=[[GREEN]]\uB2F9\uC2E0\uC740 \uC774 \uC544\uC774\uD15C\uC758 \uBAA8\uB4E0 \uC9C0\uC2DD\uC744 \uCD94\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Salvage.Listener.Anvil=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uD68C\uC218 \uBAA8\uB8E8\uB97C \uB193\uC558\uC2B5\uB2C8\uB2E4, \uB3C4\uAD6C\uB098 \uBC29\uC5B4\uAD6C \uD68C\uC218\uC5D0 \uC4F0\uC785\uB2C8\uB2E4.
|
||||
Salvage.Listener=\uD68C\uC218(SALVAGE):
|
||||
Salvage.SkillName=\uD68C\uC218
|
||||
#SWORDS
|
||||
Swords.Ability.Lower=[[GRAY]]**\uAC80 \uC900\uBE44 \uD574\uC81C**
|
||||
Swords.Ability.Ready=[[GREEN]]**\uAC80 \uC900\uBE44 \uC644\uB8CC**
|
||||
Swords.Combat.Bleed.Chance=\uCD9C\uD608 \uD655\uB960: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=\uCD9C\uD608 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0} \uD2F1
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]\uC54C\uB9BC: [[YELLOW]]1 \uD2F1\uC740 2\uCD08\uC785\uB2C8\uB2E4
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] \uB2F9\uC2E0\uC740 \uD53C\uB97C \uD758\uB9AC\uACE0 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]\uCD9C\uD608\uC774 [[GREEN]]\uBA48\uCDC4\uC2B5\uB2C8\uB2E4[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**\uCD9C\uD608**
|
||||
Swords.Combat.Counter.Chance=\uCE74\uC6B4\uD130 \uC5B4\uD0DD \uD655\uB960: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]\uCE74\uC6B4\uD130 \uC5B4\uD0DD\uC5D0 \uB9DE\uC558\uC2B5\uB2C8\uB2E4!
|
||||
Swords.Combat.Countered=[[GREEN]]**\uCE74\uC6B4\uD130-\uC5B4\uD0DD**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]\uD1B1\uB0A0 \uACF5\uACA9\uC5D0 \uB9DE\uC558\uC2B5\uB2C8\uB2E4!
|
||||
Swords.SubSkill.CounterAttack.Name=\uCE74\uC6B4\uD130 \uC5B4\uD0DD
|
||||
Swords.SubSkill.CounterAttack.Description={0} \uD53C\uD574 \uBC18\uC0AC
|
||||
Swords.SubSkill.SerratedStrikes.Name=\uD1B1\uB0A0 \uACF5\uACA9 (\uB2A5\uB825)
|
||||
Swords.SubSkill.SerratedStrikes.Description=\uD53C\uD574 {0} \uC99D\uAC00, \uCD9C\uD608 \uC99D\uAC00
|
||||
Swords.Effect.4=\uD1B1\uB0A0 \uACF5\uACA9 \uCD9C\uD608 \uC99D\uAC00
|
||||
Swords.Effect.5={0} \uD2F1 \uCD9C\uD608
|
||||
Swords.SubSkill.Bleed.Name=\uCD9C\uD608
|
||||
Swords.SubSkill.Bleed.Description=\uACFC\uB2E4 \uCD9C\uD608
|
||||
Swords.Listener=\uAC80\uC220(SWORDS):
|
||||
Swords.SkillName=\uAC80\uC220
|
||||
Swords.Skills.SS.Off=**\uD1B1\uB0A0 \uACF5\uACA9 \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Swords.Skills.SS.On=[[GREEN]]**\uD1B1\uB0A0 \uACF5\uACA9 \uBC1C\uB3D9**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uD1B1\uB0A0 \uACF5\uACA9 [[GREEN]]\uC2A4\uD0AC\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Swords.Skills.SS.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uD1B1\uB0A0 \uACF5\uACA9 \uC2A4\uD0AC\uC744 \uC0AC\uC6A9 \uD574\uC81C\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uD1B1\uB0A0 \uACF5\uACA9 \uC2A4\uD0AC\uC744 \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Swords.Skillup=\uAC80\uC220 \uC2A4\uD0AC\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Swords.SS.Length=\uD1B1\uB0A0 \uACF5\uACA9 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
#TAMING
|
||||
Taming.Ability.Bonus.0=\uD658\uACBD \uC778\uC2DD
|
||||
Taming.Ability.Bonus.1=\uB291\uB300 \uC704\uD5D8 \uD68C\uD53C
|
||||
Taming.Ability.Bonus.2=\uB450\uAEBC\uC6B4 \uD138
|
||||
Taming.Ability.Bonus.3=1/{0} \uD53C\uD574, \uB0B4\uD654\uC131(\uBD88\uC800\uD56D\uB825)
|
||||
Taming.Ability.Bonus.4=\uCDA9\uACA9 \uC99D\uBA85
|
||||
Taming.Ability.Bonus.5=\uD56D\uC0C1 1/{0} \uD3ED\uBC1C \uD53C\uD574
|
||||
Taming.Ability.Bonus.6=\uB0A0\uCE74\uB85C\uC6B4 \uBC1C\uD1B1
|
||||
Taming.Ability.Bonus.7=+{0} \uD53C\uD574
|
||||
Taming.Ability.Bonus.8=\uBE60\uB978 \uC74C\uC2DD \uC81C\uACF5
|
||||
Taming.Ability.Bonus.9={0} \uD655\uB960\uB85C \uACF5\uACA9\uC2DC \uD68C\uBCF5
|
||||
Taming.Ability.Bonus.10=\uC2E0\uC131\uD55C \uC0AC\uB0E5\uAC1C
|
||||
Taming.Ability.Bonus.11=\uB9C8\uBC95\uC774\uB098 \uB3C5\uC73C\uB85C \uC778\uD55C \uC190\uC0C1 \uD68C\uBCF5
|
||||
Taming.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uD658\uACBD \uC778\uC2DD)
|
||||
Taming.Ability.Locked.1={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uB450\uAEBC\uC6B4 \uD138)
|
||||
Taming.Ability.Locked.2={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uCDA9\uACA9 \uC99D\uBA85)
|
||||
Taming.Ability.Locked.3={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uB0A0\uCE74\uB85C\uC6B4 \uBC1C\uD1B1)
|
||||
Taming.Ability.Locked.4={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uBE60\uB978 \uC74C\uC2DD \uC81C\uACF5)
|
||||
Taming.Ability.Locked.5={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uC2E0\uC131\uD55C \uC0AC\uB0E5\uAC1C)
|
||||
Taming.Combat.Chance.Gore=\uB3CC\uC9C4 \uD655\uB960: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=\uC9D0\uC2B9\uC758 \uD3EC\uD6A8
|
||||
Taming.SubSkill.BeastLore.Description=\uBF08\uB85C \uB291\uB300/\uC624\uC140\uB86F \uAC80\uC0AC
|
||||
Taming.SubSkill.ShockProof.Name=\uCDA9\uACA9 \uC99D\uBA85
|
||||
Taming.SubSkill.ShockProof.Description=\uD3ED\uBC1C \uD53C\uD574 \uC808\uAC10
|
||||
Taming.SubSkill.CallOfTheWild.Name=\uC9D0\uC2B9\uC758 \uD3EC\uD6A8
|
||||
Taming.SubSkill.CallOfTheWild.Description=\uC606\uC5D0 \uB3D9\uBB3C \uC18C\uD658
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW (\uC624\uC140\uB86F): \uCB48\uADF8\uB9AC\uBA74\uC11C \uBB3C\uACE0\uAE30\uB97C \uB4E4\uACE0 {0}\uBC88 \uC88C \uD074\uB9AD
|
||||
Taming.Effect.15=[[GRAY]]COTW (\uB291\uB300): \uCB48\uADF8\uB9AC\uBA74\uC11C \uBF08\uB97C \uB4E4\uACE0 {0}\uBC88 \uC88C \uD074\uB9AD
|
||||
Taming.SubSkill.Gore.Name0=[[GRAY]]COTW (\uB9D0): \uCB48\uADF8\uB9AC\uBA74\uC11C \uC0AC\uACFC\uB97C \uB4E4\uACE0 {0}\uBC88 \uC88C \uD074\uB9AD
|
||||
Taming.SubSkill.FastFoodService.Name=\uBE60\uB978 \uC74C\uC2DD \uC81C\uACF5
|
||||
Taming.SubSkill.FastFoodService.Description=\uACF5\uACA9\uC2DC \uCE58\uB8CC \uAE30\uD68C
|
||||
Taming.SubSkill.HolyHound.Name=\uC2E0\uC131\uD55C \uC0AC\uB0E5\uAC1C
|
||||
Taming.SubSkill.HolyHound.Description=\uB9C8\uBC95 & \uB3C5 \uD53C\uD574 \uCE58\uB8CC
|
||||
Taming.SubSkill.Gore.Name=\uB3CC\uC9C4
|
||||
Taming.SubSkill.Gore.Description=\uD06C\uB9AC\uD2F0\uCEEC \uC2A4\uD06C\uB77C\uC774\uD06C \uCD9C\uD608 \uC801\uC6A9
|
||||
Taming.SubSkill.SharpenedClaws.Name=\uB0A0\uCE74\uB85C\uC6B4 \uBC1C\uD1B1
|
||||
Taming.SubSkill.SharpenedClaws.Description=\uCD94\uAC00 \uD53C\uD574
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=\uD658\uACBD \uC778\uC2DD
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=\uC120\uC778\uC7A5/\uC6A9\uC554 \uACF5\uD3EC\uC99D, \uB099\uC0AC \uD53C\uD574 \uAC10\uC18C
|
||||
Taming.SubSkill.ThickFur.Name=\uB450\uAEBC\uC6B4 \uD138
|
||||
Taming.SubSkill.ThickFur.Description=\uD53C\uD574 \uAC10\uC18C, \uB0B4\uD654\uC131(\uBD88\uC800\uD56D\uB825)
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]\uB291\uB300\uAC00 \uB2F9\uC2E0\uC5D0\uAC8C \uB418\uB3CC\uC544\uAC10...
|
||||
Taming.Listener=\uC870\uB828(TAMING):
|
||||
Taming.SkillName=\uC870\uB828
|
||||
Taming.Skillup=\uC870\uB828 \uC2A4\uD0AC\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Taming.Summon.Complete=[[GREEN]]\uC18C\uD658 \uC644\uB8CC
|
||||
Taming.Summon.Fail.Ocelot=\uB2F9\uC2E0 \uADFC\uCC98\uC5D0 \uC774\uBBF8 \uB9CE\uC740 \uC624\uC140\uB86F\uC774 \uC788\uC5B4 \uB354\uB294 \uC18C\uD658\uC2DC\uD0AC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Taming.Summon.Fail.Wolf=\uB2F9\uC2E0 \uADFC\uCC98\uC5D0 \uC774\uBBF8 \uB9CE\uC740 \uB291\uB300\uAC00 \uC788\uC5B4 \uB354\uB294 \uC18C\uD658\uC2DC\uD0AC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Taming.Summon.Fail.Horse=\uB2F9\uC2E0 \uADFC\uCC98\uC5D0 \uC774\uBBF8 \uB9CE\uC740 \uB9D0\uC774 \uC788\uC5B4 \uB354\uB294 \uC18C\uD658\uC2DC\uD0AC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Taming.Summon.Name.Format={0}\uC758 {1}
|
||||
#UNARMED
|
||||
Unarmed.Ability.Berserk.Length=\uBC84\uC11C\uCEE4 \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
Unarmed.Ability.Bonus.0=\uC544\uC774\uC5B8 \uC554 \uC2A4\uD0C0\uC77C
|
||||
Unarmed.Ability.Bonus.1=+{0} \uD53C\uD574 \uC5C5\uADF8\uB808\uC774\uB4DC
|
||||
Unarmed.Ability.Chance.ArrowDeflect=\uD654\uC0B4 \uD68C\uD53C \uD655\uB960: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=\uBE44\uBB34\uC7A5 \uD655\uB960: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=\uAC15\uCCA0 \uC8FC\uBA39 \uD655\uB960: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=\uC0C1\uB300\uB294 \uAC15\uCCA0 \uC8FC\uBA39\uC744 \uAC00\uC9C0\uACE0 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]\uAC15\uCCA0 \uC8FC\uBA39\uC758 \uBE44\uBB34\uC7A5\uC744 \uC77C\uC2DC\uC801\uC73C\uB85C \uBC29\uC5B4\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**\uC190 \uC900\uBE44 \uD574\uC81C**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**\uC190 \uC900\uBE44 \uC644\uB8CC**
|
||||
Unarmed.SubSkill.Berserk.Name=\uBC84\uC11C\uCEE4 (\uB2A5\uB825)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% \uD53C\uD574, \uC57D\uD55C \uAD11\uBB3C\uB4E4\uC744 \uBD80\uC228
|
||||
Unarmed.SubSkill.Disarm.Name=\uBE44\uBB34\uC7A5 (\uD50C\uB808\uC774\uC5B4)
|
||||
Unarmed.SubSkill.Disarm.Description=\uC801\uC774 \uB4E4\uACE0\uC788\uB294 \uC544\uC774\uD15C \uB4DC\uB86D
|
||||
Unarmed.SubSkill.IronArmStyle.Name=\uAC15\uCCA0 \uD314 \uD615\uD0DC
|
||||
Unarmed.SubSkill.IronArmStyle.Description=\uACAC\uACE0\uD574\uC9C0\uB294 \uD314
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=\uD654\uC0B4 \uD68C\uD53C
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=\uD68C\uD53C \uD654\uC0B4
|
||||
Unarmed.SubSkill.IronGrip.Name=\uC544\uC774\uC5B8 \uADF8\uB9BD
|
||||
Unarmed.SubSkill.IronGrip.Description=\uBE44\uBB34\uC7A5 \uC0C1\uD0DC \uBC29\uC9C0
|
||||
Unarmed.Listener=\uBE44\uBB34\uC7A5(UNARMED):
|
||||
Unarmed.SkillName=\uBE44\uBB34\uC7A5
|
||||
Unarmed.Skills.Berserk.Off=**\uBC84\uC11C\uCEE4 \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**\uBC84\uC11C\uCEE4 \uBC1C\uB3D9**
|
||||
Unarmed.Skills.Berserk.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uBC84\uC11C\uCEE4\uB97C \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uBC84\uC11C\uCEE4\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uBC84\uC11C\uCEE4 [[GREEN]]\uC2A4\uD0AC\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Unarmed.Skillup=\uBE44\uBB34\uC7A5 \uC2A4\uD0AC\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#WOODCUTTING
|
||||
Woodcutting.Ability.0=\uB098\uBB47\uC78E \uB5A8\uC5B4\uD2B8\uB9AC\uAE30
|
||||
Woodcutting.Ability.1=\uB098\uBB47\uC78E \uCCAD\uC18C
|
||||
Woodcutting.Ability.Chance.DDrop=\uB4DC\uB86D 2\uBC30 \uD655\uB960: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=\uB098\uBB34\uAFBC \uC9C0\uC18D\uC2DC\uAC04: [[YELLOW]]{0}\uCD08
|
||||
Woodcutting.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uC774 \uD574\uC81C\uB429\uB2C8\uB2E4 (\uB098\uBB47\uC78E \uBC14\uB78C)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=\uB098\uBB34\uAFBC (\uB2A5\uB825)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=\uB098\uBB34 \uD3ED\uBC1C\uC2DC\uD0A4\uAE30
|
||||
Woodcutting.SubSkill.LeafBlower.Name=\uB098\uBB47\uC78E \uB5A8\uC5B4\uD2B8\uB9AC\uAE30
|
||||
Woodcutting.SubSkill.LeafBlower.Description=\uB098\uBB47\uC78E \uCCAD\uC18C
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=\uB4DC\uB86D 2\uBC30
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=\uD56D\uC0C1 \uB4DC\uB86D 2\uBC30
|
||||
Woodcutting.Listener=\uBC8C\uBAA9(WOODCUTTING):
|
||||
Woodcutting.SkillName=\uBC8C\uBAA9
|
||||
Woodcutting.Skills.TreeFeller.Off=**\uB098\uBB34\uAFBC \uBC1C\uB3D9 \uD574\uC81C**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**\uB098\uBB34\uAFBC \uBC1C\uB3D9**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]\uB2F9\uC2E0\uC758 [[YELLOW]]\uB098\uBB34\uAFBC [[GREEN]]\uC2A4\uD0AC\uC740 \uC774\uC81C \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off={0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uB098\uBB34\uAFBC \uC2A4\uD0AC\uC744 \uC0AC\uC6A9 \uD574\uC81C\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\uB2D8\uC740 [[RED]]\uB098\uBB34\uAFBC \uC2A4\uD0AC\uC744 \uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=\uB3C4\uB07C \uD30C\uD3B8 \uC870\uAC01 \uC218\uC9D1!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=\uADF8 \uB098\uBB34\uB294 \uB108\uBB34 \uD07D\uB2C8\uB2E4!
|
||||
Woodcutting.Skillup=\uBC8C\uBAA9 \uC2A4\uD0AC\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
#ABILITIY
|
||||
##generic
|
||||
Ability.Generic.Refresh=[[GREEN]]**\uB2A5\uB825\uC774 \uC7AC \uACF5\uAE09 \uB418\uC5C8\uC2B5\uB2C8\uB2E4!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
#COMBAT
|
||||
Combat.ArrowDeflect=[[WHITE]]**\uD654\uC0B4 \uD68C\uD53C**
|
||||
Combat.BeastLore=[[GREEN]]**\uC9D0\uC2B9\uC758 \uD3EC\uD6A8**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]\uCCB4\uB825: ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]\uC8FC\uC778: ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**\uB3CC\uC9C4**
|
||||
Combat.StruckByGore=**\uB3CC\uC9C4\uC5D0 \uB9DE\uC558\uC2B5\uB2C8\uB2E4**
|
||||
Combat.TargetDazed=\uBAA9\uD45C\uAC00 [[DARK_RED]]\uD63C\uB780\uC2A4\uB7EC\uC6CC\uD569\uB2C8\uB2E4
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]\uD63C\uB780\uC774 \uC77C\uC5B4\uB0AC\uC2B5\uB2C8\uB2E4. \uC544~ \uC5B4\uC9C0\uB7EC\uC6CC.
|
||||
#COMMANDS
|
||||
##generic
|
||||
mcMMO.Description=mcMMO[[DARK_AQUA]] \uD504\uB85C\uC81D\uD2B8\uC5D0 \uB300\uD574\uC11C:,[[GOLD]]mcMMO\uB294 \uD55C [[RED]]\uC624\uD508 \uC18C\uC2A4[[GOLD]] RPG \uBAA8\uB4DC\uB85C 2011\uB144 2\uC6D4\uC5D0 [[BLUE]]com.gmail.nossr50[[GOLD]]\uB2D8\uC774 \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4. \uBAA9\uD45C\uB294 \uC9C8\uC88B\uC740 RPG \uACBD\uD5D8\uC744 \uC81C\uACF5\uD558\uB294 \uAC83 \uC785\uB2C8\uB2E4.,[[DARK_AQUA]]\uD301:,[[GOLD]] - [[RED]]/mcmmo help[[GREEN]] \uBA85\uB839\uC5B4\uB4E4\uC744 \uBD05\uB2C8\uB2E4,[[GOLD]] - [[GREEN]]\uD0C0\uC785 [[RED]]/\uC2A4\uD0AC\uC774\uB984[[GREEN]] \uC790\uC138\uD55C \uC2A4\uD0AC \uC815\uBCF4\uB97C \uBD05\uB2C8\uB2E4,[[DARK_AQUA]]\uAC1C\uBC1C\uC790\uB4E4:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](\uC81C\uC791\uC790),[[GOLD]] - [[GREEN]]GJ [[BLUE]](\uD504\uB85C\uC81D\uD2B8 \uC8FC\uC7A5),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](\uAC1C\uBC1C\uC790),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](\uAC1C\uBC1C\uC790),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](\uAC1C\uBC1C\uC790),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](\uAC1C\uBC1C\uC790),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](\uAC1C\uBC1C\uC790),[[DARK_AQUA]]\uC720\uC6A9\uD55C \uB9C1\uD06C:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] \uBC84\uADF8 \uBCF4\uACE0,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC \uCC44\uD305,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]\uB2F9\uC2E0\uC740 \uBAA8\uB4E0 \uC2A4\uD0AC\uC5D0 {0} \uB808\uBCA8\uC744 \uC9C0\uAE09\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Commands.addlevels.AwardAll.2=\uBAA8\uB4E0 \uC2A4\uD0AC\uC774 {0}\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]\uB2F9\uC2E0\uC740 {0} \uB808\uBCA8\uC744 {1}\uC5D0 \uC9C0\uAE09\uD558\uC600\uC2B5\uB2C8\uB2E4!
|
||||
Commands.addlevels.AwardSkill.2={1} \uB2D8\uC740 {0}\uC744/\uB97C \uC218\uC815\uD558\uC600\uC2B5\uB2C8\uB2E4
|
||||
Commands.addxp.AwardAll=[[GREEN]]\uB2F9\uC2E0\uC740 \uBAA8\uB4E0 \uC2A4\uD0AC\uC5D0 {0} \uACBD\uD5D8\uCE58\uB97C \uC9C0\uAE09\uD588\uC2B5\uB2C8\uB2E4!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]\uB2F9\uC2E0\uC740 {0} \uACBD\uD5D8\uCE58\uB97C {1}\uC5D0 \uC9C0\uAE09\uD558\uC600\uC2B5\uB2C8\uB2E4!
|
||||
Commands.Ability.Off=\uB2A5\uB825 \uC0AC\uC6A9\uC774 [[RED]]\uAEBC\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.Ability.On=\uB2A5\uB825 \uC0AC\uC6A9\uC774 [[GREEN]]\uCF1C\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.Ability.Toggle=\uB2A5\uB825 \uC0AC\uC6A9\uC740 [[YELLOW]]{0}(\uC73C)\uB85C \uC804\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.AdminChat.Off=\uAD00\uB9AC\uC790 \uCC44\uD305\uC774 [[RED]]\uAEBC\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.AdminChat.On=\uAD00\uB9AC\uC790 \uCC44\uD305\uC774 [[GREEN]]\uCF1C\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.AdminToggle=[[GREEN]]- \uAD00\uB9AC\uC790 \uCC44\uD305\uC744 \uCF1C\uAE30/\uB044\uAE30\uD569\uB2C8\uB2E4
|
||||
Commands.Chat.Console=*\uC2DC\uC2A4\uD15C*
|
||||
Commands.Cooldowns.Header=[[GOLD]]--= [[GREEN]]mcMMO \uB2A5\uB825 \uC7AC \uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04[[GOLD]] =--
|
||||
Commands.Cooldowns.Row.N=\ [[RED]]{0}[[WHITE]] - [[GOLD]]{1}\uCD08 \uB0A8\uC74C
|
||||
Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]]\uC900\uBE44!
|
||||
Commands.Database.Cooldown=\uC774 \uBA85\uB839\uC5B4\uB97C \uB2E4\uC2DC \uCE58\uAE30\uC804\uC5D0 1\uCD08\uB97C \uAE30\uB2EC\uB824\uC57C\uB9CC \uD569\uB2C8\uB2E4.
|
||||
Commands.Database.Processing=\uB2F9\uC2E0\uC758 \uC774\uC804 \uBA85\uB839\uC5B4\uB294 \uC5EC\uC804\uD788 \uC791\uC5C5\uC911\uC785\uB2C8\uB2E4. \uAE30\uB2E4\uB824\uC8FC\uC138\uC694.
|
||||
Commands.Disabled=\uC774 \uBA85\uB839\uC5B4\uB294 \uBE44\uD65C\uC131\uD654 \uB418\uC788\uC2B5\uB2C8\uB2E4.
|
||||
Commands.DoesNotExist=[[RED]]\uD50C\uB808\uC774\uC5B4\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4!
|
||||
Commands.GodMode.Disabled=mcMMO \uBD88\uC0AC\uC2E0 \uBAA8\uB4DC \uBE44\uD65C\uC131\uD654
|
||||
Commands.GodMode.Enabled=mcMMO \uBD88\uC0AC\uC2E0 \uBAA8\uB4DC \uD65C\uC131\uD654
|
||||
Commands.GodMode.Forbidden=[mcMMO] \uC774 \uC6D4\uB4DC\uC5D0\uC11C \uBD88\uC0AC\uC2E0 \uBAA8\uB4DC\uB294 \uD5C8\uC6A9 \uAE08\uC9C0\uC785\uB2C8\uB2E4 (\uD384\uBBF8\uC120 \uD655\uC778)
|
||||
Commands.GodMode.Toggle=\uBD88\uC0AC\uC2E0 \uBAA8\uB4DC\uB294 [[YELLOW]]{0}[[WHITE]](\uC73C)\uB85C \uC804\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO] \uB2F9\uC2E0\uC758 \uCCB4\uB825\uBC14 \uBCF4\uAE30 \uBC29\uC2DD\uC740 [[RED]]\uD558\uD2B8[[WHITE]]\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] \uB2F9\uC2E0\uC758 \uCCB4\uB825\uBC14 \uBCF4\uAE30 \uBC29\uC2DD\uC740 [[YELLOW]]\uBC15\uC2A4[[WHITE]]\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Healthbars.Changed.DISABLED=[mcMMO] \uB2F9\uC2E0\uC758 \uBAB9 \uCCB4\uB825\uBC14\uB294 [[GRAY]]\uBE44\uD65C\uC131\uD654[[WHITE]] \uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Healthbars.Invalid=\uC798\uBABB\uB41C \uCCB4\uB825\uBC14 \uD0C0\uC785!
|
||||
Commands.Inspect=<\uD50C\uB808\uC774\uC5B4> [[GREEN]]- \uC0C1\uC138\uD55C \uD50C\uB808\uC774\uC5B4 \uC815\uBCF4\uB97C \uBD05\uB2C8\uB2E4
|
||||
Commands.Invite.Success=[[GREEN]]\uCD08\uB300\uB97C \uC131\uACF5\uC801\uC73C\uB85C \uBCF4\uB0C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Leaderboards=<\uC2A4\uD0AC> <\uD398\uC774\uC9C0> [[GREEN]]- mcMMO \uC2A4\uD0AC \uC815\uBCF4
|
||||
Commands.mcc.Header=---[][[GREEN]]mcMMO \uBA85\uB839\uC5B4[[RED]][]---
|
||||
Commands.mcgod=[[GREEN]]- \uBD88\uC0AC\uC2E0 \uBAA8\uB4DC \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.mchud.Invalid=HUD \uD0C0\uC785\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Commands.mcpurge.Success=[[GREEN]]\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uCD08\uAE30\uD654\uB42C\uC2B5\uB2C8\uB2E4!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=\uAC1C\uC778 \uC21C\uC704=-
|
||||
Commands.mcrank.Overall=\uC885\uD569[[GREEN]] - [[GOLD]]\uB7AD\uD06C [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=\uD0C0\uAC9F: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]\uB7AD\uD06C [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]\uB7AD\uD06C\uC5C6\uC74C
|
||||
Commands.mcrefresh.Success={0}\uC758 \uCFE8\uB2E4\uC6B4\uC774 \uCD08\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.mcremove.Success=[[GREEN]]{0}\uB2D8\uC758 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Commands.mctop.Tip=[[GOLD]]\uD301: [[RED]]/mcrank[[GOLD]] \uBA85\uB839\uC5B4\uB97C \uC0AC\uC6A9\uD558\uBA74 \uBAA8\uB4E0 \uAC1C\uC778 \uC21C\uC704\uB97C \uBCFC\uC218 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Commands.mmoedit=[\uD50C\uB808\uC774\uC5B4] <\uC2A4\uD0AC> <\uC0C8\uAC12> [[GREEN]] - \uB300\uC0C1\uC744 \uC218\uC815\uD569\uB2C8\uB2E4
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]\uB2F9\uC2E0\uC758 \uBAA8\uB4E0 \uC2A4\uD0AC \uB808\uBCA8\uC774 {0}\uB85C \uC124\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]\uB2F9\uC2E0\uC758 {0} \uB808\uBCA8\uC774 {1}\uB85C \uC124\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Commands.mmoedit.Modified.2={0}\uB2D8\uC740 {1}\uB97C \uC218\uC815\uD588\uC2B5\uB2C8\uB2E4.
|
||||
Commands.mcconvert.Database.Same=\uB2F9\uC2E0\uC740 \uC774\uBBF8 {0} \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB97C \uC0AC\uC6A9\uC911\uC785\uB2C8\uB2E4!
|
||||
Commands.mcconvert.Database.InvalidType={0} \uC740/\uB294 \uC798\uBABB\uB41C \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0C0\uC785\uC785\uB2C8\uB2E4.
|
||||
Commands.mcconvert.Database.Start=[[GRAY]]{0}\uC5D0\uC11C {1}(\uC73C)\uB85C \uC804\uD658 \uC2DC\uC791\uC911...
|
||||
Commands.mcconvert.Database.Finish=[[GRAY]]\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB3D9 \uC644\uB8CC; {1} \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB294 \uC774\uC81C {0} \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB85C\uBD80\uD130 \uBAA8\uB4E0 \uC790\uB8CC\uB97C \uAC00\uC9D1\uB2C8\uB2E4.
|
||||
Commands.mmoshowdb=\uD604\uC7AC \uC0AC\uC6A9\uD558\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4: [[GREEN]]{0}
|
||||
Commands.mcconvert.Experience.Invalid=\uC798\uBABB\uB41C \uACF5\uC2DD \uD0C0\uC785! \uC62C\uBC14\uB978 \uD0C0\uC785: [[GREEN]]LINEAR [[RED]]\uADF8\uB9AC\uACE0 [[GREEN]]EXPONENTIAL.
|
||||
Commands.mcconvert.Experience.Same=\uC774\uBBF8 {0} \uACF5\uC2DD\uC744 \uC0AC\uC6A9\uC911\uC785\uB2C8\uB2E4
|
||||
Commands.mcconvert.Experience.Start=[[GRAY]]{0} \uC5D0\uC11C {1} \uACE1\uC120\uC73C\uB85C \uBCC0\uD658 \uC2DC\uC791
|
||||
Commands.mcconvert.Experience.Finish=[[GRAY]]\uACF5\uC2DD \uBCC0\uD658 \uC644\uB8CC; \uC774\uC81C {0} XP \uACE1\uC120\uC785\uB2C8\uB2E4.
|
||||
Commands.ModDescription=[[GREEN]]- \uD50C\uB7EC\uADF8\uC778\uC5D0 \uB300\uD55C \uC815\uBCF4\uB97C \uBD05\uB2C8\uB2E4
|
||||
Commands.NoConsole=\uC774 \uBA85\uB839\uC5B4\uB294 \uCF58\uC194\uC5D0\uC11C\uC758 \uC0AC\uC6A9\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Notifications.Off=\uB2A5\uB825 \uC54C\uB9BC\uC774 [[RED]]\uCF1C\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.Notifications.On=\uB2A5\uB825 \uC54C\uB9BC\uC774 [[GREEN]]\uAEBC\uC84C\uC2B5\uB2C8\uB2E4
|
||||
Commands.Offline=\uC774 \uBA85\uB839\uC5B4\uB294 \uC624\uD504\uB77C\uC778 \uD50C\uB808\uC774\uC5B4\uC5D0\uAC8C \uB3D9\uC791\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Commands.NotLoaded=\uD50C\uB808\uC774\uC5B4 \uD504\uB85C\uD30C\uC77C\uC740 \uBD88\uB7EC\uC640\uC9C0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4Player profile is not loaded yet.
|
||||
Commands.Other=---[][[GREEN]]\uAE30\uD0C0 \uBA85\uB839\uC5B4[[RED]][]---
|
||||
Commands.Party.Header=-----[][[GREEN]]\uD30C\uD2F0[[RED]][]-----
|
||||
Commands.Party.Features.Header=-----[][[GREEN]]\uD2B9\uC9D5[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]\uC774\uB984: [[WHITE]]{0} {1} [[DARK_GRAY]]\uB808\uBCA8: [[DARK_AQUA]]{2}
|
||||
Commands.Party.Status.Alliance=[[DARK_GRAY]]\uB3D9\uB9F9: [[WHITE]]{0}
|
||||
Commands.Party.UnlockedFeatures=[[DARK_GRAY]]\uD574\uC81C\uB41C \uD2B9\uC9D5: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]\uACF5\uC720 \uBAA8\uB4DC:
|
||||
Commands.Party.ItemShare=[[GRAY]]\uC544\uC774\uD15C [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]EXP [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]\uACF5\uC720\uC911\uC778 \uC544\uC774\uD15C: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]\uB2F9\uC2E0\uC758 \uADFC\uCC98 [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[GREEN]]- \uD30C\uD2F0 \uCD08\uB300 \uD5C8\uC6A9
|
||||
Commands.Party.Chat.Off=\uD30C\uD2F0 \uCC44\uD305\uC744 [[RED]]\uB055\uB2C8\uB2E4
|
||||
Commands.Party.Chat.On=\uD30C\uD2F0 \uCC44\uD305\uC744 [[GREEN]]\uCF2D\uB2C8\uB2E4
|
||||
Commands.Party.Commands=---[][[GREEN]]\uD30C\uD2F0 \uBA85\uB839\uC5B4[[RED]][]---
|
||||
Commands.Party.Invite.0=\uC54C\uB9BC: [[GREEN]]\uB2F9\uC2E0\uC740 {1} \uB2D8\uC73C\uB85C\uBD80\uD130 {0} \uD30C\uD2F0 \uCD08\uB300\uC5D0 \uAD8C\uC720\uBC1B\uC558\uC2B5\uB2C8\uB2E4
|
||||
Commands.Party.Invite.1=\uD0C0\uC785 [[GREEN]]/party accept[[YELLOW]] \uBA85\uB839\uC5B4\uB97C \uCE58\uBA74 \uD30C\uD2F0 \uCD08\uB300\uC5D0 \uC2B9\uB099\uB429\uB2C8\uB2E4
|
||||
Commands.Party.Invite=<\uD50C\uB808\uC774\uC5B4> [[GREEN]]- \uD30C\uD2F0 \uCD08\uB300\uB97C \uBCF4\uB0C5\uB2C8\uB2E4
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]\uCD08\uB300 \uC218\uB77D\uB428. \uB2F9\uC2E0\uC740 {0} \uD30C\uD2F0\uC5D0 \uAC00\uC785\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.Party.Join=\uCC38\uC5EC\uB41C \uD30C\uD2F0: {0}
|
||||
Commands.Party.Create=[[GRAY]]\uB9CC\uB4E4\uC5B4\uC9C4 \uD30C\uD2F0: {0}
|
||||
Commands.Party.Rename=[[GRAY]]\uBCC0\uACBD\uB41C \uD30C\uD2F0 \uC774\uB984: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]\uD30C\uD2F0 {0} \uACF5\uC720 \uC124\uC815: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]\uD30C\uD2F0 \uC544\uC774\uD15C \uACF5\uC720 [[GOLD]]{0} [[GRAY]]\uAC00 [[DARK_AQUA]]{1}\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]{0} \uD30C\uD2F0\uC740/\uB294 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4!
|
||||
Commands.Party.Kick=\uB2F9\uC2E0\uC740 {0} \uD30C\uD2F0\uC5D0\uC11C \uCD94\uBC29 \uB2F9\uD558\uC600\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Party.Leave=\uD30C\uD2F0\uB97C \uB5A0\uB0AC\uC2B5\uB2C8\uB2E4
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]\uB9F4\uBC84\uB4E4[[RED]][]-----
|
||||
Commands.Party.None=\uB2F9\uC2E0\uC740 \uD30C\uD2F0\uC5D0 \uCC38\uC5EC\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Party.Quit=[[GREEN]]- \uD604\uC7AC \uCC38\uC5EC \uB418\uC5B4\uC788\uB294 \uD30C\uD2F0\uB97C \uB098\uAC11\uB2C8\uB2E4
|
||||
Commands.Party.Teleport=[[GREEN]]- \uD30C\uD2F0 \uB9F4\uBC84\uD55C\uD14C \uD154\uB808\uD3EC\uD2B8\uD569\uB2C8\uB2E4
|
||||
Commands.Party.Toggle=[[GREEN]]- \uD30C\uD2F0 \uCC44\uD305\uC744 \uCF1C\uAE30/\uB044\uAE30 \uD569\uB2C8\uB2E4
|
||||
Commands.Party1=[[GREEN]]- \uC0C8 \uD30C\uD2F0\uB97C \uB9CC\uB4ED\uB2C8\uB2E4
|
||||
Commands.Party2=[[GREEN]]- \uD50C\uB808\uC774\uC5B4\uAC00 \uD30C\uD2F0\uC5D0 \uAC00\uC785\uD569\uB2C8\uB2E4
|
||||
Commands.Party.Alliance.Header=-----[][[GREEN]]\uD30C\uD2F0 \uB3D9\uB9F9[[RED]][]-----
|
||||
Commands.Party.Alliance.Ally=[[WHITE]]{0} [[DARK_GRAY]]\uD30C\uD2F0\uC758 \uB3D9\uB9F9: [[WHITE]]{1}
|
||||
Commands.Party.Alliance.Members.Header=-----[][[GREEN]]\uB3D9\uB9F9 \uAD6C\uC131\uC6D0[[RED]][]-----
|
||||
Commands.Party.Alliance.Invite.0=\uC54C\uB9BC: [[GREEN]]{1} \uD30C\uD2F0\uB85C\uBD80\uD130 {0} \uD30C\uD2F0\uC640\uC758 \uB3D9\uB9F9 \uCD08\uB300\uB97C \uBC1B\uC558\uC2B5\uB2C8\uB2E4
|
||||
Commands.Party.Alliance.Invite.1=\uD0C0\uC785 [[GREEN]]/party alliance accept[[YELLOW]] \uCD08\uB300\uC5D0 \uC218\uB77D\uD569\uB2C8\uB2E4
|
||||
Commands.Party.Alliance.Invite.Accepted=[[GREEN]]\uB3D9\uB9F9 \uCD08\uB300 \uC218\uB77D\uB428.
|
||||
Commands.Party.Alliance.None=\uB2F9\uC2E0\uC740 \uB3D9\uB9F9\uC744 \uAC00\uC9C0\uACE0 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Party.Alliance.AlreadyAllies=\uB2F9\uC2E0\uC758 \uD30C\uD2F0\uB294 \uC774\uBBF8 \uB3D9\uB9F9\uC744 \uAC00\uC9C0\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uAD00\uACC4\uB97C \uD574\uC9C0\uD558\uB824\uBA74 [[DARK_AQUA]]/party alliance disband
|
||||
Commands.Party.Alliance.Help.0=\uC774 \uD30C\uD2F0\uB294 \uB3D9\uB9F9 \uD615\uD0DC\uB97C \uAC00\uC9C0\uACE0 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD30C\uD2F0\uC7A5\uC744 \uCD08\uB300\uD558\uC138\uC694
|
||||
Commands.Party.Alliance.Help.1=\uB3D9\uB9F9\uC744 \uD558\uB824\uBA74 [[DARK_AQUA]]/party alliance invite <player>[[RED]].
|
||||
Commands.ptp.Enabled=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8 [[GREEN]]\uD65C\uC131\uD654\uB428
|
||||
Commands.ptp.Disabled=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8 [[RED]]\uBE44\uD65C\uC131\uD654\uB428
|
||||
Commands.ptp.NoRequests=\uB2F9\uC2E0\uC740 \uC774 \uC2DC\uAC04\uC5D0 \uD154\uB808\uD3EC\uD2B8 \uC694\uCCAD\uC744 \uD558\uC2E4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] \uB2F9\uC2E0\uC740 \uC6D4\uB4DC {0}(\uC73C)\uB85C \uD154\uB808\uD3EC\uD2B8\uD560 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Commands.ptp.Request1={0} [[GREEN]]\uB2D8\uC774 \uB2F9\uC2E0\uC5D0\uAC8C \uD154\uB808\uD3EC\uD2B8\uB97C \uC2E0\uCCAD\uD588\uC2B5\uB2C8\uB2E4.
|
||||
Commands.ptp.Request2=[[GREEN]]\uD154\uB808\uD3EC\uD2B8\uD558\uB824\uBA74, \uD0C0\uC785 [[YELLOW]]/ptp accept[[GREEN]]. [[RED]]{0}[[GREEN]]\uCD08\uC5D0 \uC694\uCCAD\uC774 \uB9CC\uAE30\uB429\uB2C8\uB2E4.
|
||||
Commands.ptp.AcceptAny.Enabled=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8 \uC694\uCCAD \uD655\uC778 [[GREEN]]\uD65C\uC131\uD654\uB428
|
||||
Commands.ptp.AcceptAny.Disabled=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8 \uC694\uCCAD \uD655\uC778 [[RED]]\uBE44\uD65C\uC131\uD654\uB428
|
||||
Commands.ptp.RequestExpired=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8 \uC694\uCCAD\uC774 \uB9CC\uAE30\uB428!
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO[[BLUE]] \uCD1D \uB808\uBCA8 [[YELLOW]]\uC810\uC218\uD45C--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]\uCD1D \uB808\uBCA8: [[GREEN]]{0} [[DARK_RED]]\uCD5C\uB300 \uB808\uBCA8: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]\uCD1D \uB808\uBCA8: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]\uB2F9\uC2E0\uC758 \uBAA8\uB4E0 \uC2A4\uD0AC\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uCD08\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Reset.Single=[[GREEN]]\uB2F9\uC2E0\uC758 {0} \uC2A4\uD0AC\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uCD08\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Commands.Reset=[[GREEN]]\uC2A4\uD0AC \uB808\uBCA8\uC744 0\uC73C\uB85C \uCD08\uAE30\uD654 \uC2DC\uD0B5\uB2C8\uB2E4
|
||||
Commands.Scoreboard.Clear=[[DARK_AQUA]]mcMMO \uC810\uC218\uD310 \uCCAD\uC18C\uB428.
|
||||
Commands.Scoreboard.NoBoard=mcMMO \uC810\uC218\uD310\uC774 \uD65C\uC131\uD654 \uB418\uC5B4\uC788\uC9C0 \uC54A\uC74C.
|
||||
Commands.Scoreboard.Keep=[[DARK_AQUA]]mcMMO \uC810\uC218\uD310\uC740 \uB2F9\uC2E0\uC774 [[GREEN]]/mcscoreboard clear[[DARK_AQUA]]\uB97C \uC0AC\uC6A9\uD560 \uB54C\uAE4C\uC9C0 \uC720\uC9C0\uB420 \uAC83\uC784.
|
||||
Commands.Scoreboard.Timer=[[DARK_AQUA]]mcMMO \uC810\uC218\uD310\uC740 \uC9C0\uAE08\uC73C\uB85C\uBD80\uD130 [[GOLD]]{0}[[DARK_AQUA]]\uCD08 \uB0B4\uC5D0 \uCCAD\uC18C\uB420 \uC608\uC815\uC784.
|
||||
Commands.Scoreboard.Help.0=[[GOLD]] == [[RED]]/mcscoreboard [[GREEN]]\uB3C4\uC6C0\uB9D0[[GOLD]] ==
|
||||
Commands.Scoreboard.Help.1=[[DARK_AQUA]]/mcscoreboard[[AQUA]] clear [[WHITE]] - McMMO \uC810\uC218\uD310\uC744 \uCCAD\uC18C\uD568
|
||||
Commands.Scoreboard.Help.2=[[DARK_AQUA]]/mcscoreboard[[AQUA]] keep [[WHITE]] - McMMO \uC810\uC218\uD310\uC744 \uC720\uC9C0\uD568
|
||||
Commands.Scoreboard.Help.3=[[DARK_AQUA]]/mcscoreboard[[AQUA]] time [n] [[WHITE]] - McMMO \uC810\uC218\uD310\uC744 [[LIGHT_PURPLE]]n[[WHITE]]\uCD08 \uD6C4\uC5D0 \uCCAD\uC18C\uD568
|
||||
Commands.Scoreboard.Tip.Keep=[[GOLD]]\uD301: [[RED]]/mcscoreboard keep[[GOLD]] \uC810\uC218\uD310\uC744 \uBCF4\uC774\uAC8C \uD56D\uC0C1 \uC720\uC9C0.
|
||||
Commands.Scoreboard.Tip.Clear=[[GOLD]]\uD301: [[RED]]/mcscoreboard clear[[GOLD]] \uC810\uC218\uD310 \uAC10\uCDA4.
|
||||
Commands.Skill.Invalid=\uC798\uBABB\uB41C \uC2A4\uD0AC \uC774\uB984 \uC785\uB2C8\uB2E4!
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] \uC810\uC218\uD45C--
|
||||
Commands.SkillInfo=[[GREEN]]- \uC2A4\uD0AC\uC5D0 \uB300\uD55C \uC790\uC138\uD55C \uC815\uBCF4\uB97C \uBD05\uB2C8\uB2E4
|
||||
Commands.Stats.Self=\uB2F9\uC2E0\uC758 \uD1B5\uACC4
|
||||
Commands.Stats=[[GREEN]]- \uB2F9\uC2E0\uC758 mcMMO \uD1B5\uACC4 \uBCF4\uAE30
|
||||
Commands.ToggleAbility=[[GREEN]]- \uC6B0\uD074\uB9AD\uC2DC \uC0AC\uC6A9\uB418\uB294 \uC2A4\uD0AC\uB4E4\uC744 \uCF1C\uAE30/\uB044\uAE30 \uD569\uB2C8\uB2E4
|
||||
Commands.Usage.0=\uC62C\uBC14\uB978 \uC0AC\uC6A9\uBC95 /{0}
|
||||
Commands.Usage.1=\uC62C\uBC14\uB978 \uC0AC\uC6A9\uBC95 /{0} {1}
|
||||
Commands.Usage.2=\uC62C\uBC14\uB978 \uC0AC\uC6A9\uBC95 /{0} {1} {2}
|
||||
Commands.Usage.3=\uC62C\uBC14\uB978 \uC0AC\uC6A9\uBC95 /{0} {1} {2} {3}
|
||||
Commands.Usage.FullClassName=\uD074\uB808\uC2A4\uC774\uB984
|
||||
Commands.Usage.Level=\uB808\uBCA8
|
||||
Commands.Usage.Message=\uBA54\uC138\uC9C0
|
||||
Commands.Usage.Page=\uD398\uC774\uC9C0
|
||||
Commands.Usage.PartyName=\uC774\uB984
|
||||
Commands.Usage.Password=\uBE44\uBC00\uBC88\uD638
|
||||
Commands.Usage.Player=\uD50C\uB808\uC774\uC5B4
|
||||
Commands.Usage.Rate=\uBC30\uC728
|
||||
Commands.Usage.Skill=\uC2A4\uD0AC
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=\uC774 \uC2DC\uAC04\uC5D0 \uB2F9\uC2E0\uC740 \uCD08\uB300\uD558\uC9C0 \uBABB\uD569\uB2C8\uB2E4
|
||||
mcMMO.NoPermission=[[DARK_RED]]\uAD8C\uD55C\uC774 \uBD80\uC871\uD569\uB2C8\uB2E4.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]\uB9CC\uC57D \uB2F9\uC2E0\uC774 \uC2A4\uD0AC\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uB2E4\uBA74 \uC5EC\uAE30\uC5D0 \uD45C\uC2DC\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
##party
|
||||
Party.Forbidden=[mcMMO] \uC774 \uC6D4\uB4DC\uC5D0\uC11C \uD30C\uD2F0\uB97C \uD558\uC2E4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 (\uD384\uBBF8\uC120 \uD655\uC778)
|
||||
Party.Help.0=\uC62C\uBC14\uB978 \uC0AC\uC6A9\uBC95 [[DARK_AQUA]]{0} <\uD50C\uB808\uC774\uC5B4> [\uBE44\uBC00\uBC88\uD638].
|
||||
Party.Help.1=\uD30C\uD2F0\uB97C \uB9CC\uB4E4\uB824\uBA74, [[DARK_AQUA]]{0} <\uC774\uB984> [\uBE44\uBC00\uBC88\uD638].
|
||||
Party.Help.2=\uD30C\uD2F0 \uC815\uBCF4\uB97C \uBCFC\uB824\uBA74 [[DARK_AQUA]]{0}
|
||||
Party.Help.3=\uD30C\uD2F0\uC5D0 \uAC00\uC785\uD560\uB824\uBA74 [[DARK_AQUA]]{0} <\uD50C\uB808\uC774\uC5B4> [\uBE44\uBC00\uBC88\uD638] [[RED]]\uB098\uAC08\uB824\uBA74 [[DARK_AQUA]]{1}
|
||||
Party.Help.4=\uD30C\uD2F0\uB97C \uC7A0\uAE08/\uC7A0\uAE08\uD574\uC81C \uD560\uB824\uBA74, [[DARK_AQUA]]{0}
|
||||
Party.Help.5=\uBE44\uBC00\uBC88\uD638\uB85C \uD30C\uD2F0\uB97C \uBCF4\uD638\uD560\uB824\uBA74, [[DARK_AQUA]]{0} <\uBE44\uBC00\uBC88\uD638>
|
||||
Party.Help.6=\uD30C\uD2F0\uC5D0\uC11C \uD50C\uB808\uC774\uC5B4\uB97C \uCD94\uBC29\uC2DC\uD0AC\uB824\uBA74, [[DARK_AQUA]]{0} <\uD50C\uB808\uC774\uC5B4>
|
||||
Party.Help.7=\uD30C\uD2F0\uC7A5\uC744 \uAD50\uCCB4\uD560\uB824\uBA74, [[DARK_AQUA]]{0} <\uD50C\uB808\uC774\uC5B4>
|
||||
Party.Help.8=\uD30C\uD2F0\uB97C \uD574\uCCB4\uD560\uB824\uBA74, [[DARK_AQUA]]{0}
|
||||
Party.Help.9=\uD30C\uD2F0 \uB9F4\uBC84\uB4E4\uACFC \uC544\uC774\uD15C\uC744 \uACF5\uC720\uD558\uB824\uBA74 [[DARK_AQUA]]{0}
|
||||
Party.Help.10=\uD30C\uD2F0 \uB9F4\uBC84\uB4E4\uACFC \uACBD\uD5D8\uCE58 \uACF5\uC720\uB97C \uD65C\uC131\uD654\uD654\uB824\uBA74 [[DARK_AQUA]]{0}
|
||||
Party.InformedOnJoin={0} [[GREEN]]\uB2D8\uC774 \uB2F9\uC2E0\uC758 \uD30C\uD2F0\uC5D0 \uCC38\uC5EC\uD588\uC2B5\uB2C8\uB2E4
|
||||
Party.InformedOnQuit={0} [[GREEN]]\uB2D8\uC774 \uB2F9\uC2E0\uC758 \uD30C\uD2F0\uC5D0\uC11C \uB5A0\uB0AC\uC2B5\uB2C8\uB2E4
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]\uB2D8\uC774 \uD30C\uD2F0 \uC774\uB984\uC744 [[WHITE]]{1}\uB85C \uC124\uC815\uD588\uC2B5\uB2C8\uB2E4
|
||||
Party.InvalidName=[[DARK_RED]]\uC798\uBABB\uB41C \uD30C\uD2F0 \uC774\uB984\uC785\uB2C8\uB2E4.
|
||||
Party.Invite.Self=\uC790\uAE30\uC790\uC2E0\uC744 \uCD08\uB300\uD560 \uC218\uB294 \uC5C6\uC2B5\uB2C8\uB2E4!
|
||||
Party.IsLocked=\uC774 \uD30C\uD2F0\uB294 \uC774\uBBF8 \uC7A0\uACA8\uC838 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Party.IsntLocked=\uC774 \uD30C\uD2F0\uB294 \uC7A0\uACA8\uC838 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4!
|
||||
Party.Locked=\uD30C\uD2F0\uAC00 \uC7A0\uACBC\uC2B5\uB2C8\uB2E4, \uC624\uC9C1 \uD30C\uD2F0\uC7A5\uB9CC\uC774 \uCD08\uB300\uB97C \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0}\uB2D8\uC740 \uB2F9\uC2E0\uC758 \uD30C\uD2F0\uC5D0 \uC5C6\uC2B5\uB2C8\uB2E4
|
||||
Party.NotOwner=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uD30C\uD2F0\uC7A5\uC774 \uC544\uB2D9\uB2C8\uB2E4.
|
||||
Party.Target.NotOwner=[[DARK_RED]]{0}\uB2D8\uC740 \uD30C\uD2F0\uC7A5\uC774 \uC544\uB2D9\uB2C8\uB2E4.
|
||||
Party.Owner.New=[[GREEN]]{0}\uB2D8\uC774 \uC0C8 \uD30C\uD2F0\uC7A5\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uC774\uC81C \uD30C\uD2F0\uC7A5\uC774 \uC544\uB2D9\uB2C8\uB2E4.
|
||||
Party.Owner.Player=[[GREEN]]\uB2F9\uC2E0\uC740 \uC774\uC81C \uD30C\uD2F0\uC7A5\uC785\uB2C8\uB2E4.
|
||||
Party.Password.None=\uC774 \uD30C\uD2F0\uB294 \uBE44\uBC00\uBC88\uD638\uB85C \uBCF4\uD638\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uAC00\uC785\uD560\uB54C \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC8FC\uC138\uC694.
|
||||
Party.Password.Incorrect=\uD30C\uD2F0 \uBE44\uBC00\uBC88\uD638\uAC00 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Party.Password.Set=[[GREEN]]\uC124\uC815\uD55C \uD30C\uD2F0 \uBE44\uBC00\uBC88\uD638\uB294 {0} \uC785\uB2C8\uB2E4
|
||||
Party.Password.Removed=[[GREEN]]\uD30C\uD2F0 \uBE44\uBC00\uBC88\uD638\uAC00 \uCCAD\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Party.Player.Invalid=\uADF8 \uD50C\uB808\uC774\uC5B4\uB294 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Party.NotOnline=[[DARK_RED]]{0}\uB2D8\uC740 \uC811\uC18D\uC911\uC774 \uC544\uB2D9\uB2C8\uB2E4!
|
||||
Party.Player.InSameParty={0}\uB2D8\uC740 \uC774\uBBF8 \uB2F9\uC2E0\uC758 \uD30C\uD2F0\uC5D0 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0}\uB2D8\uC740 \uD30C\uD2F0\uC5D0 \uC5C6\uC2B5\uB2C8\uB2E4
|
||||
Party.Specify=\uB2F9\uC2E0\uC740 \uD30C\uD2F0\uB97C \uBA85\uAE30\uD574\uC57C\uD569\uB2C8\uB2E4.
|
||||
Party.Teleport.Dead=\uB2F9\uC2E0\uC740 \uC8FD\uC740 \uD50C\uB808\uC774\uC5B4\uC5D0\uAC8C\uB85C \uD154\uB808\uD3EC\uD2B8 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Party.Teleport.Hurt=\uB2F9\uC2E0\uC740 \uB9C8\uC9C0\uB9C9\uC73C\uB85C {0}\uCD08\uC5D0 \uB2E4\uCCD0 \uD154\uB808\uD3EC\uD2B8 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Party.Teleport.Player=[[GREEN]]\uB2F9\uC2E0\uC740 {0}\uB85C \uD154\uB808\uD3EC\uD2B8\uD588\uC2B5\uB2C8\uB2E4.
|
||||
Party.Teleport.Self=\uC790\uAE30\uC790\uC2E0\uD55C\uD14C \uD154\uB808\uD3EC\uD2B8 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!
|
||||
Party.Teleport.Target=[[GREEN]]{0}\uB2D8\uC774 \uB2F9\uC2E0\uC5D0\uAC8C\uB85C \uD154\uB808\uD3EC\uD2B8\uD588\uC2B5\uB2C8\uB2E4.
|
||||
Party.Teleport.Disabled={0}\uB2D8\uC740 \uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8\uB97C \uD5C8\uC6A9\uD558\uACE0 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
Party.Rename.Same=\uC774\uBBF8 \uB2F9\uC2E0\uC758 \uD30C\uD2F0 \uC774\uB984\uC785\uB2C8\uB2E4!
|
||||
Party.Join.Self=\uC790\uAE30\uC790\uC2E0\uC744 \uAC00\uC785\uC2DC\uD0AC\uC218 \uC5C6\uC2B5\uB2C8\uB2E4!
|
||||
Party.Unlocked=[[GRAY]]\uD30C\uD2F0\uAC00 \uC7A0\uAE08\uD574\uC81C \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Party.Disband=[[GRAY]]\uADF8 \uD30C\uD2F0\uAC00 \uD574\uCCB4\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Party.Alliance.Formed=[[GRAY]]\uB2F9\uC2E0\uC758 \uD30C\uD2F0\uB294 \uC774\uC81C [[GREEN]]{0} \uD30C\uD2F0\uC640 \uB3D9\uB9F9\uC785\uB2C8\uB2E4
|
||||
Party.Alliance.Disband=[[GRAY]]\uB2F9\uC2E0\uC758 \uD30C\uD2F0\uB294 \uB354 \uC774\uC0C1 [[RED]]{0} \uD30C\uD2F0\uC640 \uB3D9\uB9F9\uC774 \uC544\uB2D9\uB2C8\uB2E4
|
||||
Party.Status.Locked=[[DARK_RED]](\uCD08\uB300\uB9CC-\uD5C8\uC6A9)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](\uAC1C\uBC29)
|
||||
Party.LevelUp=\uD30C\uD2F0 \uB808\uBCA8\uC774 {0} \uC62C\uB77C \uCD1D {1} \uB808\uBCA8\uC774 \uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Party.Feature.Chat=\uD30C\uD2F0 \uCC44\uD305
|
||||
Party.Feature.Teleport=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8
|
||||
Party.Feature.Alliance=\uB3D9\uB9F9
|
||||
Party.Feature.ItemShare=\uC544\uC774\uD15C \uACF5\uC720
|
||||
Party.Feature.XpShare=\uACBD\uD5D8\uCE58 \uACF5\uC720
|
||||
Party.Feature.Locked.Chat={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uD30C\uD2F0 \uCC44\uD305)
|
||||
Party.Feature.Locked.Teleport={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8)
|
||||
Party.Feature.Locked.Alliance={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uB3D9\uB9F9)
|
||||
Party.Feature.Locked.ItemShare={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uC544\uC774\uD15C \uACF5\uC720)
|
||||
Party.Feature.Locked.XpShare={0}\uB808\uBCA8 \uB54C \uC2A4\uD0AC\uD574\uC81C (\uACBD\uD5D8\uCE58 \uACF5\uC720)
|
||||
Party.Feature.Disabled.1=\uD30C\uD2F0 \uCC44\uD305\uC740 \uC544\uC9C1 \uD574\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Party.Feature.Disabled.2=\uD30C\uD2F0 \uD154\uB808\uD3EC\uD2B8\uB294 \uC544\uC9C1 \uD574\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Party.Feature.Disabled.3=\uD30C\uD2F0 \uB3D9\uB9F9\uC740 \uC544\uC9C1 \uD574\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Party.Feature.Disabled.4=\uC544\uC774\uD15C \uACF5\uC720\uB294 \uC544\uC9C1 \uD574\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Party.Feature.Disabled.5=\uACBD\uD5D8\uCE58 \uACF5\uC720\uB294 \uC544\uC9C1 \uD574\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
|
||||
Party.ShareType.Xp=\uACBD\uD5D8\uCE58
|
||||
Party.ShareType.Item=\uC544\uC774\uD15C
|
||||
Party.ShareMode.None=\uC5C6\uC74C
|
||||
Party.ShareMode.Equal=\uADE0\uB4F1
|
||||
Party.ShareMode.Random=\uBB34\uC791\uC704
|
||||
Party.ItemShare.Category.Loot=\uAC15\uD0C8
|
||||
Party.ItemShare.Category.Mining=\uCC44\uAD11
|
||||
Party.ItemShare.Category.Herbalism=\uC57D\uCD08\uD559
|
||||
Party.ItemShare.Category.Woodcutting=\uBC8C\uBAA9
|
||||
Party.ItemShare.Category.Misc=\uAE30\uD0C0
|
||||
##xp
|
||||
Commands.XPGain.Acrobatics=\uB5A8\uC5B4\uC9C0\uAE30
|
||||
Commands.XPGain.Alchemy=\uD3EC\uC158 \uC591\uC870\uD558\uAE30
|
||||
Commands.XPGain.Archery=\uBAAC\uC2A4\uD130 \uACF5\uACA9\uD558\uAE30
|
||||
Commands.XPGain.Axes=\uBAAC\uC2A4\uD130 \uACF5\uACA9\uD558\uAE30
|
||||
Commands.XPGain.Child=\uC0C1\uC704 \uC2A4\uD0AC\uB4E4\uB85C \uBD80\uD130 \uB808\uBCA8\uB4E4\uC744 \uC5BB\uC2B5\uB2C8\uB2E4
|
||||
Commands.XPGain.Excavation=\uB545 \uD30C\uAC70\uB098 \uBCF4\uBB3C \uBC1C\uACAC\uD558\uAE30
|
||||
Commands.XPGain.Fishing=\uB09A\uC2DC\uD558\uAE30
|
||||
Commands.XPGain.Herbalism=\uC2DD\uBB3C \uC218\uC9D1\uD558\uAE30
|
||||
Commands.XPGain.Mining=\uB3CC\uC774\uB098 \uAD11\uC11D \uCE90\uAE30
|
||||
Commands.XPGain.Repair=\uC218\uB9AC\uD558\uAE30
|
||||
Commands.XPGain.Swords=\uBAAC\uC2A4\uD130 \uACF5\uACA9\uD558\uAE30
|
||||
Commands.XPGain.Taming=\uB3D9\uBB3C\uC744 \uC870\uB828\uD558\uAC70\uB098, \uC870\uB828\uB41C \uB3D9\uBB3C\uB85C \uC0AC\uB0E5\uD558\uAE30
|
||||
Commands.XPGain.Unarmed=\uBAAC\uC2A4\uD130 \uACF5\uACA9\uD558\uAE30
|
||||
Commands.XPGain.Woodcutting=\uB098\uBB34 \uC790\uB974\uAE30
|
||||
Commands.XPGain=[[DARK_GRAY]]\uACBD\uD5D8\uCE58 \uC5BB\uB294 \uBC29\uBC95: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]\uB2F9\uC2E0\uC758 \uACBD\uD5D8\uCE58 \uBC14\uB294 {0}\uB85C \uC7A0\uACBC\uC2B5\uB2C8\uB2E4!
|
||||
Commands.xplock.unlocked=[[GOLD]]\uB2F9\uC2E0\uC758 \uACBD\uD5D8\uCE58 \uBC14\uB294 [[GREEN]]\uC7A0\uAE08 \uD574\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4[[GOLD]]!
|
||||
Commands.xprate.modified=\uACBD\uD5D8\uCE58 \uBC30\uC728\uC774 {0}\uBC30\uB85C \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4
|
||||
Commands.xprate.over=mcMMO \uACBD\uD5D8\uCE58 \uC774\uBCA4\uD2B8\uAC00 \uC885\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4!!
|
||||
Commands.xprate.proper.0=\uACBD\uD5D8\uCE58 \uBC30\uC728 \uC774\uBCA4\uD2B8\uB97C \uC0AC\uC6A9\uBC95: [[WHITE]]/xprate <\uBC30\uC728> <true/false>
|
||||
Commands.xprate.proper.1=\uACBD\uD5D8\uCE58 \uBC30\uC728\uC744 \uCD08\uAE30\uD654 \uBC29\uBC95: [[WHITE]]/xprate reset
|
||||
Commands.xprate.proper.2=\uC774\uAC83\uC740 XP \uC774\uBCA4\uD2B8\uC778\uC9C0 \uC544\uB2CC\uC9C0 true \uB610\uB294 false\uB85C \uB098\uD0C0\uB0B4\uAE30 \uC704\uD574 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
|
||||
Commands.xprate.started.0=[[GOLD]]mcMMO \uACBD\uD5D8\uCE58 \uC774\uBCA4\uD2B8\uAC00 \uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO \uACBD\uD5D8\uCE58 \uBC30\uC728\uC740 {0}\uBC30 \uC785\uB2C8\uB2E4!
|
||||
XPRate.Event=[[GOLD]]mcMMO \uB294 \uD604\uC7AC \uACBD\uD5D8\uCE58 \uC774\uBCA4\uD2B8 \uC911\uC785\uB2C8\uB2E4! \uACBD\uD5D8\uCE58\uB294 {0}\uBC30 \uC785\uB2C8\uB2E4!
|
||||
#EFFECTS
|
||||
##generic
|
||||
Effects.Effects=\uD6A8\uACFC
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
#GUIDES
|
||||
Guides.Available=[[GRAY]]{0} \uAC00\uC774\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4 - \uD0C0\uC785 /{1} ? [\uD398\uC774\uC9C0]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} \uAC00\uC774\uB4DC[[GOLD]]=-
|
||||
Guides.Page.Invalid=\uC62C\uBC14\uB978 \uD398\uC774\uC9C0 \uBC88\uD638\uAC00 \uC544\uB2D9\uB2C8\uB2E4!
|
||||
Guides.Page.OutOfRange=\uADF8 \uD398\uC774\uC9C0\uB294 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4, \uC624\uC9C1 \uCD1D {0} \uD398\uC774\uC9C0\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
Guides.Usage=\uC0AC\uC6A9\uBC95 /{0} ? [\uD398\uC774\uC9C0]
|
||||
##Acrobatics
|
||||
Guides.Acrobatics.Section.0=[[DARK_AQUA]]\uACE1\uC608\uC5D0 \uB300\uD558\uC5EC:\n[[YELLOW]]\uACE1\uC608\uB294 mcMMO\uC758 \uC6B0\uC640\uD558\uAC8C \uC6C0\uC9C1\uC774\uB294 \uC608\uC220\uC785\uB2C8\uB2E4.\n[[YELLOW]]\uC804\uD22C \uD2B9\uD61C\uC640 \uD658\uACBD \uC190\uC0C1 \uD2B9\uD61C\uB97C \uC99D\uAC00\uC2DC\uD0B5\uB2C8\uB2E4.\n\n[[DARK_AQUA]]XP \uC5BB\uAE30:\n[[YELLOW]]\uC774 \uC2A4\uD0AC\uC758 XP\uB97C \uC5BB\uC744\uB824\uBA74 \uC804\uD22C\uB098 \uC0DD\uC874\uC5D0\uC11C \uD53C\uD574\uB97C \n[[YELLOW]]\uC785\uB294 \uB099\uD558\uC5D0\uC11C \uCC29\uC9C0 \uD589\uB3D9\uC774 \uC694\uAD6C\uB429\uB2C8\uB2E4.
|
||||
Guides.Acrobatics.Section.1=[[DARK_AQUA]]\uC5B4\uB5BB\uAC8C \uAD6C\uB974\uAE30\uB97C \uD558\uB098\uC694?\n[[YELLOW]]\uB2F9\uC2E0\uC774 \uB099\uD558 \uD53C\uD574\uB97C \uBC1B\uC744 \uB54C \uD53C\uD574\uB97C \uBB34\uD6A8\uD654\uD560\n[[YELLOW]]\uC9C0\uC18D\uC801\uC778 \uAE30\uD68C\uB97C \uAC00\uC9C0\uAC8C \uB429\uB2C8\uB2E4. \uCB48\uAD6C\uB9AC\uAE30 \uBC84\uD2BC\uC744 \uB204\uB974\uACE0 \uC788\uC73C\uBA74\n[[YELLOW]]\uB5A8\uC5B4\uC9C0\uB294 \uB3D9\uC548 \uB450\uBC30\uC758 \uAE30\uD68C\uB97C \uAC00\uC9C0\uAC8C \uB429\uB2C8\uB2E4.\n[[YELLOW]]This triggers a Graceful Roll instead of a standard one.\n[[YELLOW]]Graceful Rolls are like regular rolls but are twice as likely to\n[[YELLOW]]occur and provide more damage safety than regular rolls.\n[[YELLOW]]Rolling chance is tied to your skill level
|
||||
Guides.Acrobatics.Section.2=[[DARK_AQUA]]\uC5B4\uB5BB\uAC8C \uD68C\uD53C\uB97C \uD558\uB098\uC694?\n[[YELLOW]]\uD68C\uD53C\uB294 \uB2F9\uC2E0\uC774 \uC804\uD22C\uC5D0\uC11C \uC0C1\uCC98\uB97C \uC785\uC744 \uB54C \uC785\uB294\n[[YELLOW]]\uD53C\uD574\uB97C \uBC18\uAC10\uC2DC\uD0A4\uB294 \uC9C0\uC18D\uC801\uC778 \uAE30\uD68C\uC785\uB2C8\uB2E4.\n[[YELLOW]]\uC774\uAC83\uC740 \uB2F9\uC2E0\uC758 \uC2A4\uD0AC \uB808\uBCA8\uACFC \uC5F0\uACB0\uB429\uB2C8\uB2E4.
|
||||
##Alchemy
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]About Alchemy:\n[[YELLOW]]Alchemy is about brewing potions.\n[[YELLOW]]It provides a speed increase in the potion brew time, as well\n[[YELLOW]]as the addition of new (previously) unobtainable potions.\n\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need to brew potions.
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]How does Catalysis work?\n[[YELLOW]]Catalysis speeds of the brewing process, with a\n[[YELLOW]]max speed of 4x at level 1000.\n[[YELLOW]]This ability is unlocked at level 100 by default.
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]How does Concoctions work?\n[[YELLOW]]Concoctions allows brewing of more potions with custom ingredients.\n[[YELLOW]]Which special ingredients are unlocked is determined\n[[YELLOW]]by your Rank. There are 8 ranks to unlock.
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]Concoctions tier 1 ingredients:\n[[YELLOW]]Blaze Powder, Fermented Spider Eye, Ghast Tear, Redstone,\n[[YELLOW]]Glowstone Dust, Sugar, Glistering Melon, Golden Carrot,\n[[YELLOW]]Magma Cream, Nether Wart, Spider Eye, Suplhur, Water Lily,\n[[YELLOW]]Pufferfish\n[[YELLOW]](Vanilla Potions)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]Concoctions tier 2 ingredients:\n[[YELLOW]]Carrot (Potion of Haste)\n[[YELLOW]]Slimeball (Potion of Dullness)\n\n[[DARK_AQUA]]Concoctions tier 3 ingredients:\n[[YELLOW]]Quartz (Potion of Absorption)\n[[YELLOW]]Red Mushroom (Potion of Leaping)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]Concoctions tier 4 ingredients:\n[[YELLOW]]Apple (Potion of Health Boost)\n[[YELLOW]]Rotten Flesh (Potion of Hunger)\n\n[[DARK_AQUA]]Concoctions tier 5 ingredients:\n[[YELLOW]]Brown Mushroom (Potion of Nausea)\n[[YELLOW]]Ink Sack (Potion of Blindness)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]Concoctions tier 6 ingredients:\n[[YELLOW]]Fern (Potion of Saturation)\n\n[[DARK_AQUA]]Concoctions tier 7 ingredients:\n[[YELLOW]]Poisonous Potato (Potion of Decay)\n\n[[DARK_AQUA]]Concoctions tier 8 ingredients:\n[[YELLOW]]Regular Golden Apple (Potion of Resistance)
|
||||
##Archery
|
||||
Guides.Archery.Section.0=[[DARK_AQUA]]\uAD81\uC220\uC5D0 \uB300\uD558\uC5EC:\n[[YELLOW]]\uAD81\uC220\uC740 \uD65C\uACFC \uD654\uC0B4\uB85C \uC3D8\uB294 \uAC83\uC744 \uB73B\uD569\uB2C8\uB2E4.\n[[YELLOW]]\uAD81\uC220\uC740 PVP\uC5D0\uC11C \uB2F9\uC2E0\uC774 \uC801\uC744 \uD604\uD639\uC2DC\uD0A4\uB294 \uB2A5\uB825\uACFC\n[[YELLOW]]\uB808\uBCA8 \uD06C\uAE30\uC758 \uB370\uBBF8\uC9C0 \uBD80\uC2A4\uD130\uB97C \uAC19\uC740 \uAC83\uC73C\uB85C\n[[YELLOW]]\uC804\uD22C \uBCF4\uB108\uC2A4\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4. In addition to this, you can retrieve\n[[YELLOW]]some of your spent arrows from the corpses of your foes.\n\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need to shoot mobs or\n[[YELLOW]]other players.
|
||||
Guides.Archery.Section.1=[[DARK_AQUA]]How does Skill Shot work?\n[[YELLOW]]Skill Shot provides additional damage to your shots.\n[[YELLOW]]The bonus damage from Skill Shot increases as you\n[[YELLOW]]level in Archery.\n[[YELLOW]]With the default settings, your archery damage increases 10%\n[[YELLOW]]every 50 levels, to a maximum of 200% bonus damage.
|
||||
Guides.Archery.Section.2=[[DARK_AQUA]]How does Daze work?\n[[YELLOW]]You have a passive chance to daze other players when\n[[YELLOW]]you shoot them. When Daze triggers it forces your opponents\n[[YELLOW]]to look straight up for a short duration.\n[[YELLOW]]A Daze shot also deals an additional 4 damage (2 hearts).
|
||||
Guides.Archery.Section.3=[[DARK_AQUA]]How does Arrow Retrieval work?\n[[YELLOW]]You have a passive chance to retrieve some of your arrows\n[[YELLOW]]when you kill a mob with your bow.\n[[YELLOW]]This chance increases as you level in Archery.\n[[YELLOW]]By default, this ability increases by 0.1% per level, up to 100%\n[[YELLOW]]at level 1000.
|
||||
##Axes
|
||||
Guides.Axes.Section.0=[[DARK_AQUA]]About Axes:\n[[YELLOW]]With the Axes skill you can use your axe for much more then\n[[YELLOW]]just deforesting! You can hack and chop away at mobs\n[[YELLOW]]and players to gain XP, hitting mobs with the effect of\n[[YELLOW]]knockback and inflicting DEADLY criticals on mobs and players.\n[[YELLOW]]Your axe also becomes a hand-held woodchipper,\n[[YELLOW]]breaking down the enemy's armor with ease as your level\n[[YELLOW]]increases.\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need hit other mobs or players\n[[YELLOW]]with an Axe.
|
||||
Guides.Axes.Section.1=[[DARK_AQUA]]How does Skull Splitter work?\n[[YELLOW]]This ability allows you to deal an AoE (Area of Effect) hit.\n[[YELLOW]]This AoE hit will deal half as much damage as you did to the\n[[YELLOW]]main target, so it's great for clearing out large piles of mobs.
|
||||
Guides.Axes.Section.2=[[DARK_AQUA]]How does Critical Strikes work?\n[[YELLOW]]Critical Strikes is a passive ability which gives players a\n[[YELLOW]]chance to deal additional damage.\n[[YELLOW]]With the default settings, every 2 skill levels in Axes awards a\n[[YELLOW]]0.1% chance to deal a Critical Strike, causing 2.0 times damage\n[[YELLOW]]to mobs or 1.5 times damage against other players.
|
||||
Guides.Axes.Section.3=[[DARK_AQUA]]How does Axe Mastery work?\n[[YELLOW]]Axe Mastery is a passive ability that will add additional damage\n[[YELLOW]]to your hits when using Axes.\n[[YELLOW]]By default, the bonus damage increases by 1 every 50 levels,\n[[YELLOW]]up to a cap of 4 extra damage at level 200.
|
||||
Guides.Axes.Section.4=[[DARK_AQUA]]How does Armor Impact work?\n[[YELLOW]]Strike with enough force to shatter armor!\n[[YELLOW]]Armor Impact has a passive chance to damage your\n[[YELLOW]]opponent's armor. This damage increases as you level in Axes.
|
||||
Guides.Axes.Section.5=[[DARK_AQUA]]How does Greater Impact work?\n[[YELLOW]]You have a passive chance to achieve a greater impact when\n[[YELLOW]]hitting mobs or players with your axe.\n[[YELLOW]]By default this chance is 25%. This passive ability has an\n[[YELLOW]]extreme knockback effect, similar to the Knockback II\n[[YELLOW]]enchantment. In addition, it deals bonus damage to the target.
|
||||
##Excavation
|
||||
Guides.Excavation.Section.0=[[DARK_AQUA]]About Excavation:\n[[YELLOW]]Excavation is the act of digging up dirt to find treasures.\n[[YELLOW]]By excavating the land you will find treasures.\n[[YELLOW]]The more you do this the more treasures you can find.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you must dig with a shovel in hand.\n[[YELLOW]]Only certain materials can be dug up for treasures and XP.
|
||||
Guides.Excavation.Section.1=[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Grass, Dirt, Sand, Clay, Gravel, Mycelium, Soul Sand, Snow
|
||||
Guides.Excavation.Section.2=[[DARK_AQUA]]How to use Giga Drill Breaker:\n[[YELLOW]]With a shovel in hand right click to ready your tool.\n[[YELLOW]]Once in this state you have about 4 seconds to make\n[[YELLOW]]contact with Excavation compatible materials this will\n[[YELLOW]]activate Giga Drill Breaker.
|
||||
Guides.Excavation.Section.3=[[DARK_AQUA]]What is Giga Drill Breaker?\n[[YELLOW]]Giga Drill Breaker is an ability with a cooldown\n[[YELLOW]]tied to Excavation skill. It triples your chance\n[[YELLOW]]of finding treasures and enables instant break\n[[YELLOW]]on Excavation materials.
|
||||
Guides.Excavation.Section.4=[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it's\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]Just keep in mind that the higher your Excavation skill\n[[YELLOW]]is, the more treasures that can be found.\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.
|
||||
Guides.Excavation.Section.5=[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
##Fishing
|
||||
Guides.Fishing.Section.0=[[DARK_AQUA]]About Fishing:\n[[YELLOW]]With the Fishing skill, Fishing is exciting again!\n[[YELLOW]]Find hidden treasures, and shake items off mobs.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Catch fish.
|
||||
Guides.Fishing.Section.1=[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]This ability allows you to find treasure from fishing \n[[YELLOW]]with a small chance of the items being enchanted.\n[[YELLOW]]Every possible treasure for Fishing has a chance\n[[YELLOW]]to drop on any level. It depends however\n[[YELLOW]]what the rarity of the item is how often it will drop.\n[[YELLOW]]The higher your Fishing skill is, the better\n[[YELLOW]]your chances are to find better treasures.
|
||||
Guides.Fishing.Section.2=[[DARK_AQUA]]How does Ice Fishing work?\n[[YELLOW]]This passive skill allows you to fish in ice lakes!\n[[YELLOW]]Cast your fishing rod in an ice lake and the ability will\n[[YELLOW]]create a small hole in the ice to fish in.
|
||||
Guides.Fishing.Section.3=[[DARK_AQUA]]How does Master Angler work?\n[[YELLOW]]This passive skill increases the bite chance while fishing.\n[[YELLOW]]When you've unlocked this ability, fishing while in\n[[YELLOW]]a boat or when an ocean biome doubles the bite chance.
|
||||
Guides.Fishing.Section.4=[[DARK_AQUA]]How does Shake work?\n[[YELLOW]]This active ability allows you to shake items loose from mobs\n[[YELLOW]]by hooking them with the fishing rod. \n[[YELLOW]]Mobs will drop items they would normally drop on death.\n[[YELLOW]]It is also possible to acquire mob skulls, which are normally \n[[YELLOW]]unobtainable in survival mode.
|
||||
Guides.Fishing.Section.5=[[DARK_AQUA]]How does Fisherman's Diet work?\n[[YELLOW]]This passive skill increases the amount of hunger restored \n[[YELLOW]]from eating fish.
|
||||
Guides.Fishing.Section.6=[[DARK_AQUA]]Notes about Fishing:\n[[YELLOW]]Fishing drops are completely customizable,\n[[YELLOW]]so results vary server to server.
|
||||
##Herbalism
|
||||
Guides.Herbalism.Section.0=[[DARK_AQUA]]About Herbalism:\n[[YELLOW]]Herbalism is about collecting herbs and plants.\n\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Collect plants and herbs.
|
||||
Guides.Herbalism.Section.1=[[DARK_AQUA]]Compatible Blocks\n[[YELLOW]]Wheat, Potatoes, Carrots, Melons, \n[[YELLOW]]Pumpkins, Sugar Canes, Cocoa Beans, Flowers, Cacti, Mushrooms,\n[[YELLOW]]Nether Wart, Lily Pads, and Vines.
|
||||
Guides.Herbalism.Section.2=[[DARK_AQUA]]How does Green Terra work?\n[[YELLOW]]Green Terra is an active ability, you can right-click\n[[YELLOW]]while holding a hoe to activate Green Terra.\n[[YELLOW]]Green Terra grants players a chance to get 3x drops from\n[[YELLOW]]harvesting plants. It also gives players the ability to\n[[YELLOW]]spread life into blocks and transform them using seeds\n[[YELLOW]]from your inventory.
|
||||
Guides.Herbalism.Section.3=[[DARK_AQUA]]How does Green Thumb (Crops) work?\n[[YELLOW]]This passive ability will automatically replant crops when\n[[YELLOW]]harvesting.\n[[YELLOW]]Your chance of success depends on your Herbalism skill.
|
||||
Guides.Herbalism.Section.4=[[DARK_AQUA]]How does Green Thumb (Cobble/Stone Brick/Dirt) work?\n[[YELLOW]]This active ability allows you to turn blocks into their\n[[YELLOW]]"plant-related" counterparts. You can do this by right-clicking\n[[YELLOW]]a block, while holding seeds. This will consume 1 seed.
|
||||
Guides.Herbalism.Section.5=[[DARK_AQUA]]How does Farmer's Diet work?\n[[YELLOW]]This passive skill increases the amount of hunger restored \n[[YELLOW]]when eating Bread, Cookies, Melons, Mushroom Soup, Carrots,\n[[YELLOW]]and Potatoes.
|
||||
Guides.Herbalism.Section.6=[[DARK_AQUA]]How does Hylian Luck work?\n[[YELLOW]]This passive ability gives you a chance to find rare items\n[[YELLOW]]when certain blocks are broken with a sword.
|
||||
Guides.Herbalism.Section.7=[[DARK_AQUA]]How do Double Drops work?\n[[YELLOW]]This passive ability gives players more yield from their\n[[YELLOW]]harvests.
|
||||
##Mining
|
||||
Guides.Mining.Section.0=[[DARK_AQUA]]About Mining:\n[[YELLOW]]Mining consists of mining stone and ores. It provides bonuses\n[[YELLOW]]to the amount of materials dropped while mining.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you must mine with a pickaxe in hand.\n[[YELLOW]]Only certain blocks award XP.
|
||||
Guides.Mining.Section.1=[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Stone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n[[YELLOW]]Lapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n[[YELLOW]]Glowstone, and Netherrack.
|
||||
Guides.Mining.Section.2=[[DARK_AQUA]]How to use Super Breaker:\n[[YELLOW]]With a pickaxe in your hand, right click to ready your tool.\n[[YELLOW]]Once in this state, you have about 4 seconds to make contact\n[[YELLOW]]with Mining compatible materials, which will activate Super\n[[YELLOW]]Breaker.
|
||||
Guides.Mining.Section.3=[[DARK_AQUA]]What is Super Breaker?\n[[YELLOW]]Super Breaker is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It triples your chance of extra items dropping and\n[[YELLOW]]enables instant break on Mining materials.
|
||||
Guides.Mining.Section.4=[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]crouch and right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.
|
||||
Guides.Mining.Section.5=[[DARK_AQUA]]How does Blast Mining work?\n[[YELLOW]]Blast Mining is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It gives bonuses when mining with TNT and allows you\n[[YELLOW]]to remote detonate TNT. There are three parts to Blast Mining.\n[[YELLOW]]The first part is Bigger Bombs, which increases blast radius.\n[[YELLOW]]The second is Demolitions Expert, which decreases damage\n[[YELLOW]]from TNT explosions. The third part simply increases the\n[[YELLOW]]amount of ores dropped from TNT and decreases the\n[[YELLOW]]debris dropped.
|
||||
##Repair
|
||||
Guides.Repair.Section.0=[[DARK_AQUA]]About Repair:\n[[YELLOW]]Repair allows you to use an iron block to repair armor and\n[[YELLOW]]tools, or a gold block to salvage armor and tools.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Repair tools or armor using the mcMMO Anvil. This is an\n[[YELLOW]]iron block by default and should not be confused with\n[[YELLOW]]the Vanilla Minecraft Anvil.
|
||||
Guides.Repair.Section.1=[[DARK_AQUA]]How can I use Repair?\n[[YELLOW]]Place down a mcMMO Anvil and right-click to repair the item \n[[YELLOW]]you're currently holding. This consumes 1 item on every use.
|
||||
Guides.Repair.Section.2=[[DARK_AQUA]]How does Repair Mastery work?\n[[YELLOW]]Repair Mastery increases the repair amount. The extra amount\n[[YELLOW]]repaired is influenced by your Repair skill level.
|
||||
Guides.Repair.Section.3=[[DARK_AQUA]]How does Super Repair work?\n[[YELLOW]]Super Repair is a passive ability. When repairing an item,\n[[YELLOW]]it grants players a chance to repair an item with\n[[YELLOW]]double effectiveness.
|
||||
Guides.Repair.Section.4=[[DARK_AQUA]]How does Arcane Forging work?\n[[YELLOW]]This passive ability allows you to repair items with a certain\n[[YELLOW]]chance of maintaining its enchantments. The enchants may be\n[[YELLOW]]kept at their existing levels, downgraded to a lower level,\n[[YELLOW]]or lost entirely.
|
||||
##Salvage
|
||||
Guides.Salvage.Section.0=[[DARK_AQUA]]About Salvage:\n[[YELLOW]]Salvage allows you to use an gold block to salvage armor and\n[[YELLOW]]tools.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Salvage is a child skill of Repair and Fishing, your Salvage\n[[YELLOW]]skill level is based on your Fishing and Repair skill levels.
|
||||
Guides.Salvage.Section.1=[[DARK_AQUA]]How can I use Salvage?\n[[YELLOW]]Place down a mcMMO Salvage Anvil and right-click to salvage\n[[YELLOW]]the item you're currently holding. This will break apart the item,\n[[YELLOW]]and give back materials used to craft the item.\n\n[[YELLOW]]For example, salvaging an iron pickaxe will give you iron bars.
|
||||
Guides.Salvage.Section.2=[[DARK_AQUA]]How does Advanced Salvage work?\n[[YELLOW]]When unlocked, this ability allows you to salvage damaged items.\n[[YELLOW]]The yield percentage increases as you level up. A higher yield\n[[YELLOW]]means that you can get more materials back.\n[[YELLOW]]With advanced salvage you will always get 1 material back,\n[[YELLOW]]unless the item is too damaged. So you don't have to worry\n[[YELLOW]]about destroying items without getting anything in return.
|
||||
Guides.Salvage.Section.3=[[DARK_AQUA]]To illustrate how this works, here's an example:\n[[YELLOW]]Let's say we salvage a gold pickaxe which is damaged for 20%,\n[[YELLOW]]this means that the maximum amount you could get is only 2\n[[YELLOW]](because the pick is crafted with 3 ingots - each worth\n[[YELLOW]]33,33% durability) which is equal to 66%. If your yield\n[[YELLOW]]percentage is below 66% you are not able to get 2 ingots.\n[[YELLOW]]If it is above this value you are able to gain the "full amount",\n[[YELLOW]]which means that you will get 2 ingots.
|
||||
Guides.Salvage.Section.4=[[DARK_AQUA]]How does Arcane Salvage work?\n[[YELLOW]]This ability allows you to get enchanted books when salvaging\n[[YELLOW]]enchanted items. Depending on your level the chance of\n[[YELLOW]]successfully extracting a full or partial enchantment varies.\n\n[[YELLOW]]When an enchantment is partially extracted, the enchantment\n[[YELLOW]]book will have a lower level enchantment compared to what\n[[YELLOW]]it was on the item.
|
||||
##Smelting
|
||||
Guides.Smelting.Section.0=Coming soon...
|
||||
##Swords
|
||||
Guides.Swords.Section.0=[[DARK_AQUA]]About Swords:\n[[YELLOW]]This skill awards combat bonuses to anyone fighting with a\n[[YELLOW]]sword.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]XP is gained based on the amount of damage dealt to mobs or \n[[YELLOW]]other players when wielding a sword.
|
||||
Guides.Swords.Section.1=[[DARK_AQUA]]How does Serrated Strikes work?\n[[YELLOW]]Serrated Strikes is an active ability, you can activate it by\n[[YELLOW]]right-clicking with a sword. This ability allows you to deal \n[[YELLOW]]an AoE (Area of Effect) hit. This AoE will do a bonus 25%\n[[YELLOW]]damage and will inflict a bleed effect that lasts for 5 ticks.
|
||||
Guides.Swords.Section.2=[[DARK_AQUA]]How does Counter Attack work?\n[[YELLOW]]Counter Attack is an active ability. When blocking and taking\n[[YELLOW]]hits from mobs, you will have a chance to reflect 50% of \n[[YELLOW]]the damage that was taken.
|
||||
Guides.Swords.Section.3=[[DARK_AQUA]]How does Bleed work?\n[[YELLOW]]Bleed causes enemies to take damage every two seconds. The \n[[YELLOW]]target will bleed until the effect wears off, or death, \n[[YELLOW]]whichever comes first.\n[[YELLOW]]The duration of the bleed is increased by your sword skill.
|
||||
##Taming
|
||||
Guides.Taming.Section.0=[[DARK_AQUA]]About Taming:\n[[YELLOW]]Taming will give players various combat bonuses when using\n[[YELLOW]]tamed wolves.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you need to tame wolves/ocelots or\n[[YELLOW]]get into combat with your wolves.
|
||||
Guides.Taming.Section.1=[[DARK_AQUA]]How does Call of the Wild work?\n[[YELLOW]]Call of the Wild is an active ability that will allow you to summon\n[[YELLOW]]a wolf or an ocelot by your side. You can do this by\n[[YELLOW]]left-clicking while holding bones or fish.
|
||||
Guides.Taming.Section.2=[[DARK_AQUA]]How does Beast Lore work?\n[[YELLOW]]Beast Lore allows players to inspect pets and to check the\n[[YELLOW]]stats of wolves and ocelots. Left-click a wolf or ocelot to use\n[[YELLOW]]Beast Lore.
|
||||
Guides.Taming.Section.3=[[DARK_AQUA]]How does Gore work?\n[[YELLOW]]Gore is a passive ability that has a chance of inflicting a\n[[YELLOW]]bleeding effect on your wolves' targets.
|
||||
Guides.Taming.Section.4=[[DARK_AQUA]]How does Sharpened Claws work?\n[[YELLOW]]Sharpened Claws provides a damage bonus to damage dealt\n[[YELLOW]]by wolves. The damage bonus depends on your Taming level.
|
||||
Guides.Taming.Section.5=[[DARK_AQUA]]How does Environmentally Aware work?\n[[YELLOW]]This passive ability will allow wolves to teleport to you when\n[[YELLOW]]they get near hazards, such as Cacti/Lava. It will also give\n[[YELLOW]]wolves fall damage immunity.
|
||||
Guides.Taming.Section.6=[[DARK_AQUA]]How does Thick Fur work?\n[[YELLOW]]This passive ability will reduce damage and make wolves\n[[YELLOW]]fire resistant.
|
||||
Guides.Taming.Section.7=[[DARK_AQUA]]How does Shock Proof work?\n[[YELLOW]]This passive ability reduces damage done to wolves\n[[YELLOW]]from explosions.
|
||||
Guides.Taming.Section.8=[[DARK_AQUA]]How does Fast Food Service work?\n[[YELLOW]]This passive ability gives wolves a chance to heal whenever\n[[YELLOW]]they perform an attack.
|
||||
##Unarmed
|
||||
Guides.Unarmed.Section.0=[[DARK_AQUA]]About Unarmed:\n[[YELLOW]]Unarmed will give players various combat bonuses when using\n[[YELLOW]]your fists as a weapon. \n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]XP is gained based on the amount of damage dealt to mobs \n[[YELLOW]]or other players when unarmed.
|
||||
Guides.Unarmed.Section.1=[[DARK_AQUA]]How does Berserk work?\n[[YELLOW]]Beserk is an active ability that is activated by\n[[YELLOW]]right-clicking. While in Beserk mode, you deal 50% more\n[[YELLOW]]damage and you can break weak materials instantly, such as\n[[YELLOW]]Dirt and Grass.
|
||||
Guides.Unarmed.Section.2=[[DARK_AQUA]]How does Iron Arm work?\n[[YELLOW]]Iron Arm increases the damage dealt when hitting mobs or\n[[YELLOW]]players with your fists.
|
||||
Guides.Unarmed.Section.3=[[DARK_AQUA]]How does Arrow Deflect work?\n[[YELLOW]]Arrow Deflect is a passive ability that gives you a chance\n[[YELLOW]]to deflect arrows shot by Skeletons or other players.\n[[YELLOW]]The arrow will fall harmlessly to the ground.
|
||||
Guides.Unarmed.Section.4=[[DARK_AQUA]]How does Iron Grip work?\n[[YELLOW]]Iron Grip is a passive ability that counters disarm. As your\n[[YELLOW]]unarmed level increases, the chance of preventing a disarm increases.
|
||||
Guides.Unarmed.Section.5=[[DARK_AQUA]]How does Disarm work?\n[[YELLOW]]This passive ability allows players to disarm other players,\n[[YELLOW]]causing the target's equipped item to fall to the ground.
|
||||
##Woodcutting
|
||||
Guides.Woodcutting.Section.0=[[DARK_AQUA]]About Woodcutting:\n[[YELLOW]]Woodcutting is all about chopping down trees.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]XP is gained whenever you break log blocks.
|
||||
Guides.Woodcutting.Section.1=[[DARK_AQUA]]How does Tree Feller work?\n[[YELLOW]]Tree Feller is an active ability, you can right-click\n[[YELLOW]]while holding an ax to activate Tree Feller. This will\n[[YELLOW]]cause the entire tree to break instantly, dropping all\n[[YELLOW]]of its logs at once.
|
||||
Guides.Woodcutting.Section.2=[[DARK_AQUA]]How does Leaf Blower work?\n[[YELLOW]]Leaf Blower is a passive ability that will cause leaf\n[[YELLOW]]blocks to break instantly when hit with an axe. By default,\n[[YELLOW]]this ability unlocks at level 100.
|
||||
Guides.Woodcutting.Section.3=[[DARK_AQUA]]How do Double Drops work?\n[[YELLOW]]This passive ability gives you a chance to obtain an extra\n[[YELLOW]]block for every log you chop.
|
||||
#INSPECT
|
||||
Inspect.Offline=[[RED]]\uADF8 \uD50C\uB808\uC774\uC5B4\uB294 \uC624\uD504\uB77C\uC778 \uC785\uB2C8\uB2E4, \uC624\uC9C1 op\uB4E4\uB9CC \uAC80\uC0AC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4!
|
||||
Inspect.OfflineStats=mcMMO \uC624\uD504\uB77C\uC778 \uC720\uC800 \uC2A4\uD15F\uC740 [[YELLOW]]{0} \uC785\uB2C8\uB2E4
|
||||
Inspect.Stats=[[GREEN]]mcMMO \uC2A4\uD15F\uC740 [[YELLOW]]{0} \uC785\uB2C8\uB2E4
|
||||
Inspect.TooFar=\uB2F9\uC2E0\uC740 \uADF8 \uD50C\uB808\uC774\uC5B4\uC640 \uB108\uBB34 \uBA40\uB9AC \uB5A8\uC5B4\uC838 \uC788\uC5B4 \uAC80\uC0AC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!
|
||||
#ITEMS
|
||||
Item.ChimaeraWing.Fail=**\uD0A4\uBA54\uB77C\uC758 \uB0A0\uAC1C \uC2E4\uD328!**
|
||||
Item.ChimaeraWing.Pass=**\uD0A4\uBA54\uB77C \uB0A0\uAC1C**
|
||||
Item.ChimaeraWing.Name=\uD0A4\uBA54\uB77C \uB0A0\uAC1C
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]\uB2F9\uC2E0\uC758 \uCE68\uB300\uB85C \uD154\uB808\uD3EC\uD2B8\uD569\uB2C8\uB2E4.
|
||||
Item.Generic.Wait=\uD0A4\uBA54\uB77C\uC758 \uB0A0\uAC1C\uB97C \uB2E4\uC2DC \uC0AC\uC6A9\uD560\uB824\uBA74 [[YELLOW]]({0}\uCD08) [[RED]]\uAE30\uB2EC\uB824\uC57C \uD569\uB2C8\uB2E4!
|
||||
Item.Injured.Wait=\uB2F9\uC2E0\uC740 \uCD5C\uADFC\uC5D0 \uBD80\uC0C1\uC744 \uB2F9\uD588\uACE0 \uC0AC\uC6A9\uD560\uB824\uBA74 [[YELLOW]]({0}\uCD08) [[WHITE]]\uAE30\uB2EC\uB824\uC57C \uD569\uB2C8\uB2E4
|
||||
Item.FluxPickaxe.Name=\uC6A9\uD574 \uACE1\uAD2D\uC774
|
||||
Item.FluxPickaxe.Lore.1=[[GRAY]]\uAD11\uBB3C\uC744 \uC989\uC2DC \uC81C\uB828\uD560 \uAE30\uD68C\uB97C \uAC00\uC9D1\uB2C8\uB2E4.
|
||||
Item.FluxPickaxe.Lore.2=[[GRAY]]\uC81C\uB828 \uC694\uAD6C \uB808\uBCA8 {0} \uC774\uC0C1
|
||||
#TELEPORTATION
|
||||
Teleport.Commencing=[[GRAY]]\uD154\uB808\uD3EC\uD2B8\uAC00 [[GOLD]]({0}) [[GRAY]]\uCD08\uC548\uC5D0 \uC2DC\uC791\uB429\uB2C8\uB2E4, \uAC00\uB9CC\uD788 \uAE30\uB2EC\uB824\uC8FC\uC138\uC694...
|
||||
Teleport.Cancelled=[[DARK_RED]]\uD154\uB808\uD3EC\uD2B8 \uCDE8\uC18C\uB428!
|
||||
#SKILLS
|
||||
Skills.Child=[[GOLD]](\uD558\uC704 \uC2A4\uD0AC)
|
||||
Skills.Disarmed=[[DARK_RED]]\uB2F9\uC2E0\uC740 \uBB34\uC7A5 \uD574\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]\uB2F9\uC2E0\uC740 [[GRAY]]{0}\uAC00 \uB354 \uD544\uC694\uD569\uB2C8\uB2E4
|
||||
Skills.Parents=\uC0C1\uC704\uB4E4
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.ChildStats={0}[[GREEN]]{1}
|
||||
Skills.TooTired=\uC2A4\uD0AC \uC7AC \uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04: ({0}\uCD08)
|
||||
Skills.Cancelled={0} \uCDE8\uC18C\uB428!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]\uB2E4\uC2DC \uC6B0-\uD074\uB9AD\uC744 \uD558\uBA74 \uD655\uC778 [[GOLD]]{0}[[GREEN]]. \uC88C-\uD074\uB9AD\uC744 \uD558\uBA74 \uCDE8\uC18C\uAC00 \uB429\uB2C8\uB2E4.
|
||||
#STATISTICS
|
||||
Stats.Header.Combat=[[GOLD]]-=\uC804\uD22C \uC2A4\uD0AC=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=\uC218\uC9D1 \uC2A4\uD0AC=-
|
||||
Stats.Header.Misc=[[GOLD]]-=\uAE30\uD0C0 \uC2A4\uD0AC=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] \uC2A4\uD15F
|
||||
#PERKS
|
||||
Perks.XP.Name=\uACBD\uD5D8\uCE58
|
||||
Perks.XP.Desc=\uD2B9\uC815 \uC2A4\uD0AC\uC5D0 \uACBD\uD5D8\uCE58 \uBD80\uC2A4\uD2B8\uB97C \uBC1B\uC74C.
|
||||
Perks.Lucky.Name=\uD589\uC6B4
|
||||
Perks.Lucky.Desc={0} \uC2A4\uD0AC\uACFC \uB2A5\uB825\uC5D0 33.3%\uC758 \uB354 \uB9CE\uC740 \uD65C\uC131\uD654 \uD655\uB960\uC744 \uBD80\uC5EC\uD569\uB2C8\uB2E4.
|
||||
Perks.Lucky.Desc.Login=\uD2B9\uC815 \uC2A4\uD0AC\uACFC \uB2A5\uB825\uC5D0 33.3%\uC758 \uB354 \uB9CE\uC740 \uD65C\uC131\uD654 \uD655\uB960\uC744 \uBD80\uC5EC\uD569\uB2C8\uB2E4.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} \uC6B4\uC88B\uC740 \uD2B9\uC804\uACFC \uD568\uAED8)
|
||||
Perks.Cooldowns.Name=\uBE60\uB978 \uD68C\uBCF5
|
||||
Perks.Cooldowns.Desc=\uC7AC\uC0AC\uC6A9\uB300\uAE30\uC2DC\uAC04\uC744 {0}\uB9CC\uD07C \uC904\uC785\uB2C8\uB2E4
|
||||
Perks.ActivationTime.Name=\uC778\uB0B4\uB825
|
||||
Perks.ActivationTime.Desc=\uB2A5\uB825 \uD65C\uC131 \uC2DC\uAC04\uC774 {0}\uCD08\uB85C \uC99D\uAC00\uD569\uB2C8\uB2E4.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}\uCD08\uC758 \uC778\uB0B4\uB825 \uD2B9\uC804)
|
||||
#HARDCORE
|
||||
Hardcore.Mode.Disabled=[[GOLD]][mcMMO] \uD558\uB4DC\uCF54\uC5B4 \uBAA8\uB4DC {0}\uAC00 {1}\uC5D0 \uBE44\uD65C\uC131\uD654\uB428.
|
||||
Hardcore.Mode.Enabled=[[GOLD]][mcMMO] \uD558\uB4DC\uCF54\uC5B4 \uBAA8\uB4DC {0}\uAC00 {1}\uC5D0 \uD65C\uC131\uD654\uB428.
|
||||
Hardcore.DeathStatLoss.Name=\uC2A4\uD0AC \uB370\uC2A4 \uD328\uB110\uD2F0
|
||||
Hardcore.DeathStatLoss.PlayerDeath=[[GOLD]][mcMMO] [[DARK_RED]]\uB2F9\uC2E0\uC740 \uC8FD\uC5B4\uC11C [[BLUE]]{0}[[DARK_RED]] \uB808\uBCA8\uC744 \uC783\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
Hardcore.DeathStatLoss.PercentageChanged=[[GOLD]][mcMMO] \uC2A4\uD15F \uAC10\uC18C \uBE44\uC728\uC774 {0}\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4..
|
||||
Hardcore.Vampirism.Name=\uBC40\uD30C\uC774\uC5B4\uB9AC\uC810
|
||||
Hardcore.Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]]\uB2D8\uC740 \uD2B9\uBCC4\uD55C \uAE30\uC220\uC744 \uAC00\uC9C0\uACE0 \uC788\uC9C0\uC54A\uC544 \uB2F9\uC2E0\uC774 \uAC00\uC838\uAC08 \uC9C0\uC2DD\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
Hardcore.Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]\uB2F9\uC2E0\uC740 [[YELLOW]]{1}[[DARK_AQUA]]\uB2D8\uC73C\uB85C\uBD80\uD130 [[BLUE]]{0}[[DARK_AQUA]] \uB808\uBCA8\uC744 \uD6D4\uCCE4\uC2B5\uB2C8\uB2E4.
|
||||
Hardcore.Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]]\uB2D8\uC740 \uB2F9\uC2E0\uC758 \uC9C0\uC2DD\uC744 \uAC00\uC838\uAC08\uC218 \uC5C6\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Hardcore.Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]]\uB2D8\uC740 \uB2F9\uC2E0\uC5D0\uAC8C\uC11C [[BLUE]]{1}[[DARK_RED]] \uB808\uBCA8\uC744 \uD6D4\uCCD0\uAC14\uC2B5\uB2C8\uB2E4!
|
||||
Hardcore.Vampirism.PercentageChanged=[[GOLD]][mcMMO] \uC2A4\uD15F \uD761\uD608 \uBE44\uC728\uC774 {0}\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
#MOTD
|
||||
MOTD.Donate=[[DARK_AQUA]]\uAE30\uBD80 \uC815\uBCF4:
|
||||
MOTD.Hardcore.Enabled=[[GOLD]][mcMMO] [[DARK_AQUA]]\uD558\uB4DC\uCF54\uC5B4 \uBAA8\uB4DC \uD65C\uC131\uD654\uB428: [[DARK_RED]]{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\uB370\uC2A4 \uD328\uB110\uD2F0 \uB2A5\uB825: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\uBC40\uD30C\uC774\uC5B4\uB9AC\uC810 \uC2A4\uD15F \uD761\uC218: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO \uD2B9\uC804]
|
||||
MOTD.Version=[[GOLD]][mcMMO] \uAD6C\uB3D9\uC911\uC778 \uBC84\uC804 [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO \uC6F9\uC0AC\uC774\uD2B8
|
||||
#SMELTING
|
||||
Smelting.Ability.FluxMining=\uC720\uB3D9 \uCC44\uAD74 \uD655\uB960: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=\uC720\uB3D9 \uD6A8\uC728\uC131 \uBC30\uC728: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0={0}\uB808\uBCA8 \uB54C \uAE30\uC220\uC774 \uD574\uC81C\uB429\uB2C8\uB2E4 (\uBC14\uB2D0\uB77C XP \uBD80\uC2A4\uD2B8)
|
||||
Smelting.Ability.Locked.1={0}\uB808\uBCA8 \uB54C \uAE30\uC220\uC774 \uD574\uC81C\uB429\uB2C8\uB2E4 (\uC720\uB3D9 \uCC44\uAD74)
|
||||
Smelting.Ability.SecondSmelt=\uB450\uBC88\uC9F8 \uC7AC\uB828 \uD655\uB960: [[YELLOW]{0}
|
||||
Smelting.Ability.VanillaXPBoost=\uBC14\uB2D0\uB77C XP \uBC30\uC728: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=\uC720\uB3D9 \uD6A8\uC728\uC131
|
||||
Smelting.SubSkill.FuelEfficiency.Description=\uD654\uB85C\uC5D0\uC11C \uC7AC\uB828\uC2DC \uC5F0\uB8CC \uC5F0\uC18C \uC2DC\uAC04 \uC99D\uAC00
|
||||
Smelting.SubSkill.SecondSmelt.Name=\uB450\uBC88\uC9F8 \uC81C\uB828
|
||||
Smelting.SubSkill.SecondSmelt.Description=\uC81C\uB828\uC2DC \uC5BB\uB294 \uC790\uC6D0 2\uBC30
|
||||
Smelting.Effect.4=\uBC14\uB2D0\uB77C XP \uBD80\uC2A4\uD2B8
|
||||
Smelting.Effect.5=\uC81C\uB828\uC911 \uBC14\uB2D0\uB77C XP \uC5BB\uAE30 \uC99D\uAC00
|
||||
Smelting.SubSkill.FluxMining.Name=\uC720\uB3D9 \uCC44\uAD74
|
||||
Smelting.SubSkill.FluxMining.Description=\uCC44\uAD74\uC911 \uAD11\uBB3C \uC989\uC2DC \uC7AC\uB828 \uD655\uB960
|
||||
Smelting.FluxMining.Success=[[GREEN]]\uAD11\uBB3C\uC774 \uC7AC\uB828\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
|
||||
Smelting.Listener=\uC81C\uB828(Smelting):
|
||||
Smelting.SkillName=\uC81C\uB828
|
||||
#COMMAND DESCRIPTIONS
|
||||
Commands.Description.addlevels=mcMMO \uB808\uBCA8\uC744 \uC720\uC800\uC5D0\uAC8C \uCD94\uAC00
|
||||
Commands.Description.adminchat=mcMMO \uAD00\uB9AC\uC790 \uCC44\uD305 \uCF1C\uAE30/\uB044\uAE30\uB098 \uAD00\uB9AC\uC790 \uCC44\uD305 \uBA54\uC138\uC9C0 \uBCF4\uB0B4\uAE30
|
||||
Commands.Description.addxp=mcMMO \uACBD\uD5D8\uCE58\uB97C \uC720\uC800\uC5D0\uAC8C \uCD94\uAC00
|
||||
Commands.Description.hardcore=mcMMO \uD558\uB4DC\uCF54\uC5B4 \uD655\uB960 \uC218\uC815\uC774\uB098 \uD558\uB4DC\uCF54\uC5B4 \uBAA8\uB4DC \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.Description.inspect=\uB2E4\uB978 \uD50C\uB808\uC774\uC5B4\uC758 mcMMO \uC790\uC138\uD55C \uC815\uBCF4 \uBCF4\uAE30
|
||||
Commands.Description.mcability=mcMMO \uC6B0-\uD074\uB9AD \uB2A5\uB825 \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.Description.mccooldown=\uBAA8\uB4E0 mcMMO \uB2A5\uB825 \uC7AC \uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04 \uBCF4\uAE30
|
||||
Commands.Description.mcgod=mcMMO \uBD88\uC0AC\uC2E0-\uBAA8\uB4DC \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.Description.mchud=mcMMO HUD \uBC29\uC2DD \uBCC0\uACBD
|
||||
Commands.Description.mcmmo=mcMMO \uC81C\uC791\uC790 \uC124\uBA85 \uBCF4\uAE30
|
||||
Commands.Description.mcnotify=mcMMO \uB2A5\uB825 \uCC44\uD305 \uC54C\uB9BC \uBCF4\uAE30 \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.Description.mcpurge={0} \uB2EC \uC774\uC0C1 \uC811\uC18D\uC548\uD55C \uC720\uC800\uC758 mcMMO \uB808\uBCA8\uACFC \uC720\uC800\uB97C mcMMO \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uCD08\uAE30\uD654\uC2DC\uD0B4
|
||||
Commands.Description.mcrank=\uD50C\uB808\uC774\uC5B4 mcMMO \uC21C\uC704 \uBCF4\uAE30
|
||||
Commands.Description.mcrefresh=\uBAA8\uB4E0 mcMMO \uCFE8\uB2E4\uC6B4 \uCD08\uAE30\uD654
|
||||
Commands.Description.mcremove=\uC720\uC800 mcMMO \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC0AD\uC81C
|
||||
Commands.Description.mcscoreboard=\uB2F9\uC2E0\uC758 mcMMO \uC810\uC218\uD310 \uAD00\uB9AC
|
||||
Commands.Description.mcstats=\uC790\uC2E0\uC758 mcMMO \uB808\uBCA8\uACFC XP \uBCF4\uAE30
|
||||
Commands.Description.mctop=mcMMO \uC810\uC218\uD45C \uBCF4\uAE30
|
||||
Commands.Description.mmoedit=\uC720\uC800\uC758 mcMMO \uB808\uBCA8 \uC218\uC815
|
||||
Commands.Description.mmoupdate=mcMMO \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB97C flatfile\uC5D0\uC11C MySQL\uB85C \uC804\uD658
|
||||
Commands.Description.mcconvert=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0C0\uC785 \uB610\uB294 \uACBD\uD5D8 \uACF5\uC2DD \uD0C0\uC785 \uC804\uD658
|
||||
Commands.Description.mmoshowdb=\uD604\uC7AC \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0C0\uC785 \uC774\uB984 \uBCF4\uAE30(\uB098\uC911\uC5D0 /mmoupdate\uC640 \uD568\uAED8 \uC4F0\uC785\uB2C8\uB2E4)
|
||||
Commands.Description.party=\uB2E4\uC591\uD55C mcMMO \uD30C\uD2F0 \uC124\uC815 \uAD00\uB9AC
|
||||
Commands.Description.partychat=mcMMO \uD30C\uD2F0 \uCC44\uD305 \uCF1C\uAE30/\uB044\uAE30\uB098 \uD30C\uD2F0 \uCC44\uD305 \uBA54\uC138\uC9C0 \uBCF4\uB0B4\uAE30
|
||||
Commands.Description.ptp=mcMMO \uD30C\uD2F0 \uB9F4\uBC84 \uD154\uB808\uD3EC\uD2B8
|
||||
Commands.Description.Skill=mcMMO \uAE30\uC220 {0}\uC758 \uC790\uC138\uD55C \uC815\uBCF4 \uBCF4\uAE30
|
||||
Commands.Description.skillreset=\uC720\uC800\uC758 mcMMO \uB808\uBCA8 \uC7AC\uC124\uC815
|
||||
Commands.Description.vampirism=mcMMO \uBC40\uD30C\uC774\uC5B4\uB9AC\uC810 \uBE44\uC728\uC774\uB098 \uBC40\uD30C\uC774\uC5B4\uB9AC\uC810 \uBAA8\uB4DC \uCF1C\uAE30/\uB044\uAE30
|
||||
Commands.Description.xplock=\uBA85\uD655\uD55C mcMMO \uAE30\uC220\uC758 mcMMO xp \uBC14\uB97C \uC7A0\uAE08
|
||||
Commands.Description.xprate=mcMMO XP \uBC30\uC728 \uC218\uC815\uC774\uB098 mcMMO XP \uC774\uBCA4\uD2B8 \uC2DC\uC791
|
||||
#UPDATE CHECKER
|
||||
UpdateChecker.outdated=\uB2F9\uC2E0\uC740 mcMMO \uAD6C\uBC84\uC804\uC744 \uC0AC\uC6A9\uC911\uC785\uB2C8\uB2E4!
|
||||
UpdateChecker.newavailable=\uC2E0 \uBC84\uC804\uC774 BukkitDev\uC5D0 \uC5C5\uB85C\uB4DC\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
#SCOREBOARD HEADERS
|
||||
Scoreboard.Header.PlayerStats=mcMMO \uC2A4\uD15F
|
||||
Scoreboard.Header.PlayerCooldowns=mcMMO \uC7AC \uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04
|
||||
Scoreboard.Header.PlayerRank=mcMMO \uC21C\uC704
|
||||
Scoreboard.Header.PlayerInspect=mcMMO \uC2A4\uD15F:
|
||||
Scoreboard.Header.PowerLevel=\uCD1D \uB808\uBCA8
|
||||
Scoreboard.Misc.PowerLevel=[[GOLD]]\uCD1D \uB808\uBCA8
|
||||
Scoreboard.Misc.Level=[[DARK_AQUA]]\uB808\uBCA8
|
||||
Scoreboard.Misc.CurrentXP=[[GREEN]]\uD604\uC7AC XP
|
||||
Scoreboard.Misc.RemainingXP=\uB0A8\uC740 XP
|
||||
Scoreboard.Misc.Cooldown=[[LIGHT_PURPLE]]\uC7AC \uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04
|
||||
Scoreboard.Misc.Overall=[[GOLD]]\uC885\uD569
|
||||
#DATABASE RECOVERY
|
||||
Profile.Loading.Success=[[GREEN]]\uB2F9\uC2E0\uC758 mcMMO \uD504\uB85C\uD30C\uC77C\uC774 \uBD88\uB7EC\uC640\uC84C\uC2B5\uB2C8\uB2E4.
|
||||
Profile.Loading.Failure=mcMMO\uB294 \uC5EC\uC804\uD788 \uB2F9\uC2E0\uC758 \uB370\uC774\uD130\uB97C \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2F9\uC2E0\uC740 \uC544\uB9C8\uB3C4 [[AQUA]]\uC11C\uBC84\uAD00\uB9AC\uC790\uC640 \uC5F0\uB77D[[RED]]\uD558\uAE30\uB97C \uC6D0\uD560 \uAC83\uC785\uB2C8\uB2E4.\n[[YELLOW]]\uB2F9\uC2E0\uC740 \uC5EC\uC804\uD788 \uC11C\uBC84\uC5D0\uC11C \uAC8C\uC784\uC911\uC774\uC9C0\uB9CC, \uB2F9\uC2E0\uC740 [[BOLD]]mcMMO \uB808\uBCA8\uC774 \uC5C6\uACE0[[YELLOW]] \uB2F9\uC2E0\uC774 \uC5BB\uC740 \uC5B4\uB290 XP\uB3C4 [[BOLD]]\uC800\uC7A5\uB418\uC9C0 \uC54A\uC744 \uAC81\uB2C8\uB2E4[[YELLOW]].
|
||||
Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]] mcMMO\uB294 [[YELLOW]]{0}[[RED]] \uD50C\uB808\uC774\uC5B4 \uB370\uC774\uD130 \uC77D\uAE30\uAC00 \uBD88\uAC00\uB2A5\uD569\uB2C8\uB2E4. [[LIGHT_PURPLE]]\uB2F9\uC2E0\uC758 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC124\uCE58\uB97C \uAC80\uC0AC\uD574\uC8FC\uC138\uC694.
|
||||
|
||||
@@ -1,575 +0,0 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Mi\u0119kkie L\u0105dowanie**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Unikni\u0119to**
|
||||
Acrobatics.DodgeChance=Szansa na Unik: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=Przewr\u00f3t
|
||||
Acrobatics.SubSkill.Roll.Description=Redukuje lub te\u017c ca\u0142kowicie usuwa obra\u017cenia od upadku
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=\u0141agodny Przewr\u00f3t
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=Dwukrotnie bardziej efektywne niz zwykly Przewrot
|
||||
Acrobatics.SubSkill.Dodge.Name=Unik
|
||||
Acrobatics.SubSkill.Dodge.Description=Redukuje obra\u017cenia o po\u0142owe
|
||||
Acrobatics.Listener=Akrobatyka:
|
||||
Acrobatics.SubSkill.Roll.Chance=Szansa na Przewr\u00f3t: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=Szansa na \u0141agodny Przewr\u00f3t: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Przewr\u00f3t**
|
||||
Acrobatics.SkillName=AKROBATYKA
|
||||
Acrobatics.Skillup=Umiejetnosc akrobatyka wzrosla o {0}. Razem ({1})
|
||||
Archery.Combat.DazeChance=Szansa na Oszolomienie: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=Szansa na Odzyskanie Strza\u0142: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=Dodatkowe Obra\u017cenia dla Umiej\u0119tno\u015bci: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=Umiej\u0119tno\u015b\u0107 Aktywna
|
||||
Archery.SubSkill.SkillShot.Description=Zwi\u0119ksza obra\u017cenia zadane z \u0142uku
|
||||
Archery.SubSkill.Daze.Name=Oszo\u0142omienie
|
||||
Archery.SubSkill.Daze.Description=Oszalamia, straszy i zadaje {0} obrazen.
|
||||
Archery.SubSkill.ArrowRetrieval.Name=Odzyskiwanie Strza\u0142
|
||||
Archery.SubSkill.ArrowRetrieval.Description=Szansa na wyci\u0105gni\u0119cie strza\u0142 z martwego cia\u0142a
|
||||
Archery.Listener=Lucznictwo
|
||||
Archery.SkillName=LUCZNICTWO
|
||||
Archery.Skillup=Umiejetnosc lucznictwo wzrosla o {0}. Razem ({1})
|
||||
Axes.Ability.Bonus.0=Mistrzostwo pos\u0142ugiwania si\u0119 siekier\u0105
|
||||
Axes.Ability.Bonus.1={0} Bonusowych obra\u017ce\u0144
|
||||
Axes.Ability.Bonus.2=Wstrz\u0105s od Zbroi
|
||||
Axes.Ability.Bonus.3=Zadaje {0} dodatkowych obra\u017ce\u0144 dla opancerzonych cel\u00f3w
|
||||
Axes.Ability.Bonus.4=Trafienie Krytyczne
|
||||
Axes.Ability.Bonus.5=Zadaje {0} dodatkowych obra\u017ce\u0144 dla nieopancerzonych cel\u00f3w
|
||||
Axes.Ability.Lower=[[GRAY]]**CHOWASZ SIEKIERE**
|
||||
Axes.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJ\u0104 SIEKIERE**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Trafiono cie krytycznie!
|
||||
Axes.Combat.CritChance=Szansa na Trafienie Krytyczne: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=TRAFIENIE KRYTYCZNE!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**UDERZONO Z WIELK\u0104 MOC\u0104**
|
||||
Axes.Combat.GI.Struck=TRAFIENIE KRYTYCZNE!
|
||||
Axes.Combat.SS.Length=D\u0142ugo\u015bc \u0141amacza Czaszki: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=\u0141amacz Czaszek
|
||||
Axes.SubSkill.SkullSplitter.Description=Zadaje obra\u017cenia obszarowe
|
||||
Axes.SubSkill.CriticalStrikes.Name=Krytyczne Uderzenia
|
||||
Axes.SubSkill.CriticalStrikes.Description=Podwojne obrazania
|
||||
Axes.SubSkill.AxeMastery.Name=Mistrzostwo pos\u0142ugiwania si\u0119 siekier\u0105
|
||||
Axes.SubSkill.AxeMastery.Description=Dodaje bonus do obrazen
|
||||
Axes.SubSkill.ArmorImpact.Name=Wstrz\u0105s od Zbroi
|
||||
Axes.SubSkill.ArmorImpact.Description=Uderz z odpowiedni\u0105 si\u0142a aby przebi\u0107 zbroj\u0119
|
||||
Axes.SubSkill.GreaterImpact.Name=Trafienie Krytyczne
|
||||
Axes.SubSkill.GreaterImpact.Description=Zadaje dodatkowe obra\u017cenia nieopancerzonym celom
|
||||
Axes.Listener=Siekiery:
|
||||
Axes.SkillName=TOPORY
|
||||
Axes.Skills.SS.Off=**\u0141amacz Czaszek si\u0119 sko\u0144czy\u0142**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\u0141amacz Czaszek AKTYWOWANY**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]\u0141amacz Czaszek [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Axes.Skills.SS.Other.Off=\u0141amacz Czaszek[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]\u0141amacza Czaszki!
|
||||
Axes.Skillup=Umiej\u0119tno\u015b\u0107 \u015bcinania wzros\u0142a o {0}. Razem ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**CHOWASZ \u0141OPAT\u0118**
|
||||
Excavation.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJ\u0104 \u0141OPAT\u0118**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=Mia\u017cdz\u0105ce Wiert\u0142o
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=3x Szansa na znalezienie przedmiotu, 3x mno\u017cnik zdobywania do\u015bwiadczenia, +pr\u0119dko\u015b\u0107
|
||||
Excavation.SubSkill.TreasureHunter.Name=Lowca Skarbow
|
||||
Excavation.SubSkill.TreasureHunter.Description=Umiej\u0119tno\u015b\u0107 wykopywania skarb\u00f3w.
|
||||
Excavation.Effect.Length=D\u0142ugo\u015bc Mia\u017cdz\u0105cego Wiert\u0142a: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Wykopaliska:
|
||||
Excavation.SkillName=KOPANIE
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**Mia\u017cdz\u0105ce Wiert\u0142o si\u0119 sko\u0144czy\u0142o**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**MIA\u017bDZ\u0104CE WIERT\u0141O AKTYWOWANE**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Mia\u017cdz\u0105ce Wiert\u0142o [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=Mia\u017cdz\u0105ce Wiert\u0142o[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Mia\u017cdz\u0105ce Wiert\u0142o!
|
||||
Excavation.Skillup=Umiej\u0119tno\u015b\u0107 wykopalisk wzros\u0142a o {0}. Razem({1})
|
||||
Fishing.Ability.Chance=Szansa na zlapanie ryby: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=Magiczny \u0141owca: [[GRAY]] **Ulepsza si\u0119 wraz z rang\u0105 Poszukiwacza Skarb\u00f3w**
|
||||
Fishing.Ability.Locked.0=ZABLOKOWANY DO POZIOMU {0}+ SKILL
|
||||
Fishing.Ability.Locked.1=DOSTEPNE OD POZIOMU {0}+ (LODOWE LOWIENIE RYB)
|
||||
Fishing.Ability.Rank=Ranga lowienia skarbow: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.TH.MagicRate=Szanse na Magicznego \u0141owc\u0119: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=Szansa na Wstrz\u0105s: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=Lodowe lowienie ryb: Idz lowic ryby w lodzie
|
||||
Fishing.Ability.FD=Dieta Rybaka: [[YELLOW]]Ranga {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=Lowca Skarbow (Pasywna)
|
||||
Fishing.SubSkill.TreasureHunter.Description=\u0141owi\u0107 r\u00f3\u017cne obiekty
|
||||
Fishing.SubSkill.MagicHunter.Name=Magiczny Lowca
|
||||
Fishing.SubSkill.MagicHunter.Description=Znajdowanie Zakletych Przedmiotow
|
||||
Fishing.SubSkill.Shake.Name=Potrz\u0105\u015bni\u0119cie (przeciwko jednostkom)
|
||||
Fishing.SubSkill.Shake.Description=Okradaj potwory z przedmiot\u00f3w u\u017cywaj\u0105c w\u0119dki.
|
||||
Fishing.SubSkill.FishermansDiet.Name=Dieta Rybaka
|
||||
Fishing.SubSkill.FishermansDiet.Description=Zwi\u0119ksza nasycenie posi\u0142k\u00f3w (ryby)
|
||||
Fishing.SubSkill.MasterAngler.Description=Zwieksza szanse na zlapanie ryby na haczyk
|
||||
Fishing.SubSkill.IceFishing.Name=Lodowe lowienie ryb
|
||||
Fishing.SubSkill.IceFishing.Description=Pozwala na lowienie ryb w zimowych biomach
|
||||
Fishing.Chance.Raining=[[BLUE]] Bonus od Deszczu
|
||||
Fishing.Listener=Rybactwo
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]Wyczuwasz w pobli\u017cu \u017ar\u00f3d\u0142o magii...
|
||||
Fishing.SkillName=RYBACTWO
|
||||
Fishing.Skillup=Umiej\u0119tno\u015b\u0107 \u0142owienia wzros\u0142a o {0}. Razem ({1})
|
||||
Herbalism.Ability.DoubleDropChance=Szansa na Podw\u00f3jny Drop: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=Dieta Farmera: [[YELLOW]]Poziom {0}
|
||||
Herbalism.Ability.GTe.Length=D\u0142ugo\u015b\u0107 ?Green Terra?: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=Potrzebujesz wi\u0119cej nasion aby u\u017cy\u0107 Zielonego \u017bycia.
|
||||
Herbalism.Ability.GTh.Chance=Szansa na Zielony Palec: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=[[GREEN]]**ZIELONY PALEC SI\u0118 NIE UDA\u0141**
|
||||
Herbalism.Ability.GTh.Stage=Etap Zielonego Dotyku: [[YELLOW]] Ro\u015bliny rosn\u0105 w etapie {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**ZIELONY PALEC**
|
||||
Herbalism.Ability.HylianLuck=Szansa na Szczescie Hylian: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**CHOWASZ SWOJ\u0104 MOTYKE**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ MOTYKE**
|
||||
Herbalism.SubSkill.GreenTerra.Name=Zielone \u017bycie (ZDOLNO\u015a\u0106)
|
||||
Herbalism.SubSkill.GreenTerra.Description=Rozprzestrzenia \u017cycie na powierzchni, 3x wi\u0119ksza szansa na zdobycie przedmiot\u00f3w
|
||||
Herbalism.SubSkill.GreenThumb.Name=Zielony palec (Pszenica)
|
||||
Herbalism.SubSkill.GreenThumb.Description=Automatycznie zasadza ro\u015bliny podczas ich zbierania
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=Oplata ceg\u0142y zieleni\u0105, lub te\u017c wspomaga rozw\u00f3j trawy.
|
||||
Herbalism.SubSkill.FarmersDiet.Name=Dieta Farmerska
|
||||
Herbalism.SubSkill.FarmersDiet.Description=Zwi\u0119ksza nasycenie posi\u0142k\u00f3w
|
||||
Herbalism.SubSkill.DoubleDrops.Name=Podw\u00f3jny Drop (Wszystkie Zielska)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Herbalism.SubSkill.HylianLuck.Name=Szczescie Hylian
|
||||
Herbalism.SubSkill.HylianLuck.Description=Daje niewielka szanse na znalezienie rzadkich przedmiot\u00f3w
|
||||
Herbalism.HylianLuck=[[GREEN]]Szczescie Hyrule jest dzisiaj z Toba!
|
||||
Herbalism.Listener=Zielarstwo
|
||||
Herbalism.SkillName=ZIELARSTWO
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**?GREEN TERRA? AKTYWOWANA**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]?Green Terra?[[GREEN]]jest ju\u017c gotowa!
|
||||
Herbalism.Skills.GTe.Other.Off=?Green Terra?[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]?Green Terra?!
|
||||
Herbalism.Skillup=Umiej\u0119tno\u015b\u0107 zielarstwa wzros\u0142a o {0}. Ca\u0142kowicie ({1})
|
||||
Mining.Ability.Length=D\u0142ugo\u015bc Super Kopacza: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Locked.1=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Locked.2=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Lower=[[GRAY]]**CHOWASZ SW\u00d3J KILOF**
|
||||
Mining.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJA SIEKIERE**
|
||||
Mining.SubSkill.SuperBreaker.Name=Super \u0141amacz (ZDOLNO\u015a\u0106)
|
||||
Mining.SubSkill.SuperBreaker.Description=Szybko\u015b\u0107+, Szansa potr\u00f3jnego dropa
|
||||
Mining.SubSkill.DoubleDrops.Name=Podwojny Drop
|
||||
Mining.SubSkill.DoubleDrops.Description=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Mining.SubSkill.BlastMining.Name=Szybki Kopacz
|
||||
Mining.SubSkill.BlastMining.Description=Bonus do wydobycia z TNT
|
||||
Mining.SubSkill.BiggerBombs.Name=Wieksze bomby
|
||||
Mining.SubSkill.BiggerBombs.Description=Zwieksza zasieg wybuchu TNT
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=Mistrzostwo w pos\u0142ugiwaniu si\u0119 materia\u0142ami wybuchowymi
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=Zmniejsza obrazenia od explozji TNT
|
||||
Mining.Effect.Decrease=Redukcja Obra\u017ce\u0144 od Materia\u0142\u00f3w Wybuchowych: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=Szansa na Podw\u00f3jny Drop: [[YELLOW]]{0}
|
||||
Mining.Listener=G\u00f3rnictwo
|
||||
Mining.SkillName=GORNICTWO
|
||||
Mining.Skills.SuperBreaker.Off=**Super \u0141amacz si\u0119 sko\u0144czy\u0142**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER \u0141AMACZ AKTYWOWANY**
|
||||
Mining.Skills.SuperBreaker.Other.Off=Super Kopacz[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Super Kopacza!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Super \u0141amacz [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Mining.Skillup=Umiejetnosc Gornictwa wzrosla o {0}. Calkowicie ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Radius.Increase=Zasi\u0119g zwi\u0119kszony o: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=Szybki Kopacz: [[YELLOW]] Ranga {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Szybkiego Kopacza!
|
||||
Mining.Blast.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]B\u0142yskawiczny Kopacz [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Repair.SubSkill.Repair.Name=Naprawa
|
||||
Repair.SubSkill.Repair.Description=Naprawa Narz\u0119dzi i Pancerza
|
||||
Repair.SubSkill.GoldRepair.Name=Naprawa Z\u0142ota ({0}+ SKILL)
|
||||
Repair.SubSkill.GoldRepair.Description=Naprawa Z\u0142otych Narz\u0119dzi i Pancerza
|
||||
Repair.SubSkill.IronRepair.Name=Naprawa \u017belaza ({0}+ SKILL)
|
||||
Repair.SubSkill.IronRepair.Description=Naprawa \u017belaznych Narz\u0119dzi i Pancerza
|
||||
Repair.SubSkill.StoneRepair.Name=Naprawa Kamienia ({0}+ SKILL)
|
||||
Repair.SubSkill.StoneRepair.Description=Naprawa Kamiennych Narz\u0119dzi
|
||||
Repair.SubSkill.RepairMastery.Name=Mistrzostwo napraw
|
||||
Repair.SubSkill.RepairMastery.Description=Zwi\u0119kszono ilo\u015b\u0107 napraw
|
||||
Repair.SubSkill.SuperRepair.Name=Super Naprawa
|
||||
Repair.SubSkill.SuperRepair.Description=Podw\u00f3jnia efektywno\u015b\u0107
|
||||
Repair.SubSkill.DiamondRepair.Name=Naprawa Diamentu ({0}+ SKILL)
|
||||
Repair.SubSkill.DiamondRepair.Description=Naprawa diamentowych narzedzi i pancerza
|
||||
Repair.SubSkill.ArcaneForging.Name=Kowalstwo Ezoteryczne
|
||||
Repair.SubSkill.ArcaneForging.Description=Naprawa rzeczy magicznych
|
||||
Repair.SubSkill.Salvage.Name=Odzyskiwanie ({0}+ SKILL)
|
||||
Repair.SubSkill.Salvage.Description=Odzyskiwanie Narz\u0119dzi i Pancerza
|
||||
Repair.Error=[[DARK_RED]]mcMMO napotka\u0142 problem pr\u00f3buj\u0105c naprawi\u0107 ten przedmiot!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Postawi\u0142e\u015b kowad\u0142o - kowad\u0142a s\u0142u\u017c\u0105 do naprawiania narz\u0119dzi i zbroi.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]Postawi\u0142e\u015b kowad\u0142o Odzysku, u\u017cyj go aby Odzyska\u0107 narz\u0119dzia oraz zbroj\u0119.
|
||||
Repair.Listener=Naprawa:
|
||||
Repair.SkillName=Naprawa
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]]Nie masz odpowiedniego poziomu aby Odzyskiwa\u0107 przedmioty.
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 diament.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 z\u0142oto.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 \u017celazo.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Masz za niski poziom aby naprawi\u0107 kamie\u0144.
|
||||
Repair.Skills.Adept=Musisz mie\u0107 [[YELLOW]]{0}[[RED]] poziom \u017ceby naprawi\u0107 [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Bu\u0142ka z mas\u0142em.
|
||||
Repair.Skills.FullDurability=[[GRAY]]Ten przedmiot jest ju\u017c w pe\u0142ni sprawny.
|
||||
Repair.Skills.SalvageSuccess=[[GRAY]]Przedmiot Odzyskany!
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]Nie mo\u017cesz odzyska\u0107 uszkodzonych przedmiot\u00f3w.
|
||||
Repair.Skills.Mastery=Mistrzostwo Napraw: [[YELLOW]] {0} dodatkowej wytrzyma\u0142o\u015bci dla przedmiot\u00f3w
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Nie mo\u017cesz naprawia\u0107 zestackowanych przedmiot\u00f3w.
|
||||
Repair.Skills.Super.Chance=Szansa Super Naprawy: [[YELLOW]]{0}
|
||||
Repair.Skillup=Umiejetnosc naprawiania wzrosla o {0}. Razem ({1})
|
||||
Repair.Pretty.Name=Naprawa
|
||||
Salvage.Pretty.Name=Przetapianie
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Szansa na zdegradowanie: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]AF Szanse na sukces: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=Energia magiczna tego przedmiotu spad\u0142a.
|
||||
Repair.Arcane.Fail=Moc Arcane na zawsze opuscila przedmiot !
|
||||
Repair.Arcane.Lost=Nie posiada\u0142e\u015b wystarczaj\u0105co du\u017co do\u015bwiadczenia aby zatrzyma\u0107 ulepszenia.
|
||||
Repair.Arcane.Perfect=[[GREEN]]Nasyci\u0142e\u015b ten przedmiot magiczn\u0105 moc\u0105.
|
||||
Repair.Arcane.Rank=Kowalstwo Ezoteryczne: [[YELLOW]]Ranga {0}/4
|
||||
Swords.Ability.Lower=[[GRAY]]**CHOWASZ SW\u00d3J MIECZ**
|
||||
Swords.Ability.Ready=[[GREEN]] **PODNIOSLES SWOJ MIECZ**
|
||||
Swords.Combat.Bleed.Chance=Szansa na Krwawienie: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=D\u0142ugo\u015bc Krwotoku: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTE: [[YELLOW]]1 tykni\u0119cie zdarza si\u0119 co 2 sekundy
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Krwawisz!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Krwawienie [[GREEN]]usta\u0142o[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**PRZECIWNIK KRAWI**
|
||||
Swords.Combat.Counter.Chance=Szansa na Kontratak: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Kontratak!
|
||||
Swords.Combat.Countered=[[GREEN]]**KONTR-ATAK**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Zosta\u0142e\u015b powalony przez Z\u0104BKOWANY ATAK!
|
||||
Swords.SubSkill.CounterAttack.Name=Kontratak
|
||||
Swords.SubSkill.SerratedStrikes.Name=Z\u0105bkowany Atak (ZDOLNO\u015a\u0106)
|
||||
Swords.SubSkill.SerratedStrikes.Description={0} obrazen obszarowych, Krawienie+ obszarowo
|
||||
Swords.Effect.4=Z\u0105bkowany Atak spowodowa\u0142 krwawienie
|
||||
Swords.Effect.5={0} Czas miedzy krawieniem
|
||||
Swords.SubSkill.Bleed.Name=Krwawienie
|
||||
Swords.SubSkill.Bleed.Description=Spowodowano krwawienie
|
||||
Swords.Listener=Miecze
|
||||
Swords.SkillName=MIECZE
|
||||
Swords.Skills.SS.Off=**Z\u0105bkowany Atak si\u0119 sko\u0144czy\u0142**
|
||||
Swords.Skills.SS.On=[[GREEN]]**?Z\u0104BKOWANY? ATAK AKTYWOWANY**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Tw\u00f3j [[YELLOW]]Z\u0105bkowany Atak [[GREEN]]jest ju\u017c dost\u0119pny!
|
||||
Swords.Skills.SS.Other.Off=Z\u0105bkowany Atak[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Z\u0105bkowanego Ciosu!
|
||||
Swords.Skillup=Umiej\u0119tno\u015b\u0107 Pos\u0142ugiwania si\u0119 Mieczem wzros\u0142a o {0}. Ca\u0142kowicie ({1})
|
||||
Swords.SS.Length=D\u0142ugo\u015b\u0107 Z\u0105bkowanego Ataku: [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=Przyjazne dla \u015brodowiska
|
||||
Taming.Ability.Bonus.1=Wilki unikn\u0119\u0142y zagro\u017cenia
|
||||
Taming.Ability.Bonus.2=Grube Futro
|
||||
Taming.Ability.Bonus.3=1/{0} Obrazenia, Odpornosc na ogien
|
||||
Taming.Ability.Bonus.4=Odporno\u015b\u0107 na wstrz\u0105sy
|
||||
Taming.Ability.Bonus.5=Eksplozje powoduja 1/{0} typowych obrazen
|
||||
Taming.Ability.Bonus.6=Zaostrzone Pazury
|
||||
Taming.Ability.Bonus.7=+{0} Obrazen
|
||||
Taming.Ability.Bonus.8=Serwis FastFood\'u
|
||||
Taming.Ability.Bonus.9={0} Szansa przy ataku na odnowienie \u017cycia
|
||||
Taming.Ability.Bonus.11=Odzyskuj zdrowie podczas otrzymania obrazen od magii czy trucizny
|
||||
Taming.Ability.Locked.0=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.1=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.2=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.3=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.4=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Combat.Chance.Gore=Szansa na Brutalno\u015b\u0107: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=Wiedza o zwierz\u0119tach
|
||||
Taming.SubSkill.BeastLore.Description=Ko\u015b\u0107 - przyci\u0105ga uwag\u0119 wilk\u00f3w i ocelot\u00f3w
|
||||
Taming.SubSkill.ShockProof.Name=Odporno\u015b\u0107 na wstrz\u0105sy
|
||||
Taming.SubSkill.ShockProof.Description=Redukcja obra\u017ce\u0144 wybuchowych
|
||||
Taming.SubSkill.CallOfTheWild.Name=Wezwanie Dzikich
|
||||
Taming.SubSkill.CallOfTheWild.Description=Przywo\u0142uje zwierze po twojej stronie
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]COTW (Ocelot): Kucnij i kliknij LPM {0} z ryb\u0105 w r\u0119ce
|
||||
Taming.Effect.15=[[GRAY]]COTW (Wolf): Kucnij i kliknij LPM {0} z ko\u015bci\u0105 w d\u0142oni
|
||||
Taming.SubSkill.FastFoodService.Name=Serwis FastFood\'u
|
||||
Taming.SubSkill.FastFoodService.Description=Szansa dla wilk\u00f3w na odnowienie \u017cycia przy ataku
|
||||
Taming.SubSkill.Gore.Name=Brutalno\u015b\u0107
|
||||
Taming.SubSkill.Gore.Description=Cios krytyczny kt\u00f3ry wywo\u0142uje krwawienie
|
||||
Taming.SubSkill.SharpenedClaws.Name=Zaostrzone Pazury
|
||||
Taming.SubSkill.SharpenedClaws.Description=Dodatkowe Obra\u017cenia
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=Przyjazne dla \u015brodowiska
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=Strach przed Kaktusami/Law\u0105, Odporno\u015b\u0107 obra\u017cenia ze spadania
|
||||
Taming.SubSkill.ThickFur.Name=Grube Futro
|
||||
Taming.SubSkill.ThickFur.Description=Redukcja Obra\u017ce\u0144, Odporno\u015b\u0107 na ogie\u0144
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Tw\u00f3j wilk biegnie do ciebie...
|
||||
Taming.Listener=Oswajanie:
|
||||
Taming.SkillName=OSWAJANIE
|
||||
Taming.Skillup=Umiej\u0119tno\u015b\u0107 oswajania wzros\u0142a o {0}. Razem ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Przywo\u0142ywanie uko\u0144czone
|
||||
Taming.Summon.Fail.Ocelot=Obecnie masz przy sobie zbyt du\u017co ocelot\u00f3w aby przywo\u0142a\u0107 kolejnego.
|
||||
Taming.Summon.Fail.Wolf=Obecnie masz przy sobie zbyt du\u017co wilk\u00f3w aby przywo\u0142a\u0107 kolejnego.
|
||||
Unarmed.Ability.Berserk.Length=D\u0142ugo\u015b\u0107 Berserka: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Styl \u017belaznej D\u0142oni
|
||||
Unarmed.Ability.Bonus.1=Ulepszenie obra\u017ce\u0144 +{0}
|
||||
Unarmed.Ability.Chance.ArrowDeflect=Szansa na Odbicie Strza\u0142y: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=Szansa na Rozbrojenie: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=Szansa za Zelazny Chwyt: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=Tw\u00f3j przeciwnik ma \u017celazny u\u015bcisk!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]Tw\u00f3j \u017belazny Uchwyt uchroni\u0142 ci\u0119 przed Rozbrojeniem!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**OPUSZCZASZ SWOJE PI\u0118\u015aCI**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJE PIESCI**
|
||||
Unarmed.SubSkill.Berserk.Name=Berserk (Zdolnosc)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% DMG, Niszczy slabe materialy
|
||||
Unarmed.SubSkill.Disarm.Name=Rozbrojenie
|
||||
Unarmed.SubSkill.Disarm.Description=Rozbraja przeciwnika z przedmiotu trzymanego przez niego w r\u0119ku
|
||||
Unarmed.SubSkill.IronArmStyle.Name=Styl zelaznego ramienia
|
||||
Unarmed.SubSkill.IronArmStyle.Description=Wzmacnia twoj\u0105 d\u0142o\u0144 w czasie
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=Odbicie strzaly
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=Odbijanie strzal
|
||||
Unarmed.SubSkill.IronGrip.Name=Zelazny Chwyt
|
||||
Unarmed.SubSkill.IronGrip.Description=Zapobiega przed Twoim rozbrojeniem
|
||||
Unarmed.Listener=NIEUZBROJONY
|
||||
Unarmed.SkillName=NIEUZBROJONY
|
||||
Unarmed.Skills.Berserk.Off=**Berserk si\u0119 sko\u0144czy\u0142**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERK AKTYWOWANY**
|
||||
Unarmed.Skills.Berserk.Other.Off=Berserk[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Berserka!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Berserka [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Unarmed.Skillup=Umiej\u0119tno\u015b\u0107 boksowania zwi\u0119kszona o {0}. Ca\u0142kowicie ({1})
|
||||
Woodcutting.Ability.0=Dmucharka do li\u015bci
|
||||
Woodcutting.Ability.1=Zdmuchuje li\u015bcie
|
||||
Woodcutting.Ability.Chance.DDrop=Szansa na Dwukrotny Drop: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=D\u0142ugo\u015bc Powalacza Drzew: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=ZABLOKOWANY DO POZIOMU {0}+ SKILL
|
||||
Woodcutting.SubSkill.TreeFeller.Name=Powalacz Drzew
|
||||
Woodcutting.SubSkill.TreeFeller.Description=Sprawia, i\u017c drzewa eksploduj\u0105
|
||||
Woodcutting.SubSkill.LeafBlower.Name=Dmucharka do li\u015bci
|
||||
Woodcutting.SubSkill.LeafBlower.Description=Zdmuchuje li\u015bcie
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=Podwojny Drop
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Woodcutting.Listener=\u015aCINANIE DRZEW
|
||||
Woodcutting.SkillName=\u015aCINANIE DRZEW
|
||||
Woodcutting.Skills.TreeFeller.Off=**Powalacz Drzew si\u0119 sko\u0144czy\u0142**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**POWALACZ DRZEW AKTYWOWANY**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Powalacz Drzew [[GREEN]] jest ju\u017c dost\u0119pna!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=Powalenie Drzewa[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Powalacza Drzew!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=TWOJA SIEKIERA ROZPAD\u0141A SI\u0118 NA DRZAZGI!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=To drzewo jest zbyt du\u017ce!
|
||||
Woodcutting.Skillup=Umiej\u0119tno\u015b\u0107 \u015bcinania wzros\u0142a o {0}. Razem ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**UMIEJ\u0118TNO\u015aCI DOST\u0118PNE!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY**
|
||||
Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]\u017bycie ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**KRWOTOK**
|
||||
Combat.StruckByGore=**WYKRWAWIASZ SI\u0118**
|
||||
Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony.
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony.
|
||||
mcMMO.Description=[[DARK_AQUA]]O [[YELLOW]]mcMMO[[DARK_AQUA]] Project:,[[GOLD]]mcMMO jest [[RED]]open source[[GOLD]] modem RPG stworzonym w lutym 2011 r.,[[GOLD]]przez [[BLUE]]com.gmail.nossr50[[GOLD]]. Celem jest wprowadzenie doswiadczen RPG.,[[DARK_AQUA]]Porady:,[[GOLD]] - [[GREEN]]Uzywaj [[RED]]/mcmmo help[[GREEN]] by zobaczyc komendy,[[GOLD]] - [[GREEN]]Pisz [[RED]]/NAZWA_UMIEJETNOSCI[[GREEN]] by zobaczyc informacje na jej temat,[[DARK_AQUA]]Programisci:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](Zalozyciel),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Manager projektu),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Developer),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](Developer),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](Developer),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](Developer),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](Developer),[[DARK_AQUA]]Przydatne linki:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] Zglaszanie bled\u00f3w,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Otrzyma\u0142e\u015b {0} poziom\u00f3w we wszystkich dziedzinach!
|
||||
Commands.addlevels.AwardAll.2=Wszystkie dziedziny zosta\u0142y zmienione na poziom {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Zdoby\u0142e\u015b {0} poziom\u00f3w w dziedzinie {1}!
|
||||
Commands.addlevels.AwardSkill.2={0} zosta\u0142 zmieniony dla {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Otrzyma\u0142e\u015b {0} XP\'a we wszystkich dziedzinach!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Otrzyma\u0142e\u015b {0} XP\'a we dziedzinie {1}!
|
||||
Commands.Ability.Off=Umiej\u0119tno\u015b\u0107 wy\u0142\u0105czona [[RED]]
|
||||
Commands.Ability.On=Umiej\u0119tno\u015b\u0107 w\u0142\u0105czona [[GREEN]]
|
||||
Commands.AdminChat.Off=Czat tylko dla adminow [[RED]] Wylaczony
|
||||
Commands.AdminChat.On=Czat tylko dla adminow [[RED]] W\u0142\u0105czony
|
||||
Commands.AdminToggle=- Wlacza/wylacza czat adminow
|
||||
Commands.Chat.Console=\"Konsola\"
|
||||
Commands.Disabled=Komenda ta jest wylaczona.
|
||||
Commands.DoesNotExist=Nie ma takiego gracza!
|
||||
Commands.GodMode.Disabled=Nie\u015bmiertelno\u015b\u0107 wy\u0142\u0105czona
|
||||
Commands.GodMode.Enabled=Nie\u015bmiertelno\u015b\u0107 w\u0142\u0105czona
|
||||
Commands.GodMode.Forbidden=[mcMMO] Nie\u015bmiertelno\u015b\u0107 nie jest dozwolona na tym \u015bwiecie.
|
||||
Commands.Inspect=<player> [[RED]]- Pokazuje informacje o graczu
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]Zaproszenie zaakceptowane. Do\u0142\u0105czy\u0142e\u015b do dru\u017cyny {0}
|
||||
Commands.Invite.Success=[[GREEN]]Pomyslnie wyslano zaproszenie
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- Rankingi
|
||||
Commands.mcc.Header=---[][[YELLOW]]mcMMO Komendy[[RED]][]---
|
||||
Commands.mcgod=- W\u0142\u0105cza/Wy\u0142\u0105cza Nie\u015bmiertelno\u015b\u0107
|
||||
Commands.mchud.Invalid=Nie ma takiego Typu Interfejsu.
|
||||
Commands.mcpurge.Success=[[GREEN]]Baza danych zosta\u0142a wyczyszczona!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=OSOBISTE RANKINGI=-
|
||||
Commands.mcrank.Overall=Og\u00f3lne Statystyki[[GREEN]] - [[GOLD]]Ranga [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=CEL: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]Ranga [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Bez Rangi
|
||||
Commands.mcrefresh.Success=Umiejetnosci [[RED]]{0} zostaly odnowione.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} zosta\u0142 usuni\u0119ty z bazy danych!
|
||||
Commands.mctop.Tip=[[GOLD]]Porada: Wpisz [[RED]]/mcrank[[GOLD]] aby zobaczy\u0107 swoje rankingi!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - Modyfikuje cel
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Tw\u00f3j poziom w {0} zosta\u0142 zmieniony na {1}!
|
||||
Commands.mmoedit.Modified.2={0} zosta\u0142 zmieniony na {1}.
|
||||
Commands.ModDescription=- Przeczytaj opis
|
||||
Commands.NoConsole=Konsola nie obs\u0142uguje tej komendy.
|
||||
Commands.Notifications.Off=Informacje na temat umiejetnosci [[RED]]wylaczone
|
||||
Commands.Notifications.On=Informacje na temat umiejetnosci [[GREEN]]wlaczone
|
||||
Commands.Other=[[GREEN]]--POZOSTA\u0141E KOMENDY--
|
||||
Commands.Party.Header=-----[][[GREEN]]DRUZYNA[[RED]][]-----
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]TRYB DZIELENIA SIE:
|
||||
Commands.Party.ItemShare=[[GRAY]]PRZEDMIOT [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]EXP [[DARK_AQUA]]({0})
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]OBOK CIEBIE [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=- Akceptuje zaproszenie grupy
|
||||
Commands.Party.Chat.Off=Czat wy\u0142acznie dla dru\u017cyny [[RED]]Off
|
||||
Commands.Party.Chat.On=Czat wy\u0142acznie dla dru\u017cyny w\u0142\u0105czony [[RED]]
|
||||
Commands.Party.Commands=[[GREEN]]--KOMENDY DLA DRU\u017bYN--
|
||||
Commands.Party.Invite.0=ALERT: [[GREEN]]Otrzyma\u0142e\u015b zaproszenie do dru\u017cyny {0} od {1}
|
||||
Commands.Party.Invite.1=Wpisz [[GREEN]]/party accept[[YELLOW]] by akceptowac zaproszenie
|
||||
Commands.Party.Invite=- Wysyla zaproszenie do druzyny
|
||||
Commands.Party.Join=[[GRAY]]Dolaczono do druzyny: {0}
|
||||
Commands.Party.Create=[[GRAY]]Utworzono druzyne: {0}
|
||||
Commands.Party.Rename=[[GRAY]]Nazwa druzyny zmieniona na: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]Druzyny {0} dzielenie sie przedmiotami ustawiono na: [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]Druzyna {0} juz istnieje!
|
||||
Commands.Party.Kick=Zosta\u0142e\u015b wyrzucony z dru\u017cyny {0}!
|
||||
Commands.Party.Leave=Opu\u015bci\u0142e\u015b dru\u017cyn\u0119.
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]CZLONKOWIE[[RED]][]-----
|
||||
Commands.Party.None=Nie jestes w druzynie.
|
||||
Commands.Party.Quit=- Opuszcza obecn\u0105 dru\u017cyne
|
||||
Commands.Party.Teleport=<player> [[RED]]- Teleportacja do czlonka grupy.
|
||||
Commands.Party.Toggle=- W\u0142\u0105cza/Wy\u0142\u0105cza czat dla dru\u017cyn
|
||||
Commands.Party.1=- Tworzy nowa druzyne
|
||||
Commands.Party.2=- Dolacza do druzyny gracza
|
||||
Commands.ptp.Enabled=Teleportacja druzynowa [[GREEN]]aktywna
|
||||
Commands.ptp.Disabled=Teleportacja druzynowa [[RED]]wylaczona
|
||||
Commands.ptp.NoRequests=Nie masz zadnych zadan teleportacji w tym momencie
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] Nie masz uprawnien do teleportacji do swiata {0}.
|
||||
Commands.ptp.Request1={0} [[GREEN]]chce sie steleportowac do Ciebie.
|
||||
Commands.ptp.Request2=[[GREEN]]By sie steleportowac, wpisz [[YELLOW]]/ptp accept. [[GREEN]]Zadanie wygasa po [[RED]]{0} [[GREEN]]sekundach.
|
||||
Commands.ptp.AcceptAny.Disabled=Potwierdzenie zadania teleportacji druzynowej [[RED]]wylaczone
|
||||
Commands.ptp.RequestExpired=Zadanie druzynowego teleportu wygaslo!
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO[[BLUE]] Poziom Mocy [[YELLOW]]Ranking--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]POZIOM MOCY: [[GREEN]]{0} [[DARK_RED]]MAKSYMALNY POZIOM: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]POZIOM MOCY: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Wszystkie twoje umiej\u0119tno\u015bci zosta\u0142y zresetowane.
|
||||
Commands.Reset.Single=[[GREEN]]Tw\u00f3j poziom w {0} zosta\u0142 zresetowany.
|
||||
Commands.Reset=Resetuje poziom umiej\u0119tno\u015bci do 0
|
||||
Commands.Skill.Invalid=Nie ma takiej umiej\u0119tno\u015bci!
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking--
|
||||
Commands.SkillInfo=- Zobacz szczeg\u00f3lowe informacje na temat tej umiejetnosci
|
||||
Commands.Stats.Self=TWOJE STATYSTYKI
|
||||
Commands.Stats=- Zobacz swoje statystyki
|
||||
Commands.ToggleAbility=- W\u0142\u0105cza/Wy\u0142\u0105cza zdolno\u015b\u0107 PPM
|
||||
Commands.Usage.1=W\u0142a\u015bciwa komenda to /{0} {1}
|
||||
Commands.Usage.2=W\u0142a\u015bciwa komenda to /{0} {1} {2}
|
||||
Commands.Usage.3=W\u0142a\u015bciwa komenda to /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=poziom
|
||||
Commands.Usage.Message=wiadomo\u015b\u0107
|
||||
Commands.Usage.Page=strona
|
||||
Commands.Usage.Password=haslo
|
||||
Commands.Usage.Player=gracz
|
||||
Commands.Usage.Skill=zdolno\u015b\u0107
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=Nie masz zadnych zaproszen
|
||||
mcMMO.NoPermission=[[DARK_RED]]Nie wystarczaj\u0105ce uprawnienia.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Je\u015bli nie posiadasz dost\u0119pu do zdolno\u015bci, nie b\u0119dzie ona tu ukazana.
|
||||
Party.Forbidden=[mcMMO] Dru\u017cyny nie s\u0105 dozwolone na tym \u015bwiecie
|
||||
Party.Help.9=Uzyj [[DARK_AQUA]]{0} [[RED]]by dzielic sie przedmiotami z czlonkami druzyny
|
||||
Party.Help.10=Uzyj [[DARK_AQUA]]{0} [[RED]]by aktywowac dzielenie sie XP z czlonkami druzyny
|
||||
Party.InformedOnJoin={0} [[GREEN]]dolaczyl do Twojej druzyny
|
||||
Party.InformedOnQuit={0} [[GREEN]]opuscil Twoja druzyne
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]zmienil nazwe druzyny na [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]Nie istnieje dru\u017cyna o takiej nazwie!
|
||||
Party.Invite.Self=Nie mozesz zaprosic siebie samego!
|
||||
Party.IsLocked=Ta grupa jest juz zamknieta!
|
||||
Party.IsntLocked=Ta grupa nie jest zamkni\u0119ta!
|
||||
Party.Locked=Grupa jest zamknieta, tylko wlasciciel moze dodac graczy.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} nie jest cz\u0142onkiem twojej dru\u017cyny.
|
||||
Party.NotOwner=[[DARK_RED]]Nie jeste\u015b liderem grupy.
|
||||
Party.Owner.New=[[GREEN]]{0} jest nowym liderem grupy.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]Nie jeste\u015b ju\u017c liderem grupy.
|
||||
Party.Owner.Player=[[GREEN]]Jeste\u015b teraz liderem grupy.
|
||||
Party.Password.Incorrect=Has\u0142o grupy nieprawid\u0142owe.
|
||||
Party.Password.Set=[[GREEN]]Haslo grupy zmienione na: {0}
|
||||
Party.Password.Removed=[[GREEN]]Haslo druzyny zostalo wyczyszczone.
|
||||
Party.Player.Invalid=Nie ma takiego gracza.
|
||||
Party.NotOnline=[[DARK_RED]]{0} jest offline!
|
||||
Party.Player.InSameParty={0} juz jest w Twojej druzynie!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} nie jest w druzynie
|
||||
Party.Teleport.Dead=Nie mo\u017cesz si\u0119 teleportowa\u0107 do zmar\u0142ego gracza.
|
||||
Party.Teleport.Hurt=Zostales ranny przed {0} sekundami i nie mozesz sie steleportowac.
|
||||
Party.Teleport.Player=[[GREEN]]Teleportowa\u0142e\u015b si\u0119 do {0}.
|
||||
Party.Teleport.Self=Nie mo\u017cesz teleportowa\u0107 si\u0119 do samego siebie!
|
||||
Party.Teleport.Target=[[GREEN]]{0} teleportowa\u0142 si\u0119 do Ciebie.
|
||||
Party.Teleport.Disabled={0} nie zezwala na teleportacje druzynowa.
|
||||
Party.Rename.Same=Taka juz jest wlasnie nazwa Twojej druzyny!
|
||||
Party.Join.Self=Nie mozesz dolaczyc do samego siebie!
|
||||
Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
|
||||
Party.Disband=[[GRAY]]Druzyna zostala rozwiazana
|
||||
Party.Status.Locked=[[DARK_RED]](TYLKO NA ZAPROSZENIE)
|
||||
Party.ShareType.Xp=EXP
|
||||
Party.ShareType.Item=PRZEDMIOTOWY
|
||||
Party.ShareMode.Equal=R\u00d3WNY
|
||||
Party.ShareMode.Random=LOSOWY
|
||||
Party.ItemShare.Disabled=Druzynowe dzielenie sie przedmiotami jest wylaczone.
|
||||
Party.ItemShare.Category.Loot=Loot
|
||||
Party.ItemShare.Category.Mining=G\u00f3rnictwo
|
||||
Party.ItemShare.Category.Herbalism=Zielarstwo
|
||||
Party.ItemShare.Category.Woodcutting=Scinanie drzew
|
||||
Party.ItemShare.Category.Misc=R\u00f3zne
|
||||
Commands.XPGain.Acrobatics=Upadanie
|
||||
Commands.XPGain.Archery=Atak potworow
|
||||
Commands.XPGain.Axes=Atak potworow
|
||||
Commands.XPGain.Child=Podnosi poziomy z nadrzednych umiejetnosci
|
||||
Commands.XPGain.Excavation=Kopanie i odnajdywanie skarb\u00f3w
|
||||
Commands.XPGain.Fishing=Rybactwo
|
||||
Commands.XPGain.Herbalism=Zbieranie Zi\u00f3\u0142
|
||||
Commands.XPGain.Mining=Wydobywa Kamie\u0144 i Surowce
|
||||
Commands.XPGain.Repair=Naprawianie
|
||||
Commands.XPGain.Swords=Atak potworow
|
||||
Commands.XPGain.Taming=Oswoj zwierze, lub walcz ze swoimi wilkami.
|
||||
Commands.XPGain.Unarmed=Atak potworow
|
||||
Commands.XPGain.Woodcutting=\u015acina drzewa
|
||||
Commands.XPGain=[[DARK_GRAY]Zdobyte do\u015bwiadczenie: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Tw\u00f3j pasek XP\'a jest zablokowany {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Tw\u00f3j pasek XP\'a jest odblokowany {0}!
|
||||
Commands.xprate.modified=Modyfikator zdobywania do\u015bwiadczenia zosta\u0142 zmieniony na {0}
|
||||
Commands.xprate.over=[[GOLD]]Event[[RED]] zwi\u0119kszonego zdobywania XP\'a jest zako\u0144czony!
|
||||
Commands.xprate.proper.0=Aby zmieni\u0107 mno\u017cnik XP - /xprate <mno\u017cnik> <true/false>
|
||||
Commands.xprate.proper.1=Aby przywr\u00f3ci\u0107 normalny mno\u017cnik zdobywania XP\'a - /xprate reset
|
||||
Commands.xprate.proper.2=Wpisz true/false aby okre\u015bli\u0107 czy jest to EVENT czy te\u017c nie
|
||||
Commands.xprate.started.0=[[GOLD]]EVENT zwi\u0119kszonego zdobywania XP\'a w\u0142a\u015bnie si\u0119 zacz\u0105\u0142!
|
||||
Commands.xprate.started.1=[[GOLD]]Mno\u017cnik zdobywania XP\'a wynosi {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO is currently in an XP rate event! XP rate is {0}x!
|
||||
Effects.Effects=EFEKTY
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]Poziom: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenie[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Available=[[GRAY]]Przewodnik dla {0} jest dost\u0119pny - wpisz /{1} ? [strona]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Przewodnik[[GOLD]]=-
|
||||
Guides.Page.Invalid=Niew\u0142a\u015bciwa strona!
|
||||
Guides.Page.OutOfRange=Ta strona nie istnieje, jest tylko {0} stron.
|
||||
Guides.Usage=W\u0142a\u015bciwa Komenda to /{0} ? [strona]
|
||||
Guides.Smelting.Section.0=Wkrotce...
|
||||
Inspect.Offline=Nie masz odpowiednich uprawnie\u0144 aby przygl\u0105da\u0107 si\u0119 graczom offline!
|
||||
Inspect.OfflineStats=Statystyki Gracza Offline [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]Statystyki Gracza [[YELLOW]]{0}
|
||||
Inspect.TooFar=Jeste\u015b zbyt daleko aby przyjrze\u0107 si\u0119 temu graczowi!
|
||||
Item.ChimaeraWing.Fail=**U\u017bYCIE SKRZYD\u0141A CHIMERY NIE POWIOD\u0141O SI\u0118**
|
||||
Item.ChimaeraWing.Pass=**SKRZYD\u0141O CHIMERY**
|
||||
Item.ChimaeraWing.Name=Skrzydlo Chimery
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Teleportuje Cie do Twojego l\u00f3zka.
|
||||
Item.Generic.Wait=Musisz poczekac, nim bedziesz m\u00f3gl uzyc tego ponownie! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=Zosta\u0142e\u015b ostatnio ranny i musisz poczeka\u0107 aby tego u\u017cy\u0107. [[YELLOW]]({0}s)
|
||||
Teleport.Commencing=[[GRAY]]Teleportacja za [[GOLD]]({0}) [[GRAY]]sekund, nie ruszaj sie...
|
||||
Teleport.Cancelled=[[DARK_RED]]Teleportacja anulowana!
|
||||
Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci.
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Prawy-klik ponownie by potwierdzic [[GOLD]]{0}[[GREEN]]. Lewy-klik by anulowac.
|
||||
Stats.Header.Combat=[[GOLD]]-=UMIEJ\u0118TNO\u015aCI BOJOWE=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=UMIEJ\u0118TNO\u015aCI ZBIERANIA=-
|
||||
Stats.Header.Misc=[[GOLD]]-=ROZNE UMIEJETNOSCI=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Statystyki
|
||||
Perks.XP.Name=Do\u015bwiadczenie
|
||||
Perks.XP.Desc=Otrzymuje {0}x XP\'a.
|
||||
Perks.Lucky.Name=Szcz\u0119\u015bcie
|
||||
Perks.Lucky.Desc=Daje {0} i umiej\u0119tno\u015bciom o 33.3% lepsz\u0105 szanse na aktywacj\u0119.
|
||||
Perks.Lucky.Desc.Login=Daje wybranym skillom i umiej\u0119tno\u015bciom o 33.3% lepsz\u0105 szanse na aktywacj\u0119.
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} ze zdolno\u015bci\u0105 Szcz\u0119\u015bcia)
|
||||
Perks.Cooldowns.Name=Szybka Regeneracja
|
||||
Perks.Cooldowns.Desc=Zmniejsza czas odnowienia zdolno\u015bci o {0}.
|
||||
Perks.ActivationTime.Name=Wytrzyma\u0142o\u015b\u0107
|
||||
Perks.ActivationTime.Desc=Zwi\u0119ksza czas na u\u017cycie zdolno\u015bci o {0} sekund.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0}s ze zdolno\u015bci\u0105 Wytrzyma\u0142o\u015bci)
|
||||
MOTD.Donate=[[DARK_AQUA]]Informacje o Dotacji:
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Kara za \u015amier\u0107: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Statystyki Wampirycznych Pijawek: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO Zdolno\u015bci]
|
||||
MOTD.Version=[[GOLD]][mcMMO] Obecna Wersja [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - Strona mcMMO
|
||||
Smelting.Ability.FuelEfficiency=Mnoznik wydajnosci paliwa: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0=DOSTEPNE OD POZIOMU {0}+ (VANILLA XP BOOST)
|
||||
Smelting.Ability.Locked.1=DOSTEPNE OD POZIOMU {0}+ (FLUX MINING)
|
||||
Smelting.Ability.SecondSmelt=Szansa na drugie przetopienie: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=Vanilla mnoznik XP: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=Wydajnosc paliwa
|
||||
Smelting.SubSkill.FuelEfficiency.Description=Zwieksza czas spalania sie paliwa w piecu podczas przetapiania
|
||||
Smelting.SubSkill.SecondSmelt.Name=Drugie przetopienie
|
||||
Smelting.SubSkill.SecondSmelt.Description=Podwaja zasoby zdobyte z przetapiania
|
||||
Smelting.Effect.4=Vanilla XP Boost
|
||||
Smelting.Effect.5=Zwieksza XP zdobywane poprzez przetapianie
|
||||
Smelting.SubSkill.FluxMining.Description=Szansa dla zl\u00f3z by zostaly natychmiastowo przetopione podczas wykopywania
|
||||
Smelting.FluxMining.Success=[[GREEN]]Zloze przetopilo sie samoistnie!
|
||||
Smelting.Listener=Przetapianie:
|
||||
Smelting.SkillName=PRZETAPIANIE
|
||||
Commands.Description.adminchat=Wlacza/wylacza czat admin\u00f3w lub wysyla wiadomosc na czat admin\u00f3w
|
||||
Commands.Description.mcnotify=Wlacza/wylacza informacje na temat umiejetnosci mcMMO na czacie
|
||||
Commands.Description.vampirism=Zmodyfikuj wartosc procentowa na aktywowanie wampiryzmu mcMMO lub go wlacz/wylacz
|
||||
UpdateChecker.Outdated=Uzywasz przestarzalej wersji mcMMO!
|
||||
UpdateChecker.NewAvailable=Dostepna jest nowa wersja na BukkitDev.
|
||||
@@ -1,799 +0,0 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**\u534e\u5c14\u5179\u822c\u7684\u964d\u843d**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**\u95ea\u907f**
|
||||
Acrobatics.DodgeChance=\u95ea\u907f\u51e0\u7387: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.Name=\u7ffb\u6eda
|
||||
Acrobatics.SubSkill.Roll.Description=\u51cf\u5c11\u6216\u8005\u53d6\u6d88\u6389\u843d\u4f24\u5bb3
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=\u4f18\u96c5\u7684\u7ffb\u6eda
|
||||
Acrobatics.SubSkill.GracefulRoll.Description=\u4e24\u500d\u7684\u7ffb\u6eda\u6548\u679c
|
||||
Acrobatics.SubSkill.Dodge.Name=\u95ea\u907f
|
||||
Acrobatics.SubSkill.Dodge.Description=\u51cf\u5c11\u4e00\u534a\u7684\u4f24\u5bb3
|
||||
Acrobatics.Listener=\u6742\u6280(Acrobatics):
|
||||
Acrobatics.SubSkill.Roll.Chance=\u7ffb\u6eda\u51e0\u7387: [[YELLOW]]{0}
|
||||
Acrobatics.SubSkill.Roll.GraceChance=\u4f18\u96c5\u7684\u7ffb\u6eda\u51e0\u7387: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**\u7ffb\u6eda**
|
||||
Acrobatics.SkillName=\u6742\u6280
|
||||
Acrobatics.Skillup=\u6742\u6280\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Alchemy.SubSkill.Catalysis.Name=\u50ac\u5316
|
||||
Alchemy.SubSkill.Catalysis.Description=\u63d0\u5347\u836f\u6c34\u917f\u9020\u901f\u5ea6
|
||||
Alchemy.SubSkill.Concoctions.Name=\u6df7\u5408
|
||||
Alchemy.SubSkill.Concoctions.Description=\u917f\u9020\u5e26\u6709\u591a\u91cd\u539f\u6599\u7684\u836f\u6c34
|
||||
Alchemy.Listener=\u70bc\u91d1(Alchemy):
|
||||
Alchemy.Ability.Locked.0=\u9501\u5b9a\u72b6\u6001,\u76f4\u5230 {0}+ \u6280\u80fd\uff08\u50ac\u5316\uff09
|
||||
Alchemy.Catalysis.Speed=\u917f\u9020\u901f\u5ea6: [[YELLOW]]{0}
|
||||
Alchemy.Concoctions.Rank=\u6df7\u5408\u7b49\u7ea7: [[YELLOW]]{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=\u914d\u65b9 [[[YELLOW]]{0}[[RED]]]: [[YELLOW]]{1}
|
||||
Alchemy.SkillName=\u70bc\u91d1
|
||||
Alchemy.Skillup=\u70bc\u91d1\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Archery.Combat.DazeChance=\u51fb\u6655\u51e0\u7387: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=\u56de\u6536\u7bad\u77e2\u7684\u51e0\u7387: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=\u6280\u5de7\u5c04\u51fb\u5956\u52b1\u4f24\u5bb3: [[YELLOW]]{0}
|
||||
Archery.SubSkill.SkillShot.Name=\u6280\u5de7\u5c04\u51fb
|
||||
Archery.SubSkill.SkillShot.Description=\u589e\u52a0\u5f13\u7bad\u4f24\u5bb3
|
||||
Archery.SubSkill.Daze.Name=\u51fb\u6655 (\u9650\u73a9\u5bb6\u4e4b\u95f4)
|
||||
Archery.SubSkill.Daze.Description=\u8ff7\u60d1\u654c\u4eba\u5e76\u9020\u6210 {0} \u4f24\u5bb3
|
||||
Archery.SubSkill.ArrowRetrieval.Name=\u56de\u6536\u5f13\u7bad
|
||||
Archery.SubSkill.ArrowRetrieval.Description=\u6709\u51e0\u7387\u4ece\u5c38\u4f53\u4e0a\u56de\u6536\u7bad\u77e2
|
||||
Archery.Listener=\u7bad\u672f(Archery):
|
||||
Archery.SkillName=\u7bad\u672f
|
||||
Archery.Skillup=\u7bad\u672f\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Axes.Ability.Bonus.0=\u65a7\u5934\u7cbe\u901a
|
||||
Axes.Ability.Bonus.1=\u5956\u52b1 {0} \u4f24\u5bb3
|
||||
Axes.Ability.Bonus.2=\u51b2\u51fb
|
||||
Axes.Ability.Bonus.3=\u5bf9\u6709\u62a4\u7532\u654c\u4eba\u9020\u6210 {0} \u70b9\u989d\u5916\u4f24\u5bb3
|
||||
Axes.Ability.Bonus.4=\u5f3a\u70c8\u51b2\u51fb
|
||||
Axes.Ability.Bonus.5=\u5bf9\u65e0\u62a4\u7532\u654c\u4eba\u9020\u6210 {0} \u70b9\u989d\u5916\u4f24\u5bb3
|
||||
Axes.Ability.Lower=[[GRAY]]**\u4f60\u6536\u8d77\u4e86\u4f60\u7684\u65a7\u5934**
|
||||
Axes.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7d27\u4e86\u4f60\u7684\u65a7\u5934**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]\u4f60\u6253\u51fa\u4e86\u66b4\u51fb!
|
||||
Axes.Combat.CritChance=\u81f4\u547d\u4e00\u51fb: [[YELLOW]]{0}%
|
||||
Axes.Combat.CriticalHit=\u66b4\u51fb!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**\u5de8\u529b\u6253\u51fb**
|
||||
Axes.Combat.GI.Struck=**\u88ab\u5f3a\u70c8\u51b2\u51fb\u51fb\u4e2d**
|
||||
Axes.Combat.SS.Struck=[[DARK_RED]]\u88ab\u65a9\u9996\u8005\u6280\u80fd\u653b\u51fb!
|
||||
Axes.Combat.SS.Length=\u65a9\u9996\u8005\u6280\u80fd\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Axes.SubSkill.SkullSplitter.Name=\u65a9\u9996\u8005 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Axes.SubSkill.SkullSplitter.Description=\u9020\u6210\u8303\u56f4\u4f24\u5bb3
|
||||
Axes.SubSkill.CriticalStrikes.Name=\u81f4\u547d\u4e00\u51fb
|
||||
Axes.SubSkill.CriticalStrikes.Description=\u53cc\u500d\u4f24\u5bb3
|
||||
Axes.SubSkill.AxeMastery.Name=\u65a7\u5934\u7cbe\u901a
|
||||
Axes.SubSkill.AxeMastery.Description=\u589e\u52a0\u989d\u5916\u4f24\u5bb3
|
||||
Axes.SubSkill.ArmorImpact.Name=\u51b2\u51fb
|
||||
Axes.SubSkill.ArmorImpact.Description=\u7528\u8db3\u591f\u7684\u529b\u91cf\u51fb\u788e\u62a4\u7532
|
||||
Axes.SubSkill.GreaterImpact.Name=\u5f3a\u70c8\u51b2\u51fb
|
||||
Axes.SubSkill.GreaterImpact.Description=\u5bf9\u65e0\u62a4\u7532\u654c\u4eba\u9020\u6210\u989d\u5916\u4f24\u5bb3
|
||||
Axes.Listener=\u65a7\u6280(Axes):
|
||||
Axes.SkillName=\u65a7\u6280
|
||||
Axes.Skills.SS.Off=**\u65a9\u9996\u8005\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\u65a9\u9996\u8005\u6280\u80fd\u542f\u52a8**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u65a9\u9996\u8005 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\uff01\uff01\uff01
|
||||
Axes.Skills.SS.Other.Off=\u65a9\u9996\u8005[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\u4f7f\u7528\u4e86 [[RED]]\u65a9\u9996\u8005!
|
||||
Axes.Skillup=\u65a7\u5934\u6280\u80fd\u589e\u52a0\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u94f2\u5b50**
|
||||
Excavation.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7d27\u4e86\u4f60\u7684\u94f2\u5b50**
|
||||
Excavation.SubSkill.GigaDrillBreaker.Name=\u66b4\u8d70\u94bb\u5934 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Excavation.SubSkill.GigaDrillBreaker.Description=3x \u6389\u843d\u7387, 3x \u7ecf\u9a8c\u503c, +\u901f\u5ea6
|
||||
Excavation.SubSkill.TreasureHunter.Name=\u5b9d\u7269\u730e\u4eba
|
||||
Excavation.SubSkill.TreasureHunter.Description=\u6316\u51fa\u5b9d\u85cf\u7684\u80fd\u529b
|
||||
Excavation.Effect.Length=\u66b4\u8d70\u94bb\u5934\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Excavation.Listener=\u6316\u6398(Excavation):
|
||||
Excavation.SkillName=\u6316\u6398
|
||||
Excavation.Skills.GigaDrillBreaker.Off=**\u66b4\u8d70\u94bb\u5934\u5df2\u7ecf\u7ed3\u675f\u4e86**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**\u66b4\u8d70\u94bb\u5934\u6fc0\u6d3b**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u66b4\u8d70\u94bb\u5934 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=\u66b4\u8d70\u94bb\u5934[[GREEN]] \u8fdb\u5165\u51b7\u5374 [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u66b4\u8d70\u94bb\u5934!
|
||||
Excavation.Skillup=\u6316\u6398\u6280\u80fd\u63d0\u5347 {0}. \u603b\u5171 ({1})
|
||||
Fishing.Ability.Chance=\u6495\u54ac\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=\u9b54\u6cd5\u730e\u4eba: [[GRAY]] ** \u968f\u7740\u5b9d\u85cf\u730e\u4eba\u7b49\u7ea7\u63d0\u9ad8 **
|
||||
Fishing.Ability.Locked.0=\u9501\u5b9a\u72b6\u6001,\u76f4\u5230 {0}+ \u6280\u80fd\uff08\u6447\uff09
|
||||
Fishing.Ability.Locked.1={0}+ \u7ea7\u540e\u89e3\u9501 (\u51b0\u9493)
|
||||
Fishing.Ability.Locked.2=\u9501\u5b9a\u72b6\u6001,\u76f4\u5230 {0}+ \u6280\u80fd (\u9493\u9c7c\u5927\u5e08)
|
||||
Fishing.Ability.Rank=\u5b9d\u7269\u730e\u4eba\u7b49\u7ea7: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.TH.DropRate=\u6389\u5b9d\u7387: [[DARK_RED]]\u9677\u9631: [[YELLOW]]{0} [[GRAY]]\u5e38\u89c1: [[YELLOW]]{1} [[GREEN]]\u7f55\u89c1: [[YELLOW]]{2}\n[[BLUE]]\u7a00\u6709: [[YELLOW]]{3} [[LIGHT_PURPLE]]\u53f2\u8bd7: [[YELLOW]]{4} [[GOLD]]\u4f20\u8bf4: [[YELLOW]]{5} [[AQUA]]\u521b\u7eaa\u5f55: [[YELLOW]]{6}
|
||||
Fishing.Ability.TH.MagicRate=\u9b54\u6cd5\u730e\u4eba\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.Shake=\u9c7c\u94a9\u7a83\u53d6\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=\u51b0\u9493: \u5728\u51b0\u4e0a\u9493\u9c7c
|
||||
Fishing.Ability.FD=\u6e14\u6c11\u7684\u98df\u8c31: [[YELLOW]]\u6392\u540d {0}
|
||||
Fishing.SubSkill.TreasureHunter.Name=\u5b9d\u7269\u730e\u4eba (\u88ab\u52a8\u6280\u80fd)
|
||||
Fishing.SubSkill.TreasureHunter.Description=\u9493\u5230\u6742\u7269
|
||||
Fishing.SubSkill.MagicHunter.Name=\u9b54\u6cd5\u730e\u4eba
|
||||
Fishing.SubSkill.MagicHunter.Description=\u627e\u5230\u9644\u9b54\u7269\u54c1
|
||||
Fishing.SubSkill.Shake.Name=\u6643\u52a8\u602a\u7269 (\u5bf9\u602a\u7269\u4f7f\u7528)
|
||||
Fishing.SubSkill.Shake.Description=\u7528\u9c7c\u7aff\u628a\u602a\u7269\u8eab\u4e0a\u7684\u4e1c\u897f\u6447\u4e0b\u6765
|
||||
Fishing.SubSkill.FishermansDiet.Name=\u6e14\u592b\u98df\u8c31
|
||||
Fishing.SubSkill.FishermansDiet.Description=\u63d0\u9ad8\u9c7c\u7c7b\u98df\u7269\u6062\u590d\u7684\u9971\u98df\u5ea6
|
||||
Fishing.SubSkill.MasterAngler.Name=\u9493\u9c7c\u5927\u5e08
|
||||
Fishing.SubSkill.MasterAngler.Description=\u63d0\u9ad8\u9493\u9c7c\u54ac\u94a9\u51e0\u7387
|
||||
Fishing.SubSkill.IceFishing.Name=\u51b0\u9493
|
||||
Fishing.SubSkill.IceFishing.Description=\u5141\u8bb8\u4f60\u5728\u51b0\u51b7\u7684\u73af\u5883\u4e0b\u9493\u9c7c
|
||||
Fishing.Chance.Raining=[[BLUE]] \u5927\u91cf\u5956\u52b1
|
||||
Fishing.Listener=\u9493\u9c7c(Fishing):
|
||||
Fishing.Ability.TH.MagicFound=[[GRAY]]\u4f60\u611f\u5230\u4e00\u80a1\u9b54\u529b\u7684\u6ce2\u52a8...
|
||||
Fishing.Ability.TH.Boom=[[GRAY]]\u7e41\u8363\u65f6\u671f!!!
|
||||
Fishing.Ability.TH.Poison=[[GRAY]]\u4ec0\u4e48\u4e1c\u897f,\u95fb\u8d77\u6765\u597d\u81ed\u554a...
|
||||
Fishing.SkillName=\u9493\u9c7c
|
||||
Fishing.Skillup=\u9493\u9c7c\u6280\u80fd\u63d0\u5347\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Herbalism.Ability.DoubleDropChance=\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=\u519c\u592b\u98df\u8c31: [[YELLOW]]\u6392\u540d {0}
|
||||
Herbalism.Ability.GTe.Length=\u571f\u795e\u5e87\u4f51\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=\u4f60\u9700\u8981\u66f4\u591a\u7684\u79cd\u5b50\u8fdb\u884c\u7eff\u5316
|
||||
Herbalism.Ability.GTh.Chance=\u7eff\u5316\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=**\u7eff\u5316\u5931\u8d25**
|
||||
Herbalism.Ability.GTh.Stage=\u7eff\u5316:[[YELLOW]]\u519c\u4f5c\u7269\u751f\u957f\u671f{0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**\u7eff\u5316**
|
||||
Herbalism.Ability.HylianLuck=\u6d77\u62c9\u5c14\u7684\u795d\u798f\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u9504\u5934**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**\u4f60\u6311\u8d77\u4e86\u4f60\u7684\u9504\u5934**
|
||||
Herbalism.Ability.ShroomThumb.Chance=\u83cc\u4e1d\u5316\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**\u83cc\u4e1d\u5316\u5931\u8d25**
|
||||
Herbalism.SubSkill.GreenTerra.Name=\u571f\u795e\u5e87\u4f51 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Herbalism.SubSkill.GreenTerra.Description=\u64ad\u6492\u5973\u795e\u7684\u6069\u60e0, \u83b7\u5f973\u500d\u6389\u7387
|
||||
Herbalism.SubSkill.GreenThumb.Name=\u7eff\u5316 (\u5c0f\u9ea6)
|
||||
Herbalism.SubSkill.GreenThumb.Description=\u6536\u83b7\u7684\u65f6\u5019\u81ea\u52a8\u79cd\u690d\u5c0f\u9ea6
|
||||
Herbalism.Effect.4=\u7eff\u5316 (\u65b9\u5757)
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=\u788e\u77f3/\u77f3\u5757 -> \u7528\u79cd\u5b50\u4f7f\u5b83\u4eec\u53d8\u6210\u9752\u82d4\u77f3,\u6216\u8005\u8ba9\u8349\u751f\u957f
|
||||
Herbalism.SubSkill.FarmersDiet.Name=\u519c\u592b\u98df\u8c31
|
||||
Herbalism.SubSkill.FarmersDiet.Description=\u98df\u7528\u519c\u4ea7\u54c1\u65f6\u989d\u5916\u56de\u590d\u9965\u997f\u5ea6
|
||||
Herbalism.SubSkill.DoubleDrops.Name=\u53cc\u500d\u6389\u843d (\u6240\u6709\u7684\u690d\u7269)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=\u53cc\u500d\u7269\u54c1
|
||||
Herbalism.SubSkill.HylianLuck.Name=\u6d77\u62c9\u5c14\u7684\u795d\u798f
|
||||
Herbalism.SubSkill.HylianLuck.Description=\u7ed9\u4e88\u5c0f\u51e0\u7387\u627e\u5230\u7a00\u6709\u7269\u54c1\u7684\u80fd\u529b
|
||||
Herbalism.SubSkill.ShroomThumb.Name=\u83cc\u4e1d\u5316
|
||||
Herbalism.SubSkill.ShroomThumb.Description=\u5411\u6ce5\u571f&\u8349\u5730\u6563\u64ad\u83cc\u4e1d
|
||||
Herbalism.HylianLuck=[[GREEN]]\u613f\u6d77\u62c9\u5c14\u7684\u795d\u798f\u4e0e\u4f60\u540c\u5728!
|
||||
Herbalism.Listener=\u8349\u836f\u5b66(Herbalism):
|
||||
Herbalism.SkillName=\u8349\u836f\u5b66
|
||||
Herbalism.Skills.GTe.Off=**\u571f\u795e\u5e87\u4f51\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**\u6fc0\u6d3b\u571f\u795e\u5e87\u4f51\u6280\u80fd**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u571f\u795e\u5e87\u4f51 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u518d\u6b21\u4f7f\u7528\u4e86\uff01
|
||||
Herbalism.Skills.GTe.Other.Off=\u571f\u795e\u5e87\u4f51[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u571f\u795e\u5e87\u4f51!
|
||||
Herbalism.Skillup=\u8349\u836f\u5b66\u6280\u80fd\u7b49\u7ea7\u4e0a\u5347 {0}. \u73b0\u5728\u662f ({1})
|
||||
Mining.Ability.Length=\u8d85\u7ea7\u788e\u77f3\u673a\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u7206\u7834\u5f00\u91c7)
|
||||
Mining.Ability.Locked.1=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u5927\u53f7\u70b8\u5f39)
|
||||
Mining.Ability.Locked.2=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u7206\u7834\u4e13\u5bb6)
|
||||
Mining.Ability.Lower=[[GRAY]]**\u4f60\u6536\u8d77\u4e86\u4f60\u7684\u9550\u5b50**
|
||||
Mining.Ability.Ready=[[GREEN]]**\u4f60\u62ff\u8d77\u4e86\u4f60\u7684\u77ff\u9504**
|
||||
Mining.SubSkill.SuperBreaker.Name=\u8d85\u7ea7\u788e\u77f3\u673a (\u4e3b\u52a8\u6280\u80fd)
|
||||
Mining.SubSkill.SuperBreaker.Description=\u901f\u5ea6+, 3\u500d\u6389\u843d\u7387
|
||||
Mining.SubSkill.DoubleDrops.Name=\u53cc\u500d\u6389\u843d
|
||||
Mining.SubSkill.DoubleDrops.Description=\u53cc\u500d\u7269\u54c1
|
||||
Mining.SubSkill.BlastMining.Name=\u7206\u7834\u5f00\u91c7
|
||||
Mining.SubSkill.BlastMining.Description=\u4f7f\u7528TNT\u70b8\u77ff\u65f6\u4f1a\u83b7\u5f97\u989d\u5916\u5956\u52b1
|
||||
Mining.SubSkill.BiggerBombs.Name=\u5927\u53f7\u70b8\u5f39
|
||||
Mining.SubSkill.BiggerBombs.Description=\u589e\u52a0TNT\u7206\u70b8\u8303\u56f4
|
||||
Mining.SubSkill.DemolitionsExpertise.Name=\u7206\u7834\u4e13\u5bb6
|
||||
Mining.SubSkill.DemolitionsExpertise.Description=\u51cf\u5c11\u6765\u81eaTNT\u7684\u4f24\u5bb3
|
||||
Mining.Effect.Decrease=\u7206\u7834\u4e13\u5bb6\u4f24\u5bb3\u51cf\u5c11: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0}
|
||||
Mining.Listener=\u6316\u77ff(Mining):
|
||||
Mining.SkillName=\u6316\u77ff
|
||||
Mining.Skills.SuperBreaker.Off=**\u8d85\u7ea7\u788e\u77f3\u673a\u5df2\u7ed3\u675f**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**\u8d85\u7ea7\u788e\u77f3\u673a\u5df2\u6fc0\u6d3b**
|
||||
Mining.Skills.SuperBreaker.Other.Off=\u8d85\u7ea7\u788e\u77f3\u673a[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u8d85\u7ea7\u788e\u77f3\u673a!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\u4f60\u7684[[YELLOW]] \u8d85\u7ea7\u788e\u77f3\u673a [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u518d\u6b21\u4f7f\u7528\u4e86\uff01
|
||||
Mining.Skillup=\u6316\u77ff\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**\u5623**
|
||||
Mining.Blast.Effect=+{0} \u77ff\u7269\u91cf, -{1} \u788e\u7247\u91cf, {2}x \u6389\u843d
|
||||
Mining.Blast.Radius.Increase=\u7206\u70b8\u534a\u5f84\u63d0\u5347: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=\u7206\u7834\u5f00\u91c7: [[YELLOW]] \u6392\u540d {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u7206\u7834\u5f00\u91c7!
|
||||
Mining.Blast.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u7206\u7834\u5f00\u91c7 [[GREEN]]\u6280\u80fd\u51b7\u5374\u5b8c\u6bd5!
|
||||
Repair.SubSkill.Repair.Name=\u4fee\u7406
|
||||
Repair.SubSkill.Repair.Description=\u4fee\u7406\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.SubSkill.GoldRepair.Name=\u4fee\u7406\u9ec4\u91d1 ({0}+ SKILL)
|
||||
Repair.SubSkill.GoldRepair.Description=\u4fee\u7406\u9ec4\u91d1\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.SubSkill.IronRepair.Name=\u4fee\u7406\u94c1\u8d28\u7269\u54c1 ({0}+ SKILL)
|
||||
Repair.SubSkill.IronRepair.Description=\u4fee\u7406\u94c1\u8d28\u5de5\u5177\u548c\u62a4\u7532
|
||||
Repair.SubSkill.StoneRepair.Name=\u4fee\u7406\u77f3\u5934\u7269\u54c1 ({0}+ SKILL)
|
||||
Repair.SubSkill.StoneRepair.Description=\u4fee\u7406\u77f3\u5934\u5de5\u5177
|
||||
Repair.SubSkill.RepairMastery.Name=\u4fee\u7406\u7cbe\u901a
|
||||
Repair.SubSkill.RepairMastery.Description=\u5df2\u589e\u52a0\u4fee\u7406\u6570\u91cf
|
||||
Repair.SubSkill.SuperRepair.Name=\u8d85\u7ea7\u4fee\u7406
|
||||
Repair.SubSkill.SuperRepair.Description=\u53cc\u500d\u6548\u679c
|
||||
Repair.SubSkill.DiamondRepair.Name=\u94bb\u77f3\u4fee\u7406 ({0}+ SKILL)
|
||||
Repair.SubSkill.DiamondRepair.Description=\u4fee\u7406\u94bb\u77f3\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.SubSkill.ArcaneForging.Name=\u79d8\u6cd5\u953b\u9020
|
||||
Repair.SubSkill.ArcaneForging.Description=\u4fee\u7406\u9644\u9b54\u7269\u54c1
|
||||
Repair.Error=[[DARK_RED]]mcMMO \u5728\u5c1d\u8bd5\u4fee\u7406\u6b64\u7269\u54c1\u65f6\u53d1\u751f\u4e86\u9519\u8bef!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]\u4f60\u653e\u7f6e\u7684\u94c1\u65b9\u5757\u53ef\u4ee5\u7528\u6765\u4fee\u7406\u5de5\u5177\u548c\u9632\u5177.
|
||||
Repair.Listener=\u4fee\u7406\uff1a
|
||||
Repair.SkillName=\u4fee\u7406
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u7406\u94bb\u77f3\u88c5\u5907.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u7406\u9ec4\u91d1\u88c5\u5907.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u4e0d\u8db3\u4ee5\u4fee\u590d\u94c1\u8d28\u88c5\u5907.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u590d\u77f3\u5934\u88c5\u5907
|
||||
Repair.Skills.Adept=\u4f60\u5fc5\u987b\u8fbe\u5230\u7b49\u7ea7 [[YELLOW]]{0}[[RED]] \u624d\u80fd\u4fee\u7406 [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]\u90a3\u770b\u8d77\u6765\u5f88\u7b80\u5355.
|
||||
Repair.Skills.FullDurability=[[GRAY]]\u4f60\u7684\u88c5\u5907\u5df2\u7ecf\u6ee1\u8010\u4e45\u5ea6\u4e86
|
||||
Repair.Skills.Mastery=\u4fee\u7406\u7cbe\u901a: [[YELLOW]]\u989d\u5916\u56de\u590d {0} \u8010\u4e45\u5ea6
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]\u4f60\u65e0\u6cd5\u4fee\u7406\u5df2\u53e0\u52a0\u7684\u7269\u54c1.
|
||||
Repair.Skills.Super.Chance=\u8d85\u7ea7\u4fee\u7406\u51e0\u7387: [[YELLOW]]{0}
|
||||
Repair.Skillup=\u4fee\u7406\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Repair.Pretty.Name=\u4fee\u7406
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]\u9644\u9b54\u964d\u7ea7\u51e0\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]\u795e\u79d8\u953b\u9020\u6210\u529f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=\u8fd9\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u7b49\u7ea7\u5df2\u4e0b\u964d.
|
||||
Repair.Arcane.Fail=\u8fd9\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u5df2\u6d88\u5931.
|
||||
Repair.Arcane.Lost=\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fdd\u7559\u9644\u9b54\u5c5e\u6027.
|
||||
Repair.Arcane.Perfect=[[GREEN]]\u4f60\u6210\u529f\u5730\u4fdd\u7559\u4e86\u8fd9\u4ef6\u7269\u54c1\u7684\u9644\u9b54.
|
||||
Repair.Arcane.Rank=\u79d8\u6cd5\u953b\u9020: [[YELLOW]]\u7b49\u7ea7 {0}/4
|
||||
Salvage.Pretty.Name=\u5206\u89e3
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=\u8fdb\u9636\u5206\u89e3
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=\u5206\u89e3\u635f\u574f\u7684\u7269\u54c1
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=\u795e\u79d8\u5206\u89e3
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=\u4ece\u7269\u54c1\u4e2d\u62c6\u89e3\u51fa\u9644\u9b54
|
||||
Salvage.Ability.Locked.0=\u80fd\u529b\u9501\u5b9a\u76f4\u81f3 {0}+ \u6280\u80fd\u7b49\u7ea7 (\u8fdb\u9636\u5206\u89e3)
|
||||
Salvage.Ability.Bonus.0=\u8fdb\u9636\u5206\u89e3
|
||||
Salvage.Ability.Bonus.1=\u6700\u5927\u9650\u5ea6\u56de\u6536 {0} \u635f\u574f\u7684\u7269\u54c1
|
||||
Salvage.Arcane.Rank=\u795e\u79d8\u5206\u89e3: [[YELLOW]]\u7b49\u7ea7 {0}/{1}
|
||||
Salvage.Arcane.ExtractFull=[[GRAY]]\u5b8c\u5168\u62c6\u89e3\u51fa\u9644\u9b54\u51e0\u7387
|
||||
Salvage.Arcane.ExtractPartial=[[GRAY]]\u90e8\u5206\u62c6\u89e3\u51fa\u9644\u9b54\u51e0\u7387
|
||||
Salvage.Skills.Success=[[GREEN]]\u7269\u54c1\u5df2\u5206\u89e3\uff01
|
||||
Salvage.Skills.Adept.Damaged=[[DARK_RED]]\u60a8\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u5206\u89e3\u635f\u574f\u7684\u7269\u54c1\u3002
|
||||
Salvage.Skills.Adept.Level=\u60a8\u5fc5\u987b\u8fbe\u5230 [[YELLOW]]{0}[[RED]] \u7ea7\u624d\u80fd\u5206\u89e3 [[YELLOW]]{1}
|
||||
Salvage.Skills.TooDamaged=[[DARK_RED]]\u8be5\u7269\u54c1\u635f\u574f\u8fc7\u4e8e\u4e25\u91cd\uff0c\u65e0\u6cd5\u5206\u89e3\u3002
|
||||
Salvage.Skills.ArcaneFailed=\u60a8\u65e0\u6cd5\u62c6\u89e3\u51fa\u672c\u7269\u54c1\u6240\u8574\u542b\u7684\u77e5\u8bc6\u3002
|
||||
Salvage.Skills.ArcanePartial=\u60a8\u53ea\u80fd\u62c6\u89e3\u51fa\u672c\u7269\u54c1\u6240\u8574\u542b\u7684\u90e8\u5206\u77e5\u8bc6\u3002
|
||||
Salvage.Skills.ArcaneSuccess=[[GREEN]]\u60a8\u80fd\u591f\u5b8c\u5168\u62c6\u89e3\u51fa\u672c\u7269\u54c1\u6240\u542b\u7684\u77e5\u8bc6\uff01
|
||||
Salvage.Listener.Anvil=[[DARK_RED]]\u60a8\u5df2\u7ecf\u653e\u7f6e\u4e86\u4e00\u4e2a\u5206\u89e3\u7827\uff0c\u4f7f\u7528\u5b83\u6765\u5206\u89e3\u5de5\u5177\u548c\u62a4\u7532\u3002
|
||||
Salvage.Listener=\u5206\u89e3:
|
||||
Salvage.SkillName=\u5206\u89e3
|
||||
Anvil.Unbreakable=\u8be5\u7269\u54c1\u662f\u65e0\u6cd5\u7834\u574f\u7684\uff01
|
||||
Swords.Ability.Lower=[[GRAY]]**\u4f60\u6536\u597d\u4e86\u4f60\u7684\u5251**
|
||||
Swords.Ability.Ready=[[GREEN]]**\u4f60\u628a\u5251\u7d27\u63e1\u5728\u4e86\u624b\u4e2d**
|
||||
Swords.Combat.Bleed.Chance=\u653e\u8840\u51e0\u7387: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=\u6d41\u8840\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]\u6ce8\u610f: [[YELLOW]]\u6bcf\u4e24\u79d2\u51cf\u4e00\u6ef4\u8840
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] \u4f60\u6b63\u5728\u6d41\u8840!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]\u653e\u8840 [[GREEN]]\u5df2\u505c\u6b62[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**\u654c\u4eba\u6b63\u5728\u4e0d\u65ad\u6d41\u8840**
|
||||
Swords.Combat.Counter.Chance=\u53cd\u51fb\u51e0\u7387: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]\u4f60\u53cd\u51fb\u4e86\u5bf9\u624b!
|
||||
Swords.Combat.Countered=[[GREEN]]**\u53cd\u51fb\u4e86\u654c\u4eba**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]\u53d1\u52a8\u5229\u5203\u7a81\u523a!
|
||||
Swords.SubSkill.CounterAttack.Name=\u53cd\u51fb
|
||||
Swords.SubSkill.CounterAttack.Description=\u683c\u6863\u65f6\u53cd\u5f39{0}\u4f24\u5bb3\u503c
|
||||
Swords.SubSkill.SerratedStrikes.Name=\u5229\u5203\u7a81\u523a (\u4e3b\u52a8\u6280\u80fd)
|
||||
Swords.SubSkill.SerratedStrikes.Description={0} \u653b\u51fb\u8303\u56f4, \u653e\u8840\u8303\u56f4
|
||||
Swords.Effect.4=\u5229\u5203\u7a81\u523a \u6d41\u8840\u4f24\u5bb3\u589e\u52a0
|
||||
Swords.Effect.5={0} \u6b21 \u6d41\u8840
|
||||
Swords.SubSkill.Bleed.Name=\u653e\u8840
|
||||
Swords.SubSkill.Bleed.Description=\u4ea7\u751f\u653e\u8840\u4f24\u5bb3
|
||||
Swords.Listener=\u5251\u672f(Swords):
|
||||
Swords.SkillName=\u5251\u672f
|
||||
Swords.Skills.SS.Off=**\u5229\u5203\u7a81\u523a\u5df2\u7ecf\u7ed3\u675f\u4e86**
|
||||
Swords.Skills.SS.On=[[GREEN]]**\u5229\u5203\u7a81\u523a\u542f\u52a8**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u5229\u5203\u7a81\u523a [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86!
|
||||
Swords.Skills.SS.Other.Off=\u5229\u5203\u7a81\u523a[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u5229\u5203\u7a81\u523a!
|
||||
Swords.Skillup=\u5251\u672f\u6280\u80fd\u7b49\u7ea7\u4e0a\u5347 {0}. \u73b0\u5728\u662f ({1})
|
||||
Swords.SS.Length=\u952f\u9f7f\u5229\u5203\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=\u73af\u5883\u611f\u77e5
|
||||
Taming.Ability.Bonus.1=\u72fc\u4f1a\u907f\u514d\u5371\u9669
|
||||
Taming.Ability.Bonus.2=\u539a\u5b9e\u7684\u76ae\u6bdb
|
||||
Taming.Ability.Bonus.3=1/{0} \u4f24\u5bb3, \u706b\u7130\u62b5\u6297
|
||||
Taming.Ability.Bonus.4=\u51b2\u51fb\u62b5\u6297
|
||||
Taming.Ability.Bonus.5=\u7206\u70b8\u9020\u6210 1/{0} \u666e\u901a\u4f24\u5bb3
|
||||
Taming.Ability.Bonus.6=\u5229\u722a
|
||||
Taming.Ability.Bonus.7=+{0} \u4f24\u5bb3
|
||||
Taming.Ability.Bonus.8=\u5feb\u9910\u670d\u52a1
|
||||
Taming.Ability.Bonus.9={0} \u7684\u51e0\u7387\u653b\u51fb\u65f6\u56de\u8840
|
||||
Taming.Ability.Bonus.10=\u72ac\u795e\u7684\u5e87\u62a4
|
||||
Taming.Ability.Bonus.11=\u53d7\u5230\u9b54\u6cd5\u6216\u4e2d\u6bd2\u4f24\u5bb3\u65f6\u6062\u590d\u751f\u547d\u503c
|
||||
Taming.Ability.Locked.0={0}+ \u7ea7\u540e\u89e3\u9501 (\u73af\u5883\u611f\u77e5)
|
||||
Taming.Ability.Locked.1=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u539a\u5b9e\u7684\u76ae\u6bdb)
|
||||
Taming.Ability.Locked.2=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u51b2\u51fb\u62b5\u6297)
|
||||
Taming.Ability.Locked.3=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u5229\u722a)
|
||||
Taming.Ability.Locked.4={0}+ \u7ea7\u540e\u89e3\u9501 (FAST FOOD SERVICE)
|
||||
Taming.Ability.Locked.5={0}+ \u7ea7\u540e\u89e3\u9501 (\u72ac\u795e\u7684\u5e87\u62a4)
|
||||
Taming.Combat.Chance.Gore=\u55dc\u8840\u51e0\u7387: [[YELLOW]]{0}
|
||||
Taming.SubSkill.BeastLore.Name=\u9a6f\u517d\u77e5\u8bc6
|
||||
Taming.SubSkill.BeastLore.Description=\u7528\u9aa8\u5934\u53f3\u952e\u5355\u51fb\u72fc\u6216\u8005\u8c79\u732b\u4ee5\u68c0\u67e5\u5b83\u4eec\u7684\u72b6\u51b5
|
||||
Taming.SubSkill.ShockProof.Name=\u51b2\u51fb\u62b5\u6297
|
||||
Taming.SubSkill.ShockProof.Description=\u7206\u70b8\u4f24\u5bb3\u51cf\u5c11
|
||||
Taming.SubSkill.CallOfTheWild.Name=\u91ce\u6027\u547c\u5524
|
||||
Taming.SubSkill.CallOfTheWild.Description=\u4e3a\u4f60\u53ec\u5524\u4e00\u53ea\u5ba0\u7269
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=[[GRAY]]\u53ec\u5524 (\u8c79\u732b): \u624b\u91cc\u62ff\u7740 {0} \u6761\u9c7c,\u6309\u4f4f\u6f5c\u884c\u540c\u65f6\u5355\u51fb\u5de6\u952e\u53ec\u5524.
|
||||
Taming.Effect.15=[[GRAY]]\u53ec\u5524 (\u72fc): \u624b\u91cc\u62ff\u7740 {0} \u6839\u9aa8\u5934,\u6309\u4f4f\u6f5c\u884c\u540c\u65f6\u5355\u51fb\u5de6\u952e\u53ec\u5524.
|
||||
Taming.SubSkill.Gore.Name0=[[GRAY]]\u53ec\u5524 (\u9a6c): \u624b\u91cc\u62ff\u7740 {0} \u4e2a\u82f9\u679c,\u6309\u4f4f\u6f5c\u884c\u540c\u65f6\u5355\u51fb\u5de6\u952e\u53ec\u5524.
|
||||
Taming.SubSkill.FastFoodService.Name=\u5feb\u9910\u670d\u52a1
|
||||
Taming.SubSkill.FastFoodService.Description=\u4e00\u5b9a\u51e0\u7387\u4f7f\u72fc\u5728\u653b\u51fb\u65f6\u56de\u590d\u81ea\u8eab\u8840\u91cf
|
||||
Taming.SubSkill.HolyHound.Name=\u72ac\u795e\u7684\u5e87\u62a4
|
||||
Taming.SubSkill.HolyHound.Description=\u5df2\u88ab\u9b54\u6cd5 & \u4e2d\u6bd2\u6548\u679c\u6cbb\u6108
|
||||
Taming.SubSkill.Gore.Name=\u55dc\u8840
|
||||
Taming.SubSkill.Gore.Description=\u81f4\u547d\u653b\u51fb\u4f1a\u7ed9\u76ee\u6807\u653e\u8840
|
||||
Taming.SubSkill.SharpenedClaws.Name=\u5229\u722a
|
||||
Taming.SubSkill.SharpenedClaws.Description=\u4f24\u5bb3\u5956\u52b1
|
||||
Taming.SubSkill.EnvironmentallyAware.Name=\u73af\u5883\u611f\u77e5
|
||||
Taming.SubSkill.EnvironmentallyAware.Description=\u4ed9\u4eba\u638c/\u5ca9\u6d46 \u6050\u60e7\u75c7, \u514d\u75ab\u6389\u843d\u4f24\u5bb3
|
||||
Taming.SubSkill.ThickFur.Name=\u539a\u5b9e\u7684\u76ae\u6bdb
|
||||
Taming.SubSkill.ThickFur.Description=\u524a\u51cf\u53d7\u5230\u7684\u4f24\u5bb3, \u706b\u7130\u62b5\u6297
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]\u4f60\u7684\u72fc\u98de\u901f\u5730\u8dd1\u56de\u4e86\u4f60\u8eab\u8fb9...
|
||||
Taming.Listener=\u9a6f\u517d(Taming):
|
||||
Taming.SkillName=\u9a6f\u517d
|
||||
Taming.Skillup=\u9a6f\u517d\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]\u53ec\u5524\u5b8c\u6bd5
|
||||
Taming.Summon.Fail.Ocelot=\u4f60\u4e0d\u80fd\u53ec\u5524\u8c79\u732b\u56e0\u4e3a\u4f60\u53ec\u5524\u4e86\u592a\u591a\u4e86.
|
||||
Taming.Summon.Fail.Wolf=\u4f60\u8eab\u8fb9\u5df2\u7ecf\u62e5\u6709\u8db3\u591f\u591a\u7684\u72fc,\u65e0\u6cd5\u53ec\u5524\u66f4\u591a.
|
||||
Taming.Summon.Fail.Horse=\u4f60\u8eab\u8fb9\u5df2\u7ecf\u62e5\u6709\u8db3\u591f\u591a\u7684\u9a6c\u4e86,\u65e0\u6cd5\u53ec\u5524.
|
||||
Taming.Summon.Name.Format={0}\u7684 {1}
|
||||
Unarmed.Ability.Berserk.Length=\u72c2\u66b4\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=\u94c1\u8155\u6a21\u5f0f
|
||||
Unarmed.Ability.Bonus.1=\u589e\u52a0{0}\u70b9\u4f24\u5bb3
|
||||
Unarmed.Ability.Chance.ArrowDeflect=\u7bad\u77e2\u504f\u5411\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=\u7f34\u68b0\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=\u8d85\u5f3a\u63e1\u529b\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=\u4f60\u7684\u5bf9\u624b\u6709\u8d85\u5f3a\u63e1\u529b!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]\u4f60\u7684\u8d85\u5f3a\u63e1\u529b\u62b5\u6321\u4f4f\u4e86\u5bf9\u65b9\u7684\u7f34\u68b0\u653b\u51fb!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u62f3\u5934**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7d27\u4e86\u4f60\u7684\u62f3\u5934**
|
||||
Unarmed.SubSkill.Berserk.Name=\u72c2\u66b4 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Unarmed.SubSkill.Berserk.Description=+50% \u4f24\u5bb3, \u80fd\u7834\u574f\u786c\u5ea6\u4f4e\u7684\u65b9\u5757
|
||||
Unarmed.SubSkill.Disarm.Name=\u7f34\u68b0 (\u4ec5\u9650\u73a9\u5bb6)
|
||||
Unarmed.SubSkill.Disarm.Description=\u4f7f\u654c\u4eba\u624b\u4e2d\u6b66\u5668\u6389\u843d
|
||||
Unarmed.SubSkill.IronArmStyle.Name=\u94c1\u8155\u6a21\u5f0f
|
||||
Unarmed.SubSkill.IronArmStyle.Description=\u4f7f\u4f60\u7684\u62a4\u7532\u968f\u65f6\u95f4\u589e\u52a0\u800c\u589e\u5f3a
|
||||
Unarmed.SubSkill.ArrowDeflect.Name=\u7bad\u77e2\u504f\u5411
|
||||
Unarmed.SubSkill.ArrowDeflect.Description=\u8ba9\u7bad\u77e2\u504f\u5411
|
||||
Unarmed.SubSkill.IronGrip.Name=\u8d85\u5f3a\u63e1\u529b
|
||||
Unarmed.SubSkill.IronGrip.Description=\u9632\u6b62\u4f60\u88ab\u7f34\u68b0
|
||||
Unarmed.Listener=\u683c\u6597(Unarmed):
|
||||
Unarmed.SkillName=\u683c\u6597
|
||||
Unarmed.Skills.Berserk.Off=**\u72c2\u66b4\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**\u72c2\u66b4\u6fc0\u6d3b**
|
||||
Unarmed.Skills.Berserk.Other.Off=\u72c2\u66b4[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u72c2\u66b4!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u72c2\u66b4 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86!
|
||||
Unarmed.Skillup=\u683c\u6597\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Woodcutting.Ability.0=\u79cb\u98ce\u626b\u843d\u53f6
|
||||
Woodcutting.Ability.1=\u626b\u9664\u6811\u53f6
|
||||
Woodcutting.Ability.Chance.DDrop=\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=\u6811\u6728\u780d\u4f10\u8005\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}\u79d2
|
||||
Woodcutting.Ability.Locked.0=\u9501\u5b9a\u72b6\u6001,\u76f4\u5230 {0}+ \u6280\u80fd (\u5439\u53f6\u673a)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=\u7cbe\u9510\u4f10\u6728\u5de5(\u6280\u80fd)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=\u7206\u53d1\u5f0f\u7684\u780d\u6811
|
||||
Woodcutting.SubSkill.LeafBlower.Name=\u4e71\u780d\u65e0\u53cc
|
||||
Woodcutting.SubSkill.LeafBlower.Description=\u626b\u9664\u6811\u53f6
|
||||
Woodcutting.SubSkill.HarvestLumber.Name=\u53cc\u500d\u6389\u843d
|
||||
Woodcutting.SubSkill.HarvestLumber.Description=\u53cc\u500d\u6389\u843d\u7269\u54c1
|
||||
Woodcutting.Listener=\u4f10\u6728(Woodcutting):
|
||||
Woodcutting.SkillName=\u4f10\u6728
|
||||
Woodcutting.Skills.TreeFeller.Off=**\u4f10\u6728\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**\u4f10\u6728\u6280\u80fd\u6fc0\u6d3b**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u4f10\u6728 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86\uff01
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=\u4f10\u6728\u6280\u80fd[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u4f10\u6728\u6280\u80fd!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=\u4f60\u7684\u65a7\u5934\u53d8\u6210\u4e86\u4e00\u5806\u788e\u7247\uff01
|
||||
Woodcutting.Skills.TreeFeller.Threshold=\u90a3\u68f5\u6811\u592a\u5927\u4e86!
|
||||
Woodcutting.Skillup=\u4f10\u6728\u6280\u80fd\u63d0\u5347 {0}. \u603b\u5171 ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**\u6280\u80fd\u51b7\u5374\u5b8c\u6bd5!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[GOLD]]{0}: [[DARK_AQUA]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**\u7bad\u77e2\u504f\u5411**
|
||||
Combat.BeastLore=[[GREEN]]**\u9a6f\u517d\u77e5\u8bc6**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]\u751f\u547d\u503c ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]\u62e5\u6709\u8005 ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**\u76ee\u6807\u88ab\u653e\u8840**
|
||||
Combat.StruckByGore=**\u4f60\u88ab\u653e\u8840\u4e86**
|
||||
Combat.TargetDazed=\u76ee\u6807\u88ab [[DARK_RED]]\u88ab\u51fb\u6655
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]\u5934\u6655\u76ee\u7729
|
||||
mcMMO.Description=[[DARK_AQUA]]\u5173\u4e8e [[YELLOW]]mcMMO[[DARK_AQUA]]:,[[GOLD]]mcMMO \u662f\u4e00\u4e2a [[RED]]\u5f00\u6e90[[GOLD]] RPG mod \u521b\u5efa\u4e8e2011\u5e742\u6708,[[GOLD]]by [[BLUE]]com.gmail.nossr50[[GOLD]]. \u76ee\u6807\u4e3a\u73a9\u5bb6\u63d0\u4f9b\u4e00\u4e2a\u9ad8\u8d28\u91cf\u7684RPG\u4f53\u9a8c.,[[DARK_AQUA]]\u63d0\u793a:,[[GOLD]] - [[GREEN]]\u4f7f\u7528 [[RED]]/mcmmo help[[GREEN]] \u67e5\u770b\u6307\u4ee4,[[GOLD]] - [[GREEN]]\u8f93\u5165 [[RED]]/\u6280\u80fd\u540d[[GREEN]] \u67e5\u770b\u8be6\u7ec6\u7684\u6280\u80fd\u4fe1\u606f,[[DARK_AQUA]]\u5f00\u53d1\u8005:,[[GOLD]] - [[GREEN]]com.gmail.nossr50 [[BLUE]](\u521b\u59cb\u4eba),[[GOLD]] - [[GREEN]]GJ [[BLUE]](\u9879\u76ee\u7ec4\u957f),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](\u5f00\u53d1\u8005),[[DARK_AQUA]]\u6709\u7528\u7684\u94fe\u63a5:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] \u62a5\u544aBUG,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,[[YELLOW]]\u53c2\u4e0e\u8fc7\u7ffb\u8bd1\u4e0e\u6da6\u8272\u7684\u4eba[[DARK_AQUA]]:,[[GREEN]]hzk11o11k11o wolski Chikaze(Cirno) 664365842 zesty HDfunctions CNAmira,[[DARK_AQUA]]\u4fee\u6b63\u8865\u6f0f\u5de5\u4f5c\u8fd8\u5728\u7ee7\u7eed...
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]\u4f60\u7684\u6240\u6709\u7b49\u7ea7\u88ab\u5956\u52b1\u4e0a\u5347\u4e86 {0} \u7ea7!
|
||||
Commands.addlevels.AwardAll.2=\u6240\u6709\u6280\u80fd\u7b49\u7ea7\u5df2\u88ab\u8bbe\u7f6e\u4e3a {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]\u4f60\u5728 {1} \u91cc\u5347\u4e86 {0} \u7ea7!
|
||||
Commands.addlevels.AwardSkill.2={0} \u56e0\u4e3a {1} \u800c\u88ab\u4fee\u6539.
|
||||
Commands.addxp.AwardAll=[[GREEN]]\u4f60\u7684\u6240\u6709\u6280\u80fd\u83b7\u5f97 {0} \u70b9\u7ecf\u9a8c!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]\u4f60\u5728 {1} \u88ab\u5956\u52b1\u4e86 {0} \u70b9\u7ecf\u9a8c!
|
||||
Commands.Ability.Off=\u6280\u80fd\u4f7f\u7528 [[GREEN]]\u5173\u95ed
|
||||
Commands.Ability.On=\u6280\u80fd\u4f7f\u7528 [[GREEN]]\u5f00\u542f
|
||||
Commands.Ability.Toggle=\u6280\u80fd\u4f7f\u7528\u5df2\u5207\u6362\u4e3a [[YELLOW]]{0}
|
||||
Commands.AdminChat.Off=\u4ec5\u7ba1\u7406\u804a\u5929\u6a21\u5f0f [[RED]]\u5173\u95ed
|
||||
Commands.AdminChat.On=\u4ec5\u7ba1\u7406\u804a\u5929\u6a21\u5f0f [[GREEN]]\u5f00\u542f
|
||||
Commands.AdminToggle=- \u5207\u6362\u7ba1\u7406\u5458\u804a\u5929
|
||||
Commands.Chat.Console=*\u63a7\u5236\u53f0*
|
||||
Commands.Cooldowns.Header=[[GOLD]]--= [[GREEN]]mcMMO \u80fd\u529b\u51b7\u5374[[GOLD]] =--
|
||||
Commands.Cooldowns.Row.N=\ [[RED]]{0}[[WHITE]] - \u5269\u4f59 [[GOLD]]{1} \u79d2
|
||||
Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]]\u5df2\u5c31\u7eea\uff01
|
||||
Commands.Database.Cooldown=\u518d\u6b21\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u8fd8\u9700\u8981\u7b49\u5f851\u79d2.
|
||||
Commands.Disabled=\u8fd9\u4e2a\u6307\u4ee4\u88ab\u7981\u7528\u4e86.
|
||||
Commands.DoesNotExist=\u8be5\u540d\u73a9\u5bb6\u4e0d\u5b58\u5728\u4e8e\u6570\u636e\u5e93\u4e2d\uff01
|
||||
Commands.GodMode.Disabled=mcMMO \u4e0a\u5e1d\u6a21\u5f0f\u5173\u95ed
|
||||
Commands.GodMode.Enabled=mcMMO \u4e0a\u5e1d\u6a21\u5f0f\u5f00\u542f
|
||||
Commands.GodMode.Forbidden=[mcMMO] \u4e0a\u5e1d\u6a21\u5f0f\u4e0d\u5141\u8bb8\u5728\u8fd9\u4e2a\u4e16\u754c\u5f00\u542f (\u8be6\u60c5\u8bf7\u770b\u6743\u9650\u914d\u7f6e)
|
||||
Commands.GodMode.Toggle=\u4e0a\u5e1d\u6a21\u5f0f\u5df2\u5207\u6362\u4e3a [[YELLOW]]{0}
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO] \u4f60\u7684\u8840\u6761\u663e\u793a\u7c7b\u578b\u5df2\u66f4\u6539\u4e3a [[RED]]\u5fc3\u5f62[[WHITE]].
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] \u4f60\u7684\u8840\u6761\u663e\u793a\u7c7b\u578b\u5df2\u66f4\u6539\u4e3a [[RED]]\u65b9\u5f62[[WHITE]].
|
||||
Commands.Healthbars.Changed.DISABLED=[mcMMO] \u4f60\u7684\u602a\u7269\u8840\u6761\u663e\u793a\u5df2\u88ab [[GRAY]]\u7981\u7528[[WHITE]].
|
||||
Commands.Healthbars.Invalid=\u65e0\u6548\u7684\u8840\u6761\u7c7b\u578b!
|
||||
Commands.Inspect=<player> [[RED]]-\u67e5\u770b\u73a9\u5bb6\u8be6\u7ec6\u4fe1\u606f
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]\u63a5\u53d7\u9080\u8bf7,\u4f60\u6210\u4e3a\u4e86\u961f\u4f0d {0} \u4e2d\u7684\u4e00\u5458.
|
||||
Commands.Invite.Success=[[GREEN]]\u9080\u8bf7\u53d1\u9001\u6210\u529f.
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- \u6392\u884c\u699c
|
||||
Commands.mcc.Header=---[][[YELLOW]]mcMMO \u6307\u4ee4[[RED]][]---
|
||||
Commands.mcgod=- \u5207\u6362\u4e0a\u5e1d\u6a21\u5f0f
|
||||
Commands.mchud.Invalid=\u90a3\u5e76\u4e0d\u662f\u53ef\u7528\u7684HUD\u7c7b\u578b.
|
||||
Commands.mcpurge.Success=[[GREEN]]\u6570\u636e\u5df2\u91cd\u7f6e!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=\u4e2a\u4eba\u6392\u540d=-
|
||||
Commands.mcrank.Overall=\u7efc\u5408[[GREEN]] - [[GOLD]]\u6392\u540d [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=\u76ee\u6807: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill={0}[[GREEN]] - [[GOLD]]\u6392\u540d [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]\u65e0\u6392\u540d
|
||||
Commands.mcrefresh.Success={0} \u7684\u51b7\u5374\u65f6\u95f4\u5df2\u5237\u65b0
|
||||
Commands.mcremove.Success=[[GREEN]]{0} \u5df2\u4ece\u6570\u636e\u5e93\u4e2d\u6210\u529f\u79fb\u9664!
|
||||
Commands.mctop.Tip=[[GOLD]]\u63d0\u793a: \u4f7f\u7528 [[RED]]/mcrank[[GOLD]] \u6765\u67e5\u770b\u4f60\u6240\u6709\u7684\u4e2a\u4eba\u6392\u540d!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - \u7f16\u8f91\u76ee\u6807
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]\u4f60\u7684\u6240\u6709\u6280\u80fd\u7b49\u7ea7\u8bbe\u7f6e\u4e3a {0}!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]\u4f60\u7684\u7b49\u7ea7 {0} \u88ab\u8bbe\u7f6e\u4e3a {1}!
|
||||
Commands.mmoedit.Modified.2={0} \u5df2\u66f4\u6539\u4e3a {1}.
|
||||
Commands.mcconvert.Database.Same=\u4f60\u5df2\u7ecf\u5728\u4f7f\u7528 {0} \u6570\u636e\u5e93!
|
||||
Commands.mcconvert.Database.InvalidType={0} \u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u6570\u636e\u5e93\u7c7b\u578b.
|
||||
Commands.mcconvert.Database.Start=[[GRAY]]\u5f00\u59cb\u4ece{0}\u8f6c\u6362\u81f3{1}...
|
||||
Commands.mcconvert.Database.Finish=[[GRAY]]\u6570\u636e\u5e93\u8fc1\u79fb\u5b8c\u6210; {1}\u6570\u636e\u5e93\u73b0\u5728\u62e5\u6709{0}\u6570\u636e\u5e93\u7684\u6240\u6709\u6570\u636e.
|
||||
Commands.mmoshowdb=\u5f53\u524d\u4f7f\u7528\u7684\u6570\u636e\u5e93\u4e3a [[GREEN]]{0}
|
||||
Commands.mcconvert.Experience.Invalid=\u9519\u8bef\u7684\u516c\u5f0f\u7c7b\u578b! \u6709\u6548\u7c7b\u578b\u4e3a: [[GREEN]]\u7ebf\u6027 [[RED]]\u548c [[GREEN]]\u6307\u6570.
|
||||
Commands.mcconvert.Experience.Same=\u6b63\u5728\u4f7f\u7528\u516c\u5f0f{0}
|
||||
Commands.mcconvert.Experience.Start=[[GRAY]]\u5f00\u59cb\u4ece{0}\u8f6c\u6362\u5230{1}\u66f2\u7ebf
|
||||
Commands.mcconvert.Experience.Finish=[[GRAY]]\u516c\u5f0f\u8f6c\u6362\u5b8c\u6210; \u73b0\u5728\u4f7f\u7528 {0} \u7ecf\u9a8c\u66f2\u7ebf.
|
||||
Commands.ModDescription=- \u8bf7\u9605\u8bfb\u7b80\u8981\u63d2\u4ef6\u63cf\u8ff0
|
||||
Commands.NoConsole=\u8fd9\u4e2a\u6307\u4ee4\u4e0d\u652f\u6301\u5728\u63a7\u5236\u53f0\u4f7f\u7528.
|
||||
Commands.Notifications.Off=\u6280\u80fd\u63d0\u793a [[RED]]\u5173\u95ed
|
||||
Commands.Notifications.On=\u6280\u80fd\u63d0\u793a [[GREEN]]\u5f00\u542f
|
||||
Commands.Offline=\u8fd9\u4e2a\u6307\u4ee4\u5bf9\u79bb\u7ebf\u73a9\u5bb6\u65e0\u6548
|
||||
Commands.NotLoaded=\u73a9\u5bb6\u8d44\u6599\u5c1a\u672a\u52a0\u8f7d\u3002
|
||||
Commands.Other=[[GREEN]]--\u5176\u4ed6\u547d\u4ee4--
|
||||
Commands.Party.Header=-----[][[GREEN]]\u961f\u4f0d[[RED]][]-----
|
||||
Commands.Party.Features.Header=-----[][[GREEN]]\u529f\u80fd[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]\u540d\u5b57: [[WHITE]]{0} {1} [[DARK_GRAY]]\u7b49\u7ea7: [[DARK_AQUA]]{2}
|
||||
Commands.Party.Status.Alliance=[[DARK_GRAY]]\u540c\u76df: [[WHITE]]{0}
|
||||
Commands.Party.UnlockedFeatures=[[DARK_GRAY]]\u5df2\u89e3\u9501\u529f\u80fd: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]\u5171\u4eab\u6a21\u5f0f:
|
||||
Commands.Party.ItemShare=[[GRAY]]\u7269\u54c1 [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]\u7ecf\u9a8c [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]\u7269\u54c1\u5206\u914d: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]\u4f60\u9644\u8fd1 [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=- \u63a5\u53d7\u961f\u4f0d\u9080\u8bf7
|
||||
Commands.Party.Chat.Off=\u53ea\u5141\u8bb8\u961f\u4f0d\u804a\u5929 [[RED]]\u5173\u95ed
|
||||
Commands.Party.Chat.On=\u56e2\u961f\u804a\u5929 [[GREEN]]\u5f00\u542f
|
||||
Commands.Party.Commands=[[GREEN]]--\u7ec4\u961f\u547d\u4ee4--
|
||||
Commands.Party.Invite.0=\u6ce8\u610f: [[GREEN]]\u4f60\u6536\u5230\u4e86\u4e00\u4e2a\u7ec4\u961f\u9080\u8bf7 {0} \u6765\u81ea {1}
|
||||
Commands.Party.Invite.1=\u8f93\u5165 [[GREEN]]/party accept[[YELLOW]] \u6765\u63a5\u53d7\u9080\u8bf7
|
||||
Commands.Party.Invite=- \u53d1\u9001\u7ec4\u961f\u9080\u8bf7
|
||||
Commands.Party.Invite.Accepted=[[GREEN]]\u5df2\u63a5\u53d7\u7ec4\u961f\u9080\u8bf7\u3002\u60a8\u5df2\u7ecf\u52a0\u5165\u961f\u4f0d {0}
|
||||
Commands.Party.Join=[[GRAY]]\u52a0\u5165\u7684\u961f\u4f0d: {0}
|
||||
Commands.Party.Create=[[GRAY]]\u5df2\u521b\u5efa\u961f\u4f0d: {0}
|
||||
Commands.Party.Rename=[[GRAY]]\u961f\u4f0d\u540d\u53d8\u66f4\u4e3a: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]\u961f\u4f0d {0} \u5171\u4eab\u8bbe\u7f6e\u4e3a: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]\u961f\u4f0d\u7269\u54c1\u5206\u914d\u7531 [[GOLD]]{0} [[GRAY]] \u53d8\u4e3a [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]\u961f\u4f0d {0} \u5df2\u5b58\u5728!
|
||||
Commands.Party.Kick=\u4f60\u5df2\u88ab {0} \u8e22\u51fa!
|
||||
Commands.Party.Leave=\u4f60\u79bb\u5f00\u4e86\u8fd9\u652f\u961f\u4f0d
|
||||
Commands.Party.Members.Header=-----[][[GREEN]]\u6210\u5458[[RED]][]-----
|
||||
Commands.Party.None=\u4f60\u4e0d\u5728\u961f\u4f0d\u4e2d.
|
||||
Commands.Party.Quit=- \u79bb\u5f00\u4f60\u73b0\u6709\u7684\u961f\u4f0d
|
||||
Commands.Party.Teleport=<player> [[RED]]- \u4f20\u9001\u5230\u961f\u4f0d\u6210\u5458
|
||||
Commands.Party.Toggle=- \u5207\u6362\u961f\u4f0d\u804a\u5929
|
||||
Commands.Party1=- \u521b\u5efa\u4e00\u4e2a\u65b0\u961f\u4f0d
|
||||
Commands.Party2=- \u52a0\u5165\u4e00\u4e2a\u73a9\u5bb6\u7684\u961f\u4f0d
|
||||
Commands.Party.Alliance.Header=-----[][[GREEN]]\u961f\u4f0d\u540c\u76df[[RED]][]-----
|
||||
Commands.Party.Alliance.Ally=[[WHITE]]{0} [[DARK_GRAY]]\u540c\u76df\u6709: [[WHITE]]{1}
|
||||
Commands.Party.Alliance.Members.Header=-----[][[GREEN]]\u540c\u76df\u6210\u5458[[RED]][]-----
|
||||
Commands.Party.Alliance.Invite.0=\u8b66\u544a: [[GREEN]]\u60a8\u4ece {1} \u6536\u5230\u961f\u4f0d\u540c\u76df\u9080\u8bf7\u6765 {0}
|
||||
Commands.Party.Alliance.Invite.1=\u8f93\u5165 [[GREEN]]/party alliance accept[[YELLOW]] \u6765\u63a5\u53d7\u9080\u8bf7
|
||||
Commands.Party.Alliance.Invite.Accepted=[[GREEN]]\u5df2\u63a5\u53d7\u540c\u76df\u9080\u8bf7\u3002
|
||||
Commands.Party.Alliance.None=\u60a8\u6ca1\u6709\u540c\u76df\u3002
|
||||
Commands.Party.Alliance.AlreadyAllies=\u60a8\u7684\u961f\u4f0d\u5df2\u7ecf\u6709\u4e00\u4e2a\u540c\u76df\u3002\u4f7f\u7528 [[DARK_AQUA]]/party alliance disband [[RED]]\u6765\u89e3\u6563
|
||||
Commands.Party.Alliance.Help.0=\u8fd9\u4e2a\u961f\u4f0d\u6ca1\u6709\u7ec4\u6210\u540c\u76df\uff0c\u4f7f\u7528 [[DARK_AQUA]]/party alliance invite <player>[[RED]] \u9080\u8bf7
|
||||
Commands.Party.Alliance.Help.1=\u5b83\u7684\u961f\u957f\u6765\u7ed3\u76df\u3002
|
||||
Commands.ptp.Enabled=\u961f\u4f0d\u4f20\u9001 [[GREEN]]\u542f\u7528
|
||||
Commands.ptp.Disabled=\u961f\u4f0d\u4f20\u9001 [[RED]]\u7981\u7528
|
||||
Commands.ptp.NoRequests=\u5f53\u524d\u6ca1\u6709\u4f20\u9001\u8bf7\u6c42
|
||||
Commands.ptp.NoWorldPermissions=[mcMMO] \u4f60\u6ca1\u6709\u6743\u9650\u4f20\u9001\u5230\u4e16\u754c {0}.
|
||||
Commands.ptp.Request1={0} [[GREEN]]\u5df2\u7ecf\u5411\u4f60\u53d1\u51fa\u8bf7\u6c42\u4f20\u9001
|
||||
Commands.ptp.Request2=[[GREEN]]\u540c\u610f\u4f20\u9001\u8f93\u5165 [[YELLOW]]/ptp accept. [[GREEN]]\u8bf7\u6c42\u5c06\u5728 [[RED]]{0} [[GREEN]] \u79d2\u540e\u5931\u6548
|
||||
Commands.ptp.AcceptAny.Enabled=\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u786e\u8ba4 [[GREEN]]\u542f\u7528
|
||||
Commands.ptp.AcceptAny.Disabled=\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u786e\u8ba4 [[RED]]\u7981\u7528
|
||||
Commands.ptp.RequestExpired=\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u5df2\u5931\u6548!
|
||||
Commands.PowerLevel.Leaderboard=--mcMMO[[BLUE]] \u6218\u6597\u529b [[YELLOW]]\u6392\u884c\u699c--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]\u6218\u6597\u529b: [[GREEN]]{0} [[DARK_RED]]\u6700\u9ad8\u7b49\u7ea7: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]\u6218\u6597\u529b: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]\u4f60\u7684\u6280\u672f\u6c34\u5e73\u5df2\u590d\u4f4d\u6210\u529f.
|
||||
Commands.Reset.Single=[[GREEN]]\u4f60\u7684 {0} \u6280\u80fd\u7b49\u7ea7\u5df2\u6210\u529f\u91cd\u7f6e.
|
||||
Commands.Reset=\u91cd\u7f6e\u6280\u80fd\u7b49\u7ea7\u4e3a0
|
||||
Commands.Scoreboard.Clear=[[DARK_AQUA]]mcMMO \u8bb0\u5206\u677f\u5df2\u6e05\u7a7a\u3002
|
||||
Commands.Scoreboard.NoBoard=mcMMO \u8bb0\u5206\u677f\u5f53\u524d\u672a\u6fc0\u6d3b\u3002
|
||||
Commands.Scoreboard.Keep=[[DARK_AQUA]]mcMMO \u8bb0\u5206\u677f\u5c06\u60ac\u505c\u76f4\u5230\u60a8\u4f7f\u7528 [[GREEN]]/mcscoreboard clear[[DARK_AQUA]]\u3002
|
||||
Commands.Scoreboard.Timer=[[DARK_AQUA]]mcMMO \u8bb0\u5206\u677f\u5c06\u5728 [[GOLD]]{0}[[DARK_AQUA]] \u79d2\u540e\u6e05\u7a7a\u3002
|
||||
Commands.Scoreboard.Help.0=[[GOLD]] == [[RED]]/mcscoreboard [[GREEN]]\u5e2e\u52a9[[GOLD]] ==
|
||||
Commands.Scoreboard.Help.1=[[DARK_AQUA]]/mcscoreboard[[AQUA]] clear [[WHITE]] - \u6e05\u7a7a mcMMO \u8bb0\u5206\u677f
|
||||
Commands.Scoreboard.Help.2=[[DARK_AQUA]]/mcscoreboard[[AQUA]] keep [[WHITE]] - \u4fdd\u6301 mcMMO \u8bb0\u5206\u677f\u60ac\u505c
|
||||
Commands.Scoreboard.Help.3=[[DARK_AQUA]]/mcscoreboard[[AQUA]] time [n] [[WHITE]] - [[LIGHT_PURPLE]]n[[WHITE]] \u79d2\u540e\u6e05\u7a7a mcMMO \u8bb0\u5206\u677f
|
||||
Commands.Scoreboard.Tip.Keep=[[GOLD]]\u63d0\u793a: \u5f53\u8bb0\u5206\u677f\u663e\u793a\u65f6\u4f7f\u7528 [[RED]]/mcscoreboard keep[[GOLD]] \u6765\u4fdd\u6301\u5b83\u4e0d\u6d88\u5931\u3002
|
||||
Commands.Scoreboard.Tip.Clear=[[GOLD]]\u63d0\u793a: \u4f7f\u7528 [[RED]]/mcscoreboard clear[[GOLD]] \u6765\u5173\u95ed\u8ba1\u5206\u677f\u3002
|
||||
Commands.Skill.Invalid=\u8fd9\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u6280\u80fd\u540d\u5b57!
|
||||
Commands.Skill.ChildSkill=\u5b50\u6280\u80fd\u5bf9\u8be5\u547d\u4ee4\u65e0\u6548\uff01
|
||||
Commands.Skill.Leaderboard=--mcMMO [[BLUE]]{0}[[YELLOW]] \u6392\u884c\u699c--
|
||||
Commands.SkillInfo=- \u67e5\u770b\u6280\u80fd\u7684\u8be6\u7ec6\u4fe1\u606f
|
||||
Commands.Stats.Self=\u4f60\u7684\u4fe1\u606f
|
||||
Commands.Stats=- \u67e5\u770b\u4f60\u7684mcMMO\u7edf\u8ba1\u4fe1\u606f
|
||||
Commands.ToggleAbility=- \u7528\u9f20\u6807\u53f3\u952e\u5207\u6362\u6280\u80fd\u6fc0\u6d3b\u6a21\u5f0f
|
||||
Commands.Usage.0=\u6b63\u786e\u7684\u7528\u6cd5 /{0}
|
||||
Commands.Usage.1=\u6b63\u786e\u7684\u7528\u6cd5\u5e94\u4e3a /{0} {1}
|
||||
Commands.Usage.2=\u6b63\u786e\u7684\u7528\u6cd5 /{0} {1} {2}
|
||||
Commands.Usage.3=\u6b63\u786e\u7684\u7528\u6cd5 /{0} {1} {2} {3}
|
||||
Commands.Usage.FullClassName=\u6570\u636e\u7c7b\u578b
|
||||
Commands.Usage.Level=\u7b49\u7ea7
|
||||
Commands.Usage.Message=\u6d88\u606f
|
||||
Commands.Usage.Page=\u9875
|
||||
Commands.Usage.PartyName=\u540d\u79f0
|
||||
Commands.Usage.Password=\u5bc6\u7801
|
||||
Commands.Usage.Player=\u73a9\u5bb6
|
||||
Commands.Usage.Rate=\u6bd4\u7387
|
||||
Commands.Usage.Skill=\u6280\u80fd
|
||||
Commands.Usage.XP=\u7ecf\u9a8c\u503c
|
||||
mcMMO.NoInvites=\u4f60\u73b0\u5728\u6ca1\u6709\u6536\u5230\u4efb\u4f55\u9080\u8bf7
|
||||
mcMMO.NoPermission=[[DARK_RED]]\u6743\u9650\u4e0d\u8db3.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]\u5982\u679c\u4f60\u6ca1\u6709\u67d0\u4e2a\u6280\u80fd\u7684\u4f7f\u7528\u6743\u9650\u90a3\u4e48\u4ed6\u5c06\u4e0d\u4f1a\u5728\u8fd9\u91cc\u663e\u793a.
|
||||
Party.Forbidden=[mcMMO] \u961f\u4f0d\u529f\u80fd\u4e0d\u5141\u8bb8\u5728\u8fd9\u4e2a\u4e16\u754c\u5f00\u542f (\u8be6\u60c5\u8bf7\u770b\u6743\u9650\u914d\u7f6e)
|
||||
Party.Help.0=\u6b63\u786e\u7684\u7528\u6cd5 [[DARK_AQUA]]{0} <player> [password].
|
||||
Party.Help.1=\u521b\u5efa\u4e00\u4e2a\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0} <name> [password].
|
||||
Party.Help.2=\u67e5\u9605 [[DARK_AQUA]]{0} [[RED]]\u83b7\u53d6\u66f4\u591a\u4fe1\u606f
|
||||
Party.Help.3=\u4f7f\u7528 [[DARK_AQUA]]{0} <player> [password] [[RED]]\u52a0\u5165\u6216 [[DARK_AQUA]]{1} [[RED]]\u9000\u51fa
|
||||
Party.Help.4=\u9501\u5b9a\u6216\u89e3\u9501\u4f60\u7684\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0}
|
||||
Party.Help.5=\u8bbe\u7f6e\u961f\u4f0d\u5bc6\u7801, \u4f7f\u7528 [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=\u4ece\u4f60\u7684\u961f\u4f0d\u4e2d\u8e22\u51fa\u73a9\u5bb6, \u4f7f\u7528 [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=\u79fb\u4ea4\u961f\u957f, \u4f7f\u7528 [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=\u89e3\u6563\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0}
|
||||
Party.Help.9=\u4f7f\u7528 [[DARK_AQUA]]{0} [[RED]]\u6765\u4e0e\u4f60\u7684\u961f\u4f0d\u6210\u5458\u5206\u4eab\u7269\u54c1
|
||||
Party.Help.10=\u4f7f\u7528 [[DARK_AQUA]]{0} [[RED]]\u5f00\u542f\u4e0e\u4f60\u7684\u961f\u4f0d\u6210\u5458\u5206\u4eab\u7ecf\u9a8c
|
||||
Party.InformedOnJoin={0} [[GREEN]]\u5df2\u7ecf\u52a0\u5165\u4f60\u7684\u961f\u4f0d
|
||||
Party.InformedOnQuit={0} [[GREEN]]\u79bb\u5f00\u4e86\u961f\u4f0d
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]\u5df2\u8bbe\u7f6e\u961f\u4f0d\u540d\u4e3a [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]\u90a3\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u961f\u4f0d\u540d\u5b57.
|
||||
Party.Invite.Self=\u4f60\u4e0d\u80fd\u9080\u8bf7\u81ea\u5df1!
|
||||
Party.IsLocked=\u8fd9\u4e2a\u961f\u4f0d\u5df2\u7ecf\u9501\u5b9a!
|
||||
Party.IsntLocked=\u8fd9\u4e2a\u961f\u4f0d\u5e76\u6ca1\u6709\u9501\u5b9a!
|
||||
Party.Locked=\u961f\u4f0d\u88ab\u9501\u5b9a, \u53ea\u6709\u961f\u957f\u53ef\u4ee5\u9080\u8bf7.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} \u4f60\u4e0d\u5728\u4f60\u7684\u56e2\u961f
|
||||
Party.NotOwner=[[DARK_RED]]\u4f60\u4e0d\u662f\u961f\u957f
|
||||
Party.Target.NotOwner=[[DARK_RED]]{0} \u4e0d\u662f\u961f\u957f\u3002
|
||||
Party.Owner.New=[[GREEN]]{0} \u73b0\u5728\u662f\u65b0\u7684\u6d3e\u7cfb\u9886\u961f.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]\u4f60\u5df2\u7ecf\u4e0d\u518d\u662f\u6d3e\u7cfb\u5185\u7684\u9886\u961f.
|
||||
Party.Owner.Player=[[GREEN]]\u4f60\u73b0\u5728\u4e0d\u662f\u961f\u957f\u4e86
|
||||
Party.Password.None=\u52a0\u5165\u8fd9\u4e2a\u961f\u4f0d\u9700\u8981\u5bc6\u7801. \u8bf7\u63d0\u4f9b\u5bc6\u7801\u518d\u52a0\u5165
|
||||
Party.Password.Incorrect=\u961f\u4f0d\u5bc6\u7801\u9519\u8bef
|
||||
Party.Password.Set=[[GREEN]]\u961f\u4f0d\u5bc6\u7801\u8bbe\u7f6e\u4e3a {0}
|
||||
Party.Password.Removed=[[GREEN]]\u961f\u4f0d\u5bc6\u7801\u5df2\u88ab\u6e05\u9664
|
||||
Party.Player.Invalid=\u8fd9\u4e0d\u662f\u4e00\u540d\u6709\u6548\u7684\u73a9\u5bb6
|
||||
Party.NotOnline=[[DARK_RED]]{0} \u4e0d\u5728\u7ebf!
|
||||
Party.Player.InSameParty={0} \u5df2\u7ecf\u5728\u961f\u4f0d\u4e2d!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} \u4e0d\u5728\u961f\u4f0d\u91cc
|
||||
Party.Specify=\u4f60\u5fc5\u987b\u6307\u5b9a\u4e00\u4e2a\u961f\u4f0d
|
||||
Party.Teleport.Dead=\u4f60\u4e0d\u80fd\u4f20\u9001\u5230\u6b7b\u4ea1\u7684\u73a9\u5bb6\u8eab\u8fb9
|
||||
Party.Teleport.Hurt=\u4f60\u53d7\u5230\u4f24\u5bb3, \u81f3\u5c11 {0} \u79d2\u5185\u4e0d\u80fd\u4f20\u9001
|
||||
Party.Teleport.Player=[[GREEN]]\u4f60\u5df2\u7ecf\u4f20\u9001\u5230 {0}.
|
||||
Party.Teleport.Self=\u4f60\u4e0d\u80fd\u4f20\u9001\u5230\u4f60\u81ea\u5df1\u90a3\u91cc!
|
||||
Party.Teleport.Target=[[GREEN]]{0} \u5df2\u7ecf\u4f20\u9001\u5230\u4f60\u8eab\u8fb9.
|
||||
Party.Teleport.Disabled={0} \u4e0d\u5141\u8bb8\u961f\u4f0d\u4f20\u9001
|
||||
Party.Rename.Same=\u8fd9\u5df2\u7ecf\u662f\u4f60\u7684\u961f\u4f0d\u540d\u5b57\u4e86!
|
||||
Party.Join.Self=\u4f60\u4e0d\u80fd\u52a0\u5165\u4f60\u81ea\u5df1!
|
||||
Party.Unlocked=[[GRAY]]\u961f\u4f0d\u5df2\u89e3\u9501
|
||||
Party.Disband=[[GRAY]]\u961f\u4f0d\u5df2\u89e3\u6563
|
||||
Party.Alliance.Formed=[[GRAY]]\u60a8\u7684\u961f\u4f0d\u5f53\u524d\u4e0e [[GREEN]]{0} [[GRAY]]\u7ed3\u76df
|
||||
Party.Alliance.Disband=[[GRAY]]\u60a8\u7684\u961f\u4f0d\u4e0d\u518d\u4e0e [[RED]]{0} [[GRAY]]\u7ed3\u76df
|
||||
Party.Status.Locked=[[DARK_RED]](\u4ec5\u9080\u8bf7)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](\u5f00\u542f)
|
||||
Party.LevelUp=\u961f\u4f0d\u7b49\u7ea7\u63d0\u5347 {0} \u7ea7. \u603b\u8ba1 ({1})
|
||||
Party.Feature.Chat=\u961f\u4f0d\u804a\u5929
|
||||
Party.Feature.Teleport=\u961f\u4f0d\u4f20\u9001
|
||||
Party.Feature.Alliance=\u540c\u76df
|
||||
Party.Feature.ItemShare=\u7269\u54c1\u5171\u4eab
|
||||
Party.Feature.XpShare=\u7ecf\u9a8c\u5171\u4eab
|
||||
Party.Feature.Locked.Chat=\u529f\u80fd\u9501\u5b9a\u76f4\u81f3 {0}+ \u7ea7(\u961f\u4f0d\u804a\u5929)
|
||||
Party.Feature.Locked.Teleport=\u529f\u80fd\u9501\u5b9a\u76f4\u81f3 {0}+ (\u961f\u4f0d\u4f20\u9001)
|
||||
Party.Feature.Locked.Alliance=\u529f\u80fd\u9501\u5b9a\u76f4\u81f3 {0}+ (\u540c\u76df)
|
||||
Party.Feature.Locked.ItemShare=\u529f\u80fd\u9501\u5b9a\u76f4\u81f3 {0}+ (\u7269\u54c1\u5171\u4eab)
|
||||
Party.Feature.Locked.XpShare=\u529f\u80fd\u9501\u5b9a\u76f4\u81f3 {0}+ (\u7ecf\u9a8c\u5171\u4eab)
|
||||
Party.Feature.Disabled.1=\u961f\u4f0d\u804a\u5929\u5c1a\u672a\u89e3\u9501\u3002
|
||||
Party.Feature.Disabled.2=\u961f\u4f0d\u4f20\u9001\u5c1a\u672a\u89e3\u9501\u3002
|
||||
Party.Feature.Disabled.3=\u961f\u4f0d\u540c\u76df\u5c1a\u672a\u89e3\u9501\u3002
|
||||
Party.Feature.Disabled.4=\u961f\u4f0d\u7269\u54c1\u5171\u4eab\u5c1a\u672a\u89e3\u9501\u3002
|
||||
Party.Feature.Disabled.5=\u961f\u4f0d\u7ecf\u9a8c\u5171\u4eab\u5c1a\u672a\u89e3\u9501\u3002
|
||||
Party.ShareType.Xp=\u7ecf\u9a8c
|
||||
Party.ShareType.Item=\u7269\u54c1
|
||||
Party.ShareMode.None=\u65e0
|
||||
Party.ShareMode.Equal=\u5747\u5206
|
||||
Party.ShareMode.Random=\u968f\u673a
|
||||
Party.ItemShare.Category.Loot=\u63a0\u593a
|
||||
Party.ItemShare.Category.Mining=\u6316\u77ff
|
||||
Party.ItemShare.Category.Herbalism=\u8349\u836f\u5b66
|
||||
Party.ItemShare.Category.Woodcutting=\u4f10\u6728
|
||||
Party.ItemShare.Category.Misc=\u6742\u9879
|
||||
Commands.XPGain.Acrobatics=\u6389\u843d
|
||||
Commands.XPGain.Alchemy=\u917f\u9020\u836f\u6c34
|
||||
Commands.XPGain.Archery=\u7a7a\u624b\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Axes=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Child=\u4ece\u4e3b\u6280\u80fd\u83b7\u53d6\u7b49\u7ea7
|
||||
Commands.XPGain.Excavation=\u6316\u5230\u5b9d\u7269
|
||||
Commands.XPGain.Fishing=\u9493\u9c7c (\u53bb\u60f3\u60f3\u5427\uff01)
|
||||
Commands.XPGain.Herbalism=\u6536\u83b7\u4f5c\u7269
|
||||
Commands.XPGain.Mining=\u6316\u6398\u77f3\u5934\u548c\u77ff\u7269
|
||||
Commands.XPGain.Repair=\u4fee\u7406
|
||||
Commands.XPGain.Swords=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Taming=\u9a6f\u517d, \u548c\u4f60\u7684\u72fc\u4e00\u8d77\u6218\u6597
|
||||
Commands.XPGain.Unarmed=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Woodcutting=\u6b63\u5728\u780d\u5012\u6811\u6728
|
||||
Commands.XPGain=[[DARK_GRAY]]\u83b7\u5f97\u7ecf\u9a8c: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]\u4f60\u7684\u7ecf\u9a8c\u6761\u9501\u5b9a\u5728 {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]\u4f60\u7684\u7ecf\u9a8c\u6761\u73b0\u5728 [[GREEN]]\u89e3\u9664\u9501\u5b9a\u4e86[[GOLD]]!
|
||||
Commands.xprate.modified=\u7ecf\u9a8c\u500d\u7387\u5df2\u8bbe\u7f6e\u4e3a {0}
|
||||
Commands.xprate.over=mcMMO \u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u7ed3\u675f!!
|
||||
Commands.xprate.proper.0=\u60f3\u4fee\u6539\u7ecf\u9a8c\u83b7\u53d6\u7387\u8bf7\u8f93\u5165 /xprate <integer> <true/false>
|
||||
Commands.xprate.proper.1=\u60f3\u628a\u7ecf\u9a8c\u83b7\u53d6\u7387\u8c03\u6574\u4e3a\u9ed8\u8ba4\u8bf7\u8f93\u5165 /xprate reset
|
||||
Commands.xprate.proper.2=\u8bf7\u6307\u5b9a true \u6216 false \u6765\u8868\u660e\u8fd9\u662f\u5426\u662f\u4e00\u4e2a\u7ecf\u9a8c\u4e8b\u4ef6
|
||||
Commands.xprate.started.0=[[GOLD]] mcMMO \u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u5df2\u5f00\u59cb!
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO \u7ecf\u9a8c\u83b7\u53d6\u7387\u73b0\u5728\u4e3a {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO \u73b0\u5728\u6b63\u5904\u4e8e\u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u9636\u6bb5! \u7ecf\u9a8c\u83b7\u53d6\u7387\u4e3a {0}\u500d
|
||||
Effects.Effects=\u6548\u679c
|
||||
Effects.Child=[[DARK_GRAY]]\u7b49\u7ea7: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]\u7b49\u7ea7: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Available=[[GRAY]]{0} \u7684\u5411\u5bfc - \u8f93\u5165/{1} ? [\u9875\u6570]
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} \u5411\u5bfc[[GOLD]]=-
|
||||
Guides.Page.Invalid=\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u9875\u6570!
|
||||
Guides.Page.OutOfRange=\u90a3\u9875\u4e0d\u5b58\u5728, \u603b\u5171\u53ea\u6709 {0} \u9875
|
||||
Guides.Usage=\u7528\u6cd5 /{0} ? [\u9875\u6570]
|
||||
Guides.Acrobatics.Section.0=[[DARK_AQUA]]\u5173\u4e8e\u6742\u6280:\n[[YELLOW]]\u6742\u6280\u662f mcMMO \u4e2d\u4f18\u96c5\u79fb\u52a8\u7684\u827a\u672f\u3002\n[[YELLOW]]\u5b83\u63d0\u4f9b\u4e86\u6218\u6597\u52a0\u6210\u548c\u73af\u5883\u4f24\u5bb3\u52a0\u6210\u3002\n\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6:\n[[YELLOW]]\u901a\u8fc7\u5728\u6218\u6597\u4e2d\u95ea\u907f\u6216\u8005\u4ece\u9ad8\u5904\n[[YELLOW]]\u8dcc\u843d\u65f6\u53d7\u4f24\u5e76\u5e78\u5b58\u6765\u83b7\u5f97\u7ecf\u9a8c\u3002
|
||||
Guides.Acrobatics.Section.1=[[DARK_AQUA]]\u7ffb\u6eda\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\n[[YELLOW]]\u5f53\u60a8\u53d7\u5230\u8dcc\u843d\u4f24\u5bb3\u65f6\u60a8\u6709\u88ab\u52a8\u673a\u4f1a\u6765\u514d\u53d7\u4f24\u5bb3\u3002\n[[YELLOW]]\u60a8\u53ef\u4ee5\u5728\u8dcc\u843d\u4e2d\u6309\u4f4f\u6f5c\u884c\u952e\u6765\u63d0\u5347\u89e6\u53d1\u51e0\u7387\u3002\n[[YELLOW]]\u8fd9\u5c06\u89e6\u53d1\u4e00\u4e2a\u4f18\u96c5\u5730\u7ffb\u6eda\u800c\u4e0d\u662f\u666e\u901a\u7684\u7ffb\u6eda\u3002\n[[YELLOW]]\u4f18\u96c5\u5730\u7ffb\u6eda\u7c7b\u4f3c\u666e\u901a\u7684\u7ffb\u6eda\u4f46\u662f\u5b83\u6709\u53cc\u500d\u51e0\u7387\n[[YELLOW]]\u53d1\u751f\uff0c\u5e76\u4e14\u80fd\u591f\u63d0\u4f9b\u6bd4\u666e\u901a\u5730\u7ffb\u6eda\u66f4\u9ad8\u7684\u4f24\u5bb3\u51cf\u514d\u3002\n[[YELLOW]]\u7ffb\u6eda\u51e0\u7387\u53d6\u51b3\u4e8e\u60a8\u7684\u6280\u80fd\u7b49\u7ea7
|
||||
Guides.Acrobatics.Section.2=[[DARK_AQUA]]\u95ea\u907f\u662f\u5982\u4f55\u5de5\u4f5c\u7684?\n[[YELLOW]]\u95ea\u907f\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4ed6\u5728\u4f60\u88ab\u653b\u51fb\u65f6\u6709\u4e00\u5b9a\u51e0\u7387\u88ab\u6fc0\u53d1\n[[YELLOW]]\u8fd9\u4e2a\u51e0\u7387\u548c\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u6709\u5173
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]\u5173\u4e8e\u70bc\u91d1:\n[[YELLOW]]\u70bc\u91d1\u662f\u836f\u6c34\u917f\u9020\u7684\u6280\u80fd\u3002\n[[YELLOW]]\u5b83\u63d0\u5347\u4e86\u836f\u6c34\u917f\u9020\u65f6\u7684\u901f\u5ea6\uff0c\u5e76\u4e14\u52a0\u5165\u4e86\n[[YELLOW]]\u65b0\u7684\uff08\u76f8\u5bf9\u4e4b\u524d\uff09\u65e0\u6cd5\u83b7\u53d6\u7684\u836f\u6c34\u3002\n\n\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6\uff1a\n[[YELLOW]]\u901a\u8fc7\u917f\u9020\u836f\u6c34\u6765\u83b7\u53d6\u7ecf\u9a8c\u3002
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]\u50ac\u5316\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\n[[YELLOW]]\u50ac\u5316\u63d0\u5347\u917f\u9020\u7684\u901f\u5ea6\uff0c\u5728 1000 \u7ea7\n[[YELLOW]]\u65f6\u80fd\u8fbe\u5230\u6700\u9ad8 4 \u500d\u3002\n[[YELLOW]]\u6b64\u80fd\u529b\u9ed8\u8ba4\u5728 100 \u7ea7\u89e3\u9501\u3002
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]\u6df7\u5408\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\n[[YELLOW]]\u6df7\u5408\u5141\u8bb8\u4f7f\u7528\u81ea\u8ba2\u539f\u6599\u917f\u9020\u66f4\u591a\u836f\u6c34\u3002\n[[YELLOW]]\u7279\u6b8a\u539f\u6599\u6839\u636e\u60a8\u7684\u7b49\u7ea7\u6765\u89e3\u9501\u3002\n[[YELLOW]]\u603b\u5171\u6709 8 \u4e2a\u7b49\u7ea7\u9700\u8981\u89e3\u9501\u3002
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]\u6df7\u5408\u7b2c 1 \u9636\u539f\u6599:\n[[YELLOW]]\u70c8\u7130\u7c89, \u53d1\u9175\u86db\u773c, \u6076\u9b42\u4e4b\u6cea, \u7ea2\u77f3,\n[[YELLOW]]\u8424\u77f3\u7c89, \u7cd6, \u95ea\u70c1\u7684\u897f\u74dc, \u91d1\u80e1\u841d\u535c,\n[[YELLOW]]\u5ca9\u6d46\u818f, \u5730\u72f1\u75a3, \u8718\u86db\u773c, \u706b\u836f, \u7761\u83b2,\n[[YELLOW]]\u6cb3\u8c5a\n[[YELLOW]](\u7eaf\u51c0\u836f\u6c34)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]\u6df7\u5408\u7b2c 2 \u9636\u539f\u6599:\n[[YELLOW]]\u80e1\u841d\u535c (\u6025\u8feb\u836f\u6c34)\n[[YELLOW]]\u7c98\u6db2\u7403 (\u8fdf\u949d\u836f\u6c34)\n\n[[DARK_AQUA]]\u6df7\u5408\u7b2c 3 \u9636\u539f\u6599:\n[[YELLOW]]\u4e0b\u754c\u77f3\u82f1 (\u4f24\u5bb3\u5438\u6536\u836f\u6c34)\n[[YELLOW]]\u7ea2\u8272\u8611\u83c7 (\u8df3\u8dc3\u836f\u6c34)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]\u6df7\u5408\u7b2c 4 \u9636\u539f\u6599:\n[[YELLOW]]\u82f9\u679c (\u751f\u547d\u52a0\u6210\u836f\u6c34)\n[[YELLOW]]\u8150\u8089 (\u9965\u997f\u836f\u6c34)\n\n[[DARK_AQUA]]\u6df7\u5408\u7b2c 5 \u9636\u539f\u6599:\n[[YELLOW]]\u8910\u8272\u8611\u83c7 (\u53cd\u80c3\u836f\u6c34)\n[[YELLOW]]\u58a8\u56ca (\u5931\u660e\u836f\u6c34)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]\u6df7\u5408\u7b2c 6 \u9636\u539f\u6599:\n[[YELLOW]]\u8568\u7c7b (\u9971\u548c\u836f\u6c34)\n\n[[DARK_AQUA]]\u6df7\u5408\u7b2c 7 \u9636\u539f\u6599:\n[[YELLOW]]\u6bd2\u9a6c\u94c3\u85af (Potion of Decay)\n\n[[\u8150\u70c2\u836f\u6c34]]\u6df7\u5408\u7b2c 8 \u9636\u539f\u6599:\n[[YELLOW]]\u666e\u901a\u91d1\u82f9\u679c (\u6297\u6027\u63d0\u5347\u836f\u6c34)
|
||||
Guides.Axes.Section.0=[[DARK_AQUA]]\u5173\u4e8e \u65a7\u6280:\n[[YELLOW]]\u6709\u4e86\u65a7\u5934\u6280\u80fd,\u65a7\u5b50\u4e0d\u518d\u53ea\u662f\u780d\u6811\u800c\u5df2.\n[[YELLOW]]\u4f60\u8fd8\u53ef\u4ee5\u780d\u5176\u4ed6\u751f\u7269\u548c\u73a9\u5bb6\u6765\u8d5a\u53d6\u7ecf\u9a8c.\n[[YELLOW]]\u6253\u51fb\u751f\u7269\u65f6\u9644\u52a0\u51fb\u9000\u6548\u679c.\n[[YELLOW]]\u8fd8\u4f1a\u5bf9\u751f\u7269\u548c\u73a9\u5bb6\u9020\u6210\u81f4\u547d\u4f24\u5bb3.\n[[YELLOW]]\u4f60\u7684\u65a7\u5b50\u4f1a\u50cf\u4f10\u6728\u673a\u4e00\u6837.\n[[YELLOW]]\u8f7b\u677e\u524a\u6389\u654c\u4eba\u7684\u62a4\u7532.\n[[YELLOW]]\u6548\u679c\u968f\u7740\u6280\u80fd\u7b49\u7ea7\u63d0\u9ad8.\n[[DARK_AQUA]]\u7ecf\u9a8c\u7684\u83b7\u53d6:\n[[YELLOW]]\u624b\u6301\u65a7\u5b50\u653b\u51fb\u5176\u4ed6\u751f\u7269\u6216\u73a9\u5bb6.
|
||||
Guides.Axes.Section.1=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u65a9\u9996\u8005?\n[[YELLOW]]\u8fd9\u4e2a\u6280\u80fd\u4f1a\u9020\u6210\u8303\u56f4\u6253\u51fb\u4f24\u5bb3\n[[YELLOW]]\u4f24\u5bb3\u7b49\u4e8e\u5bf9\u4e3b\u8981\u653b\u51fb\u76ee\u6807\u9020\u6210\u4f24\u5bb3\u768450%\n[[YELLOW]]\u6240\u4ee5\u5f88\u5bb9\u6613\u6e05\u7406\u6389\u4e00\u5927\u7247\u602a\u7269
|
||||
Guides.Axes.Section.2=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u81f4\u547d\u4e00\u51fb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4e00\u5b9a\u51e0\u7387\u5bf9\u76ee\u6807\u9020\u6210\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u9ed8\u8ba4\u6bcf2\u7ea7\u589e\u52a0 0.1%\n[[YELLOW]]\u5bf9\u751f\u7269\u9020\u62102\u500d\u4f24\u5bb3\n[[YELLOW]]\u5bf9\u73a9\u5bb6\u9020\u62101.5\u500d\u4f24\u5bb3
|
||||
Guides.Axes.Section.3=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u65a7\u7cbe\u901a?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4f7f\u7528\u65a7\u5b50\u653b\u51fb\u65f6\u9644\u52a0\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u9ed8\u8ba4\u6bcf50\u7ea7\u989d\u5916\u63d0\u9ad81\u70b9\u4f24\u5bb3\n[[YELLOW]]4\u70b9\u989d\u5916\u4f24\u5bb3\u5c01\u9876
|
||||
Guides.Axes.Section.5=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5f3a\u529b\u51b2\u51fb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4f7f\u7528\u65a7\u5b50\u653b\u51fb\u65f6\u4e00\u5b9a\u51e0\u7387\u7ed9\u654c\u4eba\u5e26\u6765\u5de8\u5927\u7684\u51b2\u51fb\u529b\n[[YELLOW]]\u9ed8\u8ba4\u51e0\u7387\u4e3a 25%\n[[YELLOW]]\u6548\u679c\u76f8\u5f53\u4e8e \u51fb\u9000 II \u7684\u9644\u9b54\u6548\u679c\n[[YELLOW]]\u6b64\u5916\u8fd8\u4f1a\u5bf9\u76ee\u6807\u9020\u6210\u989d\u5916\u4f24\u5bb3
|
||||
Guides.Mining.Section.0=[[DARK_AQUA]]\u5173\u4e8e \u6316\u77ff:\n[[YELLOW]]\u5728\u6316\u77ff\u7684\u65f6\u5019,\u6316\u77ff\u6280\u80fd\u53ef\u4ee5\u63d0\u4f9b\u591a\u91cd\u77ff\u7269\u6389\u843d\u7684\u5956\u52b1.\n\n[[DARK_AQUA]]\u7ecf\u9a8c\u63d0\u5347:\n[[YELLOW]]\u4f60\u5fc5\u987b\u4f7f\u7528\u9550\u5b50\u6316\u6389\u6709\u6548\u7684\u65b9\u5757\u624d\u80fd\u589e\u52a0\u672c\u6280\u80fd\u7684\u7ecf\u9a8c.
|
||||
Guides.Mining.Section.1=[[DARK_AQUA]]\u517c\u5bb9\u6750\u6599:\n[[YELLOW]]\u77f3\u5934,\u7164\u77ff\u77f3,\u94c1\u77ff\u77f3,\u91d1\u77ff\u77f3,\u94bb\u77f3\u77ff\u77f3,\u7ea2\u77f3\u77ff\u77f3,\n[[YELLOW]]\u9752\u91d1\u77f3\u77ff\u77f3,\u9ed1\u66dc\u77f3,\u82d4\u77f3,\u672b\u5730\u77f3,\n[[YELLOW]]\u8424\u77f3,\u5730\u72f1\u5ca9.
|
||||
Guides.Mining.Section.2=[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u8d85\u7ea7\u788e\u77f3\u673a:\n[[YELLOW]]\u628a\u9550\u5b50\u62ff\u5728\u4f60\u7684\u624b\u4e0a,\u6309\u4e0b\u53f3\u952e\u6765\u51c6\u5907\u4f60\u7684\u9550\u5b50.\n[[YELLOW]]\u4f60\u5c06\u67094\u79d2\u949f\u7684\u65f6\u95f4\u6765\u6fc0\u53d1\u4f60\u7684\u6280\u80fd.\n[[YELLOW]]\u5f53\u4f60\u6572\u4e0b\u5bf9\u5e94\u7684\u77f3\u5934\u4ee5\u540e,\u8d85\u7ea7\u788e\u77f3\u673a\u5c06\u88ab\u6fc0\u6d3b.
|
||||
Guides.Mining.Section.3=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u7ea7\u788e\u77f3\u673a?\n[[YELLOW]]\u8d85\u7ea7\u788e\u77f3\u673a\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u5b83\u80fd\u4f7f\u4f60\u5728\u6316\u6389\u5bf9\u5e94\u77ff\u77f3\u7684\u65f6\u5019\u589e\u52a03\u500d\u6389\u843d\u51e0\u7387\n[[YELLOW]]\u5e76\u4e14\u5728\u6280\u80fd\u65f6\u95f4\u5185\u77ac\u95f4\u7834\u574f\u77f3\u5934\u548c\u77ff\u77f3
|
||||
Guides.Mining.Section.4=[[DARK_AQUA]\u5982\u4f55\u4f7f\u7528\u7206\u7834\u5f00\u91c7:\n[[YELLOW]]\u628a\u96f7\u7ba1\u62ff\u5728\u624b\u4e0a,\u9ed8\u8ba4\u7684\u60c5\u51b5\u4e0b\u662f\u6253\u706b\u5668.\n[[YELLOW]]\u5728\u4e00\u5b9a\u8ddd\u79bb\u5185\u53f3\u952e\u70b9\u51fbTNT,\u8fd9\u5c06\u4f1a\u4f7f\u5f97TNT\u5728\u77ac\u95f4\u5185\u7206\u70b8.
|
||||
Guides.Mining.Section.5=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u7206\u7834\u5f00\u91c7?\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u662f\u4e00\u4e2a\u9700\u8981\u51b7\u5374\u65f6\u95f4\u7684\u6316\u77ff\u6280\u80fd\n[[YELLOW]]\u5b83\u80fd\u4f7f\u4f60\u5728\u4f7f\u7528TNT\u70b8\u77ff\u65f6\u83b7\u5f97\u989d\u5916\u5956\u52b1\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u603b\u5171\u67093\u4e2a\u529f\u80fd\n[[YELLOW]]\u5927\u53f7\u70b8\u5f39:\u4f7f\u4f60\u7684TNT\u7206\u70b8\u8303\u56f4\u6269\u5927\n[[YELLOW]]\u7206\u7834\u4e13\u5bb6:\u964d\u4f4e\u4f60\u53d7\u5230TNT\u7684\u7206\u70b8\u4f24\u5bb3\n[[YELLOW]]\u7206\u7834\u5f00\u91c7:\u4f7f\u4f60\u70b9\u71c3\u7684TNT\u70b8\u4e0b\u8303\u56f4\u5185\u4e00\u5b9a\u6570\u91cf\u7684\u77ff\u77f3
|
||||
Guides.Repair.Section.1=[[DARK_AQUA]]\u6211\u600e\u4e48\u624d\u80fd\u4fee\u7406?\n[[YELLOW]]\u653e\u7f6e\u4e00\u4e2a mcMMO \u7684\u94c1\u7827\u5e76\u4e14\u70b9\u51fb\u53f3\u952e\u6765\u4fee\u7406.\n[[YELLOW]]\u4f60\u76ee\u524d\u62ff\u5728\u624b\u4e0a\u7684\u7269\u54c1,\u6bcf\u70b9\u51fb\u4e00\u6b21\u6d88\u8017\u4e00\u4e2a\u7269\u54c1.
|
||||
Guides.Repair.Section.3=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u7ea7\u4fee\u7406?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u5f53\u73a9\u5bb6\u8fdb\u884c\u4fee\u7406\u65f6\u4f1a\u6062\u590d\u53cc\u500d\u7684\u8010\u4e45
|
||||
Guides.Swords.Section.0=[[DARK_AQUA]]\u5173\u4e8e\u5251\u672f:\n[[YELLOW]]\u5251\u672f\u8ba9\u73a9\u5bb6\u5728\u4f7f\u7528\u5251\u6218\u6597\u65f6\u83b7\u5f97\u989d\u5916\u52a0\u6210\u6548\u679c.\n\n[[DARK_AQUA]]\u5982\u4f55\u83b7\u53d6\u7ecf\u9a8c:\n[[YELLOW]]\u8981\u83b7\u53d6\u7ecf\u9a8c\u4f60\u5fc5\u987b\u7528\u5251\u653b\u51fb\u654c\u4eba.
|
||||
Guides.Swords.Section.1=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5229\u5203\u7a81\u523a?\n[[YELLOW]]\u5229\u5203\u7a81\u523a\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd.\n[[YELLOW]]\u4f60\u53ef\u4ee5\u5c06\u62ff\u5728\u624b\u4e0a\u7684\u5251\u6309\u4e0b\u53f3\u952e\u6765\u542f\u52a8\u5b83.\n[[YELLOW]]\u8fd9\u4e2a\u6280\u80fd\u5c06\u9020\u621025%\u7684\u989d\u5916\u8303\u56f4\u4f24\u5bb3\n[[YELLOW]]\u5e76\u4e14\u9644\u5e26\u81f3\u5c115\u4e2aticks\u7684\u653e\u8840\u6548\u679c
|
||||
Guides.Swords.Section.2=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u53cd\u51fb?\n[[YELLOW]]\u53cd\u51fb\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u5f53\u683c\u6863\u602a\u7269\u6240\u9020\u6210\u7684\u4f24\u5bb3\u65f6\n[[YELLOW]]\u4f60\u6709\u673a\u4f1a\u53cd\u5c0450%\u6240\u53d7\u5230\u7684\u4f24\u5bb3
|
||||
Guides.Swords.Section.3=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u653e\u8840?\n[[YELLOW]]\u653e\u8840\u5c06\u9020\u6210\u654c\u4eba\u6bcf\u4e24\u79d2\u949f\u53d7\u5230\u4f24\u5bb3\n[[YELLOW]]\u76ee\u6807\u4e0d\u505c\u7684\u6d41\u8840\u76f4\u5230\u6548\u679c\u7ed3\u675f\u6216\u662f\u6b7b\u4ea1\n[[YELLOW]]\u653e\u8840\u7684\u65f6\u95f4\u968f\u7740\u4f60\u7684\u5251\u672f\u7684\u63d0\u5347\u800c\u589e\u52a0
|
||||
Guides.Smelting.Section.0=\u5373\u5c06\u5230\u6765...
|
||||
Guides.Taming.Section.1=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u91ce\u6027\u547c\u5524?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u5b83\u53ef\u4ee5\u53ec\u5524\u4e00\u53ea\u72fc,\u8c79\u732b\u6216\u8005\u9a6c\u5230\u4f60\u8eab\u8fb9\n[[YELLOW]]\u624b\u6301\u9aa8\u5934,\u751f\u9c7c\u6216\u82f9\u679c\u6765\u8fdb\u884c\u53ec\u5524
|
||||
Guides.Taming.Section.8=[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5feb\u9910\u670d\u52a1?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u653b\u51fb\u65f6\u6062\u590d\u72fc\u7684\u751f\u547d\u503c
|
||||
Inspect.Offline=\u4f60\u6ca1\u6709\u67e5\u8be2\u4e0d\u5728\u7ebf\u73a9\u5bb6\u4fe1\u606f\u7684\u6743\u9650!
|
||||
Inspect.OfflineStats=\u4e0d\u5728\u7ebf\u73a9\u5bb6\u7684mcmmo\u7edf\u8ba1\u4fe1\u606f [[YELLOW]]{0}
|
||||
Inspect.Stats={0} [[GREEN]]\u7684 mcMMO \u7edf\u8ba1\u4fe1\u606f
|
||||
Inspect.TooFar=\u4f60\u65e0\u6cd5\u68c0\u67e5\u90a3\u4e2a\u73a9\u5bb6\u56e0\u4e3a\u4f60\u4eec\u8ddd\u79bb\u592a\u8fdc\u4e86!
|
||||
Item.ChimaeraWing.Fail=**\u5947\u7f8e\u62c9\u4e4b\u7ffc\u5931\u8d25\u4e86!**
|
||||
Item.ChimaeraWing.Pass=**\u5947\u7f8e\u62c9\u4e4b\u7ffc**
|
||||
Item.ChimaeraWing.Name=\u5947\u7f8e\u62c9\u4e4b\u7ffc
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]\u4f20\u9001\u81f3\u4f60\u7684\u5e8a.
|
||||
Item.Generic.Wait=\u4f60\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u518d\u6b21\u4f7f\u7528! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=\u4f60\u6700\u8fd1\u53d7\u4f24\u4e86\u6240\u4ee5\u4f60\u5fc5\u987b\u7b49\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u4f7f\u7528\u8fd9\u4e2a. [[YELLOW]]({0}s)
|
||||
Item.FluxPickaxe.Name=\u707c\u70ed\u4e4b\u9550
|
||||
Item.FluxPickaxe.Lore.1=[[GRAY]]\u6709\u51e0\u7387\u77ac\u95f4\u7194\u70bc\u77ff\u7269\u3002
|
||||
Item.FluxPickaxe.Lore.2=[[GRAY]]\u9700\u8981\u7194\u70bc\u7b49\u7ea7 {0}+
|
||||
Teleport.Commencing=[[GRAY]]\u4f20\u9001\u5c06\u5728 [[GOLD]]({0}) [[GRAY]] \u79d2\u540e\u8fdb\u884c, \u8bf7\u4fdd\u6301\u7ad9\u7acb\u4e0d\u52a8...
|
||||
Teleport.Cancelled=[[DARK_RED]]\u4f20\u9001\u5df2\u53d6\u6d88!
|
||||
Skills.Child=[[GOLD]](\u5206\u652f\u6280\u80fd)
|
||||
Skills.Disarmed=[[DARK_RED]]\u4f60\u88ab\u7f34\u68b0\u4e86!
|
||||
Skills.Header=-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]\u4f60\u9700\u8981\u66f4\u591a\u7684 [[GRAY]]{0}
|
||||
Skills.Parents=\u4e3b\u6280\u80fd
|
||||
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.ChildStats={0}[[GREEN]]{1}
|
||||
Skills.TooTired=\u4f60\u592a\u7d2f\u4e86\u6682\u65f6\u65e0\u6cd5\u4f7f\u7528\u8be5\u6280\u80fd.[[YELLOW]]({0}s)
|
||||
Skills.Cancelled={0} \u5df2\u53d6\u6d88!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]\u518d\u6b21\u53f3\u952e\u4ee5\u786e\u5b9a [[GOLD]]{0}[[GREEN]]. \u5de6\u952e\u53d6\u6d88.
|
||||
Stats.Header.Combat=[[GOLD]]-=\u683c\u6597\u6280\u80fd=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=\u91c7\u96c6\u6280\u80fd=-
|
||||
Stats.Header.Misc=[[GOLD]]-=\u6742\u9879\u6280\u80fd=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] \u7edf\u8ba1\u4fe1\u606f
|
||||
Perks.XP.Name=\u7ecf\u9a8c
|
||||
Perks.XP.Desc=\u83b7\u5f97 {0}x \u7ecf\u9a8c.
|
||||
Perks.Lucky.Name=\u5e78\u8fd0
|
||||
Perks.Lucky.Desc=\u7ed9\u4e88 {0} \u6280\u80fd\u548c\u80fd\u529b33.3%\u7684\u66f4\u9ad8\u51e0\u7387\u89e6\u53d1
|
||||
Perks.Lucky.Desc.Login=\u7ed9\u4e88\u6280\u80fd\u548c\u80fd\u529b33.3%\u5f97\u66f4\u9ad8\u51e0\u7387\u89e6\u53d1
|
||||
Perks.Lucky.Bonus=[[GOLD]] ({0} \u7684\u597d\u8fd0\u52a0\u6210)
|
||||
Perks.Cooldowns.Name=\u5feb\u901f\u6062\u590d
|
||||
Perks.Cooldowns.Desc=\u51cf\u5c11\u51b7\u5374\u65f6\u95f4 {0}.
|
||||
Perks.ActivationTime.Name=\u8010\u529b
|
||||
Perks.ActivationTime.Desc=\u63d0\u9ad8\u80fd\u529b\u6fc0\u6d3b\u65f6\u95f4 {0} \u79d2.
|
||||
Perks.ActivationTime.Bonus=[[GOLD]] ({0} \u79d2\u989d\u5916\u6301\u7eed\u65f6\u95f4)
|
||||
Hardcore.Mode.Disabled=[[GOLD]][mcMMO] \u786c\u6838\u6a21\u5f0f {0} \u5173\u95ed. {1}
|
||||
Hardcore.Mode.Enabled=[[GOLD]][mcMMO] \u786c\u6838\u6a21\u5f0f {0} \u542f\u7528. {1}
|
||||
Hardcore.DeathStatLoss.Name=\u6280\u80fd\u6b7b\u4ea1\u60e9\u7f5a
|
||||
Hardcore.DeathStatLoss.PlayerDeath=[[GOLD]][mcMMO] [[DARK_RED]]\u6b7b\u4ea1,\u4f60\u5931\u53bb\u4e86 [[BLUE]]{0}[[DARK_RED]].
|
||||
Hardcore.DeathStatLoss.PercentageChanged=[[GOLD]][mcMMO] \u72b6\u6001\u9057\u5931\u7387\u53d8\u66f4\u4e3a {0}.
|
||||
Hardcore.Vampirism.Name=\u5438\u8840\u6a21\u5f0f
|
||||
Hardcore.Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]]\u592a\u4e0d\u719f\u7ec3\u6388\u4e88\u4f60\u83b7\u5f97\u4efb\u4f55\u7684\u77e5\u8bc6.
|
||||
Hardcore.Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]\u4f60\u4ece[[YELLOW]]{1}[[DARK_AQUA]]\u90a3\u5077\u53d6\u4e86[[BLUE]]{0}[[DARK_AQUA]]\u4e2a\u7b49\u7ea7.
|
||||
Hardcore.Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]]\u65e0\u6cd5\u4ece\u4f60\u8fd9\u5077\u53d6\u4efb\u4f55\u7684\u77e5\u8bc6!
|
||||
Hardcore.Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]]\u4ece\u4f60\u8fd9\u5077\u53d6\u4e86[[BLUE]]{1}[[DARK_RED]]\u4e2a\u7b49\u7ea7!
|
||||
Hardcore.Vampirism.PercentageChanged=[[GOLD]][mcMMO] \u72b6\u6001\u5438\u6536\u7387\u53d8\u66f4\u4e3a {0}.
|
||||
MOTD.Donate=[[DARK_AQUA]]\u6350\u8d60\u4fe1\u606f:
|
||||
MOTD.Hardcore.Enabled=[[GOLD]][mcMMO] [[DARK_AQUA]]\u786c\u6838\u6a21\u5f0f\u5df2\u542f\u7528: [[DARK_RED]]{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\u6280\u80fd\u6b7b\u4ea1\u60e9\u7f5a: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Vampirism\u7edf\u8ba1: [[DARK_RED]]{0}%
|
||||
MOTD.PerksPrefix=[mcMMO \u80fd\u529b]
|
||||
MOTD.Version=[[GOLD]][mcMMO] \u6b63\u5728\u8fd0\u884c\u7248\u672c [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO \u7f51\u5740
|
||||
Smelting.Ability.FluxMining=\u70bd\u70ed\u7684\u9550\u5b50\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=\u71c3\u6599\u6548\u7387\u52a0\u500d: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0={0}+ \u7ea7\u540e\u89e3\u9501 (\u66f4\u591a\u51b6\u70bc\u7ecf\u9a8c\u7403)
|
||||
Smelting.Ability.Locked.1={0}+ \u7ea7\u540e\u89e3\u9501 (FLUX MINING)
|
||||
Smelting.Ability.SecondSmelt=\u4e8c\u6b21\u7194\u70bc\u51e0\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=\u7ecf\u9a8c\u52a0\u500d: [[YELLOW]]{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=\u71c3\u6599\u6548\u7387
|
||||
Smelting.SubSkill.FuelEfficiency.Description=\u7194\u70bc\u65f6\u63d0\u9ad8\u7194\u7089\u5185\u71c3\u6599\u7684\u71c3\u70e7\u65f6\u95f4
|
||||
Smelting.SubSkill.SecondSmelt.Name=\u4e8c\u6b21\u7194\u70bc
|
||||
Smelting.SubSkill.SecondSmelt.Description=\u901a\u8fc7\u51b6\u70bc\u83b7\u5f97\u53cc\u500d\u8d44\u6e90
|
||||
Smelting.Effect.4=\u66f4\u591a\u51b6\u70bc\u7ecf\u9a8c\u7403
|
||||
Smelting.Effect.5=\u63d0\u9ad8\u51b6\u70bc\u83b7\u53d6\u7684\u7ecf\u9a8c\u7403
|
||||
Smelting.SubSkill.FluxMining.Name=\u70bd\u70ed\u7684\u9550\u5b50
|
||||
Smelting.SubSkill.FluxMining.Description=\u6316\u77ff\u65f6\u4e00\u5b9a\u51e0\u7387\u4f7f\u77ff\u77f3\u7acb\u5373\u88ab\u7194\u70bc
|
||||
Smelting.Listener=\u51b6\u70bc:
|
||||
Smelting.SkillName=\u51b6\u70bc
|
||||
Commands.Description.addlevels=\u7ed9\u73a9\u5bb6\u589e\u52a0 mcMMO \u7b49\u7ea7
|
||||
Commands.Description.adminchat=\u5207\u6362 mcMMO \u7ba1\u7406\u5458\u804a\u5929\u6216\u53d1\u9001\u7ba1\u7406\u5458\u804a\u5929\u4fe1\u606f
|
||||
Commands.Description.addxp=\u7ed9\u73a9\u5bb6\u589e\u52a0 mcMMO \u7ecf\u9a8c
|
||||
Commands.Description.hardcore=\u4fee\u6539 mcMMO hardcore \u767e\u5206\u6bd4\u6216\u5207\u6362 hardcore \u6a21\u5f0f\u5f00/\u5173
|
||||
Commands.Description.inspect=\u67e5\u770b\u73a9\u5bb6\u8be6\u7ec6\u7684 mcMMO \u4fe1\u606f
|
||||
Commands.Description.mcability=\u5207\u6362 mcMMO \u6280\u80fd\u80fd\u5426\u88ab\u53f3\u952e\u6fc0\u6d3b
|
||||
Commands.Description.mcgod=\u5207\u6362 mcMMO \u4e0a\u5e1d\u6a21\u5f0f
|
||||
Commands.Description.mchud=\u53d8\u66f4\u4f60\u7684 mcMMO HUD \u6837\u5f0f
|
||||
Commands.Description.mcmmo=\u663e\u793a mcMMO \u7684\u7b80\u5355\u63cf\u8ff0
|
||||
Commands.Description.mcnotify=\u5207\u6362 mcMMO \u6280\u80fd\u63d0\u793a\u5f00\u5173
|
||||
Commands.Description.mcpurge=\u6e05\u9664\u6ca1\u6709 mcMMO \u7b49\u7ea7\u7684\u73a9\u5bb6\u548c\u8d85\u8fc7 {0} \u4e2a\u6708\u6ca1\u6709\u767b\u5f55\u7684\u73a9\u5bb6\u7684 mcMMO \u6570\u636e
|
||||
Commands.Description.mcrank=\u663e\u793a\u73a9\u5bb6\u7684 mcMMO \u6392\u540d
|
||||
Commands.Description.mcrefresh=\u5237\u65b0\u6240\u6709\u7684 mcMMO \u51b7\u5374\u65f6\u95f4
|
||||
Commands.Description.mcremove=\u4ece mcMMO \u6570\u636e\u5e93\u4e2d\u79fb\u9664\u4e00\u4e2a\u73a9\u5bb6
|
||||
Commands.Description.mcstats=\u663e\u793a\u4f60\u7684 mcMMO \u7b49\u7ea7\u548c\u7ecf\u9a8c
|
||||
Commands.Description.mctop=\u663e\u793a mcMMO \u6392\u884c\u699c
|
||||
Commands.Description.mmoedit=\u7ed9\u73a9\u5bb6\u8bbe\u7f6e mcMMO \u7b49\u7ea7
|
||||
Commands.Description.mmoupdate=\u4ece\u4e00\u4e2a\u65e7\u7684 mcMMO \u6570\u636e\u5e93\u8fc1\u79fb\u5230\u5f53\u524d\u6570\u636e\u5e93\u5185
|
||||
Commands.Description.mcconvert=\u8f6c\u6362\u6570\u636e\u5e93\u7684\u7c7b\u578b\u6216\u7ecf\u9a8c\u503c\u516c\u5f0f\u7684\u7c7b\u578b
|
||||
Commands.Description.mmoshowdb=\u663e\u793a\u5f53\u524d\u6570\u636e\u5e93\u7c7b\u578b\u540d\u79f0 (\u8fc7\u540e\u66f4\u65b0\u4f7f\u7528 /mmoupdate)
|
||||
Commands.Description.party=\u63a7\u5236\u5404\u79cd mcMMO \u961f\u4f0d\u8bbe\u7f6e
|
||||
Commands.Description.partychat=\u5207\u6362 mcMMO \u961f\u4f0d\u804a\u5929\u6216\u53d1\u9001\u961f\u4f0d\u804a\u5929\u6d88\u606f
|
||||
Commands.Description.ptp=\u4f20\u9001\u81f3 mcMMO \u961f\u4f0d\u6210\u5458
|
||||
Commands.Description.Skill=\u663e\u793a {0} \u8be6\u7ec6\u7684mcMMO\u6280\u80fd\u4fe1\u606f
|
||||
Commands.Description.skillreset=\u91cd\u7f6e mcMMO \u7b49\u7ea7
|
||||
Commands.Description.vampirism=\u66f4\u6539 mcMMO \u69a8\u53d6\u767e\u5206\u6bd4 \u6216\u5207\u6362 vampirism \u6a21\u5f0f\u5f00/\u5173
|
||||
Commands.Description.xplock=\u9501\u5b9a\u6307\u5b9a mcMMO \u6280\u80fd\u7684\u7ecf\u9a8c\u6761
|
||||
Commands.Description.xprate=\u66f4\u6539 mcMMO \u7ecf\u9a8c\u500d\u7387\u6216\u5f00\u542f\u4e00\u4e2a mcMMO \u7ecf\u9a8c\u7ffb\u500d\u4e8b\u4ef6
|
||||
UpdateChecker.Outdated=\u4f60\u6b63\u4f7f\u7528\u7740\u4e00\u4e2a\u8fc7\u65f6\u7248\u672c\u7684 mcMMO !
|
||||
UpdateChecker.NewAvailable=\u53d1\u73b0 BukkitDev \u4e0a\u6709\u53ef\u7528\u65b0\u7248\u672c.
|
||||
Scoreboard.Header.PlayerStats=mcMMO \u7edf\u8ba1
|
||||
Scoreboard.Header.PlayerCooldowns=mcMMO \u51b7\u5374
|
||||
Scoreboard.Header.PlayerRank=mcMMO \u6392\u540d
|
||||
Scoreboard.Header.PlayerInspect=mcMMO \u7edf\u8ba1: {0}
|
||||
Scoreboard.Header.PowerLevel=\u6218\u6597\u529b
|
||||
Scoreboard.Misc.PowerLevel=[[GOLD]]\u6218\u6597\u529b
|
||||
Scoreboard.Misc.Level=[[DARK_AQUA]]\u7b49\u7ea7
|
||||
Scoreboard.Misc.CurrentXP=[[GREEN]]\u5f53\u524d\u7ecf\u9a8c
|
||||
Scoreboard.Misc.RemainingXP=\u5347\u7ea7\u6240\u9700\u7ecf\u9a8c
|
||||
Scoreboard.Misc.Cooldown=[[LIGHT_PURPLE]]\u51b7\u5374
|
||||
Scoreboard.Misc.Overall=[[GOLD]]\u603b\u4f53
|
||||
Scoreboard.Misc.Ability=\u80fd\u529b
|
||||
Recovery.Notice=\u6ce8\u610f: mcMMO[[DARK_RED]]\u65e0\u6cd5\u8f7d\u5165\u4f60\u7684\u6570\u636e.[[RED]] \u91cd\u8bd55\u6b21...
|
||||
Recovery.Success=[[GREEN]]\u6210\u529f!\u4f60\u7684mcMMO\u6570\u636e\u5df2\u8f7d\u5165.
|
||||
Recovery.Failure=mcMMO\u65e0\u6cd5\u8f7d\u5165\u4f60\u7684\u6570\u636e,\u4f60\u53ef\u80fd\u9700\u8981\u8054\u7cfb[[AQUA]]\u6e38\u620f\u7ba1\u7406\u5458\n[[YELLOW]]\u4f60\u53ef\u4ee5\u7ee7\u7eed\u6e38\u620f,\u4f46\u4f60[[BOLD]]\u65e0\u6cd5\u5f97\u5230mcMMO\u7b49\u7ea7[[YELLOW]]\u548c\u4efb\u4f55\u7ecf\u9a8c[[BOLD]]\u6240\u6709\u6570\u636e\u4e0d\u4f1a\u88ab\u4fdd\u5b58[[YELLOW]].
|
||||
Recovery.AdminFailureNotice=[[DARK_RED]][A][[RED]]mcMMO\u65e0\u6cd5\u8f7d\u5165\u73a9\u5bb6[[YELLOW]]{0}[[RED]]\u7684\u6570\u636e. [[LIGHT_PURPLE]]\u8bf7\u68c0\u67e5\u4f60\u7684\u6570\u636e\u5e93\u6216\u8bbe\u7f6e.
|
||||
@@ -1,131 +0,0 @@
|
||||
#
|
||||
# Armor example configuration
|
||||
# Last updated on ${project.version}-b${BUILD_NUMBER}
|
||||
#
|
||||
# Any file named armor.*.yml in the mod folder will be loaded as a armor config
|
||||
# For every armor type there is a separate section.
|
||||
# The names of each subitem should be the exact material name.
|
||||
# The bare minimum of an Armor piece is that it has a Repair_Material
|
||||
#
|
||||
#
|
||||
# Repairable: Whether or not the item is repairable
|
||||
## This defaults to true
|
||||
#
|
||||
# Repair_Material: This is the material name of the item used to repair this armor.
|
||||
## This is required to be set if you want to be able to repair the item.
|
||||
#
|
||||
# Repair_Material_Data_Value: This is the metadata of the item used to repair this armor.
|
||||
## A value of -1 means to ignore all metadata when repairing.
|
||||
## This defaults to -1
|
||||
#
|
||||
# Repair_Material_Quantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
|
||||
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
|
||||
## This defaults to 9
|
||||
#
|
||||
# Repair_Material_Pretty_Name: The pretty name of the repair material.
|
||||
## Used in the feedback message when not enough repair materials are found.
|
||||
## This defaults to the Repair_Material converted to string.
|
||||
#
|
||||
# Repair_Material_Pretty_Name: The pretty name of the repair material.
|
||||
## Used in the feedback message when not enough repair materials are found.
|
||||
## This defaults to the Repair_Material converted to string.
|
||||
#
|
||||
# Repair_MinimumLevel: This is the minimum repair level needed to repair this item.
|
||||
## Valid values are => 0
|
||||
## This defaults to 0
|
||||
#
|
||||
# Repair_XpMultiplier: This is the amount to multiply the xp bonus by.
|
||||
## This defaults to 1
|
||||
#
|
||||
# Durability: This is the maximum durability of the armor.
|
||||
## Valid values are >= 1
|
||||
#
|
||||
###
|
||||
#
|
||||
# Settings for Boots
|
||||
###
|
||||
Boots:
|
||||
Boot_1:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
Boot_2:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Chestplates
|
||||
###
|
||||
Chestplates:
|
||||
Chestplate_1:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
Chestplate_2:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Helmets
|
||||
###
|
||||
Helmets:
|
||||
Helmet_1:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
Helmet_2:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Leggings
|
||||
###
|
||||
Leggings:
|
||||
Legging_1:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
Legging_2:
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 999
|
||||
@@ -1,220 +0,0 @@
|
||||
#
|
||||
# Tools example configuration
|
||||
# Last updated on ${project.version}-b${BUILD_NUMBER}
|
||||
#
|
||||
# Any file named tools.*.yml in the mod folder will be loaded as a tools config
|
||||
# For every tool type there is a separate section.
|
||||
# The names of each subitem should be the exact material name.
|
||||
# The bare minimum of a Tool is that it has a Repair_Material
|
||||
#
|
||||
#
|
||||
#
|
||||
# XP_Modifier: This is the xp modifier of the tool, xp is multiplied by this modifier.
|
||||
## Valid values are > 0
|
||||
## This defaults to 1.0.
|
||||
#
|
||||
# Tier: The tier of the tool
|
||||
## Used to determine the capabilities of AoE abilities with certain skills
|
||||
## Valid values range from 1 to 4
|
||||
## This defaults to 1
|
||||
#
|
||||
# Ability_Enabled: Whether or not abilities are enabled with this tool
|
||||
## This defaults to true
|
||||
#
|
||||
# Repairable: Whether or not the item is repairable
|
||||
## This defaults to true
|
||||
#
|
||||
# Repair_Material: This is the material name of the item used to repair this tool.
|
||||
## This is required to be set if you want to be able to repair the item.
|
||||
#
|
||||
# Repair_Material_Data_Value: This is the metadata of the item used to repair this tool.
|
||||
## A value of -1 means to ignore all metadata when repairing.
|
||||
## This defaults to -1
|
||||
#
|
||||
# Repair_Material_Quantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
|
||||
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
|
||||
## This defaults to 9
|
||||
#
|
||||
# Repair_Material_Pretty_Name: The pretty name of the repair material.
|
||||
## Used in the feedback message when not enough repair materials are found.
|
||||
## This defaults to the Repair_Material converted to string.
|
||||
#
|
||||
# Repair_MinimumLevel: This is the minimum repair level needed to repair this item.
|
||||
## Valid values are => 0
|
||||
## This defaults to 0
|
||||
#
|
||||
# Repair_XpMultiplier: This is the amount to multiply the xp bonus by.
|
||||
## This defaults to 1
|
||||
#
|
||||
# Durability: This is the maximum durability of the tool.
|
||||
## Valid values are >= 1
|
||||
#
|
||||
###
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
Axes:
|
||||
Axe_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Axe_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
#
|
||||
# Settings for Bows
|
||||
###
|
||||
Bows:
|
||||
Bow_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Bow_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
#
|
||||
# Settings for Hoes
|
||||
###
|
||||
Hoes:
|
||||
Hoe_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Hoe_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
#
|
||||
# Settings for Pickaxes
|
||||
###
|
||||
Pickaxes:
|
||||
Pickaxe_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Pickaxe_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
#
|
||||
# Settings for Shovels
|
||||
###
|
||||
Shovels:
|
||||
Shovel_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Shovel_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
#
|
||||
# Settings for Swords
|
||||
###
|
||||
Swords:
|
||||
Sword_1:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
Sword_2:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: REPAIR_MATERIAL_NAME
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Repair_Material_Pretty_Name: Repair Item Name
|
||||
Repair_MinimumLevel: 0
|
||||
Repair_XpMultiplier: 1.0
|
||||
Durability: 9999
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,545 +0,0 @@
|
||||
# This file defines the rank level requirements for a subskill.
|
||||
# You cannot alter how many ranks a skill has, that is coded into mcMMO directly.
|
||||
# You can however, change when they unlock, if you make all ranks of a skill level 0 for example every player will have the most powerful version of that skill right away.
|
||||
# Retro Mode and Standard have separate config settings to make it easier for server owners to understand the difference between the two.
|
||||
# Retro Mode is setup to be an entirely cosmetic change, keeping the old 0-1000 feeling of mcMMO.
|
||||
# Retro Mode has 10x faster leveling and 10x higher skill requirements, if you do the math you can see its the same as Standard and only cosmetic!.
|
||||
###
|
||||
Alchemy:
|
||||
Catalysis:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Concoctions:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Archery:
|
||||
ArrowRetrieval:
|
||||
Standard:
|
||||
Rank_1: 2
|
||||
RetroMode:
|
||||
Rank_1: 20
|
||||
SkillShot:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 10
|
||||
Rank_3: 15
|
||||
Rank_4: 20
|
||||
Rank_5: 25
|
||||
Rank_6: 30
|
||||
Rank_7: 35
|
||||
Rank_8: 40
|
||||
Rank_9: 45
|
||||
Rank_10: 50
|
||||
Rank_11: 55
|
||||
Rank_12: 60
|
||||
Rank_13: 65
|
||||
Rank_14: 70
|
||||
Rank_15: 75
|
||||
Rank_16: 80
|
||||
Rank_17: 85
|
||||
Rank_18: 90
|
||||
Rank_19: 95
|
||||
Rank_20: 100
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 100
|
||||
Rank_3: 150
|
||||
Rank_4: 200
|
||||
Rank_5: 250
|
||||
Rank_6: 300
|
||||
Rank_7: 350
|
||||
Rank_8: 400
|
||||
Rank_9: 450
|
||||
Rank_10: 500
|
||||
Rank_11: 550
|
||||
Rank_12: 600
|
||||
Rank_13: 650
|
||||
Rank_14: 700
|
||||
Rank_15: 750
|
||||
Rank_16: 800
|
||||
Rank_17: 850
|
||||
Rank_18: 900
|
||||
Rank_19: 950
|
||||
Rank_20: 1000
|
||||
Acrobatics:
|
||||
Dodge:
|
||||
Standard:
|
||||
Rank_1: 2
|
||||
RetroMode:
|
||||
Rank_1: 20
|
||||
Axes:
|
||||
SkullSplitter:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
CriticalStrikes:
|
||||
Standard:
|
||||
Rank_1: 2
|
||||
RetroMode:
|
||||
Rank_1: 20
|
||||
GreaterImpact:
|
||||
Standard:
|
||||
Rank_1: 25
|
||||
RetroMode:
|
||||
Rank_1: 250
|
||||
ArmorImpact:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 10
|
||||
Rank_3: 15
|
||||
Rank_4: 20
|
||||
Rank_5: 25
|
||||
Rank_6: 30
|
||||
Rank_7: 35
|
||||
Rank_8: 40
|
||||
Rank_9: 45
|
||||
Rank_10: 50
|
||||
Rank_11: 55
|
||||
Rank_12: 60
|
||||
Rank_13: 65
|
||||
Rank_14: 70
|
||||
Rank_15: 75
|
||||
Rank_16: 80
|
||||
Rank_17: 85
|
||||
Rank_18: 90
|
||||
Rank_19: 95
|
||||
Rank_20: 100
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 100
|
||||
Rank_3: 150
|
||||
Rank_4: 200
|
||||
Rank_5: 250
|
||||
Rank_6: 300
|
||||
Rank_7: 350
|
||||
Rank_8: 400
|
||||
Rank_9: 450
|
||||
Rank_10: 500
|
||||
Rank_11: 550
|
||||
Rank_12: 600
|
||||
Rank_13: 650
|
||||
Rank_14: 700
|
||||
Rank_15: 750
|
||||
Rank_16: 800
|
||||
Rank_17: 850
|
||||
Rank_18: 900
|
||||
Rank_19: 950
|
||||
Rank_20: 1000
|
||||
AxeMastery:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 10
|
||||
Rank_3: 15
|
||||
Rank_4: 20
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 100
|
||||
Rank_3: 150
|
||||
Rank_4: 200
|
||||
Taming:
|
||||
BeastLore:
|
||||
Standard:
|
||||
Rank_1: 2
|
||||
RetroMode:
|
||||
Rank_1: 20
|
||||
Gore:
|
||||
Standard:
|
||||
Rank_1: 15
|
||||
RetroMode:
|
||||
Rank_1: 150
|
||||
CallOfTheWild:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Pummel:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
FastFoodService:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
EnvironmentallyAware:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
ThickFur:
|
||||
Standard:
|
||||
Rank_1: 25
|
||||
RetroMode:
|
||||
Rank_1: 250
|
||||
HolyHound:
|
||||
Standard:
|
||||
Rank_1: 35
|
||||
RetroMode:
|
||||
Rank_1: 350
|
||||
ShockProof:
|
||||
Standard:
|
||||
Rank_1: 50
|
||||
RetroMode:
|
||||
Rank_1: 500
|
||||
SharpenedClaws:
|
||||
Standard:
|
||||
Rank_1: 75
|
||||
RetroMode:
|
||||
Rank_1: 750
|
||||
Smelting:
|
||||
FluxMining:
|
||||
Standard:
|
||||
Rank_1: 25
|
||||
Retro:
|
||||
Rank_1: 250
|
||||
UnderstandingTheArt:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Salvage:
|
||||
AdvancedSalvage:
|
||||
Standard:
|
||||
Rank_1: 35
|
||||
RetroMode:
|
||||
Rank_1: 350
|
||||
ArcaneSalvage:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Mining:
|
||||
SuperBreaker:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
# For now make sure rank 1 is the same as blast mining rank 1, it's a bit hacky, I'll fix it later
|
||||
BiggerBombs:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
# For now make sure rank 1 is the same as blast mining rank 1, it's a bit hacky, I'll fix it later
|
||||
DemolitionsExpertise:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
BlastMining:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Herbalism:
|
||||
GreenTerra:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
GreenThumb:
|
||||
Standard:
|
||||
Rank_1: 25
|
||||
Rank_2: 50
|
||||
Rank_3: 75
|
||||
Rank_4: 100
|
||||
RetroMode:
|
||||
Rank_1: 250
|
||||
Rank_2: 500
|
||||
Rank_3: 750
|
||||
Rank_4: 1000
|
||||
FarmersDiet:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
Rank_2: 40
|
||||
Rank_3: 60
|
||||
Rank_4: 80
|
||||
Rank_5: 100
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
Rank_2: 400
|
||||
Rank_3: 600
|
||||
Rank_4: 800
|
||||
Rank_5: 1000
|
||||
Fishing:
|
||||
MagicHunter:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
Shake:
|
||||
Standard:
|
||||
Rank_1: 15
|
||||
RetroMode:
|
||||
Rank_1: 150
|
||||
MasterAngler:
|
||||
Standard:
|
||||
Rank_1: 50
|
||||
RetroMode:
|
||||
Rank_1: 500
|
||||
IceFishing:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
FishermansDiet:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
Rank_2: 40
|
||||
Rank_3: 60
|
||||
Rank_4: 80
|
||||
Rank_5: 100
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
Rank_2: 400
|
||||
Rank_3: 600
|
||||
Rank_4: 800
|
||||
Rank_5: 1000
|
||||
TreasureHunter:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Swords:
|
||||
CounterAttack:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
Rupture:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 15
|
||||
Rank_3: 75
|
||||
Rank_4: 90
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 150
|
||||
Rank_3: 750
|
||||
Rank_4: 900
|
||||
SerratedStrikes:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Unarmed:
|
||||
Berserk:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
ArrowDeflect:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
Disarm:
|
||||
Standard:
|
||||
Rank_1: 25
|
||||
RetroMode:
|
||||
Rank_1: 250
|
||||
IronGrip:
|
||||
Standard:
|
||||
Rank_1: 60
|
||||
RetroMode:
|
||||
Rank_1: 600
|
||||
IronArmStyle:
|
||||
Standard:
|
||||
Rank_1: 2
|
||||
Rank_2: 25
|
||||
Rank_3: 50
|
||||
Rank_4: 75
|
||||
Rank_5: 100
|
||||
RetroMode:
|
||||
Rank_1: 20
|
||||
Rank_2: 250
|
||||
Rank_3: 500
|
||||
Rank_4: 750
|
||||
Rank_5: 1000
|
||||
|
||||
Woodcutting:
|
||||
Splinter:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 30
|
||||
Rank_3: 55
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 300
|
||||
Rank_3: 550
|
||||
TreeFeller:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 25
|
||||
Rank_3: 50
|
||||
Rank_4: 75
|
||||
Rank_5: 100
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 250
|
||||
Rank_3: 500
|
||||
Rank_4: 750
|
||||
Rank_5: 1000
|
||||
BarkSurgeon:
|
||||
Standard:
|
||||
Rank_1: 70
|
||||
Rank_2: 80
|
||||
Rank_3: 95
|
||||
RetroMode:
|
||||
Rank_1: 700
|
||||
Rank_2: 800
|
||||
Rank_3: 950
|
||||
NaturesBounty:
|
||||
Standard:
|
||||
Rank_1: 40
|
||||
Rank_2: 60
|
||||
Rank_3: 90
|
||||
RetroMode:
|
||||
Rank_1: 400
|
||||
Rank_2: 600
|
||||
Rank_3: 900
|
||||
HarvestLumber:
|
||||
Standard:
|
||||
Rank_1: 1
|
||||
RetroMode:
|
||||
Rank_1: 10
|
||||
LeafBlower:
|
||||
Standard:
|
||||
Rank_1: 15
|
||||
Rank_2: 35
|
||||
Rank_3: 65
|
||||
RetroMode:
|
||||
Rank_1: 150
|
||||
Rank_2: 350
|
||||
Rank_3: 650
|
||||
Excavation:
|
||||
GigaDrillBreaker:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Archaeology:
|
||||
Standard:
|
||||
Rank_1: 5
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 50
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
Repair:
|
||||
RepairMastery:
|
||||
Standard:
|
||||
Rank_1: 20
|
||||
RetroMode:
|
||||
Rank_1: 200
|
||||
SuperRepair:
|
||||
Standard:
|
||||
Rank_1: 40
|
||||
RetroMode:
|
||||
Rank_1: 400
|
||||
ArcaneForging:
|
||||
Standard:
|
||||
Rank_1: 10
|
||||
Rank_2: 25
|
||||
Rank_3: 35
|
||||
Rank_4: 50
|
||||
Rank_5: 65
|
||||
Rank_6: 75
|
||||
Rank_7: 85
|
||||
Rank_8: 100
|
||||
RetroMode:
|
||||
Rank_1: 100
|
||||
Rank_2: 250
|
||||
Rank_3: 350
|
||||
Rank_4: 500
|
||||
Rank_5: 650
|
||||
Rank_6: 750
|
||||
Rank_7: 850
|
||||
Rank_8: 1000
|
||||
@@ -1,62 +0,0 @@
|
||||
# A volume of 1.0 is pretty loud
|
||||
# Keep this in mind
|
||||
Sounds:
|
||||
# 1.0 = Max volume
|
||||
# 0.0 = No Volume
|
||||
MasterVolume: 1.0
|
||||
ANVIL:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 0.3
|
||||
#Fizz, and Pop make use of a adding and multiplying random numbers together to make a unique pitch everytime they are heard
|
||||
FIZZ:
|
||||
Enable: true
|
||||
Volume: 0.5
|
||||
LEVEL_UP:
|
||||
Enable: true
|
||||
Volume: 0.75
|
||||
Pitch: 0.5
|
||||
ITEM_BREAK:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 1.0
|
||||
#Fizz, and Pop make use of a adding and multiplying random numbers together to make a unique pitch everytime they are heard
|
||||
POP:
|
||||
Enable: true
|
||||
Volume: 0.2
|
||||
CHIMAERA_WING:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 0.6
|
||||
ROLL_ACTIVATED:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 0.7
|
||||
SKILL_UNLOCKED:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 1.4
|
||||
DEFLECT_ARROWS:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 2.0
|
||||
TOOL_READY:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 0.4
|
||||
ABILITY_ACTIVATED_GENERIC:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 0.1
|
||||
ABILITY_ACTIVATED_BERSERK:
|
||||
Enable: true
|
||||
Volume: 0.5
|
||||
Pitch: 1.7
|
||||
TIRED:
|
||||
Enable: true
|
||||
Volume: 1.0
|
||||
Pitch: 1.7
|
||||
BLEED:
|
||||
Enable: true
|
||||
Volume: 2.0
|
||||
Pitch: 2.0
|
||||
@@ -1,9 +0,0 @@
|
||||
# WARNING: DO NOT MODIFY THIS CONFIG
|
||||
Upgrades_Finished:
|
||||
ADD_FISHING: false
|
||||
ADD_BLAST_MINING_COOLDOWN: false
|
||||
ADD_SQL_INDEXES: false
|
||||
ADD_MOB_HEALTHBARS: false
|
||||
DROP_SQL_PARTY_NAMES: false
|
||||
DROP_SPOUT: false
|
||||
ADD_ALCHEMY: false
|
||||
@@ -1,27 +0,0 @@
|
||||
import Config.Libs as Libs
|
||||
// Config is located in <root>/buildSrc/src/main/java/Config.kt
|
||||
// It provides a bunch of constant values we use as dependency
|
||||
// strings, so we don't have to duplicate a bunch of them in
|
||||
// various scripts. The import as allows for shorthand.
|
||||
|
||||
plugins {
|
||||
`java-library` // This is already provided, but for static compilation,
|
||||
// we declare it here so we can use the IDE static type references
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
compile(Libs.configurate) { // Configurate-Yaml dependency, inherits Configurate-core
|
||||
exclude(Deps.Groups.guava, Deps.Modules.guava) // Exclude guava
|
||||
exclude(Deps.Groups.checker, Deps.Modules.checker) // Exclude checkerframework
|
||||
}
|
||||
compile(Libs.flowmath) // flowpowered math, for more maths.
|
||||
compile(Libs.jdbc) // Database connectors
|
||||
compile(Libs.juli) // Database connectors
|
||||
testCompile(Libs.junitDep) // junit for testing
|
||||
|
||||
// Spigot for in-dev dependency
|
||||
compileOnly(Libs.Bukkit.`1_13`.spigotApi) { // Spigot only for temporary usage in core
|
||||
isTransitive = false // Don't include spigot api's dependencies
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package com.gmail.nossr50.core;
|
||||
|
||||
import com.gmail.nossr50.core.data.database.DatabaseManager;
|
||||
import com.gmail.nossr50.core.mcmmo.event.EventCommander;
|
||||
import com.gmail.nossr50.core.mcmmo.plugin.Plugin;
|
||||
import com.gmail.nossr50.core.mcmmo.server.Server;
|
||||
import com.gmail.nossr50.core.mcmmo.tasks.TaskScheduler;
|
||||
import com.gmail.nossr50.core.platform.Platform;
|
||||
import com.gmail.nossr50.core.util.ModManager;
|
||||
import com.gmail.nossr50.core.util.experience.FormulaManager;
|
||||
import com.gmail.nossr50.core.util.upgrade.UpgradeManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class McmmoCore {
|
||||
//TODO: Wire all this stuff
|
||||
public static Plugin p;
|
||||
private static EventCommander eventCommander;
|
||||
private static Logger logger;
|
||||
private static Platform platform;
|
||||
private static boolean retroModeEnabled;
|
||||
|
||||
//Why do all these things need to be here? Sigh...
|
||||
private static DatabaseManager databaseManager;
|
||||
private static UpgradeManager upgradeManager; //TODO: I can't even remember what this one did
|
||||
private static FormulaManager formulaManager;
|
||||
private static ModManager modManager; //TODO: Probably need to rewrite this
|
||||
|
||||
/**
|
||||
* Returns our Logger
|
||||
* @return the logger
|
||||
*/
|
||||
public static Logger getLogger()
|
||||
{
|
||||
return logger;
|
||||
}
|
||||
|
||||
public static EventCommander getEventCommander() {
|
||||
return eventCommander;
|
||||
}
|
||||
|
||||
public static Server getServer() {
|
||||
return platform.getServer();
|
||||
}
|
||||
|
||||
public static TaskScheduler getTaskScheduler()
|
||||
{
|
||||
return platform.getScheduler();
|
||||
}
|
||||
|
||||
public static java.io.InputStream getResource(String path)
|
||||
{
|
||||
return platform.getResource(path);
|
||||
}
|
||||
|
||||
public static File getDataFolderPath()
|
||||
{
|
||||
return platform.getDataFolderPath();
|
||||
}
|
||||
|
||||
public static DatabaseManager getDatabaseManager() { return databaseManager; }
|
||||
|
||||
public static UpgradeManager getUpgradeManager() { return upgradeManager; }
|
||||
|
||||
public static FormulaManager getFormulaManager() { return formulaManager; }
|
||||
|
||||
public static boolean isRetroModeEnabled() { return retroModeEnabled; }
|
||||
|
||||
public static ModManager getModManager() { return modManager; }
|
||||
|
||||
public static String getModDataFolderPath() { return platform.getModDataFolderPath(); }
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
This file is just going to take note of all the caveats of mcMMO code as I abstract out bukkit
|
||||
|
||||
1) In several places mcMMO is disabling itself, pretty sure this is not a good idea and this should be changed
|
||||
eg: in McMMOPlayer, and when loading configs and finding bad values
|
||||
|
||||
2) mcMMO uses a a global reference of its Plugin class for Bukkit in order to schedule tasks
|
||||
|
||||
3) Need to configure the logger
|
||||
|
||||
4) Safety check the hardcore/vampirism commands
|
||||
|
||||
5) Tweak configs to not do any string operations
|
||||
|
||||
6) Need to add and check validation for all current configs
|
||||
|
||||
7) Weird stuff going on with ageables and strings in general in StringUtils
|
||||
|
||||
8) Reduce the amount of string operations in mcMMO as much as possible
|
||||
|
||||
|
||||
|
||||
////////////
|
||||
|
||||
CONFIG NOTES
|
||||
|
||||
///////////
|
||||
|
||||
1) All Config files need their validation redone and checked
|
||||
|
||||
2) All Config files need unload programmed in
|
||||
|
||||
3) All Config files need string operations reduced and to be double checked for errors in paths
|
||||
|
||||
4) Need to setup removing old keys on configs
|
||||
@@ -1,89 +0,0 @@
|
||||
package com.gmail.nossr50.core.api;
|
||||
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.core.mcmmo.entity.Living;
|
||||
import com.gmail.nossr50.core.mcmmo.entity.Player;
|
||||
import com.gmail.nossr50.core.runnables.skills.BleedTimerTask;
|
||||
import com.gmail.nossr50.core.skills.SuperAbilityType;
|
||||
|
||||
public final class AbilityAPI {
|
||||
private AbilityAPI() {
|
||||
}
|
||||
|
||||
public static boolean berserkEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
|
||||
}
|
||||
|
||||
public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER);
|
||||
}
|
||||
|
||||
public static boolean greenTerraEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GREEN_TERRA);
|
||||
}
|
||||
|
||||
public static boolean serratedStrikesEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SERRATED_STRIKES);
|
||||
}
|
||||
|
||||
public static boolean skullSplitterEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SKULL_SPLITTER);
|
||||
}
|
||||
|
||||
public static boolean superBreakerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SUPER_BREAKER);
|
||||
}
|
||||
|
||||
public static boolean treeFellerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.TREE_FELLER);
|
||||
}
|
||||
|
||||
public static boolean isAnyAbilityEnabled(Player player) {
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
for (SuperAbilityType ability : SuperAbilityType.values()) {
|
||||
if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void resetCooldowns(Player player) {
|
||||
UserManager.getPlayer(player).resetCooldowns();
|
||||
}
|
||||
|
||||
public static void setBerserkCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.BERSERK, cooldown);
|
||||
}
|
||||
|
||||
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GIGA_DRILL_BREAKER, cooldown);
|
||||
}
|
||||
|
||||
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GREEN_TERRA, cooldown);
|
||||
}
|
||||
|
||||
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SERRATED_STRIKES, cooldown);
|
||||
}
|
||||
|
||||
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SKULL_SPLITTER, cooldown);
|
||||
}
|
||||
|
||||
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SUPER_BREAKER, cooldown);
|
||||
}
|
||||
|
||||
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.TREE_FELLER, cooldown);
|
||||
}
|
||||
|
||||
public static boolean isBleeding(Living entity) {
|
||||
return BleedTimerTask.isBleeding(entity);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,94 +0,0 @@
|
||||
package com.gmail.nossr50.core.api;
|
||||
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public final class SkillAPI {
|
||||
private SkillAPI() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This includes parent and child skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getSkills() {
|
||||
return getListFromEnum(Arrays.asList(PrimarySkillType.values()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes parent skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getNonChildSkills() {
|
||||
return getListFromEnum(PrimarySkillType.NON_CHILD_SKILLS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes child skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getChildSkills() {
|
||||
return getListFromEnum(PrimarySkillType.CHILD_SKILLS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes combat skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getCombatSkills() {
|
||||
return getListFromEnum(PrimarySkillType.COMBAT_SKILLS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes gathering skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getGatheringSkills() {
|
||||
return getListFromEnum(PrimarySkillType.GATHERING_SKILLS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes misc skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @return a list of strings with valid skill names
|
||||
*/
|
||||
public static List<String> getMiscSkills() {
|
||||
return getListFromEnum(PrimarySkillType.MISC_SKILLS);
|
||||
}
|
||||
|
||||
private static List<String> getListFromEnum(List<PrimarySkillType> skillsTypes) {
|
||||
List<String> skills = new ArrayList<String>();
|
||||
|
||||
for (PrimarySkillType primarySkillType : skillsTypes) {
|
||||
skills.add(primarySkillType.name());
|
||||
}
|
||||
|
||||
return skills;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.gmail.nossr50.core.api.exceptions;
|
||||
|
||||
public class InvalidFormulaTypeException extends RuntimeException {
|
||||
private static final long serialVersionUID = 3368670229490121886L;
|
||||
|
||||
public InvalidFormulaTypeException() {
|
||||
super("That is not a valid FormulaType.");
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.gmail.nossr50.core.api.exceptions;
|
||||
|
||||
import com.gmail.nossr50.core.mcmmo.entity.Player;
|
||||
|
||||
public class McMMOPlayerNotFoundException extends RuntimeException {
|
||||
private static final long serialVersionUID = 761917904993202836L;
|
||||
|
||||
public McMMOPlayerNotFoundException(Player player) {
|
||||
super("McMMOPlayer object was not found for: " + player.getName() + " " + player.getUUID());
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.gmail.nossr50.core.chat;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.events.chat.McMMOAdminChatEvent;
|
||||
|
||||
public class AdminChatManager extends ChatManager {
|
||||
protected AdminChatManager() {
|
||||
super(MainConfig.getInstance().getAdminDisplayNames(), MainConfig.getInstance().getAdminChatPrefix());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleChat(String senderName, String displayName, String message, boolean isAsync) {
|
||||
handleChat(new McMMOAdminChatEvent(senderName, displayName, message, isAsync));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendMessage() {
|
||||
McmmoCore.getServer().broadcast(message, "mcmmo.chat.adminchat");
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
package com.gmail.nossr50.core.chat;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.data.UserManager;
|
||||
import com.gmail.nossr50.core.datatypes.party.Party;
|
||||
import com.gmail.nossr50.core.events.chat.McMMOChatEvent;
|
||||
import com.gmail.nossr50.core.events.chat.McMMOPartyChatEvent;
|
||||
import com.gmail.nossr50.core.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.core.mcmmo.entity.Player;
|
||||
|
||||
public abstract class ChatManager {
|
||||
protected boolean useDisplayNames;
|
||||
protected String chatPrefix;
|
||||
|
||||
protected String senderName;
|
||||
protected String displayName;
|
||||
protected String message;
|
||||
|
||||
protected ChatManager(boolean useDisplayNames, String chatPrefix) {
|
||||
this.useDisplayNames = useDisplayNames;
|
||||
this.chatPrefix = chatPrefix;
|
||||
}
|
||||
|
||||
protected void handleChat(McMMOChatEvent event) {
|
||||
McmmoCore.getEventCommander().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
senderName = event.getSender();
|
||||
displayName = useDisplayNames ? event.getDisplayName() : senderName;
|
||||
message = LocaleLoader.formatString(chatPrefix, displayName) + " " + event.getMessage();
|
||||
|
||||
sendMessage();
|
||||
|
||||
/*
|
||||
* Party Chat Spying
|
||||
* Party messages will be copied to people with the mcmmo.admin.chatspy permission node
|
||||
*/
|
||||
if (event instanceof McMMOPartyChatEvent) {
|
||||
//We need to grab the party chat name
|
||||
McMMOPartyChatEvent partyChatEvent = (McMMOPartyChatEvent) event;
|
||||
|
||||
//Find the people with permissions
|
||||
for (Player player : McmmoCore.getServer().getOnlinePlayers()) {
|
||||
//Check for toggled players
|
||||
if (UserManager.getPlayer(player).isPartyChatSpying()) {
|
||||
Party adminParty = UserManager.getPlayer(player).getParty();
|
||||
|
||||
//Only message admins not part of this party
|
||||
if (adminParty != null) {
|
||||
//TODO: Incorporate JSON
|
||||
if (!adminParty.getName().equalsIgnoreCase(partyChatEvent.getParty()))
|
||||
player.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Chat", partyChatEvent.getParty(), message));
|
||||
} else {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Chat", partyChatEvent.getParty(), message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleChat(String senderName, String message) {
|
||||
handleChat(senderName, senderName, message, false);
|
||||
}
|
||||
|
||||
public void handleChat(Player player, String message, boolean isAsync) {
|
||||
handleChat(player.getName(), player.getDisplayName(), message, isAsync);
|
||||
}
|
||||
|
||||
public void handleChat(String senderName, String displayName, String message) {
|
||||
handleChat(senderName, displayName, message, false);
|
||||
}
|
||||
|
||||
public abstract void handleChat(String senderName, String displayName, String message, boolean isAsync);
|
||||
|
||||
protected abstract void sendMessage();
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.gmail.nossr50.core.chat;
|
||||
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.datatypes.party.Party;
|
||||
import com.gmail.nossr50.core.events.chat.McMMOPartyChatEvent;
|
||||
import com.gmail.nossr50.core.runnables.party.PartyChatTask;
|
||||
|
||||
public class PartyChatManager extends ChatManager {
|
||||
private Party party;
|
||||
|
||||
protected PartyChatManager(Plugin plugin) {
|
||||
super(plugin, MainConfig.getInstance().getPartyDisplayNames(), MainConfig.getInstance().getPartyChatPrefix());
|
||||
}
|
||||
|
||||
public void setParty(Party party) {
|
||||
this.party = party;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleChat(String senderName, String displayName, String message, boolean isAsync) {
|
||||
handleChat(new McMMOPartyChatEvent(plugin, senderName, displayName, party.getName(), message, isAsync));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendMessage() {
|
||||
new PartyChatTask(plugin, party, senderName, displayName, message).runTask(plugin);
|
||||
}
|
||||
}
|
||||
@@ -1,723 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.datatypes.interactions.NotificationType;
|
||||
import com.gmail.nossr50.core.mcmmo.colors.ChatColor;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
//@ConfigSerializable
|
||||
public class AdvancedConfig extends ConfigValidated {
|
||||
|
||||
public static final String SKILLS = "Skills";
|
||||
public static final String GENERAL = "General";
|
||||
public static final String ABILITY = "Ability";
|
||||
public static final String LENGTH = "Length";
|
||||
public static final String INCREASE_LEVEL = "IncreaseLevel";
|
||||
public static final String ENCHANT_BUFF = "EnchantBuff";
|
||||
public static final String ACROBATICS = "Acrobatics";
|
||||
public static final String DODGE = "Dodge";
|
||||
public static final String CHANCE = "Chance";
|
||||
public static final String CHANCE_MAX = CHANCE + "Max";
|
||||
public static final String BONUS = "Bonus";
|
||||
public static final String MAX_BONUS_LEVEL = "Max" + BONUS + "Level";
|
||||
public static final String MODIFIER = "Modifier";
|
||||
public static final String DAMAGE_MODIFIER = "Damage" + MODIFIER;
|
||||
public static final String DAMAGE_THRESHOLD = "DamageThreshold";
|
||||
public static final String ALCHEMY = "Alchemy";
|
||||
public static final String CATALYSIS = "Catalysis";
|
||||
public static final String MIN_SPEED = "MinSpeed";
|
||||
public static final String MAX_SPEED = "MaxSpeed";
|
||||
public static final String ARCHERY = "Archery";
|
||||
public static final String SKILL_SHOT = "SkillShot";
|
||||
public static final String MULTIPLIER = "Multiplier";
|
||||
public static final String RANK_DAMAGE_MULTIPLIER = "RankDamage" + MULTIPLIER;
|
||||
public static final String BONUS_DAMAGE = BONUS + "Damage";
|
||||
public static final String FORCE_MULTIPLIER = "Force" + MULTIPLIER;
|
||||
public static final String AXES = "Axes";
|
||||
public static final String STANDARD = "Standard";
|
||||
public static final String RETRO_MODE = "RetroMode";
|
||||
public static final String CAP_LEVEL = "CapLevel";
|
||||
public static final String KNOCKBACK_MODIFIER = "Knockback" + MODIFIER;
|
||||
public static final String PVP_MODIFIER = "PVP_" + MODIFIER;
|
||||
public static final String PVE_MODIFIER = "PVE_" + MODIFIER;
|
||||
public static final String FISHING = "Fishing";
|
||||
public static final String MASTER_ANGLER = "MasterAngler";
|
||||
public static final String BOAT_MODIFIER = "Boat" + MODIFIER;
|
||||
public static final String BIOME_MODIFIER = "Biome" + MODIFIER;
|
||||
public static final String XP = "XP";
|
||||
public static final String VANILLA_XPMULTIPLIER = "Vanilla" + XP + MULTIPLIER;
|
||||
public static final String RANK = "Rank_";
|
||||
public static final String TAMING = "Taming";
|
||||
public static final String CALL_OF_THE_WILD = "CallOfTheWild";
|
||||
public static final String MIN_HORSE_JUMP_STRENGTH = "MinHorseJumpStrength";
|
||||
public static final String MAX_HORSE_JUMP_STRENGTH = "MaxHorseJumpStrength";
|
||||
public static final String SHOCK_PROOF = "ShockProof";
|
||||
public static final String UNARMED = "Unarmed";
|
||||
public static final String STARTING_LEVEL = "StartingLevel";
|
||||
public static final String AXE_MASTERY = "AxeMastery";
|
||||
public static final String CRITICAL_STRIKES = "CriticalStrikes";
|
||||
public static final String GREATER_IMPACT = "GreaterImpact";
|
||||
public static final String ARMOR_IMPACT = "ArmorImpact";
|
||||
public static final String SKULL_SPLITTER = "SkullSplitter.";
|
||||
public static final String MAX_PERCENTAGE_DURABILITY_DAMAGE = "MaxPercentageDurabilityDamage";
|
||||
public static final String SHAKE = "Shake";
|
||||
public static final String MINING = "Mining";
|
||||
public static final String BLAST_MINING = "BlastMining";
|
||||
public static final String LEVELS = "Levels";
|
||||
public static final String BLAST_DAMAGE_DECREASE = "BlastDamageDecrease";
|
||||
public static final String ORE_BONUS = "Ore" + BONUS;
|
||||
public static final String DEBRIS_REDUCTION = "DebrisReduction";
|
||||
public static final String DROP_MULTIPLIER = "Drop" + MULTIPLIER;
|
||||
public static final String BLAST_RADIUS = "BlastRadius";
|
||||
public static final String REPAIR = "Repair";
|
||||
public static final String REPAIR_MASTERY = "RepairMastery";
|
||||
public static final String MAX_BONUS_PERCENTAGE = "Max" + BONUS + "Percentage";
|
||||
public static final String ARCANE_FORGING = "ArcaneForging";
|
||||
public static final String MAY_LOSE_ENCHANTS = "May_Lose_Enchants";
|
||||
public static final String KEEP_ENCHANTS = "Keep_Enchants_";
|
||||
public static final String DOWNGRADES = "Downgrades_";
|
||||
public static final String ENABLED = "Enabled";
|
||||
public static final String DOWNGRADES_ENABLED = DOWNGRADES + ENABLED;
|
||||
public static final String SALVAGE = "Salvage";
|
||||
public static final String ARCANE_SALVAGE = "ArcaneSalvage";
|
||||
public static final String ENCHANT_DOWNGRADE_ENABLED = "EnchantDowngrade" + ENABLED;
|
||||
public static final String ENCHANT_LOSS_ENABLED = "EnchantLoss" + ENABLED;
|
||||
public static final String EXTRACT_FULL_ENCHANT = "ExtractFullEnchant";
|
||||
public static final String EXTRACT_PARTIAL_ENCHANT = "ExtractPartialEnchant";
|
||||
public static final String SMELTING = "Smelting";
|
||||
public static final String FUEL_EFFICIENCY = "FuelEfficiency";
|
||||
public static final String FLUX = "Flux";
|
||||
public static final String SWORDS = "Swords";
|
||||
public static final String RUPTURE = "Rupture";
|
||||
public static final String DAMAGE_PLAYER = "DamagePlayer";
|
||||
public static final String DAMAGE_MOBS = "DamageMobs";
|
||||
public static final String MAX_TICKS = "MaxTicks";
|
||||
public static final String BASE_TICKS = "BaseTicks";
|
||||
public static final String COUNTER_ATTACK = "CounterAttack";
|
||||
public static final String SERRATED_STRIKES = "SerratedStrikes";
|
||||
public static final String TICKS = "Ticks";
|
||||
public static final String GORE = "Gore";
|
||||
public static final String FAST_FOOD = "FastFood";
|
||||
public static final String FAST_FOOD_SERVICE = FAST_FOOD + "Service";
|
||||
public static final String PUMMEL = "Pummel";
|
||||
public static final String THICK_FUR = "ThickFur";
|
||||
public static final String SHARPENED_CLAWS = "SharpenedClaws";
|
||||
public static final String DISARM = "Disarm";
|
||||
public static final String ANTI_THEFT = "AntiTheft";
|
||||
public static final String DAZE = "Daze";
|
||||
public static final String MAX_DAMAGE = "MaxDamage";
|
||||
public static final String ROLL = "Roll";
|
||||
public static final String GRACEFUL_ROLL = "Graceful" + ROLL;
|
||||
public static final String ARROW_DEFLECT = "ArrowDeflect";
|
||||
public static final String IRON_GRIP = "IronGrip";
|
||||
public static final String WOODCUTTING = "Woodcutting";
|
||||
public static final String HARVEST_LUMBER = "HarvestLumber";
|
||||
public static final String FEEDBACK = "Feedback";
|
||||
public static final String SKILL_COMMAND = "SkillCommand";
|
||||
public static final String BLANK_LINES_ABOVE_HEADER = "BlankLinesAboveHeader";
|
||||
public static final String ACTION_BAR_NOTIFICATIONS = "ActionBarNotifications";
|
||||
public static final String SEND_COPY_OF_MESSAGE_TO_CHAT = "SendCopyOfMessageToChat";
|
||||
public static final String EVENTS = "Events";
|
||||
public static final String SEND_TITLES = "SendTitles";
|
||||
private static AdvancedConfig instance;
|
||||
|
||||
private AdvancedConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "advanced.yml", true);
|
||||
}
|
||||
|
||||
public static AdvancedConfig getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new AdvancedConfig();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
// Validate all the settings!
|
||||
List<String> reason = new ArrayList<String>();
|
||||
|
||||
/* GENERAL */
|
||||
if (getAbilityLength() < 1) {
|
||||
reason.add(SKILLS + "." + GENERAL + "." + ABILITY + "." + LENGTH + ".<mode>." + INCREASE_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getEnchantBuff() < 1) {
|
||||
reason.add(SKILLS + "." + GENERAL + "." + ABILITY + "." + ENCHANT_BUFF + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* ACROBATICS */
|
||||
if (getMaximumProbability(SubSkillType.ACROBATICS_DODGE) < 1) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.ACROBATICS_DODGE) < 1) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getDodgeDamageModifier() <= 1) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + DAMAGE_MODIFIER + " should be greater than 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.ACROBATICS_ROLL) < 1) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.ACROBATICS_ROLL) < 1) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getRollDamageThreshold() < 0) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + DAMAGE_THRESHOLD + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getGracefulRollDamageThreshold() < 0) {
|
||||
reason.add(SKILLS + "." + ACROBATICS + "." + GRACEFUL_ROLL + "." + DAMAGE_THRESHOLD + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getCatalysisMinSpeed() <= 0) {
|
||||
reason.add(SKILLS + "." + ALCHEMY + "." + CATALYSIS + "." + MIN_SPEED + " must be greater than 0!");
|
||||
}
|
||||
|
||||
if (getCatalysisMaxSpeed() < getCatalysisMinSpeed()) {
|
||||
reason.add(SKILLS + "." + ALCHEMY + "." + CATALYSIS + "." + MAX_SPEED + " should be at least Skills.Alchemy.Catalysis." + MIN_SPEED + "!");
|
||||
}
|
||||
|
||||
/* ARCHERY */
|
||||
|
||||
if (getSkillShotRankDamageMultiplier() <= 0) {
|
||||
reason.add(SKILLS + "." + ARCHERY + "." + SKILL_SHOT + "." + RANK_DAMAGE_MULTIPLIER + " should be greater than 0!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.ARCHERY_DAZE) < 1) {
|
||||
reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.ARCHERY_DAZE) < 1) {
|
||||
reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getDazeBonusDamage() < 0) {
|
||||
reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + BONUS_DAMAGE + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) {
|
||||
reason.add(SKILLS + "." + ARCHERY + ".Retrieve." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) {
|
||||
reason.add(SKILLS + "." + ARCHERY + ".Retrieve." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getForceMultiplier() < 0) {
|
||||
reason.add(SKILLS + "." + ARCHERY + "." + FORCE_MULTIPLIER + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* AXES */
|
||||
if(getAxeMasteryRankDamageMultiplier() < 0)
|
||||
{
|
||||
reason.add(SKILLS + "." + AXES + "." + AXE_MASTERY + "." + RANK_DAMAGE_MULTIPLIER + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.AXES_CRITICAL_STRIKES) < 1) {
|
||||
reason.add(SKILLS + "." + AXES + ".CriticalHit." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.AXES_CRITICAL_STRIKES) < 1) {
|
||||
reason.add(SKILLS + "." + AXES + ".CriticalHit." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getCriticalStrikesPVPModifier() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + CRITICAL_STRIKES + "." + PVP_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getCriticalStrikesPVPModifier() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + CRITICAL_STRIKES + "." + PVE_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getGreaterImpactChance() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + CHANCE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getGreaterImpactModifier() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + KNOCKBACK_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getGreaterImpactBonusDamage() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + BONUS_DAMAGE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getArmorImpactIncreaseLevel() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + INCREASE_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getImpactChance() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + CHANCE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getArmorImpactMaxDurabilityDamage() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + MAX_PERCENTAGE_DURABILITY_DAMAGE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getSkullSplitterModifier() < 1) {
|
||||
reason.add(SKILLS + "." + AXES + "." + SKULL_SPLITTER + DAMAGE_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
/*if (getFishermanDietRankChange() < 1) {
|
||||
reason.add(SKILLS + "." + FISHING + ".FishermansDiet.RankChange should be at least 1!");
|
||||
}*/
|
||||
|
||||
if (getMasterAnglerBoatModifier() < 1) {
|
||||
reason.add(SKILLS + "." + FISHING + "." + MASTER_ANGLER + "." + BOAT_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMasterAnglerBiomeModifier() < 1) {
|
||||
reason.add(SKILLS + "." + FISHING + "." + MASTER_ANGLER + "." + BIOME_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* HERBALISM */
|
||||
/*if (getFarmerDietRankChange() < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.FarmersDiet.RankChange should be at least 1!");
|
||||
}
|
||||
|
||||
if (getGreenThumbStageChange() < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.GreenThumb.StageChange should be at least 1!");
|
||||
}*/
|
||||
|
||||
if (getMaximumProbability(SubSkillType.HERBALISM_GREEN_THUMB) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.GreenThumb." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.HERBALISM_GREEN_THUMB) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.GreenThumb." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.DoubleDrops." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.DoubleDrops." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.HylianLuck." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.HylianLuck." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.ShroomThumb." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) {
|
||||
reason.add(SKILLS + ".Herbalism.ShroomThumb." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* MINING */
|
||||
if (getMaximumProbability(SubSkillType.MINING_DOUBLE_DROPS) < 1) {
|
||||
reason.add(SKILLS + "." + MINING + ".DoubleDrops." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.MINING_DOUBLE_DROPS) < 1) {
|
||||
reason.add(SKILLS + "." + MINING + ".DoubleDrops." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* REPAIR */
|
||||
if (getRepairMasteryMaxBonus() < 1) {
|
||||
reason.add(SKILLS + "." + REPAIR + "." + REPAIR_MASTERY + "." + MAX_BONUS_PERCENTAGE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getRepairMasteryMaxLevel() < 1) {
|
||||
reason.add(SKILLS + "." + REPAIR + "." + REPAIR_MASTERY + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.REPAIR_SUPER_REPAIR) < 1) {
|
||||
reason.add(SKILLS + "." + REPAIR + ".SuperRepair." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.REPAIR_SUPER_REPAIR) < 1) {
|
||||
reason.add(SKILLS + "." + REPAIR + ".SuperRepair." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* SMELTING */
|
||||
if (getBurnModifierMaxLevel() < 1) {
|
||||
reason.add(SKILLS + "." + SMELTING + "." + FUEL_EFFICIENCY + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getBurnTimeMultiplier() < 1) {
|
||||
reason.add(SKILLS + "." + SMELTING + "." + FUEL_EFFICIENCY + "." + MULTIPLIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.SMELTING_SECOND_SMELT) < 1) {
|
||||
reason.add(SKILLS + "." + SMELTING + ".SecondSmelt." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.SMELTING_SECOND_SMELT) < 1) {
|
||||
reason.add(SKILLS + "." + SMELTING + ".SecondSmelt." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getFluxMiningChance() < 1) {
|
||||
reason.add(SKILLS + "." + SMELTING + "." + FLUX + MINING + "." + CHANCE + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* SWORDS */
|
||||
if (getMaximumProbability(SubSkillType.SWORDS_RUPTURE) < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.SWORDS_RUPTURE) < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getRuptureMaxTicks() < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_TICKS + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getRuptureMaxTicks() < getRuptureBaseTicks()) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_TICKS + " should be at least Skills.Swords.Rupture." + BASE_TICKS + "!");
|
||||
}
|
||||
|
||||
if (getRuptureBaseTicks() < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + BASE_TICKS + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getCounterModifier() < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + DAMAGE_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getSerratedStrikesModifier() < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + SERRATED_STRIKES + "." + DAMAGE_MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getSerratedStrikesTicks() < 1) {
|
||||
reason.add(SKILLS + "." + SWORDS + "." + SERRATED_STRIKES + "." + RUPTURE + "Ticks should be at least 1!");
|
||||
}
|
||||
|
||||
/* TAMING */
|
||||
|
||||
if (getMaximumProbability(SubSkillType.TAMING_GORE) < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + GORE + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.TAMING_GORE) < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + GORE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getGoreModifier() < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + GORE + "." + MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getFastFoodChance() < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + FAST_FOOD + "." + CHANCE + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getThickFurModifier() < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + THICK_FUR + "." + MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getShockProofModifier() < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + SHOCK_PROOF + "." + MODIFIER + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getSharpenedClawsBonus() < 1) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + SHARPENED_CLAWS + "." + BONUS + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxHorseJumpStrength() < 0 || getMaxHorseJumpStrength() > 2) {
|
||||
reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD + "." + MAX_HORSE_JUMP_STRENGTH + " should be between 0 and 2!");
|
||||
}
|
||||
|
||||
/* UNARMED */
|
||||
if (getMaximumProbability(SubSkillType.UNARMED_DISARM) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + DISARM + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.UNARMED_DISARM) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + DISARM + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + ARROW_DEFLECT + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + ARROW_DEFLECT + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaximumProbability(SubSkillType.UNARMED_IRON_GRIP) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + IRON_GRIP + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.UNARMED_IRON_GRIP) < 1) {
|
||||
reason.add(SKILLS + "." + UNARMED + "." + IRON_GRIP + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
/* WOODCUTTING */
|
||||
|
||||
/*if (getLeafBlowUnlockLevel() < 0) {
|
||||
reason.add("Skills.Woodcutting.LeafBlower.UnlockLevel should be at least 0!");
|
||||
}*/
|
||||
|
||||
if (getMaximumProbability(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) {
|
||||
reason.add(SKILLS + "." + WOODCUTTING + "." + HARVEST_LUMBER + "." + CHANCE_MAX + " should be at least 1!");
|
||||
}
|
||||
|
||||
if (getMaxBonusLevel(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) {
|
||||
reason.add(SKILLS + "." + WOODCUTTING + "." + HARVEST_LUMBER + "." + MAX_BONUS_LEVEL + " should be at least 1!");
|
||||
}
|
||||
|
||||
return reason;
|
||||
}
|
||||
|
||||
/* GENERAL */
|
||||
public int getStartingLevel() { return getIntValue(SKILLS, GENERAL, STARTING_LEVEL); }
|
||||
|
||||
/**
|
||||
* This returns the maximum level at which superabilities will stop lengthening from scaling alongside skill level.
|
||||
* It returns a different value depending on whether or not the server is in retro mode
|
||||
* @return the level at which abilities stop increasing in length
|
||||
*/
|
||||
public int getAbilityLengthCap() {
|
||||
if(!McmmoCore.isRetroModeEnabled())
|
||||
return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, CAP_LEVEL);
|
||||
else
|
||||
return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, CAP_LEVEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* This returns the frequency at which abilities will increase in length
|
||||
* It returns a different value depending on whether or not the server is in retro mode
|
||||
* @return the number of levels required per ability length increase
|
||||
*/
|
||||
public int getAbilityLength() {
|
||||
if(!McmmoCore.isRetroModeEnabled())
|
||||
return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, INCREASE_LEVEL);
|
||||
else
|
||||
return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, INCREASE_LEVEL);
|
||||
}
|
||||
|
||||
public int getEnchantBuff() { return getIntValue(SKILLS, GENERAL, ABILITY, ENCHANT_BUFF); }
|
||||
|
||||
/**
|
||||
* Grabs the max bonus level for a skill used in RNG calculations
|
||||
* All max level values in the config are multiplied by 10 if the server is in retro mode as the values in the config are based around the new 1-100 skill system scaling
|
||||
* A value of 10 in the file will be returned as 100 for retro mode servers to accommodate the change in scaling
|
||||
* @param subSkillType target subskill
|
||||
* @return the level at which this skills max benefits will be reached on the curve
|
||||
*/
|
||||
public int getMaxBonusLevel(SubSkillType subSkillType) {
|
||||
String[] category = subSkillType.getAdvConfigAddress();
|
||||
|
||||
if(!McmmoCore.isRetroModeEnabled())
|
||||
return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, STANDARD);
|
||||
else
|
||||
return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, RETRO_MODE);
|
||||
}
|
||||
|
||||
public int getMaxBonusLevel(AbstractSubSkill abstractSubSkill) {
|
||||
return getMaxBonusLevel(abstractSubSkill.getSubSkillType());
|
||||
}
|
||||
|
||||
public double getMaximumProbability(SubSkillType subSkillType) {
|
||||
String[] category = subSkillType.getAdvConfigAddress();
|
||||
|
||||
double maximumProbability = getDoubleValue(category[0], category[1], category[2], CHANCE_MAX);
|
||||
|
||||
return maximumProbability;
|
||||
}
|
||||
|
||||
public double getMaximumProbability(AbstractSubSkill abstractSubSkill)
|
||||
{
|
||||
return getMaximumProbability(abstractSubSkill.getSubSkillType());
|
||||
}
|
||||
|
||||
/* Notification Settings */
|
||||
|
||||
public boolean doesSkillCommandSendBlankLines()
|
||||
{
|
||||
return getBooleanValue(FEEDBACK, SKILL_COMMAND, BLANK_LINES_ABOVE_HEADER);
|
||||
}
|
||||
|
||||
public boolean doesNotificationUseActionBar(NotificationType notificationType)
|
||||
{
|
||||
return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), ENABLED);
|
||||
}
|
||||
|
||||
public boolean doesNotificationSendCopyToChat(NotificationType notificationType)
|
||||
{
|
||||
return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), SEND_COPY_OF_MESSAGE_TO_CHAT);
|
||||
}
|
||||
|
||||
public boolean useTitlesForXPEvent()
|
||||
{
|
||||
return getBooleanValue(FEEDBACK, EVENTS, XP, SEND_TITLES);
|
||||
}
|
||||
|
||||
private ChatColor getChatColorFromKey(String keyLocation) {
|
||||
String colorName = getStringValue(keyLocation);
|
||||
|
||||
return getChatColor(colorName);
|
||||
}
|
||||
|
||||
private ChatColor getChatColor(String configColor) {
|
||||
for (ChatColor chatColor : ChatColor.values()) {
|
||||
if (configColor.equalsIgnoreCase(chatColor.toString()))
|
||||
return chatColor;
|
||||
}
|
||||
|
||||
//Invalid Color
|
||||
System.out.println("[mcMMO] " + configColor + " is an invalid color value");
|
||||
return ChatColor.WHITE;
|
||||
}
|
||||
|
||||
/* ACROBATICS */
|
||||
public double getDodgeDamageModifier() { return getDoubleValue(SKILLS, ACROBATICS, DODGE, DAMAGE_MODIFIER); }
|
||||
|
||||
public double getRollDamageThreshold() { return getDoubleValue(SKILLS, ACROBATICS, ROLL, DAMAGE_THRESHOLD); }
|
||||
|
||||
public double getGracefulRollDamageThreshold() { return getDoubleValue(SKILLS, ACROBATICS, GRACEFUL_ROLL, DAMAGE_THRESHOLD); }
|
||||
|
||||
/* ALCHEMY */
|
||||
public int getCatalysisMaxBonusLevel() { return getIntValue(SKILLS, ALCHEMY, CATALYSIS, MAX_BONUS_LEVEL); }
|
||||
|
||||
public double getCatalysisMinSpeed() { return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MIN_SPEED); }
|
||||
public double getCatalysisMaxSpeed() { return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MAX_SPEED); }
|
||||
|
||||
/* ARCHERY */
|
||||
public double getSkillShotRankDamageMultiplier() { return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, RANK_DAMAGE_MULTIPLIER); }
|
||||
public double getSkillShotDamageMax() { return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, MAX_DAMAGE); }
|
||||
|
||||
public double getDazeBonusDamage() { return getDoubleValue(SKILLS, ARCHERY, DAZE, BONUS_DAMAGE); }
|
||||
|
||||
public double getForceMultiplier() { return getDoubleValue(SKILLS, ARCHERY, FORCE_MULTIPLIER); }
|
||||
|
||||
/* AXES */
|
||||
public double getAxeMasteryRankDamageMultiplier() { return getDoubleValue(SKILLS, AXES, AXE_MASTERY, RANK_DAMAGE_MULTIPLIER); }
|
||||
|
||||
public double getCriticalStrikesPVPModifier() { return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVP_MODIFIER); }
|
||||
public double getCriticalStrikesPVEModifier() { return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVE_MODIFIER); }
|
||||
|
||||
public double getGreaterImpactChance() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, CHANCE); }
|
||||
public double getGreaterImpactModifier() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, KNOCKBACK_MODIFIER); }
|
||||
public double getGreaterImpactBonusDamage() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, BONUS_DAMAGE); }
|
||||
|
||||
public int getArmorImpactIncreaseLevel() {
|
||||
int increaseLevel = getIntValue(SKILLS, AXES, ARMOR_IMPACT, INCREASE_LEVEL);
|
||||
|
||||
if(McmmoCore.isRetroModeEnabled())
|
||||
return increaseLevel * 10;
|
||||
|
||||
return increaseLevel;
|
||||
}
|
||||
|
||||
public double getImpactChance() { return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, CHANCE); }
|
||||
public double getArmorImpactMaxDurabilityDamage() { return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, MAX_PERCENTAGE_DURABILITY_DAMAGE); }
|
||||
|
||||
public double getSkullSplitterModifier() { return getDoubleValue(SKILLS, AXES, SKULL_SPLITTER, DAMAGE_MODIFIER); }
|
||||
|
||||
/* EXCAVATION */
|
||||
//Nothing to configure, everything is already configurable in config.yml
|
||||
|
||||
/* FISHING */
|
||||
public double getShakeChance(int rank) { return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank)); }
|
||||
public int getFishingVanillaXPModifier(int rank) { return getIntValue(SKILLS, FISHING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank)); }
|
||||
public double getMasterAnglerBoatModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER); }
|
||||
public double getMasterAnglerBiomeModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER); }
|
||||
|
||||
/* HERBALISM */
|
||||
//public int getFarmerDietRankChange() { return getIntValue(SKILLS, ".Herbalism.FarmersDiet.RankChange"); }
|
||||
|
||||
//public int getGreenThumbStageChange() { return getIntValue(SKILLS, ".Herbalism.GreenThumb.StageChange"); }
|
||||
|
||||
/* MINING */
|
||||
public int getBlastMiningRankLevel(int rank) { return getIntValue(SKILLS, MINING, BLAST_MINING, RANK, LEVELS, RANK, String.valueOf(rank)); }
|
||||
public double getBlastDamageDecrease(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_DAMAGE_DECREASE, RANK, String.valueOf(rank)); }
|
||||
public double getOreBonus(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, ORE_BONUS, RANK, String.valueOf(rank)); }
|
||||
public double getDebrisReduction(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, DEBRIS_REDUCTION, RANK, String.valueOf(rank)); }
|
||||
public int getDropMultiplier(int rank) { return getIntValue(SKILLS, MINING, BLAST_MINING, DROP_MULTIPLIER, RANK, String.valueOf(rank)); }
|
||||
public double getBlastRadiusModifier(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_RADIUS, MODIFIER, RANK, String.valueOf(rank)); }
|
||||
|
||||
/* REPAIR */
|
||||
public double getRepairMasteryMaxBonus() { return getDoubleValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_PERCENTAGE); }
|
||||
public int getRepairMasteryMaxLevel() { return getIntValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_LEVEL); }
|
||||
|
||||
/* Arcane Forging */
|
||||
public boolean getArcaneForgingEnchantLossEnabled() { return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, MAY_LOSE_ENCHANTS); }
|
||||
public double getArcaneForgingKeepEnchantsChance(int rank) { return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, KEEP_ENCHANTS, CHANCE, RANK, String.valueOf(rank)); }
|
||||
|
||||
public boolean getArcaneForgingDowngradeEnabled() { return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES_ENABLED); }
|
||||
public double getArcaneForgingDowngradeChance(int rank) { return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES, CHANCE, RANK, String.valueOf(rank)); }
|
||||
|
||||
/* SALVAGE */
|
||||
|
||||
public boolean getArcaneSalvageEnchantDowngradeEnabled() { return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_DOWNGRADE_ENABLED); }
|
||||
public boolean getArcaneSalvageEnchantLossEnabled() { return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_LOSS_ENABLED); }
|
||||
|
||||
public double getArcaneSalvageExtractFullEnchantsChance(int rank) { return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_FULL_ENCHANT, RANK, String.valueOf(rank)); }
|
||||
public double getArcaneSalvageExtractPartialEnchantsChance(int rank) { return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_PARTIAL_ENCHANT, RANK, String.valueOf(rank)); }
|
||||
|
||||
/* SMELTING */
|
||||
public int getBurnModifierMaxLevel() { return getIntValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MAX_BONUS_LEVEL); }
|
||||
public double getBurnTimeMultiplier() { return getDoubleValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MULTIPLIER); }
|
||||
|
||||
public double getFluxMiningChance() { return getDoubleValue(SKILLS, SMELTING, FLUX, MINING, CHANCE); }
|
||||
|
||||
public int getSmeltingRankLevel(int rank) { return getIntValue(SKILLS, SMELTING, RANK, LEVELS, RANK, String.valueOf(rank)); }
|
||||
|
||||
public int getSmeltingVanillaXPBoostMultiplier(int rank) { return getIntValue(SKILLS, SMELTING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank)); }
|
||||
|
||||
/* SWORDS */
|
||||
public double getRuptureDamagePlayer() { return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_PLAYER); }
|
||||
public double getRuptureDamageMobs() { return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_MOBS); }
|
||||
|
||||
public int getRuptureMaxTicks() { return getIntValue(SKILLS, SWORDS, RUPTURE, MAX_TICKS); }
|
||||
public int getRuptureBaseTicks() { return getIntValue(SKILLS, SWORDS, RUPTURE, BASE_TICKS); }
|
||||
|
||||
public double getCounterModifier() { return getDoubleValue(SKILLS, SWORDS, COUNTER_ATTACK, DAMAGE_MODIFIER); }
|
||||
|
||||
public double getSerratedStrikesModifier() { return getDoubleValue(SKILLS, SWORDS, SERRATED_STRIKES, DAMAGE_MODIFIER); }
|
||||
public int getSerratedStrikesTicks() { return getIntValue(SKILLS, SWORDS, SERRATED_STRIKES, RUPTURE, TICKS); }
|
||||
|
||||
/* TAMING */
|
||||
public double getGoreModifier() { return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER); }
|
||||
public double getFastFoodChance() { return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE); }
|
||||
public double getPummelChance() { return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE); }
|
||||
public double getThickFurModifier() { return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER); }
|
||||
public double getShockProofModifier() { return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER); }
|
||||
|
||||
public double getSharpenedClawsBonus() { return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS); }
|
||||
|
||||
public double getMinHorseJumpStrength() { return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH); }
|
||||
public double getMaxHorseJumpStrength() { return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH); }
|
||||
|
||||
/* UNARMED */
|
||||
public boolean getDisarmProtected() { return getBooleanValue(SKILLS, UNARMED, DISARM, ANTI_THEFT); }
|
||||
|
||||
/* WOODCUTTING */
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
/**
|
||||
* This class is used to define settings for upgrading EXTREMELY OLD versions of mcMMO to newer versions
|
||||
* It could probably be deleted
|
||||
*/
|
||||
public class ChunkConversionOptions {
|
||||
private static final boolean chunkletsEnabled = true;
|
||||
private static final int conversionRate = 1;
|
||||
private static final boolean useEnchantmentBuffs = true;
|
||||
private static final int uuidConvertAmount = 5;
|
||||
private static final int mojangRateLimit = 50000;
|
||||
private static final long mojangLimitPeriod = 600000;
|
||||
|
||||
public static boolean getChunkletsEnabled() {
|
||||
return chunkletsEnabled;
|
||||
}
|
||||
|
||||
public static int getConversionRate() {
|
||||
return conversionRate;
|
||||
}
|
||||
|
||||
public static boolean useEnchantmentBuffs() {
|
||||
return useEnchantmentBuffs;
|
||||
}
|
||||
|
||||
public static int getUUIDConvertAmount() {
|
||||
return uuidConvertAmount;
|
||||
}
|
||||
|
||||
public static int getMojangRateLimit() {
|
||||
return mojangRateLimit;
|
||||
}
|
||||
|
||||
public static long getMojangLimitPeriod() {
|
||||
return mojangLimitPeriod;
|
||||
}
|
||||
}
|
||||
@@ -1,338 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.google.common.io.Files;
|
||||
import ninja.leaping.configurate.ConfigurationNode;
|
||||
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||
import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Handles loading and cacheing configuration settings from a configurable compatible config file
|
||||
*/
|
||||
//@ConfigSerializable
|
||||
public abstract class Config implements VersionedConfig, Unload {
|
||||
|
||||
/* SETTINGS */
|
||||
private boolean mergeNewKeys;
|
||||
|
||||
/* PATH VARS */
|
||||
|
||||
public final File DIRECTORY_DATA_FOLDER; //Directory that the file is in
|
||||
public final String FILE_RELATIVE_PATH; //Relative Path to the file
|
||||
protected final String DIRECTORY_DEFAULTS = "defaults";
|
||||
|
||||
/* LOADERS */
|
||||
|
||||
private YAMLConfigurationLoader defaultCopyLoader;
|
||||
private YAMLConfigurationLoader userCopyLoader;
|
||||
|
||||
/* CONFIG FILES */
|
||||
|
||||
private File resourceConfigCopy; //Copy of the default config from the JAR (file is copied so that admins can easily compare to defaults)
|
||||
private File resourceUserCopy; //File in the /$MCMMO_ROOT/mcMMO/ directory that may contain user edited settings
|
||||
|
||||
/* ROOT NODES */
|
||||
|
||||
private ConfigurationNode userRootNode = null;
|
||||
private ConfigurationNode defaultRootNode = null;
|
||||
|
||||
/* CONFIG MANAGER */
|
||||
private ConfigurationLoader<CommentedConfigurationNode> configManager;
|
||||
|
||||
public Config(String pathToParentFolder, String relativePath, boolean mergeNewKeys) {
|
||||
//TODO: Check if this works...
|
||||
this(new File(pathToParentFolder), relativePath, mergeNewKeys);
|
||||
System.out.println("mcMMO Debug: Don't forget to check if loading config file by string instead of File works...");
|
||||
}
|
||||
|
||||
public Config(File pathToParentFolder, String relativePath, boolean mergeNewKeys) {
|
||||
/*
|
||||
* These must be at the top
|
||||
*/
|
||||
this.mergeNewKeys = mergeNewKeys; //Whether or not we add new keys when they are found
|
||||
mkdirDefaults(); // Make our default config dir
|
||||
DIRECTORY_DATA_FOLDER = pathToParentFolder; //Data Folder for our plugin
|
||||
FILE_RELATIVE_PATH = relativePath; //Relative path to config from a parent folder
|
||||
|
||||
//Attempt IO Operations
|
||||
try {
|
||||
//Makes sure we have valid Files corresponding to this config
|
||||
initConfigFiles();
|
||||
|
||||
//Init MainConfig Loaders
|
||||
initConfigLoaders();
|
||||
|
||||
//Load MainConfig Nodes
|
||||
loadConfig();
|
||||
|
||||
//Attempt to update user file, and then load it into memory
|
||||
readConfig();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the default copy File and the user config File
|
||||
* @throws IOException
|
||||
*/
|
||||
private void initConfigFiles() throws IOException {
|
||||
//Init our config copy
|
||||
resourceConfigCopy = initDefaultConfig();
|
||||
|
||||
//Init the user file
|
||||
resourceUserCopy = initUserConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the root node for the default config File and user config File
|
||||
*/
|
||||
private void loadConfig()
|
||||
{
|
||||
try {
|
||||
final ConfigurationNode defaultConfig = this.defaultCopyLoader.load();
|
||||
defaultRootNode = defaultConfig;
|
||||
|
||||
final ConfigurationNode userConfig = this.userCopyLoader.load();
|
||||
userRootNode = userConfig;
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the YAMLConfigurationLoaders for this config
|
||||
*/
|
||||
private void initConfigLoaders()
|
||||
{
|
||||
this.defaultCopyLoader = YAMLConfigurationLoader.builder().setPath(resourceConfigCopy.toPath()).setFlowStyle(DumperOptions.FlowStyle.BLOCK).build();
|
||||
this.userCopyLoader = YAMLConfigurationLoader.builder().setPath(resourceUserCopy.toPath()).setFlowStyle(DumperOptions.FlowStyle.FLOW).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies a new file from the JAR to the defaults directory and uses that new file to initialize our resourceConfigCopy
|
||||
* @see Config#resourceConfigCopy
|
||||
* @throws IOException
|
||||
*/
|
||||
private File initDefaultConfig() throws IOException {
|
||||
return copyDefaultFromJar(getDefaultConfigCopyRelativePath(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Attemps to load the config file if it exists, if it doesn't it copies a new one from within the JAR
|
||||
* @return user config File
|
||||
* @see Config#resourceUserCopy
|
||||
* @throws IOException
|
||||
*/
|
||||
private File initUserConfig() throws IOException {
|
||||
File userCopy = new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH); //Load the user file;
|
||||
|
||||
if(userCopy.exists())
|
||||
{
|
||||
// Yay
|
||||
return userCopy;
|
||||
}
|
||||
else
|
||||
{
|
||||
//If it's gone we copy default files
|
||||
//Note that we don't copy the values from the default copy put in /defaults/ that file exists only as a reference to admins and is unreliable
|
||||
return copyDefaultFromJar(FILE_RELATIVE_PATH, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to make a new config file at a specified relative output path inside the data directory by copying the matching file found in that same relative path within the JAR
|
||||
* @param relativeOutputPath the path to the output file
|
||||
* @param deleteOld whether or not to delete the existing output file on disk
|
||||
* @return a copy of the default config within the JAR
|
||||
* @throws IOException
|
||||
*/
|
||||
private File copyDefaultFromJar(String relativeOutputPath, boolean deleteOld) throws IOException
|
||||
{
|
||||
/*
|
||||
* Gen a Default config from inside the JAR
|
||||
*/
|
||||
McmmoCore.getLogger().info("Preparing to copy internal resource file (in JAR) - "+FILE_RELATIVE_PATH);
|
||||
InputStream inputStream = McmmoCore.getResource(FILE_RELATIVE_PATH);
|
||||
|
||||
byte[] buffer = new byte[inputStream.available()];
|
||||
inputStream.read(buffer);
|
||||
|
||||
//This is a copy of the default file, which we will overwrite every time mcMMO loads
|
||||
File targetFile = new File(DIRECTORY_DATA_FOLDER, relativeOutputPath);
|
||||
|
||||
//Wipe old default file on disk
|
||||
if (targetFile.exists() && deleteOld)
|
||||
{
|
||||
McmmoCore.getLogger().info("Updating file " + relativeOutputPath);
|
||||
targetFile.delete(); //Necessary?
|
||||
}
|
||||
|
||||
if(!targetFile.exists())
|
||||
{
|
||||
targetFile.getParentFile().mkdirs();
|
||||
targetFile.createNewFile(); //New File Boys
|
||||
}
|
||||
|
||||
Files.write(buffer, targetFile);
|
||||
McmmoCore.getLogger().info("Created config file - " + relativeOutputPath);
|
||||
|
||||
inputStream.close(); //Close the input stream
|
||||
|
||||
return targetFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* The path to the defaults directory
|
||||
* @return the path to the defaults directory
|
||||
*/
|
||||
private String getDefaultConfigCopyRelativePath() {
|
||||
return DIRECTORY_DEFAULTS + File.separator + FILE_RELATIVE_PATH;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the defaults directory
|
||||
*/
|
||||
private void mkdirDefaults() {
|
||||
//Make Default Subdirectory
|
||||
File defaultsDir = new File (DIRECTORY_DATA_FOLDER, "defaults");
|
||||
|
||||
if(!defaultsDir.exists())
|
||||
defaultsDir.mkdir();
|
||||
}
|
||||
|
||||
/**
|
||||
* Configs are versioned based on when they had significant changes to keys
|
||||
* @return current MainConfig Version String
|
||||
*/
|
||||
public String getVersion()
|
||||
{
|
||||
return String.valueOf(getConfigVersion());
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to read the loaded config file
|
||||
* MainConfig will have any necessary updates applied
|
||||
* MainConfig will be compared to the default config to see if it is missing any nodes
|
||||
* MainConfig will have any missing nodes inserted with their default value
|
||||
*/
|
||||
public void readConfig() {
|
||||
McmmoCore.getLogger().info("Attempting to read " + FILE_RELATIVE_PATH + ".");
|
||||
|
||||
int version = this.userRootNode.getNode("ConfigVersion").getInt();
|
||||
McmmoCore.getLogger().info(FILE_RELATIVE_PATH + " version is " + version);
|
||||
|
||||
//Update our config
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the users config file to the default and adds any missing nodes and applies any necessary updates
|
||||
*/
|
||||
private void updateConfig()
|
||||
{
|
||||
McmmoCore.getLogger().info(defaultRootNode.getChildrenMap().size() +" items in default children map");
|
||||
McmmoCore.getLogger().info(userRootNode.getChildrenMap().size() +" items in default root map");
|
||||
|
||||
// Merge Values from default
|
||||
if(mergeNewKeys)
|
||||
userRootNode = userRootNode.mergeValuesFrom(defaultRootNode);
|
||||
|
||||
removeOldKeys();
|
||||
|
||||
// Update config version
|
||||
updateConfigVersion();
|
||||
|
||||
//Attempt to save
|
||||
try {
|
||||
saveUserCopy();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the current state information of the config to the users copy (which they may edit)
|
||||
* @throws IOException
|
||||
*/
|
||||
private void saveUserCopy() throws IOException
|
||||
{
|
||||
McmmoCore.getLogger().info("Saving new node");
|
||||
userCopyLoader.save(userRootNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs any necessary operations to update this config
|
||||
*/
|
||||
private void updateConfigVersion() {
|
||||
// Set a version for our config
|
||||
this.userRootNode.getNode("ConfigVersion").setValue(getConfigVersion());
|
||||
McmmoCore.getLogger().info("Updated config to ["+getConfigVersion()+"] - " + FILE_RELATIVE_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the root node of this config
|
||||
* @return the root node of this config
|
||||
*/
|
||||
protected ConfigurationNode getUserRootNode() {
|
||||
return userRootNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs an int from the specified node
|
||||
* @param path
|
||||
* @return the int from the node, null references will zero initialize
|
||||
*/
|
||||
public int getIntValue(String... path)
|
||||
{
|
||||
return userRootNode.getNode(path).getInt();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a double from the specified node
|
||||
* @param path
|
||||
* @return the double from the node, null references will zero initialize
|
||||
*/
|
||||
public double getDoubleValue(String... path)
|
||||
{
|
||||
return userRootNode.getNode(path).getDouble();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a boolean from the specified node
|
||||
* @param path
|
||||
* @return the boolean from the node, null references will zero initialize
|
||||
*/
|
||||
public boolean getBooleanValue(String... path)
|
||||
{
|
||||
return userRootNode.getNode(path).getBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a string from the specified node
|
||||
* @param path
|
||||
* @return the string from the node, null references will zero initialize
|
||||
*/
|
||||
public String getStringValue(String... path)
|
||||
{
|
||||
return userRootNode.getNode(path).getString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if a node exists in the user's config file
|
||||
* @param path path to the node
|
||||
* @return true if the node exists
|
||||
*/
|
||||
public boolean hasNode(String... path) {
|
||||
return (userRootNode.getNode(path) != null);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface ConfigCollection<T> {
|
||||
Collection<T> getLoadedCollection();
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Represents a config file that registers keys after its initialized
|
||||
*/
|
||||
public abstract class ConfigCollections extends Config implements RegistersKeys, ConfigCollection {
|
||||
|
||||
public ConfigCollections(String pathToParentFolder, String relativePath, boolean mergeNewKeys) {
|
||||
super(pathToParentFolder, relativePath, mergeNewKeys);
|
||||
loadKeys();
|
||||
}
|
||||
|
||||
public ConfigCollections(File pathToParentFolder, String relativePath, boolean mergeNewKeys) {
|
||||
super(pathToParentFolder, relativePath, mergeNewKeys);
|
||||
loadKeys();
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This class is used for config files that validate their entries
|
||||
*/
|
||||
public abstract class ConfigValidated extends Config implements DefaultKeys {
|
||||
public ConfigValidated(String parentFolderPath, String relativePath, boolean mergeNewKeys)
|
||||
{
|
||||
super(parentFolderPath, relativePath, mergeNewKeys);
|
||||
validateEntries();
|
||||
}
|
||||
|
||||
public ConfigValidated(File parentFolderFile, String relativePath, boolean mergeNewKeys)
|
||||
{
|
||||
super(parentFolderFile, relativePath, mergeNewKeys);
|
||||
validateEntries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints all errors found when validating the config
|
||||
*/
|
||||
private void validateEntries()
|
||||
{
|
||||
/*
|
||||
* Print Errors about Keys
|
||||
*/
|
||||
|
||||
List<String> validKeyErrors = validateKeys(); // Validate Keys
|
||||
|
||||
if(validKeyErrors != null && validKeyErrors.size() > 0)
|
||||
{
|
||||
for(String error : validKeyErrors)
|
||||
{
|
||||
McmmoCore.getLogger().severe(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
import com.gmail.nossr50.core.util.StringUtils;
|
||||
|
||||
public class CoreSkillsConfig extends Config {
|
||||
private static CoreSkillsConfig instance;
|
||||
|
||||
public CoreSkillsConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"coreskills.yml", true);
|
||||
}
|
||||
|
||||
public static CoreSkillsConfig getInstance() {
|
||||
if (instance == null)
|
||||
return new CoreSkillsConfig();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
instance = null;
|
||||
}
|
||||
|
||||
/*
|
||||
* Skill Settings
|
||||
*/
|
||||
|
||||
/**
|
||||
* Whether or not a skill is enabled
|
||||
* Defaults true
|
||||
*
|
||||
* @param abstractSubSkill SubSkill definition to check
|
||||
* @return true if subskill is enabled
|
||||
*/
|
||||
public boolean isSkillEnabled(AbstractSubSkill abstractSubSkill) {
|
||||
return getBooleanValue(StringUtils.getCapitalized(abstractSubSkill.getPrimarySkill().toString()) + "." + abstractSubSkill.getConfigKeyName() + ".Enabled", true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not this primary skill is enabled
|
||||
*
|
||||
* @param primarySkillType target primary skill
|
||||
* @return true if enabled
|
||||
*/
|
||||
public boolean isPrimarySkillEnabled(PrimarySkillType primarySkillType) {
|
||||
return getBooleanValue(StringUtils.getCapitalized(primarySkillType.toString()) + ".Enabled", true);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is for config validation
|
||||
*/
|
||||
public interface DefaultKeys {
|
||||
List<String> validateKeys();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,124 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.skills.SubSkillType;
|
||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RankConfig extends ConfigValidated {
|
||||
private static RankConfig instance;
|
||||
|
||||
public RankConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"skillranks.yml", true);
|
||||
this.instance = this;
|
||||
}
|
||||
|
||||
public static RankConfig getInstance() {
|
||||
if (instance == null)
|
||||
return new RankConfig();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
instance = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
List<String> reason = new ArrayList<String>();
|
||||
|
||||
/*
|
||||
* In the future this method will check keys for all skills, but for now it only checks overhauled skills
|
||||
*/
|
||||
checkKeys(reason);
|
||||
|
||||
return reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the unlock level for a subskill depending on the gamemode
|
||||
*
|
||||
* @param subSkillType target subskill
|
||||
* @param rank the rank we are checking
|
||||
* @return the level requirement for a subskill at this particular rank
|
||||
*/
|
||||
public int getSubSkillUnlockLevel(SubSkillType subSkillType, int rank) {
|
||||
String key = subSkillType.getRankConfigAddress();
|
||||
|
||||
return findRankByRootAddress(rank, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the unlock level for a subskill depending on the gamemode
|
||||
*
|
||||
* @param abstractSubSkill target subskill
|
||||
* @param rank the rank we are checking
|
||||
* @return the level requirement for a subskill at this particular rank
|
||||
*/
|
||||
public int getSubSkillUnlockLevel(AbstractSubSkill abstractSubSkill, int rank) {
|
||||
String key = abstractSubSkill.getPrimaryKeyName() + "." + abstractSubSkill.getConfigKeyName();
|
||||
|
||||
return findRankByRootAddress(rank, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the unlock level for a subskill depending on the gamemode
|
||||
*
|
||||
* @param key root address of the subskill in the rankskills.yml file
|
||||
* @param rank the rank we are checking
|
||||
* @return the level requirement for a subskill at this particular rank
|
||||
*/
|
||||
private int findRankByRootAddress(int rank, String key) {
|
||||
String scalingKey = MainConfig.getInstance().getIsRetroMode() ? ".RetroMode." : ".Standard.";
|
||||
|
||||
String targetRank = "Rank_" + rank;
|
||||
|
||||
key += scalingKey;
|
||||
key += targetRank;
|
||||
|
||||
return getIntValue(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks for valid keys for subskill ranks
|
||||
*/
|
||||
private void checkKeys(List<String> reasons) {
|
||||
//For now we will only check ranks of stuff I've overhauled
|
||||
for (SubSkillType subSkillType : SubSkillType.values()) {
|
||||
//Keeping track of the rank requirements and making sure there are no logical errors
|
||||
int curRank = 0;
|
||||
int prevRank = 0;
|
||||
|
||||
for (int x = 0; x < subSkillType.getNumRanks(); x++) {
|
||||
if (curRank > 0)
|
||||
prevRank = curRank;
|
||||
|
||||
curRank = getSubSkillUnlockLevel(subSkillType, x);
|
||||
|
||||
//Do we really care if its below 0? Probably not
|
||||
if (curRank < 0) {
|
||||
reasons.add(subSkillType.getAdvConfigAddress() + ".Rank_Levels.Rank_" + curRank + ".LevelReq should be above or equal to 0!");
|
||||
}
|
||||
|
||||
if (prevRank > curRank) {
|
||||
//We're going to allow this but we're going to warn them
|
||||
plugin.getLogger().info("You have the ranks for the subskill " + subSkillType.toString() + " set up poorly, sequential ranks should have ascending requirements");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
/**
|
||||
* A class that registers keys
|
||||
*/
|
||||
public interface RegistersKeys {
|
||||
/**
|
||||
* Loads up keys
|
||||
*/
|
||||
void loadKeys();
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.util.sounds.SoundType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SoundConfig extends ConfigValidated {
|
||||
private static SoundConfig instance;
|
||||
|
||||
public SoundConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "sounds.yml", true);
|
||||
this.instance = this;
|
||||
}
|
||||
|
||||
public static SoundConfig getInstance() {
|
||||
if (instance == null)
|
||||
return new SoundConfig();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
instance = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
ArrayList<String> reasons = new ArrayList<>();
|
||||
|
||||
for (SoundType soundType : SoundType.values()) {
|
||||
if (getDoubleValue("Sounds." + soundType.toString() + ".Volume") < 0) {
|
||||
reasons.add("[mcMMO] Sound volume cannot be below 0 for " + soundType.toString());
|
||||
}
|
||||
|
||||
//Sounds with custom pitching don't use pitch values
|
||||
if (!soundType.usesCustomPitch()) {
|
||||
if (getDoubleValue("Sounds." + soundType.toString() + ".Pitch") < 0) {
|
||||
reasons.add("[mcMMO] Sound pitch cannot be below 0 for " + soundType.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return reasons;
|
||||
}
|
||||
|
||||
public float getMasterVolume() {
|
||||
return (float) getDoubleValue("Sounds.MasterVolume", 1.0);
|
||||
}
|
||||
|
||||
public float getVolume(SoundType soundType) {
|
||||
String key = "Sounds." + soundType.toString() + ".Volume";
|
||||
return (float) getDoubleValue(key);
|
||||
}
|
||||
|
||||
public float getPitch(SoundType soundType) {
|
||||
String key = "Sounds." + soundType.toString() + ".Pitch";
|
||||
return (float) getDoubleValue(key);
|
||||
}
|
||||
|
||||
public boolean getIsEnabled(SoundType soundType) {
|
||||
String key = "Sounds." + soundType.toString() + ".Enabled";
|
||||
return getBooleanValue(key, true);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
/**
|
||||
* Unloads values, sort of like a constructor
|
||||
*/
|
||||
public interface Unload {
|
||||
void unload();
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
/**
|
||||
* Represents a config that is version checked
|
||||
*/
|
||||
public interface VersionedConfig {
|
||||
/**
|
||||
* The version of this config
|
||||
* @return
|
||||
*/
|
||||
double getConfigVersion();
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
package com.gmail.nossr50.core.config;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.mcmmo.world.World;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Blacklist certain features in certain worlds
|
||||
*/
|
||||
public class WorldBlacklist {
|
||||
private static ArrayList<String> blacklist;
|
||||
private final String blackListFileName = "world_blacklist.txt";
|
||||
|
||||
public WorldBlacklist() {
|
||||
blacklist = new ArrayList<>();
|
||||
init();
|
||||
}
|
||||
|
||||
public static boolean isWorldBlacklisted(World world) {
|
||||
|
||||
for (String s : blacklist) {
|
||||
if (world.getName().equalsIgnoreCase(s))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
//Make the blacklist file if it doesn't exist
|
||||
//TODO: Check if this works
|
||||
File blackListFile = new File(McmmoCore.getDataFolderPath().getAbsoluteFile() + File.separator + blackListFileName);
|
||||
|
||||
try {
|
||||
if (!blackListFile.exists())
|
||||
blackListFile.createNewFile();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//Load up the blacklist
|
||||
loadBlacklist(blackListFile);
|
||||
//registerFlags();
|
||||
}
|
||||
|
||||
private void loadBlacklist(File blackListFile) {
|
||||
try {
|
||||
FileReader fileReader = new FileReader(blackListFile);
|
||||
BufferedReader bufferedReader = new BufferedReader(fileReader);
|
||||
|
||||
String currentLine;
|
||||
|
||||
while ((currentLine = bufferedReader.readLine()) != null) {
|
||||
if (currentLine.length() == 0)
|
||||
continue;
|
||||
|
||||
if (!blacklist.contains(currentLine))
|
||||
blacklist.add(currentLine);
|
||||
}
|
||||
|
||||
//Close readers
|
||||
bufferedReader.close();
|
||||
fileReader.close();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
McmmoCore.getLogger().info(blacklist.size() + " entries in mcMMO World Blacklist");
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.collectionconfigs;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.ConfigCollection;
|
||||
import com.gmail.nossr50.core.config.ConfigCollections;
|
||||
import com.gmail.nossr50.core.skills.child.salvage.salvageables.Salvageable;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Represents a collection of config files that serve a similar purpose
|
||||
* For example, files named repair.*.yml are all loaded into memory, this lets admins keep their config files clean
|
||||
*
|
||||
* To be honest I'm not sure how many people make use of this system, but I'm keeping it since its been in mcMMO for like 6+ years
|
||||
*/
|
||||
public final class MultiConfigManager {
|
||||
|
||||
public static final String DEFAULT_MULTICONFIG_FILENAME_SUFFIX = ".vanilla.yml";
|
||||
|
||||
//Configs
|
||||
public RepairConfig vanillaRepairConfig; //This is the main config file that mcMMO will copy out
|
||||
public SalvageConfig vanillaSalvageConfig;
|
||||
|
||||
private static List<Repairable> repairables;
|
||||
private static List<Salvageable> salvageables;
|
||||
|
||||
public MultiConfigManager(String fileNamePrefix)
|
||||
{
|
||||
//init Collections
|
||||
repairables = new ArrayList<>();
|
||||
salvageables = new ArrayList<>();
|
||||
|
||||
//init vanilla configs
|
||||
vanillaRepairConfig = new RepairConfig(getVanillaConfigName("repair"));
|
||||
vanillaSalvageConfig = new SalvageConfig(getVanillaConfigName("salvage"));
|
||||
|
||||
//add valid vanilla collections to main collection
|
||||
repairables.addAll(vanillaRepairConfig.getLoadedCollection());
|
||||
salvageables.addAll(vanillaSalvageConfig.getLoadedCollection());
|
||||
|
||||
//add valid custom collections to main collection
|
||||
loadCustomCollections("repair", repairables, RepairConfig.class);
|
||||
loadCustomCollections("salvage", salvageables, SalvageConfig.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* mcMMO allows collection config files to be named things like repair.whatevernameyouwanthere.yml and so on,
|
||||
* these files are treated in the same way as the vanilla file. They serve the purpose of organization
|
||||
* @param configPrefix the prefix of the file name, for example "repair", "salvage", etc
|
||||
* @param collection the collection that will be added to
|
||||
*/
|
||||
public void loadCustomCollections(String configPrefix, Collection<?> collection, Class<? extends ConfigCollection> configClass)
|
||||
{
|
||||
String vanillaConfigFileName = getVanillaConfigName(configPrefix);
|
||||
|
||||
//Find other files
|
||||
Pattern pattern = Pattern.compile(configPrefix+"\\.(?:.+)\\.yml");
|
||||
File dataFolder = McmmoCore.getDataFolderPath();
|
||||
|
||||
for (String fileName : dataFolder.list()) {
|
||||
//Vanilla Config is already loaded
|
||||
if(fileName.equalsIgnoreCase(vanillaConfigFileName))
|
||||
continue;
|
||||
|
||||
//Find files that match the pattern
|
||||
if (!pattern.matcher(fileName).matches()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//Init file
|
||||
File currentFile = new File(dataFolder, fileName);
|
||||
|
||||
//Make sure its not a directory (needed?)
|
||||
if(currentFile.isDirectory())
|
||||
continue;
|
||||
|
||||
|
||||
try {
|
||||
ConfigCollections customConfig = configClass.getClass().getConstructor(fileName).newInstance();
|
||||
collection.addAll(customConfig.getLoadedCollection());
|
||||
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private String getVanillaConfigName(String configPrefix)
|
||||
{
|
||||
return configPrefix+DEFAULT_MULTICONFIG_FILENAME_SUFFIX;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.collectionconfigs;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.ConfigCollections;
|
||||
import com.gmail.nossr50.core.mcmmo.item.ItemStack;
|
||||
import com.gmail.nossr50.core.skills.ConfigItemCategory;
|
||||
import com.gmail.nossr50.core.skills.MaterialType;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.RepairableFactory;
|
||||
import com.gmail.nossr50.core.util.InvalidItemException;
|
||||
import com.gmail.nossr50.core.util.ItemUtils;
|
||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
|
||||
import ninja.leaping.configurate.ConfigurationNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This config
|
||||
*/
|
||||
public class RepairConfig extends ConfigCollections {
|
||||
private List<Repairable> repairables;
|
||||
|
||||
public RepairConfig(String fileName) {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(), fileName, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
repairables = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection getLoadedCollection() {
|
||||
return repairables == null ? new ArrayList<Repairable>() : repairables;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadKeys() {
|
||||
repairables = new ArrayList<Repairable>();
|
||||
|
||||
ConfigurationNode repairablesNode = getUserRootNode().getNode("Repairables");
|
||||
List<? extends ConfigurationNode> repairablesNodeChildrenList = repairablesNode.getChildrenList();
|
||||
Iterator<? extends ConfigurationNode> configIter = repairablesNodeChildrenList.iterator();
|
||||
|
||||
for(Iterator<? extends ConfigurationNode> i = repairablesNodeChildrenList.iterator(); i.hasNext();)
|
||||
{
|
||||
ConfigurationNode iterNode = i.next();
|
||||
//TODO: Verify that this is getting the key
|
||||
String key = iterNode.getKey().toString(); //Get the String of the node
|
||||
|
||||
// Validate all the things!
|
||||
List<String> reason = new ArrayList<String>();
|
||||
|
||||
try {
|
||||
// ItemStack Material
|
||||
ConfigItemCategory configItemCategory = ItemUtils.matchItemType(key);
|
||||
} catch (InvalidItemException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (itemType == null) {
|
||||
reason.add("Invalid material: " + key);
|
||||
}
|
||||
|
||||
// Repair Material Type
|
||||
MaterialType repairMaterialType = MaterialType.OTHER;
|
||||
String repairMaterialTypeString = getStringValue("Repairables." + key + ".MaterialType", "OTHER");
|
||||
|
||||
if (!config.contains("Repairables." + key + ".MaterialType") && itemType != null) {
|
||||
ItemStack repairItem = ItemStack.makeNew(itemType);
|
||||
|
||||
if (ItemUtils.isWoodTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.WOOD;
|
||||
} else if (ItemUtils.isStoneTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.STONE;
|
||||
} else if (ItemUtils.isStringTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.STRING;
|
||||
} else if (ItemUtils.isLeatherArmor(repairItem)) {
|
||||
repairMaterialType = MaterialType.LEATHER;
|
||||
} else if (ItemUtils.isIronArmor(repairItem) || ItemUtils.isIronTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.IRON;
|
||||
} else if (ItemUtils.isGoldArmor(repairItem) || ItemUtils.isGoldTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.GOLD;
|
||||
} else if (ItemUtils.isDiamondArmor(repairItem) || ItemUtils.isDiamondTool(repairItem)) {
|
||||
repairMaterialType = MaterialType.DIAMOND;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
repairMaterialType = MaterialType.valueOf(repairMaterialTypeString);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
reason.add(key + " has an invalid MaterialType of " + repairMaterialTypeString);
|
||||
}
|
||||
}
|
||||
|
||||
// Repair Material
|
||||
String repairMaterialName = getStringValue("Repairables." + key + ".RepairMaterial");
|
||||
Material repairMaterial = (repairMaterialName == null ? repairMaterialType.getDefaultMaterial() : Material.matchMaterial(repairMaterialName));
|
||||
|
||||
if (repairMaterial == null) {
|
||||
reason.add(key + " has an invalid repair material: " + repairMaterialName);
|
||||
}
|
||||
|
||||
// Maximum Durability
|
||||
short maximumDurability = (itemType != null ? itemType.getMaxDurability() : (short) getIntValue("Repairables." + key + ".MaximumDurability"));
|
||||
|
||||
if (maximumDurability <= 0) {
|
||||
maximumDurability = (short) getIntValue("Repairables." + key + ".MaximumDurability");
|
||||
}
|
||||
|
||||
if (maximumDurability <= 0) {
|
||||
reason.add("Maximum durability of " + key + " must be greater than 0!");
|
||||
}
|
||||
|
||||
// ItemStack Type
|
||||
ConfigItemCategory repairConfigItemCategory = ConfigItemCategory.OTHER;
|
||||
String repairItemTypeString = getStringValue("Repairables." + key + ".ItemType", "OTHER");
|
||||
|
||||
if (!config.contains("Repairables." + key + ".ItemType") && itemType != null) {
|
||||
ItemStack repairItem = new ItemStack(itemType);
|
||||
|
||||
if (ItemUtils.isMinecraftTool(repairItem)) {
|
||||
repairConfigItemCategory = ConfigItemCategory.TOOL;
|
||||
} else if (ItemUtils.isArmor(repairItem)) {
|
||||
repairConfigItemCategory = ConfigItemCategory.ARMOR;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
repairConfigItemCategory = ConfigItemCategory.valueOf(repairItemTypeString);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
reason.add(key + " has an invalid ItemType of " + repairItemTypeString);
|
||||
}
|
||||
}
|
||||
|
||||
byte repairMetadata = (byte) getIntValue("Repairables." + key + ".RepairMaterialMetadata", -1);
|
||||
int minimumLevel = getIntValue("Repairables." + key + ".MinimumLevel");
|
||||
double xpMultiplier = getDoubleValue("Repairables." + key + ".XpMultiplier", 1);
|
||||
|
||||
if (minimumLevel < 0) {
|
||||
reason.add(key + " has an invalid MinimumLevel of " + minimumLevel);
|
||||
}
|
||||
|
||||
// Minimum Quantity
|
||||
int minimumQuantity = (itemType != null ? SkillUtils.getRepairAndSalvageQuantities(new ItemStack(itemType), repairMaterial, repairMetadata) : getIntValue("Repairables." + key + ".MinimumQuantity", 2));
|
||||
|
||||
if (minimumQuantity <= 0 && itemType != null) {
|
||||
minimumQuantity = getIntValue("Repairables." + key + ".MinimumQuantity", 2);
|
||||
}
|
||||
|
||||
if (minimumQuantity <= 0) {
|
||||
reason.add("Minimum quantity of " + key + " must be greater than 0!");
|
||||
}
|
||||
|
||||
if (noErrorsInRepairable(reason)) {
|
||||
Repairable repairable = RepairableFactory.getRepairable(itemType, repairMaterial, repairMetadata, minimumLevel, minimumQuantity, maximumDurability, repairConfigItemCategory, repairMaterialType, xpMultiplier);
|
||||
repairables.add(repairable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if there are any errors for this repairable and if there are reports them to console
|
||||
* @param issues errors related to loading a repairable
|
||||
* @return returns true if there are no errors for this repairable
|
||||
*/
|
||||
private boolean noErrorsInRepairable(List<String> issues) {
|
||||
for (String issue : issues) {
|
||||
McmmoCore.getLogger().warning(issue);
|
||||
}
|
||||
|
||||
return issues.isEmpty();
|
||||
}
|
||||
}
|
||||
@@ -1,448 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.experience;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.ConfigValidated;
|
||||
import com.gmail.nossr50.core.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.core.mcmmo.BlockType;
|
||||
import com.gmail.nossr50.core.mcmmo.bossbars.BarColor;
|
||||
import com.gmail.nossr50.core.mcmmo.bossbars.BarStyle;
|
||||
import com.gmail.nossr50.core.mcmmo.entity.EntityType;
|
||||
import com.gmail.nossr50.core.skills.MaterialType;
|
||||
import com.gmail.nossr50.core.skills.PotionStage;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.core.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ExperienceConfig extends ConfigValidated {
|
||||
public static final String EXPLOIT_FIX = "ExploitFix";
|
||||
public static final String ENDERMAN_ENDERMITE_FARMS = "EndermanEndermiteFarms";
|
||||
public static final String EXPERIENCE = "Experience";
|
||||
public static final String EXPERIENCE_FORMULA = EXPERIENCE + "_Formula";
|
||||
public static final String CURVE = "Curve";
|
||||
public static final String VALUES = "_Values";
|
||||
public static final String MULTIPLIER = "multiplier";
|
||||
public static final String BASE = "base";
|
||||
public static final String EXPONENT = "exponent";
|
||||
public static final String MULTIPLIER1 = "Multiplier";
|
||||
public static final String GLOBAL = "Global";
|
||||
public static final String MOBSPAWNERS = "Mobspawners";
|
||||
public static final String BREEDING = "Breeding";
|
||||
public static final String MODIFIER = "Modifier";
|
||||
public static final String CUSTOM_XP_PERK = "Custom_XP_Perk";
|
||||
public static final String BOOST = "Boost";
|
||||
public static final String DIMISHED_RETURNS = "Dimished_Returns";
|
||||
public static final String GUARANTEED_MINIMUM_PERCENTAGE = "Guaranteed_Minimum_Percentage";
|
||||
public static final String DIMINISHED_RETURNS = "Diminished_Returns";
|
||||
public static final String ENABLE = "Enable";
|
||||
public static final String ENABLED = ENABLE + "d";
|
||||
public static final String TIME_INTERVAL = "Time_Interval";
|
||||
public static final String CONVERSION = "Conversion";
|
||||
public static final String EXP = "Exp_";
|
||||
public static final String PVP = "PVP";
|
||||
public static final String REWARDS = "Rewards";
|
||||
public static final String COMBAT = "Combat";
|
||||
public static final String ANIMALS = "Animals";
|
||||
public static final String BARS = "_Bars";
|
||||
public static final String UPDATE = "Update";
|
||||
public static final String PASSIVE = "Passive";
|
||||
public static final String THIS_MAY_CAUSE_LAG = "ThisMayCauseLag";
|
||||
public static final String ALWAYS = "Always";
|
||||
public static final String TITLES_WHEN_XPIS_GAINED = "TitlesWhenXPIsGained";
|
||||
public static final String EXTRA_DETAILS = "ExtraDetails";
|
||||
public static final String COLOR = "Color";
|
||||
public static final String BAR_STYLE = "BarStyle";
|
||||
public static final String ACROBATICS = "Acrobatics";
|
||||
public static final String DODGE = "Dodge";
|
||||
public static final String ROLL = "Roll";
|
||||
public static final String FALL = "Fall";
|
||||
public static final String FEATHER = "Feather";
|
||||
public static final String ALCHEMY = "Alchemy";
|
||||
public static final String POTION_STAGE = "Potion_Stage_";
|
||||
public static final String ARCHERY = "Archery";
|
||||
public static final String DISTANCE = "Distance_";
|
||||
public static final String FISHING = "Fishing";
|
||||
public static final String SHAKE = "Shake";
|
||||
public static final String REPAIR = "Repair";
|
||||
public static final String BASE1 = "Base";
|
||||
public static final String TAMING = "Taming";
|
||||
public static final String ANIMAL_TAMING = "Animal_Taming";
|
||||
public static final String PARTY = "Party";
|
||||
public static final String THRESHOLD = "Threshold";
|
||||
public static final String CUMULATIVE = "Cumulative_";
|
||||
public static final String OCELOT = "Ocelot";
|
||||
public static final String WOLF = "Wolf";
|
||||
public static final String FEATHER_FALL_MULTIPLIER = "FeatherFall_Multiplier";
|
||||
private static ExperienceConfig instance;
|
||||
|
||||
//TODO: Should merge be false? Seems okay to leave it as true..
|
||||
private ExperienceConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "experience.yml", true);
|
||||
}
|
||||
|
||||
public static ExperienceConfig getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ExperienceConfig();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
instance = null; //TODO: this might be a bit problematic
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
List<String> reason = new ArrayList<String>();
|
||||
|
||||
/*
|
||||
* FORMULA SETTINGS
|
||||
*/
|
||||
|
||||
/* Curve values */
|
||||
if (getMultiplier(FormulaType.EXPONENTIAL) <= 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + ".Exponential" + VALUES + "." + MULTIPLIER + " should be greater than 0!");
|
||||
}
|
||||
|
||||
if (getMultiplier(FormulaType.LINEAR) <= 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + ".Linear" + VALUES + "." + MULTIPLIER + " should be greater than 0!");
|
||||
}
|
||||
|
||||
if (getExponent(FormulaType.EXPONENTIAL) <= 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + ".Exponential" + VALUES + "." + EXPONENT + " should be greater than 0!");
|
||||
}
|
||||
|
||||
/* Global modifier */
|
||||
if (getExperienceGainsGlobalMultiplier() <= 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + "." + MULTIPLIER1 + "." + GLOBAL + " should be greater than 0!");
|
||||
}
|
||||
|
||||
/* PVP modifier */
|
||||
if (getPlayerVersusPlayerXP() < 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + "." + MULTIPLIER1 + "." + PVP + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* Spawned Mob modifier */
|
||||
if (getSpawnedMobXpMultiplier() < 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + "." + MOBSPAWNERS + "." + MULTIPLIER1 + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* Bred Mob modifier */
|
||||
if (getBredMobXpMultiplier() < 0) {
|
||||
reason.add(EXPERIENCE_FORMULA + "." + BREEDING + "." + MULTIPLIER1 + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* Conversion */
|
||||
if (getExpModifier() <= 0) {
|
||||
reason.add(CONVERSION + "." + EXP + MODIFIER + " should be greater than 0!");
|
||||
}
|
||||
|
||||
/*
|
||||
* XP SETTINGS
|
||||
*/
|
||||
|
||||
/* Alchemy */
|
||||
for (PotionStage potionStage : PotionStage.values()) {
|
||||
if (getPotionXP(potionStage) < 0) {
|
||||
reason.add(EXPERIENCE + "." + ALCHEMY + "." + POTION_STAGE + potionStage.toNumerical() + " should be at least 0!");
|
||||
}
|
||||
}
|
||||
|
||||
/* Archery */
|
||||
if (getArcheryDistanceMultiplier() < 0) {
|
||||
reason.add(EXPERIENCE + "." + ARCHERY + "." + DISTANCE + MULTIPLIER1 + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* Combat XP Multipliers */
|
||||
if (getAnimalsXP() < 0) {
|
||||
reason.add(EXPERIENCE + "." + COMBAT + "." + MULTIPLIER1 + "." + ANIMALS + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getDodgeXPModifier() < 0) {
|
||||
reason.add("Skills." + ACROBATICS + "." + DODGE + "_XP_" + MODIFIER + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getRollXPModifier() < 0) {
|
||||
reason.add("Skills." + ACROBATICS + "." + ROLL + "_XP_" + MODIFIER + " should be at least 0!");
|
||||
}
|
||||
|
||||
if (getFallXPModifier() < 0) {
|
||||
reason.add("Skills." + ACROBATICS + "." + FALL + "_XP_" + MODIFIER + " should be at least 0!");
|
||||
}
|
||||
|
||||
/* Fishing */
|
||||
// TODO: Add validation for each fish type once enum is available.
|
||||
|
||||
if (getFishingShakeXP() <= 0) {
|
||||
reason.add(EXPERIENCE + "." + FISHING + "." + SHAKE + " should be greater than 0!");
|
||||
}
|
||||
|
||||
/* Repair */
|
||||
if (getRepairXPBase() <= 0) {
|
||||
reason.add(EXPERIENCE + "." + REPAIR + "." + BASE1 + " should be greater than 0!");
|
||||
}
|
||||
|
||||
/* Taming */
|
||||
if (getTamingXP(EntityType.WOLF) <= 0) {
|
||||
reason.add(EXPERIENCE + "." + TAMING + "." + ANIMAL_TAMING + "." + WOLF + " should be greater than 0!");
|
||||
}
|
||||
|
||||
if (getTamingXP(EntityType.OCELOT) <= 0) {
|
||||
reason.add(EXPERIENCE + "." + TAMING + "." + ANIMAL_TAMING + "." + OCELOT + " should be greater than 0!");
|
||||
}
|
||||
|
||||
return reason;
|
||||
}
|
||||
|
||||
/*
|
||||
* FORMULA SETTINGS
|
||||
*/
|
||||
|
||||
/* EXPLOIT TOGGLES */
|
||||
public boolean isEndermanEndermiteFarmingPrevented() {
|
||||
return getBooleanValue(EXPLOIT_FIX, ENDERMAN_ENDERMITE_FARMS);
|
||||
}
|
||||
|
||||
/* Curve settings */
|
||||
public FormulaType getFormulaType() {
|
||||
return FormulaType.getFormulaType(getStringValue(EXPERIENCE_FORMULA, CURVE));
|
||||
}
|
||||
|
||||
public boolean getCumulativeCurveEnabled() {
|
||||
return getBooleanValue(EXPERIENCE_FORMULA, CUMULATIVE + CURVE);
|
||||
}
|
||||
|
||||
/* Curve values */
|
||||
public double getMultiplier(FormulaType type) {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, StringUtils.getCapitalized(type.toString()) + VALUES, MULTIPLIER);
|
||||
}
|
||||
|
||||
public int getBase(FormulaType type) {
|
||||
return getIntValue(EXPERIENCE_FORMULA, StringUtils.getCapitalized(type.toString()) + VALUES, BASE);
|
||||
}
|
||||
|
||||
public double getExponent(FormulaType type) {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, StringUtils.getCapitalized(type.toString()) + VALUES, EXPONENT);
|
||||
}
|
||||
|
||||
/* Global modifier */
|
||||
public double getExperienceGainsGlobalMultiplier() {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, MULTIPLIER1, GLOBAL);
|
||||
}
|
||||
|
||||
//TODO: Rewrite this
|
||||
/*public void setExperienceGainsGlobalMultiplier(double value) {
|
||||
config.set(EXPERIENCE_FORMULA, MULTIPLIER1, GLOBAL, value);
|
||||
}*/
|
||||
|
||||
/* PVP modifier */
|
||||
public double getPlayerVersusPlayerXP() {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, MULTIPLIER1, PVP);
|
||||
}
|
||||
|
||||
/* Spawned Mob modifier */
|
||||
public double getSpawnedMobXpMultiplier() {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, MOBSPAWNERS, MULTIPLIER1);
|
||||
}
|
||||
|
||||
public double getBredMobXpMultiplier() {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, BREEDING, MULTIPLIER1);
|
||||
}
|
||||
|
||||
/* Skill modifiers */
|
||||
public double getFormulaSkillModifier(PrimarySkillType skill) {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, MODIFIER, StringUtils.getCapitalized(skill.toString()));
|
||||
}
|
||||
|
||||
/* Custom XP perk */
|
||||
public double getCustomXpPerkBoost() {
|
||||
return getDoubleValue(EXPERIENCE_FORMULA, CUSTOM_XP_PERK, BOOST);
|
||||
}
|
||||
|
||||
/* Diminished Returns */
|
||||
public float getDiminishedReturnsCap() {
|
||||
return (float) getDoubleValue(DIMISHED_RETURNS, GUARANTEED_MINIMUM_PERCENTAGE);
|
||||
}
|
||||
|
||||
public boolean getDiminishedReturnsEnabled() {
|
||||
return getBooleanValue(DIMINISHED_RETURNS, ENABLED);
|
||||
}
|
||||
|
||||
public int getDiminishedReturnsThreshold(PrimarySkillType skill) {
|
||||
return getIntValue(DIMINISHED_RETURNS, THRESHOLD, StringUtils.getCapitalized(skill.toString()));
|
||||
}
|
||||
|
||||
public int getDiminishedReturnsTimeInterval() {
|
||||
return getIntValue(DIMINISHED_RETURNS, TIME_INTERVAL);
|
||||
}
|
||||
|
||||
/* Conversion */
|
||||
public double getExpModifier() {
|
||||
return getDoubleValue(CONVERSION, EXP + MODIFIER);
|
||||
}
|
||||
|
||||
/*
|
||||
* XP SETTINGS
|
||||
*/
|
||||
|
||||
/* General Settings */
|
||||
public boolean getExperienceGainsPlayerVersusPlayerEnabled() {
|
||||
return getBooleanValue(EXPERIENCE, PVP, REWARDS);
|
||||
}
|
||||
|
||||
/* Combat XP Multipliers */
|
||||
public double getCombatXP(EntityType entity) {
|
||||
return getDoubleValue(EXPERIENCE, COMBAT, MULTIPLIER1, entity.getConfigName());
|
||||
}
|
||||
|
||||
public double getAnimalsXP(EntityType entity) {
|
||||
return getDoubleValue(EXPERIENCE, COMBAT, MULTIPLIER1, entity.getConfigName());
|
||||
}
|
||||
|
||||
public double getAnimalsXP() {
|
||||
return getDoubleValue(EXPERIENCE, COMBAT, MULTIPLIER1, ANIMALS);
|
||||
}
|
||||
|
||||
public boolean hasCombatXP(EntityType entity) {
|
||||
return hasNode(EXPERIENCE, COMBAT, MULTIPLIER1, entity.getConfigName());
|
||||
}
|
||||
|
||||
/* Materials */
|
||||
|
||||
/**
|
||||
* Gets the raw XP given for breaking this block, this does not include modifiers
|
||||
* @param skill The skill to give XP for
|
||||
* @param blockType the type of block
|
||||
* @return the raw amount of XP for this block before modifiers
|
||||
*/
|
||||
public int getXp(PrimarySkillType skill, BlockType blockType) {
|
||||
//TODO: This is going to need to be changed, this code here is only placeholder
|
||||
String[] path = new String[]{ EXPERIENCE, StringUtils.getCapitalized(skill.toString()), blockType.getConfigName() };
|
||||
return getIntValue(path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a block gives XP
|
||||
* This is used to determine whether or not mcMMO should track a block that is placed by a user, among other things.
|
||||
* Note: If the block has an entry in the config that will return true even if the XP is 0, this does not check the value of the XP
|
||||
* @param skill The skill to check for
|
||||
* @param blockType the type of block
|
||||
* @return true if the block does give XP
|
||||
*/
|
||||
public boolean doesBlockGiveSkillXP(PrimarySkillType skill, BlockType blockType) {
|
||||
//TODO: This used to support wildcard characters, seems a bit unnecessary to do so.
|
||||
//TODO: This is going to need to be changed, this code here is only placeholder
|
||||
String[] path = new String[] {EXPERIENCE, StringUtils.getCapitalized(skill.toString()), blockType.getConfigName()};
|
||||
return hasNode(path);
|
||||
}
|
||||
|
||||
/*
|
||||
* Experience Bar Stuff
|
||||
*/
|
||||
|
||||
public boolean isPartyExperienceBarsEnabled() {
|
||||
return getBooleanValue(EXPERIENCE + BARS, UPDATE, PARTY);
|
||||
}
|
||||
|
||||
public boolean isPassiveGainsExperienceBarsEnabled() {
|
||||
return getBooleanValue(EXPERIENCE + BARS, UPDATE, PASSIVE);
|
||||
}
|
||||
|
||||
public boolean getDoExperienceBarsAlwaysUpdateTitle() {
|
||||
return getBooleanValue(EXPERIENCE + BARS, THIS_MAY_CAUSE_LAG, ALWAYS + UPDATE + TITLES_WHEN_XPIS_GAINED, ENABLE) || getAddExtraDetails();
|
||||
}
|
||||
|
||||
public boolean getAddExtraDetails() {
|
||||
return getBooleanValue(EXPERIENCE + BARS, THIS_MAY_CAUSE_LAG, ALWAYS + UPDATE + TITLES_WHEN_XPIS_GAINED, EXTRA_DETAILS);
|
||||
}
|
||||
|
||||
public boolean isExperienceBarsEnabled() {
|
||||
return getBooleanValue(EXPERIENCE + BARS, ENABLE);
|
||||
}
|
||||
|
||||
public boolean isExperienceBarEnabled(PrimarySkillType primarySkillType) {
|
||||
return getBooleanValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), ENABLE);
|
||||
}
|
||||
|
||||
public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) {
|
||||
String colorValueFromConfig = getStringValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), COLOR);
|
||||
|
||||
for (BarColor barColor : BarColor.values()) {
|
||||
if (barColor.toString().equalsIgnoreCase(colorValueFromConfig))
|
||||
return barColor;
|
||||
}
|
||||
|
||||
//In case the value is invalid
|
||||
return BarColor.WHITE;
|
||||
}
|
||||
|
||||
public BarStyle getExperienceBarStyle(PrimarySkillType primarySkillType) {
|
||||
String colorValueFromConfig = getStringValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), BAR_STYLE);
|
||||
|
||||
for (BarStyle barStyle : BarStyle.values()) {
|
||||
if (barStyle.toString().equalsIgnoreCase(colorValueFromConfig))
|
||||
return barStyle;
|
||||
}
|
||||
|
||||
//In case the value is invalid
|
||||
return BarStyle.SOLID;
|
||||
}
|
||||
|
||||
/* Acrobatics */
|
||||
public int getDodgeXPModifier() {
|
||||
return getIntValue(EXPERIENCE, ACROBATICS, DODGE);
|
||||
}
|
||||
|
||||
public int getRollXPModifier() {
|
||||
return getIntValue(EXPERIENCE, ACROBATICS, ROLL);
|
||||
}
|
||||
|
||||
public int getFallXPModifier() {
|
||||
return getIntValue(EXPERIENCE, ACROBATICS, FALL);
|
||||
}
|
||||
|
||||
public double getFeatherFallXPModifier() {
|
||||
return getDoubleValue(EXPERIENCE, ACROBATICS, FEATHER_FALL_MULTIPLIER);
|
||||
}
|
||||
|
||||
/* Alchemy */
|
||||
public double getPotionXP(PotionStage stage) {
|
||||
return getDoubleValue(EXPERIENCE, ALCHEMY, POTION_STAGE + stage.toNumerical());
|
||||
}
|
||||
|
||||
/* Archery */
|
||||
public double getArcheryDistanceMultiplier() {
|
||||
return getDoubleValue(EXPERIENCE, ARCHERY, DISTANCE + MULTIPLIER1);
|
||||
}
|
||||
|
||||
public int getFishingShakeXP() {
|
||||
return getIntValue(EXPERIENCE, FISHING, SHAKE);
|
||||
}
|
||||
|
||||
/* Repair */
|
||||
public double getRepairXPBase() {
|
||||
return getDoubleValue(EXPERIENCE, REPAIR, BASE1);
|
||||
}
|
||||
|
||||
public double getRepairXP(MaterialType repairMaterialType) {
|
||||
return getDoubleValue(EXPERIENCE, REPAIR, StringUtils.getCapitalized(repairMaterialType.toString()));
|
||||
}
|
||||
|
||||
/* Taming */
|
||||
public int getTamingXP(EntityType type) {
|
||||
return getIntValue(EXPERIENCE, TAMING, ANIMAL_TAMING, type.getConfigName());
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.mods;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.ConfigCollections;
|
||||
import com.gmail.nossr50.core.mcmmo.item.ItemStack;
|
||||
import com.gmail.nossr50.core.skills.ConfigItemCategory;
|
||||
import com.gmail.nossr50.core.skills.MaterialType;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
|
||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.RepairableFactory;
|
||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class CustomArmorConfig extends ConfigCollections {
|
||||
public List<Material> customBoots = new ArrayList<Material>();
|
||||
public List<Material> customChestplates = new ArrayList<Material>();
|
||||
public List<Material> customHelmets = new ArrayList<Material>();
|
||||
public List<Material> customLeggings = new ArrayList<Material>();
|
||||
public List<Repairable> repairables = new ArrayList<Repairable>();
|
||||
private boolean needsUpdate = false;
|
||||
|
||||
protected CustomArmorConfig(String fileName) {
|
||||
super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName, false);
|
||||
loadKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadKeys() {
|
||||
loadArmor("Boots", customBoots);
|
||||
loadArmor("Chestplates", customChestplates);
|
||||
loadArmor("Helmets", customHelmets);
|
||||
loadArmor("Leggings", customLeggings);
|
||||
|
||||
if (needsUpdate) {
|
||||
needsUpdate = false;
|
||||
backup();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadArmor(String armorType, List<Material> materialList) {
|
||||
if (needsUpdate) {
|
||||
return;
|
||||
}
|
||||
|
||||
ConfigurationSection armorSection = config.getConfigurationSection(armorType);
|
||||
|
||||
if (armorSection == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Set<String> armorConfigSet = armorSection.getKeys(false);
|
||||
|
||||
for (String armorName : armorConfigSet) {
|
||||
if (config.contains(armorType + "." + armorName + "." + ".ID")) {
|
||||
needsUpdate = true;
|
||||
return;
|
||||
}
|
||||
|
||||
Material armorMaterial = Material.matchMaterial(armorName);
|
||||
|
||||
if (armorMaterial == null) {
|
||||
plugin.getLogger().warning("Invalid material name. This item will be skipped. - " + armorName);
|
||||
continue;
|
||||
}
|
||||
|
||||
boolean repairable = getBooleanValue(armorType + "." + armorName + ".Repairable");
|
||||
Material repairMaterial = Material.matchMaterial(getStringValue(armorType + "." + armorName + ".Repair_Material", ""));
|
||||
|
||||
if (repairable && (repairMaterial == null)) {
|
||||
plugin.getLogger().warning("Incomplete repair information. This item will be unrepairable. - " + armorName);
|
||||
repairable = false;
|
||||
}
|
||||
|
||||
if (repairable) {
|
||||
byte repairData = (byte) getIntValue(armorType + "." + armorName + ".Repair_Material_Data_Value", -1);
|
||||
int repairQuantity = SkillUtils.getRepairAndSalvageQuantities(new ItemStack(armorMaterial), repairMaterial, repairData);
|
||||
|
||||
if (repairQuantity == 0) {
|
||||
repairQuantity = getIntValue(armorType + "." + armorName + ".Repair_Material_Quantity", 2);
|
||||
}
|
||||
|
||||
String repairItemName = getStringValue(armorType + "." + armorName + ".Repair_Material_Pretty_Name");
|
||||
int repairMinimumLevel = getIntValue(armorType + "." + armorName + ".Repair_MinimumLevel", 0);
|
||||
double repairXpMultiplier = getDoubleValue(armorType + "." + armorName + ".Repair_XpMultiplier", 1);
|
||||
|
||||
short durability = armorMaterial.getMaxDurability();
|
||||
|
||||
if (durability == 0) {
|
||||
durability = (short) getIntValue(armorType + "." + armorName + ".Durability", 70);
|
||||
}
|
||||
|
||||
repairables.add(RepairableFactory.getRepairable(armorMaterial, repairMaterial, repairData, repairItemName, repairMinimumLevel, repairQuantity, durability, ConfigItemCategory.ARMOR, MaterialType.OTHER, repairXpMultiplier));
|
||||
}
|
||||
|
||||
materialList.add(armorMaterial);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.mods;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.ConfigCollections;
|
||||
import com.gmail.nossr50.core.datatypes.mods.CustomBlock;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
public class CustomBlockConfig extends ConfigCollections {
|
||||
public List<Material> customExcavationBlocks = new ArrayList<>();
|
||||
public List<Material> customHerbalismBlocks = new ArrayList<>();
|
||||
public List<Material> customMiningBlocks = new ArrayList<>();
|
||||
public List<Material> customOres = new ArrayList<>();
|
||||
public List<Material> customLogs = new ArrayList<>();
|
||||
public List<Material> customLeaves = new ArrayList<>();
|
||||
public List<Material> customAbilityBlocks = new ArrayList<>();
|
||||
public HashMap<Material, CustomBlock> customBlockMap = new HashMap<>();
|
||||
private boolean needsUpdate = false;
|
||||
|
||||
protected CustomBlockConfig(String fileName) {
|
||||
super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName, false);
|
||||
loadKeys();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadKeys() {
|
||||
loadBlocks("Excavation", customExcavationBlocks);
|
||||
loadBlocks("Herbalism", customHerbalismBlocks);
|
||||
loadBlocks("Mining", customMiningBlocks);
|
||||
loadBlocks("Woodcutting", null);
|
||||
loadBlocks("Ability_Blocks", customAbilityBlocks);
|
||||
|
||||
if (needsUpdate) {
|
||||
needsUpdate = false;
|
||||
backup();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadBlocks(String skillType, List<Material> blockList) {
|
||||
if (needsUpdate) {
|
||||
return;
|
||||
}
|
||||
|
||||
ConfigurationSection skillSection = config.getConfigurationSection(skillType);
|
||||
|
||||
if (skillSection == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Set<String> skillConfigSet = skillSection.getKeys(false);
|
||||
|
||||
for (String blockName : skillConfigSet) {
|
||||
if (config.contains(skillType + "." + blockName + ".Drop_Item")) {
|
||||
needsUpdate = true;
|
||||
return;
|
||||
}
|
||||
|
||||
String[] blockInfo = blockName.split("[|]");
|
||||
|
||||
Material blockMaterial = Material.matchMaterial(blockInfo[0]);
|
||||
|
||||
if (blockMaterial == null) {
|
||||
plugin.getLogger().warning("Invalid material name. This item will be skipped. - " + blockInfo[0]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (blockList != null) {
|
||||
blockList.add(blockMaterial);
|
||||
}
|
||||
|
||||
if (skillType.equals("Ability_Blocks")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int xp = getIntValue(skillType + "." + blockName + ".XP_Gain");
|
||||
int smeltingXp = 0;
|
||||
|
||||
if (skillType.equals("Mining") && getBooleanValue(skillType + "." + blockName + ".Is_Ore")) {
|
||||
customOres.add(blockMaterial);
|
||||
smeltingXp = getIntValue(skillType + "." + blockName + ".Smelting_XP_Gain", xp / 10);
|
||||
} else if (skillType.equals("Woodcutting")) {
|
||||
if (getBooleanValue(skillType + "." + blockName + ".Is_Log")) {
|
||||
customLogs.add(blockMaterial);
|
||||
} else {
|
||||
customLeaves.add(blockMaterial);
|
||||
xp = 0; // Leaves don't grant XP
|
||||
}
|
||||
}
|
||||
|
||||
customBlockMap.put(blockMaterial, new CustomBlock(xp, getBooleanValue(skillType + "." + blockName + ".Double_Drops_Enabled"), smeltingXp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,357 +0,0 @@
|
||||
package com.gmail.nossr50.core.config.treasure;
|
||||
|
||||
import com.gmail.nossr50.core.McmmoCore;
|
||||
import com.gmail.nossr50.core.config.Config;
|
||||
import com.gmail.nossr50.core.mcmmo.colors.ChatColor;
|
||||
import com.gmail.nossr50.core.mcmmo.item.ItemStack;
|
||||
import com.gmail.nossr50.core.skills.treasure.*;
|
||||
import com.gmail.nossr50.core.util.EnchantmentUtils;
|
||||
import com.gmail.nossr50.core.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class TreasureConfig extends Config {
|
||||
|
||||
private static TreasureConfig instance;
|
||||
|
||||
public HashMap<String, List<ExcavationTreasure>> excavationMap = new HashMap<String, List<ExcavationTreasure>>();
|
||||
|
||||
public HashMap<EntityType, List<ShakeTreasure>> shakeMap = new HashMap<EntityType, List<ShakeTreasure>>();
|
||||
public HashMap<String, List<HylianTreasure>> hylianMap = new HashMap<String, List<HylianTreasure>>();
|
||||
|
||||
public HashMap<Rarity, List<FishingTreasure>> fishingRewards = new HashMap<Rarity, List<FishingTreasure>>();
|
||||
public HashMap<Rarity, List<EnchantmentTreasure>> fishingEnchantments = new HashMap<Rarity, List<EnchantmentTreasure>>();
|
||||
|
||||
private TreasureConfig() {
|
||||
super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"treasures.yml");
|
||||
loadKeys();
|
||||
validate();
|
||||
}
|
||||
|
||||
public static TreasureConfig getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new TreasureConfig();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean validateKeys() {
|
||||
// Validate all the settings!
|
||||
List<String> reason = new ArrayList<String>();
|
||||
for (String tier : config.getConfigurationSection("Enchantment_Drop_Rates").getKeys(false)) {
|
||||
double totalEnchantDropRate = 0;
|
||||
double totalItemDropRate = 0;
|
||||
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
double enchantDropRate = getDoubleValue("Enchantment_Drop_Rates." + tier + "." + rarity.toString());
|
||||
double itemDropRate = getDoubleValue("Item_Drop_Rates." + tier + "." + rarity.toString());
|
||||
|
||||
if ((enchantDropRate < 0.0 || enchantDropRate > 100.0) && rarity != Rarity.RECORD) {
|
||||
reason.add("The enchant drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
}
|
||||
|
||||
if (itemDropRate < 0.0 || itemDropRate > 100.0) {
|
||||
reason.add("The item drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
}
|
||||
|
||||
totalEnchantDropRate += enchantDropRate;
|
||||
totalItemDropRate += itemDropRate;
|
||||
}
|
||||
|
||||
if (totalEnchantDropRate < 0 || totalEnchantDropRate > 100.0) {
|
||||
reason.add("The total enchant drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
}
|
||||
|
||||
if (totalItemDropRate < 0 || totalItemDropRate > 100.0) {
|
||||
reason.add("The total item drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
}
|
||||
}
|
||||
|
||||
return noErrorsInConfig(reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadKeys() {
|
||||
if (config.getConfigurationSection("Treasures") != null) {
|
||||
backup();
|
||||
return;
|
||||
}
|
||||
|
||||
loadTreasures("Fishing");
|
||||
loadTreasures("Excavation");
|
||||
loadTreasures("Hylian_Luck");
|
||||
loadEnchantments();
|
||||
|
||||
for (EntityType entity : EntityType.values()) {
|
||||
if (entity.isAlive()) {
|
||||
loadTreasures("Shake." + entity.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void loadTreasures(String type) {
|
||||
boolean isFishing = type.equals("Fishing");
|
||||
boolean isShake = type.contains("Shake");
|
||||
boolean isExcavation = type.equals("Excavation");
|
||||
boolean isHylian = type.equals("Hylian_Luck");
|
||||
|
||||
ConfigurationSection treasureSection = config.getConfigurationSection(type);
|
||||
|
||||
if (treasureSection == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Initialize fishing HashMap
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
if (!fishingRewards.containsKey(rarity)) {
|
||||
fishingRewards.put(rarity, (new ArrayList<FishingTreasure>()));
|
||||
}
|
||||
}
|
||||
|
||||
for (String treasureName : treasureSection.getKeys(false)) {
|
||||
// Validate all the things!
|
||||
List<String> reason = new ArrayList<String>();
|
||||
|
||||
String[] treasureInfo = treasureName.split("[|]");
|
||||
String materialName = treasureInfo[0];
|
||||
|
||||
/*
|
||||
* Material, Amount, and Data
|
||||
*/
|
||||
Material material;
|
||||
|
||||
if (materialName.contains("INVENTORY")) {
|
||||
// Use magic material BEDROCK to know that we're grabbing something from the inventory and not a normal treasure
|
||||
if (!shakeMap.containsKey(EntityType.PLAYER))
|
||||
shakeMap.put(EntityType.PLAYER, new ArrayList<ShakeTreasure>());
|
||||
shakeMap.get(EntityType.PLAYER).add(new ShakeTreasure(new ItemStack(Material.BEDROCK, 1, (byte) 0), 1, getInventoryStealDropChance(), getInventoryStealDropLevel()));
|
||||
continue;
|
||||
} else {
|
||||
material = Material.matchMaterial(materialName);
|
||||
}
|
||||
|
||||
int amount = getIntValue(type + "." + treasureName + ".Amount");
|
||||
short data = (treasureInfo.length == 2) ? Short.parseShort(treasureInfo[1]) : (short) getIntValue(type + "." + treasureName + ".Data");
|
||||
|
||||
if (material == null) {
|
||||
reason.add("Invalid material: " + materialName);
|
||||
}
|
||||
|
||||
if (amount <= 0) {
|
||||
reason.add("Amount of " + treasureName + " must be greater than 0! " + amount);
|
||||
}
|
||||
|
||||
if (material != null && material.isBlock() && (data > 127 || data < -128)) {
|
||||
reason.add("Data of " + treasureName + " is invalid! " + data);
|
||||
}
|
||||
|
||||
/*
|
||||
* XP, Drop Chance, and Drop Level
|
||||
*/
|
||||
|
||||
int xp = getIntValue(type + "." + treasureName + ".XP");
|
||||
double dropChance = getDoubleValue(type + "." + treasureName + ".Drop_Chance");
|
||||
int dropLevel = getIntValue(type + "." + treasureName + ".Drop_Level");
|
||||
|
||||
if (xp < 0) {
|
||||
reason.add(treasureName + " has an invalid XP value: " + xp);
|
||||
}
|
||||
|
||||
if (dropChance < 0.0D) {
|
||||
reason.add(treasureName + " has an invalid Drop_Chance: " + dropChance);
|
||||
}
|
||||
|
||||
if (dropLevel < 0) {
|
||||
reason.add(treasureName + " has an invalid Drop_Level: " + dropLevel);
|
||||
}
|
||||
|
||||
/*
|
||||
* Specific Types
|
||||
*/
|
||||
Rarity rarity = null;
|
||||
|
||||
if (isFishing) {
|
||||
rarity = Rarity.getRarity(getStringValue(type + "." + treasureName + ".Rarity"));
|
||||
|
||||
if (rarity == null) {
|
||||
reason.add("Invalid Rarity for item: " + treasureName);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Itemstack
|
||||
*/
|
||||
ItemStack item = null;
|
||||
|
||||
if (materialName.contains("POTION")) {
|
||||
Material mat = Material.matchMaterial(materialName);
|
||||
if (mat == null) {
|
||||
reason.add("Potion format for Treasures.yml has changed");
|
||||
} else {
|
||||
item = new ItemStack(mat, amount, data);
|
||||
PotionMeta itemMeta = (PotionMeta) item.getItemMeta();
|
||||
|
||||
PotionType potionType = null;
|
||||
try {
|
||||
potionType = PotionType.valueOf(getStringValue(type + "." + treasureName + ".PotionData.PotionType", "WATER"));
|
||||
} catch (IllegalArgumentException ex) {
|
||||
reason.add("Invalid Potion_Type: " + getStringValue(type + "." + treasureName + ".PotionData.PotionType", "WATER"));
|
||||
}
|
||||
boolean extended = getBooleanValue(type + "." + treasureName + ".PotionData.Extended", false);
|
||||
boolean upgraded = getBooleanValue(type + "." + treasureName + ".PotionData.Upgraded", false);
|
||||
itemMeta.setBasePotionData(new PotionData(potionType, extended, upgraded));
|
||||
|
||||
if (config.contains(type + "." + treasureName + ".Custom_Name")) {
|
||||
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getStringValue(type + "." + treasureName + ".Custom_Name")));
|
||||
}
|
||||
|
||||
if (config.contains(type + "." + treasureName + ".Lore")) {
|
||||
List<String> lore = new ArrayList<String>();
|
||||
for (String s : getStringValueList(type + "." + treasureName + ".Lore")) {
|
||||
lore.add(ChatColor.translateAlternateColorCodes('&', s));
|
||||
}
|
||||
itemMeta.setLore(lore);
|
||||
}
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
} else if (material != null) {
|
||||
item = new ItemStack(material, amount, data);
|
||||
|
||||
if (config.contains(type + "." + treasureName + ".Custom_Name")) {
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getStringValue(type + "." + treasureName + ".Custom_Name")));
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
|
||||
if (config.contains(type + "." + treasureName + ".Lore")) {
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
List<String> lore = new ArrayList<String>();
|
||||
for (String s : getStringValueList(type + "." + treasureName + ".Lore")) {
|
||||
lore.add(ChatColor.translateAlternateColorCodes('&', s));
|
||||
}
|
||||
itemMeta.setLore(lore);
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
}
|
||||
|
||||
if (noErrorsInConfig(reason)) {
|
||||
if (isFishing) {
|
||||
fishingRewards.get(rarity).add(new FishingTreasure(item, xp));
|
||||
} else if (isShake) {
|
||||
ShakeTreasure shakeTreasure = new ShakeTreasure(item, xp, dropChance, dropLevel);
|
||||
|
||||
EntityType entityType = EntityType.valueOf(type.substring(6));
|
||||
if (!shakeMap.containsKey(entityType))
|
||||
shakeMap.put(entityType, new ArrayList<ShakeTreasure>());
|
||||
shakeMap.get(entityType).add(shakeTreasure);
|
||||
} else if (isExcavation) {
|
||||
ExcavationTreasure excavationTreasure = new ExcavationTreasure(item, xp, dropChance, dropLevel);
|
||||
List<String> dropList = getStringValueList(type + "." + treasureName + ".Drops_From");
|
||||
|
||||
for (String blockType : dropList) {
|
||||
if (!excavationMap.containsKey(blockType))
|
||||
excavationMap.put(blockType, new ArrayList<ExcavationTreasure>());
|
||||
excavationMap.get(blockType).add(excavationTreasure);
|
||||
}
|
||||
} else if (isHylian) {
|
||||
HylianTreasure hylianTreasure = new HylianTreasure(item, xp, dropChance, dropLevel);
|
||||
List<String> dropList = getStringValueList(type + "." + treasureName + ".Drops_From");
|
||||
|
||||
for (String dropper : dropList) {
|
||||
if (dropper.equals("Bushes")) {
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.FERN), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.TALL_GRASS), hylianTreasure);
|
||||
for (Material species : Tag.SAPLINGS.getValues())
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(species), hylianTreasure);
|
||||
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.DEAD_BUSH), hylianTreasure);
|
||||
continue;
|
||||
}
|
||||
if (dropper.equals("Flowers")) {
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.POPPY), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.DANDELION), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.BLUE_ORCHID), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.ALLIUM), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.AZURE_BLUET), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.ORANGE_TULIP), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.PINK_TULIP), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.RED_TULIP), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.WHITE_TULIP), hylianTreasure);
|
||||
continue;
|
||||
}
|
||||
if (dropper.equals("Pots")) {
|
||||
for (Material species : Tag.FLOWER_POTS.getValues())
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(species), hylianTreasure);
|
||||
continue;
|
||||
}
|
||||
AddHylianTreasure(dropper, hylianTreasure);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddHylianTreasure(String dropper, HylianTreasure treasure) {
|
||||
if (!hylianMap.containsKey(dropper))
|
||||
hylianMap.put(dropper, new ArrayList<HylianTreasure>());
|
||||
hylianMap.get(dropper).add(treasure);
|
||||
}
|
||||
|
||||
private void loadEnchantments() {
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
if (rarity == Rarity.RECORD) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!fishingEnchantments.containsKey(rarity)) {
|
||||
fishingEnchantments.put(rarity, (new ArrayList<EnchantmentTreasure>()));
|
||||
}
|
||||
|
||||
ConfigurationSection enchantmentSection = config.getConfigurationSection("Enchantments_Rarity." + rarity.toString());
|
||||
|
||||
if (enchantmentSection == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (String enchantmentName : enchantmentSection.getKeys(false)) {
|
||||
int level = getIntValue("Enchantments_Rarity." + rarity.toString() + "." + enchantmentName);
|
||||
Enchantment enchantment = EnchantmentUtils.getByName(enchantmentName);
|
||||
|
||||
if (enchantment == null) {
|
||||
plugin.getLogger().warning("Skipping invalid enchantment in treasures.yml: " + enchantmentName);
|
||||
continue;
|
||||
}
|
||||
|
||||
fishingEnchantments.get(rarity).add(new EnchantmentTreasure(enchantment, level));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean getInventoryStealEnabled() {
|
||||
return config.contains("Shake.PLAYER.INVENTORY");
|
||||
}
|
||||
|
||||
public boolean getInventoryStealStacks() {
|
||||
return getBooleanValue("Shake.PLAYER.INVENTORY.Whole_Stacks");
|
||||
}
|
||||
|
||||
public double getInventoryStealDropChance() {
|
||||
return getDoubleValue("Shake.PLAYER.INVENTORY.Drop_Chance");
|
||||
}
|
||||
|
||||
public int getInventoryStealDropLevel() {
|
||||
return getIntValue("Shake.PLAYER.INVENTORY.Drop_Level");
|
||||
}
|
||||
|
||||
public double getItemDropRate(int tier, Rarity rarity) {
|
||||
return getDoubleValue("Item_Drop_Rates.Tier_" + tier + "." + rarity.toString());
|
||||
}
|
||||
|
||||
public double getEnchantmentDropRate(int tier, Rarity rarity) {
|
||||
return getDoubleValue("Enchantment_Drop_Rates.Tier_" + tier + "." + rarity.toString());
|
||||
}
|
||||
}
|
||||
@@ -1,124 +0,0 @@
|
||||
package com.gmail.nossr50.core.data.blockmeta.chunkmeta;
|
||||
|
||||
import com.gmail.nossr50.core.mcmmo.block.Block;
|
||||
import com.gmail.nossr50.core.mcmmo.block.BlockState;
|
||||
import com.gmail.nossr50.core.mcmmo.entity.Entity;
|
||||
import com.gmail.nossr50.core.mcmmo.world.World;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class NullChunkManager implements ChunkManager {
|
||||
|
||||
@Override
|
||||
public void closeAll() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkStore readChunkStore(World world, int x, int z) throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeChunkStore(World world, int x, int z, ChunkStore data) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeChunkStore(World world, int x, int z) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadChunklet(int cx, int cy, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unloadChunklet(int cx, int cy, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadChunk(int cx, int cz, World world, Entity[] entities) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unloadChunk(int cx, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveChunk(int cx, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChunkLoaded(int cx, int cz, World world) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void chunkLoaded(int cx, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void chunkUnloaded(int cx, int cz, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveWorld(World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unloadWorld(World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadWorld(World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveAll() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unloadAll() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTrue(int x, int y, int z, World world) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTrue(Block block) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTrue(BlockState blockState) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTrue(int x, int y, int z, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTrue(Block block) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTrue(BlockState blockState) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFalse(int x, int y, int z, World world) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFalse(Block block) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFalse(BlockState blockState) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
}
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
package com.gmail.nossr50.core.data.database;
|
||||
|
||||
import com.gmail.nossr50.core.config.MainConfig;
|
||||
import com.gmail.nossr50.core.datatypes.database.DatabaseType;
|
||||
import com.gmail.nossr50.core.datatypes.database.PlayerStat;
|
||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public interface DatabaseManager {
|
||||
// One month in milliseconds
|
||||
public final long PURGE_TIME = 2630000000L * MainConfig.getInstance().getOldUsersCutoff();
|
||||
// During convertUsers, how often to output a status
|
||||
public final int progressInterval = 200;
|
||||
|
||||
/**
|
||||
* Purge users with 0 power level from the database.
|
||||
*/
|
||||
public void purgePowerlessUsers();
|
||||
|
||||
/**
|
||||
* Purge users who haven't logged on in over a certain time frame from the database.
|
||||
*/
|
||||
public void purgeOldUsers();
|
||||
|
||||
/**
|
||||
* Remove a user from the database.
|
||||
*
|
||||
* @param playerName The name of the user to remove
|
||||
* @return true if the user was successfully removed, false otherwise
|
||||
*/
|
||||
public boolean removeUser(String playerName);
|
||||
|
||||
/**
|
||||
* Save a user to the database.
|
||||
*
|
||||
* @param profile The profile of the player to save
|
||||
* @return true if successful, false on failure
|
||||
*/
|
||||
public boolean saveUser(PlayerProfile profile);
|
||||
|
||||
/**
|
||||
* Retrieve leaderboard info.
|
||||
*
|
||||
* @param skill The skill to retrieve info on
|
||||
* @param pageNumber Which page in the leaderboards to retrieve
|
||||
* @param statsPerPage The number of stats per page
|
||||
* @return the requested leaderboard information
|
||||
*/
|
||||
public List<PlayerStat> readLeaderboard(PrimarySkillType skill, int pageNumber, int statsPerPage);
|
||||
|
||||
/**
|
||||
* Retrieve rank info into a HashMap from PrimarySkillType to the rank.
|
||||
* <p>
|
||||
* The special value <code>null</code> is used to represent the Power
|
||||
* Level rank (the combination of all skill levels).
|
||||
*
|
||||
* @param playerName The name of the user to retrieve the rankings for
|
||||
* @return the requested rank information
|
||||
*/
|
||||
public Map<PrimarySkillType, Integer> readRank(String playerName);
|
||||
|
||||
/**
|
||||
* Add a new user to the database.
|
||||
*
|
||||
* @param playerName The name of the player to be added to the database
|
||||
* @param uuid The uuid of the player to be added to the database
|
||||
*/
|
||||
public void newUser(String playerName, UUID uuid);
|
||||
|
||||
/**
|
||||
* Load a player from the database.
|
||||
*
|
||||
* @param playerName The name of the player to load from the database
|
||||
* @param createNew Whether to create a new record if the player is not
|
||||
* found
|
||||
* @return The player's data, or an unloaded PlayerProfile if not found
|
||||
* and createNew is false
|
||||
* @deprecated replaced by {@link #loadPlayerProfile(String playerName, UUID uuid, boolean createNew)}
|
||||
*/
|
||||
@Deprecated
|
||||
public PlayerProfile loadPlayerProfile(String playerName, boolean createNew);
|
||||
|
||||
/**
|
||||
* Load a player from the database.
|
||||
*
|
||||
* @param uuid The uuid of the player to load from the database
|
||||
* @return The player's data, or an unloaded PlayerProfile if not found
|
||||
*/
|
||||
public PlayerProfile loadPlayerProfile(UUID uuid);
|
||||
|
||||
/**
|
||||
* Load a player from the database. Attempt to use uuid, fall back on playername
|
||||
*
|
||||
* @param playerName The name of the player to load from the database
|
||||
* @param uuid The uuid of the player to load from the database
|
||||
* @param createNew Whether to create a new record if the player is not
|
||||
* found
|
||||
* @return The player's data, or an unloaded PlayerProfile if not found
|
||||
* and createNew is false
|
||||
*/
|
||||
public PlayerProfile loadPlayerProfile(String playerName, UUID uuid, boolean createNew);
|
||||
|
||||
/**
|
||||
* Get all users currently stored in the database.
|
||||
*
|
||||
* @return list of playernames
|
||||
*/
|
||||
public List<String> getStoredUsers();
|
||||
|
||||
/**
|
||||
* Convert all users from this database to the provided database using
|
||||
* {@link #saveUser(PlayerProfile)}.
|
||||
*
|
||||
* @param destination The DatabaseManager to save to
|
||||
*/
|
||||
public void convertUsers(DatabaseManager destination);
|
||||
|
||||
public boolean saveUserUUID(String userName, UUID uuid);
|
||||
|
||||
public boolean saveUserUUIDs(Map<String, UUID> fetchedUUIDs);
|
||||
|
||||
/**
|
||||
* Retrieve the type of database in use. Custom databases should return CUSTOM.
|
||||
*
|
||||
* @return The type of database
|
||||
*/
|
||||
public DatabaseType getDatabaseType();
|
||||
|
||||
/**
|
||||
* Called when the plugin disables
|
||||
*/
|
||||
public void onDisable();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,53 +0,0 @@
|
||||
package com.gmail.nossr50.core.datatypes;
|
||||
|
||||
import com.gmail.nossr50.core.mcmmo.world.Location;
|
||||
|
||||
public class LimitedSizeList {
|
||||
private final int size;
|
||||
public Location[] limitedSizeOrderedList;
|
||||
|
||||
|
||||
public LimitedSizeList(int size) {
|
||||
this.size = size;
|
||||
limitedSizeOrderedList = new Location[size];
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds objects to our limited size ordered list
|
||||
* New objects are added to the front
|
||||
*
|
||||
* @param newItem
|
||||
*/
|
||||
public void add(Location newItem) {
|
||||
Location[] newList = new Location[size];
|
||||
|
||||
for (int i = 0; i < size - 1; i++) {
|
||||
if (i != 0)
|
||||
newList[i] = limitedSizeOrderedList[i - 1];
|
||||
else
|
||||
newList[i] = newItem;
|
||||
}
|
||||
|
||||
limitedSizeOrderedList = newList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the object is anywhere in our list
|
||||
*
|
||||
* @param targetLoc the object to check for
|
||||
* @return true if the object is in our list
|
||||
*/
|
||||
public boolean contains(Location targetLoc) {
|
||||
for (Location iter : limitedSizeOrderedList) {
|
||||
if (iter == null)
|
||||
continue;
|
||||
|
||||
if (iter.getX() == targetLoc.getX()
|
||||
&& iter.getY() == targetLoc.getY()
|
||||
&& iter.getZ() == targetLoc.getZ())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.gmail.nossr50.core.datatypes.database;
|
||||
|
||||
public enum UpgradeType {
|
||||
ADD_FISHING,
|
||||
ADD_BLAST_MINING_COOLDOWN,
|
||||
ADD_SQL_INDEXES,
|
||||
ADD_MOB_HEALTHBARS,
|
||||
DROP_SQL_PARTY_NAMES,
|
||||
DROP_SPOUT,
|
||||
ADD_ALCHEMY,
|
||||
ADD_UUIDS,
|
||||
ADD_UUIDS_PARTY,
|
||||
ADD_SCOREBOARD_TIPS,
|
||||
DROP_NAME_UNIQUENESS,
|
||||
ADD_SKILL_TOTAL,
|
||||
ADD_UNIQUE_PLAYER_DATA,
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user