mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 06:06:45 +01:00
Merge branch 'master' of https://github.com/mcMMO-Dev/mcMMO into commandsonlevelup
This commit is contained in:
commit
c5ec99ab51
@ -1,3 +1,30 @@
|
||||
Version 2.1.227
|
||||
Fixed bug where some text would not be displayed to players (Adventure dependency update)
|
||||
Repair sound effect from mcMMO can now be adjusted in Minecraft sound options (Thanks MithicSpirit)
|
||||
Korean locale updated (Thanks Pindang2)
|
||||
Simplified Chinese locale updated (Thanks YuanYuanOwO)
|
||||
|
||||
NOTES:
|
||||
For those curious, mcMMO uses Adventure to do a lot of the message sending to players.
|
||||
It typically needs updating when new versions of MC come out, sorry for the delay on my part.
|
||||
|
||||
Version 2.1.226
|
||||
Added Short_Grass to experience.yml for Herbalism
|
||||
Updated Hylian Treasures "Bushes" alias to use short_grass when playing on new Minecraft versions
|
||||
Fixed dirt_path and grass_block not being correctly whitelisted for herbalism abilities
|
||||
Version 2.1.225
|
||||
Fixed text from mcMMO not being sent or displayed to the player
|
||||
Updated Adventure dependencies
|
||||
Added new API McMMOPlayerNotificationEvent.getPlayer
|
||||
|
||||
Version 2.1.224
|
||||
Updated to a new build of ACF to fix NoSuchFieldException locale
|
||||
Improved Folia Support (Thanks HSGamer)
|
||||
Fishing Shake has 8 ranks again
|
||||
|
||||
NOTES:
|
||||
At some point Shake got reduced to 1 rank, this didn't really make sense as it was meant to be a skill that ranked up and got better over time.
|
||||
It now has 8 ranks again, you may need to update advanced.yml and skillranks.yml to get the new ranks.
|
||||
Version 2.1.223
|
||||
Folia Support added (Thanks to HSGamer, TechnicallyCoded, Rockyers, and Yomamaeatstoes)
|
||||
|
||||
|
50
README.md
50
README.md
@ -11,7 +11,12 @@ Spigot Resource: https://spigot.mcmmo.org
|
||||
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
||||
|
||||
### Builds
|
||||
Currently, you can obtain our builds via the Spigot resource page: http://spigot.mcmmo.org
|
||||
Currently, you can obtain our builds via the Spigot or Polymart:
|
||||
|
||||
|
||||
http://spigot.mcmmo.org
|
||||
|
||||
https://polymart.org/resource/mcmmo.727
|
||||
|
||||
### Brief Description
|
||||
The goal of mcMMO is to take core Minecraft game mechanics and expand them into 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.
|
||||
@ -21,26 +26,14 @@ In December 2018, the original author and creator of mcMMO (nossr50) returned an
|
||||
#### Project Lead & Founder
|
||||
[![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
|
||||
|
||||
#### mcMMO Devs
|
||||
#### Current mcMMO Devs
|
||||
[![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
|
||||
[![kashike](https://secure.gravatar.com/avatar/b5e86d6d443b957fd5cdee55501f3799.png)](https://github.com/kashike)
|
||||
[![electronicboy](https://secure.gravatar.com/avatar/44759c38d311ce09596de6a2d5b88036.png)](https://github.com/electronicboy)
|
||||
|
||||
#### Classic Maintainer
|
||||
[![t00thpick1](http://www.gravatar.com/avatar/ee23c7794a0c40120c3474287c7bce06.png)](https://github.com/t00thpick1)
|
||||
|
||||
#### Folia Inquisitors
|
||||
[<img src="https://github.com/HSGamer.png" width=80 alt="HSGamer">](https://github.com/HSGamer)
|
||||
[<img src="https://github.com/TechnicallyCoded.png" width=80 alt="TechnicallyCoded">](https://github.com/TechnicallyCoded)
|
||||
[<img src="https://github.com/Yomamaeatstoes.png" width=80 alt="Yomamaeatstoes">](https://github.com/Yomamaeatstoes)
|
||||
[<img src="https://github.com/Rockyers.png" width=80 alt="Rockyers">](https://github.com/Rockyers)
|
||||
|
||||
## Former Team Members
|
||||
|
||||
### Former Lead & Awesome guy
|
||||
[![gmcferrin](http://www.gravatar.com/avatar/b64c52daf25d206b27650788b5813b7b.png)](https://github.com/gmcferrin)
|
||||
|
||||
### Former team members
|
||||
[![gmcferrin](http://www.gravatar.com/avatar/b64c52daf25d206b27650788b5813b7b.png)](https://github.com/gmcferrin)
|
||||
[![kashike](https://secure.gravatar.com/avatar/b5e86d6d443b957fd5cdee55501f3799.png)](https://github.com/kashike)
|
||||
[![electronicboy](https://secure.gravatar.com/avatar/44759c38d311ce09596de6a2d5b88036.png)](https://github.com/electronicboy)
|
||||
[![t00thpick1](http://www.gravatar.com/avatar/ee23c7794a0c40120c3474287c7bce06.png)](https://github.com/t00thpick1)
|
||||
[![bm01](http://www.gravatar.com/avatar/ec8146f5358177f12e9a252271bbc391.png)](https://github.com/bm01)
|
||||
[![Glitchfinder](http://www.gravatar.com/avatar/5aa4cce22f72ae9c002ecec30f061d00.png)](https://github.com/Glitchfinder)
|
||||
[![NuclearW](http://www.gravatar.com/avatar/90926bdcf1c8a75918df5ea5fa801ce6.png)](https://github.com/NuclearW)
|
||||
@ -49,20 +42,23 @@ In December 2018, the original author and creator of mcMMO (nossr50) returned an
|
||||
[![riking](https://1.gravatar.com/avatar/aca9f37e569ac3a63929920035a91ba4.png)](https://github.com/riking)
|
||||
[![TheYeti](https://i.imgur.com/tzFrxdo.png)](https://github.com/TheYeti)
|
||||
|
||||
#### Folia Contributors
|
||||
[<img src="https://github.com/HSGamer.png" width=80 alt="HSGamer">](https://github.com/HSGamer)
|
||||
[<img src="https://github.com/TechnicallyCoded.png" width=80 alt="TechnicallyCoded">](https://github.com/TechnicallyCoded)
|
||||
[<img src="https://github.com/Yomamaeatstoes.png" width=80 alt="Yomamaeatstoes">](https://github.com/Yomamaeatstoes)
|
||||
[<img src="https://github.com/Rockyers.png" width=80 alt="Rockyers">](https://github.com/Rockyers)
|
||||
|
||||
## Compiling
|
||||
|
||||
mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
||||
mcMMO uses Maven to manage dependencies, packaging, and shading of necessary classes; Maven is required to compile mcMMO. It is recommended to always use the latest version of maven.
|
||||
|
||||
The typical command used to build mcMMO is: `mvn clean package install`
|
||||
|
||||
Required Libraries:
|
||||
* Spigot
|
||||
* JUnit
|
||||
* WorldGuard 7
|
||||
* bStats Bukkit
|
||||
The typical command used to build mcMMO is: `mvn clean install`
|
||||
|
||||
https://spigot.mcmmo.org for more up to date information.
|
||||
|
||||
Resource Page
|
||||
Downloads:
|
||||
|
||||
|
||||
https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
|
||||
|
||||
https://polymart.org/resource/mcmmo.727
|
||||
|
95
pom.xml
95
pom.xml
@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>2.1.223</version>
|
||||
<version>2.1.228-SNAPSHOT</version>
|
||||
<name>mcMMO</name>
|
||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||
<scm>
|
||||
@ -150,21 +150,21 @@
|
||||
<include>net.kyori:examination-api</include>
|
||||
<include>net.kyori:examination-string</include>
|
||||
<include>net.kyori:adventure-text-serializer-legacy</include>
|
||||
<include>net.kyori:adventure-text-serializer-gson</include>
|
||||
<include>net.kyori:adventure-text-serializer-json</include>
|
||||
<include>net.kyori:adventure-text-serializer-bungeecord</include>
|
||||
<include>net.kyori:adventure-text-serializer-craftbukkit</include>
|
||||
<include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
|
||||
<include>net.kyori:adventure-text-serializer-json-legacy-impl</include>
|
||||
<include>net.kyori:option</include>
|
||||
<include>co.aikar:acf-bukkit</include>
|
||||
<include>com.tcoded:FoliaLib</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>net.kyori.examination</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.kyori.examination</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>net.kyori.adventure</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.kyori.adventure</shadedPattern>
|
||||
<pattern>net.kyori</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.kyori</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>co.aikar.commands</pattern>
|
||||
@ -269,41 +269,70 @@
|
||||
<artifactId>acf-bukkit</artifactId> <!-- Don't forget to replace this -->
|
||||
<version>0.5.1-SNAPSHOT</version> <!-- Replace this as well -->
|
||||
</dependency>
|
||||
<!-- adventure-api, adventure-text-serializer-gson, adventure-platform-bukkit-->
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-bungeecord</artifactId>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-gson</artifactId>
|
||||
<version>4.13.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-api</artifactId>
|
||||
<version>4.13.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-nbt</artifactId>
|
||||
<version>4.13.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-key</artifactId>
|
||||
<version>4.13.0</version>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
|
||||
<version>4.13.0</version>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-bukkit</artifactId>
|
||||
<version>4.3.0</version>
|
||||
<artifactId>adventure-text-serializer-json</artifactId>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-api</artifactId>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-nbt</artifactId>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-key</artifactId>
|
||||
<version>4.15.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-api</artifactId>
|
||||
<version>4.3.0</version>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-bukkit</artifactId>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-facet</artifactId>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-viaversion</artifactId>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>option</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.scm</groupId>
|
||||
@ -319,7 +348,13 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.20.1-R0.1-SNAPSHOT</version>
|
||||
<version>1.20.4-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sk89q.worldedit</groupId>
|
||||
<artifactId>worldedit-bukkit</artifactId>
|
||||
<version>7.2.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -384,7 +419,7 @@
|
||||
<dependency>
|
||||
<groupId>com.tcoded</groupId>
|
||||
<artifactId>FoliaLib</artifactId>
|
||||
<version>0.3.0</version>
|
||||
<version>0.3.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
@ -204,7 +204,7 @@ public class McImportCommand implements CommandExecutor {
|
||||
else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
|
||||
skillName = "Woodcutting";
|
||||
}
|
||||
else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
|
||||
else if (materialName.contains("GRASS") || materialName.contains("SHORT_GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
|
||||
skillName = "Herbalism";
|
||||
}
|
||||
else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
|
||||
|
@ -4,6 +4,7 @@ import com.gmail.nossr50.config.BukkitConfig;
|
||||
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.BlockUtils;
|
||||
import com.gmail.nossr50.util.LogUtils;
|
||||
import com.gmail.nossr50.util.text.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
@ -228,7 +229,7 @@ public class TreasureConfig extends BukkitConfig {
|
||||
for (String dropper : dropList) {
|
||||
if (dropper.equals("Bushes")) {
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.FERN), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(Material.TALL_GRASS), hylianTreasure);
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(BlockUtils.getShortGrass()), hylianTreasure);
|
||||
for (Material species : Tag.SAPLINGS.getValues())
|
||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialString(species), hylianTreasure);
|
||||
|
||||
|
@ -41,7 +41,7 @@ public enum SubSkillType {
|
||||
FISHING_MAGIC_HUNTER(1),
|
||||
FISHING_MASTER_ANGLER(8),
|
||||
FISHING_TREASURE_HUNTER(8),
|
||||
FISHING_SHAKE(1),
|
||||
FISHING_SHAKE(8),
|
||||
|
||||
/* Herbalism */
|
||||
HERBALISM_DOUBLE_DROPS(1),
|
||||
|
@ -27,8 +27,13 @@ public class McMMOPlayerNotificationEvent extends Event implements Cancellable {
|
||||
protected Component notificationTextComponent;
|
||||
protected final NotificationType notificationType;
|
||||
|
||||
public McMMOPlayerNotificationEvent(Player who, NotificationType notificationType, Component notificationTextComponent, McMMOMessageType chatMessageType, boolean isMessageAlsoBeingSentToChat) {
|
||||
protected final Player player;
|
||||
|
||||
public McMMOPlayerNotificationEvent(Player player, NotificationType notificationType,
|
||||
Component notificationTextComponent, McMMOMessageType chatMessageType,
|
||||
boolean isMessageAlsoBeingSentToChat) {
|
||||
super(false);
|
||||
this.player = player;
|
||||
this.notificationType = notificationType;
|
||||
this.notificationTextComponent = notificationTextComponent;
|
||||
this.chatMessageType = chatMessageType;
|
||||
@ -48,6 +53,10 @@ public class McMMOPlayerNotificationEvent extends Event implements Cancellable {
|
||||
isMessageAlsoBeingSentToChat = messageAlsoBeingSentToChat;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public Component getNotificationTextComponent() {
|
||||
return notificationTextComponent;
|
||||
}
|
||||
|
@ -55,6 +55,7 @@ import com.gmail.nossr50.util.skills.SmeltingTracker;
|
||||
import com.gmail.nossr50.util.upgrade.UpgradeManager;
|
||||
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
||||
import com.tcoded.folialib.FoliaLib;
|
||||
import com.tcoded.folialib.util.InvalidTickDelayNotifier;
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
|
||||
import net.shatteredlands.shatt.backup.ZipLibrary;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
@ -177,6 +178,7 @@ public class mcMMO extends JavaPlugin {
|
||||
|
||||
//Folia lib plugin instance
|
||||
foliaLib = new FoliaLib(this);
|
||||
InvalidTickDelayNotifier.disableNotifications = true;
|
||||
|
||||
setupFilePaths();
|
||||
generalConfig = new GeneralConfig(getDataFolder()); //Load before skillTools
|
||||
|
@ -363,7 +363,7 @@ public class HerbalismManager extends SkillManager {
|
||||
*
|
||||
*/
|
||||
|
||||
//If its a Crop we need to reward XP when its fully grown
|
||||
//If it's a Crop we need to reward XP when its fully grown
|
||||
if(isAgeableAndFullyMature(plantData) && !isBizarreAgeable(plantData)) {
|
||||
//Add metadata to mark this block for double or triple drops
|
||||
markForBonusDrops(brokenPlantState);
|
||||
@ -373,21 +373,17 @@ public class HerbalismManager extends SkillManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if BlockData is ageable and we can trust that age for Herbalism rewards/XP reasons
|
||||
* Checks if BlockData is bizarre ageable, and we cannot trust that age for Herbalism rewards/XP reasons
|
||||
* @param blockData target BlockData
|
||||
* @return returns true if the ageable is trustworthy for Herbalism XP / Rewards
|
||||
* @return returns true if the BlockData is a bizarre ageable for Herbalism XP / Rewards
|
||||
*/
|
||||
public boolean isBizarreAgeable(BlockData blockData) {
|
||||
if(blockData instanceof Ageable) {
|
||||
//Catcus and Sugar Canes cannot be trusted
|
||||
switch(blockData.getMaterial()) {
|
||||
case CACTUS:
|
||||
case KELP:
|
||||
case SUGAR_CANE:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return switch (blockData.getMaterial()) {
|
||||
case CACTUS, KELP, SUGAR_CANE, BAMBOO -> true;
|
||||
default -> false;
|
||||
};
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -23,6 +23,7 @@ import com.gmail.nossr50.util.sounds.SoundManager;
|
||||
import com.gmail.nossr50.util.sounds.SoundType;
|
||||
import com.gmail.nossr50.util.text.StringUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.SoundCategory;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -57,7 +58,7 @@ public class RepairManager extends SkillManager {
|
||||
}
|
||||
|
||||
if (mcMMO.p.getGeneralConfig().getRepairAnvilPlaceSoundsEnabled()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
SoundManager.sendCategorizedSound(player, player.getLocation(), SoundType.ANVIL, SoundCategory.BLOCKS);
|
||||
}
|
||||
|
||||
togglePlacedAnvil();
|
||||
@ -184,8 +185,8 @@ public class RepairManager extends SkillManager {
|
||||
|
||||
// BWONG BWONG BWONG
|
||||
if (mcMMO.p.getGeneralConfig().getRepairAnvilUseSoundsEnabled()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ITEM_BREAK);
|
||||
SoundManager.sendCategorizedSound(player, player.getLocation(), SoundType.ANVIL, SoundCategory.BLOCKS);
|
||||
SoundManager.sendCategorizedSound(player, player.getLocation(), SoundType.ITEM_BREAK, SoundCategory.PLAYERS);
|
||||
}
|
||||
|
||||
// Repair the item!
|
||||
|
@ -95,7 +95,7 @@ public class SwordsManager extends SkillManager {
|
||||
|
||||
RuptureTaskMeta ruptureTaskMeta = new RuptureTaskMeta(mcMMO.p, ruptureTask);
|
||||
|
||||
mcMMO.p.getFoliaLib().getImpl().runAtEntityTimer(mmoPlayer.getPlayer(), ruptureTask, 0, 1);
|
||||
mcMMO.p.getFoliaLib().getImpl().runAtEntityTimer(mmoPlayer.getPlayer(), ruptureTask, 1, 1);
|
||||
target.setMetadata(MetadataConstants.METADATA_KEY_RUPTURE, ruptureTaskMeta);
|
||||
|
||||
// if (mmoPlayer.useChatNotifications()) {
|
||||
|
@ -245,7 +245,7 @@ public class TamingManager extends SkillManager {
|
||||
|
||||
if(jumpAttribute != null) {
|
||||
double jumpStrength = jumpAttribute.getValue();
|
||||
// Taken from https://minecraft.gamepedia.com/Horse#Jump_strength
|
||||
// Taken from https://minecraft.wiki/w/Horse#Jump_strength
|
||||
jumpStrength = -0.1817584952 * Math.pow(jumpStrength, 3) + 3.689713992 * Math.pow(jumpStrength, 2) + 2.128599134 * jumpStrength - 0.343930367;
|
||||
message = message.concat("\n" + LocaleLoader.getString("Combat.BeastLoreHorseSpeed", horseLikeCreature.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getValue() * 43))
|
||||
.concat("\n" + LocaleLoader.getString("Combat.BeastLoreHorseJumpStrength", jumpStrength));
|
||||
|
@ -22,6 +22,9 @@ import java.util.HashSet;
|
||||
|
||||
public final class BlockUtils {
|
||||
|
||||
public static final String SHORT_GRASS = "SHORT_GRASS";
|
||||
public static final String GRASS = "GRASS";
|
||||
|
||||
private BlockUtils() {
|
||||
}
|
||||
|
||||
@ -38,6 +41,21 @@ public final class BlockUtils {
|
||||
blockState.setMetadata(MetadataConstants.METADATA_KEY_BONUS_DROPS, new BonusDropMeta(1, mcMMO.p));
|
||||
}
|
||||
|
||||
/**
|
||||
* Util method for compatibility across Minecraft versions, grabs the {@link Material} enum for short_grass
|
||||
*
|
||||
* @return the {@link Material} enum for short_grass
|
||||
*/
|
||||
public static Material getShortGrass() {
|
||||
if (Material.getMaterial(SHORT_GRASS) != null) {
|
||||
return Material.getMaterial(SHORT_GRASS);
|
||||
} else if (Material.getMaterial(GRASS) != null) {
|
||||
return Material.getMaterial(GRASS);
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Unable to find short grass material");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set up the state for a block to be seen as unnatural and cleanup any unwanted metadata from the block
|
||||
* @param block target block
|
||||
|
@ -996,8 +996,8 @@ public class MaterialMapStore {
|
||||
private void fillShroomyWhiteList()
|
||||
{
|
||||
canMakeShroomyWhiteList.add("dirt");
|
||||
canMakeShroomyWhiteList.add("grass");
|
||||
canMakeShroomyWhiteList.add("grass_path");
|
||||
canMakeShroomyWhiteList.add("grass_block");
|
||||
canMakeShroomyWhiteList.add("dirt_path");
|
||||
}
|
||||
|
||||
private void fillBlockCrackerWhiteList()
|
||||
@ -1010,8 +1010,8 @@ public class MaterialMapStore {
|
||||
private void fillHerbalismAbilityBlackList()
|
||||
{
|
||||
herbalismAbilityBlackList.add("dirt");
|
||||
herbalismAbilityBlackList.add("grass");
|
||||
herbalismAbilityBlackList.add("grass_path");
|
||||
herbalismAbilityBlackList.add("grass_block");
|
||||
herbalismAbilityBlackList.add("dirt_path");
|
||||
herbalismAbilityBlackList.add("farmland");
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,6 @@ import com.gmail.nossr50.util.sounds.SoundType;
|
||||
import com.gmail.nossr50.util.text.McMMOMessageType;
|
||||
import com.gmail.nossr50.util.text.TextComponentFactory;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.kyori.adventure.audience.MessageType;
|
||||
import net.kyori.adventure.identity.Identity;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.HoverEvent;
|
||||
@ -49,7 +48,9 @@ public class NotificationManager {
|
||||
if(UserManager.getPlayer(player) == null || !UserManager.getPlayer(player).useChatNotifications())
|
||||
return;
|
||||
|
||||
McMMOMessageType destination = mcMMO.p.getAdvancedConfig().doesNotificationUseActionBar(notificationType) ? McMMOMessageType.ACTION_BAR : McMMOMessageType.SYSTEM;
|
||||
McMMOMessageType destination
|
||||
= mcMMO.p.getAdvancedConfig().doesNotificationUseActionBar(notificationType)
|
||||
? McMMOMessageType.ACTION_BAR : McMMOMessageType.SYSTEM;
|
||||
|
||||
Component message = TextComponentFactory.getNotificationTextComponentFromLocale(key);
|
||||
McMMOPlayerNotificationEvent customEvent = checkNotificationEvent(player, notificationType, destination, message);
|
||||
@ -75,7 +76,8 @@ public class NotificationManager {
|
||||
* @param key Locale Key for the string to use with this event
|
||||
* @param values values to be injected into the locale string
|
||||
*/
|
||||
public static void sendNearbyPlayersInformation(Player targetPlayer, NotificationType notificationType, String key, String... values)
|
||||
public static void sendNearbyPlayersInformation(Player targetPlayer, NotificationType notificationType, String key,
|
||||
String... values)
|
||||
{
|
||||
sendPlayerInformation(targetPlayer, notificationType, key, values);
|
||||
}
|
||||
@ -99,7 +101,8 @@ public class NotificationManager {
|
||||
player.sendMessage(prefixFormattedMessage);
|
||||
}
|
||||
|
||||
public static void sendPlayerInformation(Player player, NotificationType notificationType, String key, String... values)
|
||||
public static void sendPlayerInformation(Player player, NotificationType notificationType, String key,
|
||||
String... values)
|
||||
{
|
||||
if(UserManager.getPlayer(player) == null || !UserManager.getPlayer(player).useChatNotifications())
|
||||
return;
|
||||
@ -119,24 +122,28 @@ public class NotificationManager {
|
||||
final Audience audience = mcMMO.getAudiences().player(player);
|
||||
|
||||
//If the message is being sent to the action bar we need to check if the copy if a copy is sent to the chat system
|
||||
Component notificationTextComponent = customEvent.getNotificationTextComponent();
|
||||
if(customEvent.getChatMessageType() == McMMOMessageType.ACTION_BAR)
|
||||
{
|
||||
audience.sendActionBar(customEvent.getNotificationTextComponent());
|
||||
audience.sendActionBar(notificationTextComponent);
|
||||
|
||||
if(customEvent.isMessageAlsoBeingSentToChat())
|
||||
{
|
||||
//Send copy to chat system
|
||||
audience.sendMessage(Identity.nil(), customEvent.getNotificationTextComponent(), MessageType.SYSTEM);
|
||||
audience.sendMessage(notificationTextComponent);
|
||||
}
|
||||
} else {
|
||||
audience.sendMessage(Identity.nil(), customEvent.getNotificationTextComponent(), MessageType.SYSTEM);
|
||||
audience.sendMessage(notificationTextComponent);
|
||||
}
|
||||
}
|
||||
|
||||
private static McMMOPlayerNotificationEvent checkNotificationEvent(Player player, NotificationType notificationType, McMMOMessageType destination, Component message) {
|
||||
private static McMMOPlayerNotificationEvent checkNotificationEvent(Player player, NotificationType notificationType,
|
||||
McMMOMessageType destination,
|
||||
Component message) {
|
||||
//Init event
|
||||
McMMOPlayerNotificationEvent customEvent = new McMMOPlayerNotificationEvent(player,
|
||||
notificationType, message, destination, mcMMO.p.getAdvancedConfig().doesNotificationSendCopyToChat(notificationType));
|
||||
notificationType, message, destination,
|
||||
mcMMO.p.getAdvancedConfig().doesNotificationSendCopyToChat(notificationType));
|
||||
|
||||
//Call event
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(customEvent);
|
||||
@ -149,15 +156,23 @@ public class NotificationManager {
|
||||
* @param skillName skill that leveled up
|
||||
* @param newLevel new level of that skill
|
||||
*/
|
||||
public static void sendPlayerLevelUpNotification(McMMOPlayer mcMMOPlayer, PrimarySkillType skillName, int levelsGained, int newLevel)
|
||||
public static void sendPlayerLevelUpNotification(McMMOPlayer mcMMOPlayer, PrimarySkillType skillName,
|
||||
int levelsGained, int newLevel)
|
||||
{
|
||||
if(!mcMMOPlayer.useChatNotifications())
|
||||
return;
|
||||
|
||||
McMMOMessageType destination = mcMMO.p.getAdvancedConfig().doesNotificationUseActionBar(NotificationType.LEVEL_UP_MESSAGE) ? McMMOMessageType.ACTION_BAR : McMMOMessageType.SYSTEM;
|
||||
McMMOMessageType destination
|
||||
= mcMMO.p.getAdvancedConfig().doesNotificationUseActionBar(NotificationType.LEVEL_UP_MESSAGE)
|
||||
? McMMOMessageType.ACTION_BAR : McMMOMessageType.SYSTEM;
|
||||
|
||||
Component levelUpTextComponent = TextComponentFactory.getNotificationLevelUpTextComponent(skillName, levelsGained, newLevel);
|
||||
McMMOPlayerNotificationEvent customEvent = checkNotificationEvent(mcMMOPlayer.getPlayer(), NotificationType.LEVEL_UP_MESSAGE, destination, levelUpTextComponent);
|
||||
Component levelUpTextComponent = TextComponentFactory.getNotificationLevelUpTextComponent(
|
||||
skillName, levelsGained, newLevel);
|
||||
McMMOPlayerNotificationEvent customEvent = checkNotificationEvent(
|
||||
mcMMOPlayer.getPlayer(),
|
||||
NotificationType.LEVEL_UP_MESSAGE,
|
||||
destination,
|
||||
levelUpTextComponent);
|
||||
|
||||
sendNotification(mcMMOPlayer.getPlayer(), customEvent);
|
||||
}
|
||||
@ -176,17 +191,12 @@ public class NotificationManager {
|
||||
return;
|
||||
|
||||
//CHAT MESSAGE
|
||||
mcMMO.getAudiences().player(mcMMOPlayer.getPlayer()).sendMessage(Identity.nil(), TextComponentFactory.getSubSkillUnlockedNotificationComponents(mcMMOPlayer.getPlayer(), subSkillType));
|
||||
mcMMO.getAudiences().player(mcMMOPlayer.getPlayer()).sendMessage(Identity.nil(),
|
||||
TextComponentFactory.getSubSkillUnlockedNotificationComponents(mcMMOPlayer.getPlayer(), subSkillType));
|
||||
|
||||
//Unlock Sound Effect
|
||||
SoundManager.sendCategorizedSound(mcMMOPlayer.getPlayer(), mcMMOPlayer.getPlayer().getLocation(), SoundType.SKILL_UNLOCKED, SoundCategory.MASTER);
|
||||
|
||||
//ACTION BAR MESSAGE
|
||||
/*if(mcMMO.p.getAdvancedConfig().doesNotificationUseActionBar(NotificationType.SUBSKILL_UNLOCKED))
|
||||
mcMMOPlayer.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(LocaleLoader.getString("JSON.SkillUnlockMessage",
|
||||
subSkillType.getLocaleName(),
|
||||
String.valueOf(RankUtils.getRank(mcMMOPlayer.getPlayer(),
|
||||
subSkillType)))));*/
|
||||
SoundManager.sendCategorizedSound(mcMMOPlayer.getPlayer(), mcMMOPlayer.getPlayer().getLocation(),
|
||||
SoundType.SKILL_UNLOCKED, SoundCategory.MASTER);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -225,7 +235,8 @@ public class NotificationManager {
|
||||
* @param commandSender the command user
|
||||
* @param sensitiveCommandType type of command issued
|
||||
*/
|
||||
public static void processSensitiveCommandNotification(CommandSender commandSender, SensitiveCommandType sensitiveCommandType, String... args) {
|
||||
public static void processSensitiveCommandNotification(CommandSender commandSender,
|
||||
SensitiveCommandType sensitiveCommandType, String... args) {
|
||||
/*
|
||||
* Determine the 'identity' of the one who executed the command to pass as a parameters
|
||||
*/
|
||||
@ -233,19 +244,26 @@ public class NotificationManager {
|
||||
|
||||
if(commandSender instanceof Player)
|
||||
{
|
||||
senderName = ((Player) commandSender).getDisplayName() + ChatColor.RESET + "-" + ((Player) commandSender).getUniqueId();
|
||||
senderName = ((Player) commandSender).getDisplayName()
|
||||
+ ChatColor.RESET + "-" + ((Player) commandSender).getUniqueId();
|
||||
}
|
||||
|
||||
//Send the notification
|
||||
switch(sensitiveCommandType)
|
||||
{
|
||||
case XPRATE_MODIFY:
|
||||
sendAdminNotification(LocaleLoader.getString("Notifications.Admin.XPRate.Start.Others", addItemToFirstPositionOfArray(senderName, args)));
|
||||
sendAdminCommandConfirmation(commandSender, LocaleLoader.getString("Notifications.Admin.XPRate.Start.Self", args));
|
||||
sendAdminNotification(LocaleLoader.getString("Notifications.Admin.XPRate.Start.Others",
|
||||
addItemToFirstPositionOfArray(senderName, args)));
|
||||
sendAdminCommandConfirmation(
|
||||
commandSender, LocaleLoader.getString("Notifications.Admin.XPRate.Start.Self", args));
|
||||
break;
|
||||
case XPRATE_END:
|
||||
sendAdminNotification(LocaleLoader.getString("Notifications.Admin.XPRate.End.Others", addItemToFirstPositionOfArray(senderName, args)));
|
||||
sendAdminCommandConfirmation(commandSender, LocaleLoader.getString("Notifications.Admin.XPRate.End.Self", args));
|
||||
sendAdminNotification(
|
||||
LocaleLoader.getString(
|
||||
"Notifications.Admin.XPRate.End.Others",
|
||||
addItemToFirstPositionOfArray(senderName, args)));
|
||||
sendAdminCommandConfirmation(commandSender,
|
||||
LocaleLoader.getString("Notifications.Admin.XPRate.End.Self", args));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -266,8 +284,6 @@ public class NotificationManager {
|
||||
return newArray;
|
||||
}
|
||||
|
||||
//TODO: Remove the code duplication, am lazy atm
|
||||
//TODO: Fix broadcasts being skipped for situations where a player skips over the milestone like with the addlevels command
|
||||
public static void processLevelUpBroadcasting(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType primarySkillType, int level) {
|
||||
if(level <= 0)
|
||||
return;
|
||||
@ -290,13 +306,22 @@ public class NotificationManager {
|
||||
.append(Component.newline())
|
||||
.append(Component.text(LocalDate.now().toString()))
|
||||
.append(Component.newline())
|
||||
.append(Component.text(mcMMO.p.getSkillTools().getLocalizedSkillName(primarySkillType)+" reached level "+level)).color(TextColor.fromHexString(HEX_BEIGE_COLOR))
|
||||
.append(Component.text(
|
||||
mcMMO.p.getSkillTools().getLocalizedSkillName(primarySkillType)
|
||||
+ " reached level "+level)).color(TextColor.fromHexString(HEX_BEIGE_COLOR))
|
||||
.asHoverEvent();
|
||||
|
||||
String localeMessage = LocaleLoader.getString("Broadcasts.LevelUpMilestone", mmoPlayer.getPlayer().getDisplayName(), level, mcMMO.p.getSkillTools().getLocalizedSkillName(primarySkillType));
|
||||
Component message = LegacyComponentSerializer.legacySection().deserialize(localeMessage).hoverEvent(levelMilestoneHover);
|
||||
String localeMessage = LocaleLoader.getString(
|
||||
"Broadcasts.LevelUpMilestone", mmoPlayer.getPlayer().getDisplayName(), level,
|
||||
mcMMO.p.getSkillTools().getLocalizedSkillName(primarySkillType));
|
||||
Component component = LegacyComponentSerializer
|
||||
.legacySection()
|
||||
.deserialize(localeMessage)
|
||||
.hoverEvent(levelMilestoneHover);
|
||||
|
||||
mcMMO.p.getFoliaLib().getImpl().runNextTick(t -> audience.sendMessage(Identity.nil(), message));
|
||||
// TODO: Update system msg API
|
||||
mcMMO.p.getFoliaLib().getImpl().runNextTick(
|
||||
t -> audience.sendMessage(component));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -331,7 +356,7 @@ public class NotificationManager {
|
||||
String localeMessage = LocaleLoader.getString("Broadcasts.PowerLevelUpMilestone", mmoPlayer.getPlayer().getDisplayName(), powerLevel);
|
||||
Component message = LegacyComponentSerializer.legacySection().deserialize(localeMessage).hoverEvent(levelMilestoneHover);
|
||||
|
||||
mcMMO.p.getFoliaLib().getImpl().runNextTick(t -> audience.sendMessage(Identity.nil(), message));
|
||||
mcMMO.p.getFoliaLib().getImpl().runNextTick(t -> audience.sendMessage(message));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -291,30 +291,12 @@ public class RankUtils {
|
||||
subSkillRanks.computeIfAbsent(s, k -> new HashMap<>());
|
||||
}
|
||||
|
||||
/* public static int getSubSkillUnlockRequirement(SubSkillType subSkillType)
|
||||
{
|
||||
String skillName = subSkillType.toString();
|
||||
int numRanks = subSkillType.getNumRanks();
|
||||
|
||||
if(subSkillRanks == null)
|
||||
subSkillRanks = new HashMap<>();
|
||||
|
||||
if(numRanks == 0)
|
||||
return -1; //-1 Means the skill doesn't have ranks
|
||||
|
||||
if(subSkillRanks.get(skillName) == null && numRanks > 0)
|
||||
addRanks(subSkillType);
|
||||
|
||||
return subSkillRanks.get(subSkillType.toString()).get(1);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Gets the unlock level for a specific rank in a subskill
|
||||
* @param subSkillType The target subskill
|
||||
* @param rank The target rank
|
||||
* @return The level at which this rank unlocks
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getRankUnlockLevel(SubSkillType subSkillType, int rank)
|
||||
{
|
||||
return RankConfig.getInstance().getSubSkillUnlockLevel(subSkillType, rank);
|
||||
|
@ -12,8 +12,6 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.skills.RankUtils;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.kyori.adventure.audience.MessageType;
|
||||
import net.kyori.adventure.identity.Identity;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
@ -35,41 +33,37 @@ public class TextComponentFactory {
|
||||
|
||||
/**
|
||||
* Makes a text component using strings from a locale and supports passing an undefined number of variables to the LocaleLoader
|
||||
*
|
||||
* @param localeKey target locale string address
|
||||
* @param values vars to be passed to the locale loader
|
||||
* @param values vars to be passed to the locale loader
|
||||
* @return
|
||||
*/
|
||||
public static TextComponent getNotificationMultipleValues(String localeKey, String... values)
|
||||
{
|
||||
public static TextComponent getNotificationMultipleValues(String localeKey, String... values) {
|
||||
String preColoredString = LocaleLoader.getString(localeKey, (Object[]) values);
|
||||
return Component.text(preColoredString);
|
||||
}
|
||||
|
||||
public static Component getNotificationTextComponentFromLocale(String localeKey)
|
||||
{
|
||||
public static Component getNotificationTextComponentFromLocale(String localeKey) {
|
||||
return getNotificationTextComponent(LocaleLoader.getString(localeKey));
|
||||
}
|
||||
|
||||
public static Component getNotificationLevelUpTextComponent(PrimarySkillType skill, int levelsGained, int currentLevel)
|
||||
{
|
||||
return Component.text(LocaleLoader.getString("Overhaul.Levelup", LocaleLoader.getString("Overhaul.Name."+ StringUtils.getCapitalized(skill.toString())), levelsGained, currentLevel));
|
||||
public static Component getNotificationLevelUpTextComponent(PrimarySkillType skill, int levelsGained, int currentLevel) {
|
||||
return Component.text(LocaleLoader.getString("Overhaul.Levelup", LocaleLoader.getString("Overhaul.Name." + StringUtils.getCapitalized(skill.toString())), levelsGained, currentLevel));
|
||||
}
|
||||
|
||||
private static TextComponent getNotificationTextComponent(String text)
|
||||
{
|
||||
private static TextComponent getNotificationTextComponent(String text) {
|
||||
//textComponent.setColor(getNotificationColor(notificationType));
|
||||
return Component.text(text);
|
||||
}
|
||||
|
||||
public static void sendPlayerSubSkillWikiLink(Player player, String subskillformatted)
|
||||
{
|
||||
if(!mcMMO.p.getGeneralConfig().getUrlLinksEnabled())
|
||||
public static void sendPlayerSubSkillWikiLink(Player player, String subskillformatted) {
|
||||
if (!mcMMO.p.getGeneralConfig().getUrlLinksEnabled())
|
||||
return;
|
||||
|
||||
TextComponent.Builder wikiLinkComponent = Component.text().content(LocaleLoader.getString("Overhaul.mcMMO.MmoInfo.Wiki"));
|
||||
wikiLinkComponent.decoration(TextDecoration.UNDERLINED, true);
|
||||
|
||||
String wikiUrl = "https://wiki.mcmmo.org/"+subskillformatted;
|
||||
String wikiUrl = "https://wiki.mcmmo.org/" + subskillformatted;
|
||||
|
||||
wikiLinkComponent.clickEvent(ClickEvent.openUrl(wikiUrl));
|
||||
|
||||
@ -77,39 +71,40 @@ public class TextComponentFactory {
|
||||
|
||||
wikiLinkComponent.hoverEvent(HoverEvent.showText(componentBuilder.build()));
|
||||
|
||||
mcMMO.getAudiences().player(player).sendMessage(Identity.nil(), wikiLinkComponent, MessageType.SYSTEM);
|
||||
mcMMO.getAudiences().player(player).sendMessage(wikiLinkComponent);
|
||||
}
|
||||
|
||||
public static void sendPlayerUrlHeader(Player player) {
|
||||
TextComponent prefix = Component.text(LocaleLoader.getString("Overhaul.mcMMO.Url.Wrap.Prefix") + " ");
|
||||
/*prefix.setColor(ChatColor.DARK_AQUA);*/
|
||||
TextComponent suffix = Component.text(" "+LocaleLoader.getString("Overhaul.mcMMO.Url.Wrap.Suffix"));
|
||||
TextComponent suffix = Component.text(" " + LocaleLoader.getString("Overhaul.mcMMO.Url.Wrap.Suffix"));
|
||||
/*suffix.setColor(ChatColor.DARK_AQUA);*/
|
||||
|
||||
TextComponent emptySpace = Component.space();
|
||||
|
||||
mcMMO.getAudiences().player(player).sendMessage(Identity.nil(),TextComponent.ofChildren(
|
||||
prefix,
|
||||
getWebLinkTextComponent(McMMOWebLinks.WEBSITE),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.DISCORD),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.PATREON),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.WIKI),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.SPIGOT),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.HELP_TRANSLATE),
|
||||
suffix
|
||||
), MessageType.SYSTEM);
|
||||
// TODO: Update system msg API
|
||||
mcMMO.getAudiences().player(player).sendMessage(Component.textOfChildren(
|
||||
prefix,
|
||||
getWebLinkTextComponent(McMMOWebLinks.WEBSITE),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.DISCORD),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.PATREON),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.WIKI),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.SPIGOT),
|
||||
emptySpace,
|
||||
getWebLinkTextComponent(McMMOWebLinks.HELP_TRANSLATE),
|
||||
suffix
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a player a bunch of text components that represent a list of sub-skills
|
||||
* Styling and formatting is applied before sending the messages
|
||||
*
|
||||
* @param player target player
|
||||
* @param player target player
|
||||
* @param subSkillComponents the text components representing the sub-skills by name
|
||||
*/
|
||||
public static void sendPlayerSubSkillList(@NotNull Player player, @NotNull List<Component> subSkillComponents) {
|
||||
@ -129,17 +124,15 @@ public class TextComponentFactory {
|
||||
}
|
||||
|
||||
//Send each group
|
||||
for(Component curLine : individualLinesToSend) {
|
||||
audience.sendMessage(Identity.nil(), curLine);
|
||||
for (Component curLine : individualLinesToSend) {
|
||||
audience.sendMessage(curLine);
|
||||
}
|
||||
}
|
||||
|
||||
private static Component getWebLinkTextComponent(McMMOWebLinks webLinks)
|
||||
{
|
||||
private static Component getWebLinkTextComponent(McMMOWebLinks webLinks) {
|
||||
TextComponent.Builder webTextComponent;
|
||||
|
||||
switch(webLinks)
|
||||
{
|
||||
switch (webLinks) {
|
||||
case WEBSITE:
|
||||
webTextComponent = Component.text().content(LocaleLoader.getString("JSON.Hover.AtSymbolURL"));
|
||||
TextUtils.addChildWebComponent(webTextComponent, "Web");
|
||||
@ -180,12 +173,10 @@ public class TextComponentFactory {
|
||||
return webTextComponent.build();
|
||||
}
|
||||
|
||||
private static Component getUrlHoverEvent(McMMOWebLinks webLinks)
|
||||
{
|
||||
private static Component getUrlHoverEvent(McMMOWebLinks webLinks) {
|
||||
TextComponent.Builder componentBuilder = Component.text().content(webLinks.getNiceTitle());
|
||||
|
||||
switch(webLinks)
|
||||
{
|
||||
switch (webLinks) {
|
||||
case WEBSITE:
|
||||
addUrlHeaderHover(webLinks, componentBuilder);
|
||||
componentBuilder.append(Component.newline()).append(Component.newline());
|
||||
@ -223,7 +214,7 @@ public class TextComponentFactory {
|
||||
componentBuilder.append(Component.text(webLinks.getLocaleDescription(), NamedTextColor.GREEN));
|
||||
componentBuilder.append(Component.newline());
|
||||
componentBuilder.append(Component.text("You can use this website to help translate mcMMO into your language!" +
|
||||
"\nIf you want to know more contact me in discord.", NamedTextColor.DARK_GRAY));
|
||||
"\nIf you want to know more contact me in discord.", NamedTextColor.DARK_GRAY));
|
||||
}
|
||||
|
||||
return componentBuilder.build();
|
||||
@ -234,13 +225,11 @@ public class TextComponentFactory {
|
||||
componentBuilder.append(Component.text(webLinks.getUrl(), NamedTextColor.GRAY, TextDecoration.ITALIC));
|
||||
}
|
||||
|
||||
private static ClickEvent getUrlClickEvent(String url)
|
||||
{
|
||||
private static ClickEvent getUrlClickEvent(String url) {
|
||||
return ClickEvent.openUrl(url);
|
||||
}
|
||||
|
||||
private static Component getSubSkillTextComponent(Player player, SubSkillType subSkillType)
|
||||
{
|
||||
private static Component getSubSkillTextComponent(Player player, SubSkillType subSkillType) {
|
||||
//Get skill name
|
||||
String skillName = subSkillType.getLocaleName();
|
||||
|
||||
@ -257,8 +246,7 @@ public class TextComponentFactory {
|
||||
return textComponent.build();
|
||||
}
|
||||
|
||||
private static TextComponent getSubSkillTextComponent(Player player, AbstractSubSkill abstractSubSkill)
|
||||
{
|
||||
private static TextComponent getSubSkillTextComponent(Player player, AbstractSubSkill abstractSubSkill) {
|
||||
//String key = abstractSubSkill.getConfigKeyName();
|
||||
String skillName = abstractSubSkill.getNiceName();
|
||||
|
||||
@ -297,46 +285,37 @@ public class TextComponentFactory {
|
||||
return textComponent;
|
||||
}
|
||||
|
||||
private static Component getSubSkillHoverComponent(Player player, AbstractSubSkill abstractSubSkill)
|
||||
{
|
||||
private static Component getSubSkillHoverComponent(Player player, AbstractSubSkill abstractSubSkill) {
|
||||
return getSubSkillHoverEventJSON(abstractSubSkill, player);
|
||||
}
|
||||
|
||||
private static Component getSubSkillHoverComponent(Player player, SubSkillType subSkillType)
|
||||
{
|
||||
private static Component getSubSkillHoverComponent(Player player, SubSkillType subSkillType) {
|
||||
return getSubSkillHoverEventJSON(subSkillType, player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Used for the skill in the new skill system (Deriving from AbstractSubSkill)
|
||||
*
|
||||
* @param abstractSubSkill this subskill
|
||||
* @param player the player who owns this subskill
|
||||
* @param player the player who owns this subskill
|
||||
* @return the hover basecomponent object for this subskill
|
||||
*/
|
||||
private static Component getSubSkillHoverEventJSON(AbstractSubSkill abstractSubSkill, Player player)
|
||||
{
|
||||
private static Component getSubSkillHoverEventJSON(AbstractSubSkill abstractSubSkill, Player player) {
|
||||
String skillName = abstractSubSkill.getNiceName();
|
||||
|
||||
/*
|
||||
* Hover Event BaseComponent color table
|
||||
*/
|
||||
TextColor ccSubSkillHeader = NamedTextColor.GOLD;
|
||||
TextColor ccRank = NamedTextColor.BLUE;
|
||||
TextColor ccCurRank = NamedTextColor.GREEN;
|
||||
TextColor ccPossessive = NamedTextColor.WHITE;
|
||||
//ChatColor ccDescriptionHeader = ChatColor.DARK_PURPLE;
|
||||
//ChatColor ccDescription = ChatColor.WHITE;
|
||||
TextColor ccLocked = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLevelRequirement = NamedTextColor.BLUE;
|
||||
TextColor ccLevelRequired = NamedTextColor.RED;
|
||||
TextColor ccLocked = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLevelRequirement = NamedTextColor.BLUE;
|
||||
TextColor ccLevelRequired = NamedTextColor.RED;
|
||||
|
||||
SubSkillType subSkillType = abstractSubSkill.getSubSkillType();
|
||||
|
||||
//SubSkillType Name
|
||||
TextComponent.Builder componentBuilder = setupSkillComponentNameStyle(player, skillName, subSkillType, RankUtils.hasUnlockedSubskill(player, abstractSubSkill));
|
||||
|
||||
if(!RankUtils.hasUnlockedSubskill(player, abstractSubSkill))
|
||||
{
|
||||
if (!RankUtils.hasUnlockedSubskill(player, abstractSubSkill)) {
|
||||
//Skill is not unlocked yet
|
||||
addLocked(abstractSubSkill, ccLocked, ccLevelRequirement, ccLevelRequired, componentBuilder);
|
||||
} else {
|
||||
@ -346,12 +325,11 @@ public class TextComponentFactory {
|
||||
int curRank = RankUtils.getRank(player, abstractSubSkill);
|
||||
int nextRank = 0;
|
||||
|
||||
if(curRank < abstractSubSkill.getNumRanks() && abstractSubSkill.getNumRanks() > 0)
|
||||
{
|
||||
nextRank = RankUtils.getRankUnlockLevel(abstractSubSkill, curRank+1);
|
||||
if (curRank < abstractSubSkill.getNumRanks() && abstractSubSkill.getNumRanks() > 0) {
|
||||
nextRank = RankUtils.getRankUnlockLevel(abstractSubSkill, curRank + 1);
|
||||
}
|
||||
|
||||
addRanked(ccRank, ccCurRank, ccPossessive, ccCurRank, componentBuilder, abstractSubSkill.getNumRanks(), RankUtils.getRank(player, abstractSubSkill), nextRank);
|
||||
addRanked(componentBuilder, abstractSubSkill.getNumRanks(), RankUtils.getRank(player, abstractSubSkill), nextRank);
|
||||
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.DescriptionHeader")));
|
||||
componentBuilder.append(Component.newline()).append(Component.text(abstractSubSkill.getDescription())).append(Component.newline());
|
||||
@ -386,17 +364,14 @@ public class TextComponentFactory {
|
||||
return componentBuilder;
|
||||
}
|
||||
|
||||
private static void addRanked(TextColor ccRank, TextColor ccCurRank, TextColor ccPossessive, TextColor ccNumRanks, TextComponent.Builder componentBuilder, int numRanks, int rank, int nextRank) {
|
||||
private static void addRanked(TextComponent.Builder componentBuilder, int numRanks, int rank, int nextRank) {
|
||||
if (numRanks > 0) {
|
||||
//Rank: x
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Hover.Rank", String.valueOf(rank)))).append(Component.newline());
|
||||
|
||||
//Next Rank: x
|
||||
if(nextRank > rank)
|
||||
if (nextRank > rank)
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Hover.NextRank", String.valueOf(nextRank)))).append(Component.newline());
|
||||
|
||||
/*componentBuilder.append(" " + LocaleLoader.getString("JSON.RankPossesive") + " ").color(ccPossessive);
|
||||
componentBuilder.append(String.valueOf(numRanks)).color(ccNumRanks);*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -418,47 +393,38 @@ public class TextComponentFactory {
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.LevelRequirement") + ": ", ccLevelRequirement));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private static Component getSubSkillHoverEventJSON(SubSkillType subSkillType, Player player)
|
||||
{
|
||||
private static Component getSubSkillHoverEventJSON(SubSkillType subSkillType, Player player) {
|
||||
String skillName = subSkillType.getLocaleName();
|
||||
|
||||
/*
|
||||
* Hover Event BaseComponent color table
|
||||
*/
|
||||
TextColor ccSubSkillHeader = NamedTextColor.GOLD;
|
||||
TextColor ccRank = NamedTextColor.BLUE;
|
||||
TextColor ccCurRank = NamedTextColor.GREEN;
|
||||
TextColor ccPossessive = NamedTextColor.WHITE;
|
||||
TextColor ccDescriptionHeader = NamedTextColor.DARK_PURPLE;
|
||||
TextColor ccDescription = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLocked = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLevelRequirement = NamedTextColor.BLUE;
|
||||
TextColor ccLevelRequired = NamedTextColor.RED;
|
||||
TextColor ccDescriptionHeader = NamedTextColor.DARK_PURPLE;
|
||||
TextColor ccDescription = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLocked = NamedTextColor.DARK_GRAY;
|
||||
TextColor ccLevelRequirement = NamedTextColor.BLUE;
|
||||
TextColor ccLevelRequired = NamedTextColor.RED;
|
||||
|
||||
//SubSkillType Name
|
||||
TextComponent.Builder componentBuilder = setupSkillComponentNameStyle(player, skillName, subSkillType, RankUtils.hasUnlockedSubskill(player, subSkillType));
|
||||
|
||||
if(!RankUtils.hasUnlockedSubskill(player, subSkillType))
|
||||
{
|
||||
if (!RankUtils.hasUnlockedSubskill(player, subSkillType)) {
|
||||
//Skill is not unlocked yet
|
||||
addLocked(subSkillType, ccLocked, ccLevelRequirement, ccLevelRequired, componentBuilder);
|
||||
} else {
|
||||
//addSubSkillTypeToHoverEventJSON(subSkillType, componentBuilder);
|
||||
|
||||
//RANK
|
||||
if(subSkillType.getNumRanks() > 0)
|
||||
{
|
||||
if (subSkillType.getNumRanks() > 0) {
|
||||
int curRank = RankUtils.getRank(player, subSkillType);
|
||||
int nextRank = 0;
|
||||
|
||||
if(curRank < subSkillType.getNumRanks())
|
||||
{
|
||||
nextRank = RankUtils.getRankUnlockLevel(subSkillType, curRank+1);
|
||||
if (curRank < subSkillType.getNumRanks()) {
|
||||
nextRank = RankUtils.getRankUnlockLevel(subSkillType, curRank + 1);
|
||||
}
|
||||
|
||||
addRanked(ccRank, ccCurRank, ccPossessive, ccCurRank, componentBuilder, subSkillType.getNumRanks(), RankUtils.getRank(player, subSkillType), nextRank);
|
||||
|
||||
addRanked(componentBuilder, subSkillType.getNumRanks(),
|
||||
RankUtils.getRank(player, subSkillType), nextRank);
|
||||
}
|
||||
|
||||
componentBuilder.append(Component.newline());
|
||||
@ -472,55 +438,52 @@ public class TextComponentFactory {
|
||||
return componentBuilder.build();
|
||||
}
|
||||
|
||||
private static void addSubSkillTypeToHoverEventJSON(AbstractSubSkill abstractSubSkill, TextComponent.Builder componentBuilder)
|
||||
{
|
||||
if(abstractSubSkill.isSuperAbility())
|
||||
{
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.SuperAbility"), NamedTextColor.LIGHT_PURPLE, TextDecoration.BOLD));
|
||||
} else if(abstractSubSkill.isActiveUse())
|
||||
{
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.Active"), NamedTextColor.DARK_RED, TextDecoration.BOLD));
|
||||
private static void addSubSkillTypeToHoverEventJSON(AbstractSubSkill abstractSubSkill,
|
||||
TextComponent.Builder componentBuilder) {
|
||||
if (abstractSubSkill.isSuperAbility()) {
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.SuperAbility"),
|
||||
NamedTextColor.LIGHT_PURPLE, TextDecoration.BOLD));
|
||||
} else if (abstractSubSkill.isActiveUse()) {
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.Active"),
|
||||
NamedTextColor.DARK_RED, TextDecoration.BOLD));
|
||||
} else {
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.Passive"), NamedTextColor.GREEN, TextDecoration.BOLD));
|
||||
componentBuilder.append(Component.text(LocaleLoader.getString("JSON.Type.Passive"),
|
||||
NamedTextColor.GREEN, TextDecoration.BOLD));
|
||||
}
|
||||
|
||||
componentBuilder.append(Component.newline());
|
||||
}
|
||||
|
||||
public static void getSubSkillTextComponents(Player player, List<Component> textComponents, PrimarySkillType parentSkill) {
|
||||
for(SubSkillType subSkillType : SubSkillType.values())
|
||||
{
|
||||
if(subSkillType.getParentSkill() == parentSkill)
|
||||
{
|
||||
public static void getSubSkillTextComponents(Player player, List<Component> textComponents,
|
||||
PrimarySkillType parentSkill) {
|
||||
for (SubSkillType subSkillType : SubSkillType.values()) {
|
||||
if (subSkillType.getParentSkill() == parentSkill) {
|
||||
//TODO: Hacky rewrite later
|
||||
//Only some versions of MC have this skill
|
||||
if(subSkillType == SubSkillType.FISHING_MASTER_ANGLER && mcMMO.getCompatibilityManager().getMasterAnglerCompatibilityLayer() == null)
|
||||
if (subSkillType == SubSkillType.FISHING_MASTER_ANGLER
|
||||
&& mcMMO.getCompatibilityManager().getMasterAnglerCompatibilityLayer() == null)
|
||||
continue;
|
||||
|
||||
if(Permissions.isSubSkillEnabled(player, subSkillType))
|
||||
{
|
||||
if(!InteractionManager.hasSubSkill(subSkillType))
|
||||
if (Permissions.isSubSkillEnabled(player, subSkillType)) {
|
||||
if (!InteractionManager.hasSubSkill(subSkillType))
|
||||
textComponents.add(TextComponentFactory.getSubSkillTextComponent(player, subSkillType));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* NEW SKILL SYSTEM */
|
||||
for(AbstractSubSkill abstractSubSkill : InteractionManager.getSubSkillList())
|
||||
{
|
||||
if(abstractSubSkill.getPrimarySkill() == parentSkill)
|
||||
{
|
||||
if(Permissions.isSubSkillEnabled(player, abstractSubSkill))
|
||||
for (AbstractSubSkill abstractSubSkill : InteractionManager.getSubSkillList()) {
|
||||
if (abstractSubSkill.getPrimarySkill() == parentSkill) {
|
||||
if (Permissions.isSubSkillEnabled(player, abstractSubSkill))
|
||||
textComponents.add(TextComponentFactory.getSubSkillTextComponent(player, abstractSubSkill));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static TextComponent getSubSkillUnlockedNotificationComponents(Player player, SubSkillType subSkillType)
|
||||
{
|
||||
public static TextComponent getSubSkillUnlockedNotificationComponents(Player player, SubSkillType subSkillType) {
|
||||
TextComponent.Builder unlockMessage = Component.text().content(LocaleLoader.getString("JSON.SkillUnlockMessage", subSkillType.getLocaleName(), RankUtils.getRank(player, subSkillType)));
|
||||
unlockMessage.hoverEvent(HoverEvent.showText(getSubSkillHoverComponent(player, subSkillType)));
|
||||
unlockMessage.clickEvent(ClickEvent.runCommand("/"+subSkillType.getParentSkill().toString().toLowerCase(Locale.ENGLISH)));
|
||||
unlockMessage.clickEvent(ClickEvent.runCommand("/" + subSkillType.getParentSkill().toString().toLowerCase(Locale.ENGLISH)));
|
||||
return unlockMessage.build();
|
||||
}
|
||||
}
|
||||
|
@ -209,7 +209,14 @@ Skills:
|
||||
Fishing:
|
||||
|
||||
ShakeChance:
|
||||
Rank_1: 30
|
||||
Rank_1: 15.0
|
||||
Rank_2: 20.0
|
||||
Rank_3: 25.0
|
||||
Rank_4: 35.0
|
||||
Rank_5: 45.0
|
||||
Rank_6: 55.0
|
||||
Rank_7: 65.0
|
||||
Rank_8: 75.0
|
||||
|
||||
# VanillaXPMultiplier: Vanilla XP gained from fishing is multiplied by these values.
|
||||
VanillaXPMultiplier:
|
||||
|
@ -393,6 +393,7 @@ Experience_Values:
|
||||
Rose_Bush: 50
|
||||
Fern: 10
|
||||
Grass: 10
|
||||
Short_Grass: 10
|
||||
Sugar_Cane: 30
|
||||
Sunflower: 50
|
||||
Tall_Grass: 50
|
||||
|
@ -15,7 +15,130 @@
|
||||
#
|
||||
# --wolfwork
|
||||
|
||||
#DO NOT USE COLOR CODES IN THE JSON KEYS
|
||||
#COLORS ARE DEFINED IN advanced.yml IF YOU WISH TO CHANGE THEM
|
||||
JSON.Rank=랭크
|
||||
JSON.DescriptionHeader=설명
|
||||
JSON.JWrapper.Header=세부 정보
|
||||
JSON.Type.Passive=패시브
|
||||
JSON.Type.Active=액티브
|
||||
JSON.Type.SuperAbility=슈퍼 능력
|
||||
JSON.Locked=-=[해금되지 않음]=-
|
||||
JSON.LevelRequirement=레벨 요구 사항
|
||||
JSON.JWrapper.Target.Type=대상 유형:
|
||||
JSON.JWrapper.Target.Block=블록
|
||||
JSON.JWrapper.Target.Player=플레이어
|
||||
JSON.JWrapper.Perks.Header=&6행운 퍽
|
||||
JSON.JWrapper.Perks.Lucky={0}% 더 좋은 확률
|
||||
JSON.Hover.Tips=팁
|
||||
JSON.Acrobatics=곡예
|
||||
JSON.Alchemy=연금술
|
||||
JSON.Archery=궁술
|
||||
JSON.Axes=부술
|
||||
JSON.Excavation=발굴
|
||||
JSON.Fishing=낚시
|
||||
JSON.Herbalism=약초학
|
||||
JSON.Mining=채광
|
||||
JSON.Repair=수리
|
||||
JSON.Salvage=회수
|
||||
JSON.Swords=검술
|
||||
JSON.Taming=조련
|
||||
JSON.Unarmed=비무장
|
||||
JSON.Woodcutting=벌목
|
||||
JSON.URL.Website=mcMMO 공식 웹사이트!
|
||||
JSON.URL.Discord=mcMMO 공식 디스코드 서버!
|
||||
JSON.URL.Patreon=nossr50와 mcMMO를 위한 Patreon에서 지원하세요!
|
||||
JSON.URL.Spigot=mcMMO 공식 Spigot 리소스 페이지!
|
||||
JSON.URL.Translation=mcMMO를 다른 언어로 번역하세요!
|
||||
JSON.URL.Wiki=mcMMO 공식 위키!
|
||||
JSON.SkillUnlockMessage=&6[ mcMMO&e @&3{0} &6랭크 &3{1}&6이(가) 해제되었습니다! ]
|
||||
JSON.Hover.Rank=&e&l랭크:&r &f{0}
|
||||
JSON.Hover.NextRank=&7&o다음 업그레이드: 레벨 {0}
|
||||
# for JSON.Hover.Mystery you can add {0} to insert the level required into the name, I don't like how that looks so I'm not doing that atm
|
||||
JSON.Hover.Mystery=&7???
|
||||
JSON.Hover.Mystery2=&e[&8{0}&e]&8???&r
|
||||
JSON.Hover.SkillName=&3{0}&r
|
||||
JSON.Hover.SuperAbility=&5{0}&r
|
||||
JSON.Hover.MaxRankSkillName=&6{0}&r
|
||||
JSON.Hover.AtSymbolSkills=&e@
|
||||
JSON.Hover.AtSymbolURL=&e@
|
||||
|
||||
#This is the message sent to players when an ability is activated
|
||||
JSON.Notification.SuperAbility={0}
|
||||
|
||||
#These are the JSON Strings used for SubSkills
|
||||
JSON.Acrobatics.Roll.Interaction.Activated=테스트 &c구른 테스트
|
||||
JSON.Acrobatics.SubSkill.Roll.Details.Tips=낙하 중 웅크리기 키를 누르면 일반적으로 받을 데미지의 2배까지 방지할 수 있습니다!
|
||||
Anvil.SingleItemStack=&c하나 이상의 아이템을 가진 아이템 스택은 회수하거나 수리할 수 없습니다. 먼저 스택을 분할하세요.
|
||||
|
||||
#DO NOT USE COLOR CODES IN THE JSON KEYS
|
||||
#COLORS ARE DEFINED IN advanced.yml IF YOU WISH TO CHANGE THEM
|
||||
|
||||
mcMMO.Template.Prefix=&6(&amcMMO&6) &7{0}
|
||||
|
||||
# BEGIN STYLING
|
||||
Ability.Generic.Refresh=&a**능력이 갱신되었습니다!**
|
||||
Ability.Generic.Template.Lock=&7{0}
|
||||
|
||||
# Skill Command Styling
|
||||
Ability.Generic.Template=&3{0}: &a{1}
|
||||
Ability.Generic.Template.Custom=&3{0}
|
||||
Skills.Overhaul.Header=&c[]=====[]&a {0} &c[]=====[]
|
||||
Effects.Effects=효과
|
||||
Effects.SubSkills.Overhaul=부가 스킬
|
||||
Effects.Child.Overhaul=&3하위 레벨.&e {0}&3: {1}
|
||||
Effects.Child.ParentList=&a{0}&6(&3레벨.&e{1}&6)
|
||||
Effects.Level.Overhaul=&6레벨: &e{0} &3경험치&e(&6{1}&e/&6{2}&e)
|
||||
Effects.Parent=&6{0} -
|
||||
Effects.Template=&3{0}: &a{1}
|
||||
Commands.Stats.Self.Overhaul=스탯
|
||||
Commands.XPGain.Overhaul=&6경험치 획득: &3{0}
|
||||
MOTD.Version.Overhaul=&6[mcMMO] &3Overhaul 시대&6 - &3{0}
|
||||
Overhaul.mcMMO.Header=&c[]=====[]&a mcMMO - Overhaul 시대 &c[]=====[]
|
||||
Overhaul.mcMMO.Url.Wrap.Prefix=&c[|
|
||||
Overhaul.mcMMO.Url.Wrap.Suffix=&c|]
|
||||
Overhaul.mcMMO.MmoInfo.Wiki=&e[&f이 스킬을 위키에서 보기!&e]
|
||||
|
||||
# /mcMMO Command Style Stuff
|
||||
Commands.mcc.Header=&c---[]&amcMMO 명령어&c[]---
|
||||
Commands.Other=&c---[]&a특수 명령어&c[]---
|
||||
Commands.Party.Header=&c-----[]&a파티&c[]-----
|
||||
Commands.Party.Features.Header=&c-----[]&a기능&c[]-----
|
||||
# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level
|
||||
# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP!
|
||||
XPBar.Template={0}
|
||||
XPBar.Template.EarlyGameBoost=&6새로운 스킬을 습득하는 중...
|
||||
XPBar.Acrobatics=곡예 Lv.&6{0}
|
||||
XPBar.Alchemy=연금술 Lv.&6{0}
|
||||
XPBar.Archery=궁술 Lv.&6{0}
|
||||
XPBar.Axes=부술 Lv.&6{0}
|
||||
XPBar.Excavation=발굴 Lv.&6{0}
|
||||
XPBar.Fishing=낚시 Lv.&6{0}
|
||||
XPBar.Herbalism=약초학 Lv.&6{0}
|
||||
XPBar.Mining=채광 Lv.&6{0}
|
||||
XPBar.Repair=수리 Lv.&6{0}
|
||||
XPBar.Salvage=회수 Lv.&6{0}
|
||||
XPBar.Smelting=제련 Lv.&6{0}
|
||||
XPBar.Swords=검술 Lv.&6{0}
|
||||
XPBar.Taming=조련 Lv.&6{0}
|
||||
XPBar.Unarmed=비무장 Lv.&6{0}
|
||||
XPBar.Woodcutting=벌목 Lv.&6{0}
|
||||
XPBar.Complex.Template={0} &3 {4}&f% &3(&f{1}&3/&f{2}&3)
|
||||
#This is just a preset template that gets used if the 'ExtraDetails' setting is turned on in experience.yml (off by default), you can ignore this template and just edit the strings above
|
||||
XPBar.Complex.Template={0} &3 {4}&f% &3(&f{1}&3/&f{2}&3)
|
||||
# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level
|
||||
# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP!
|
||||
# END STYLING
|
||||
|
||||
|
||||
#ACROBATICS
|
||||
Acrobatics.SubSkill.Roll.Stats=&6구르기 확률 &e{0}%&6 우아한 구르기 확률&e {1}%
|
||||
Acrobatics.SubSkill.Roll.Stat=구르기 확률
|
||||
Acrobatics.SubSkill.Roll.Stat.Extra=우아한 구르기 확률
|
||||
Acrobatics.SubSkill.Roll.Chance=구르기 확률: &e{0}
|
||||
Acrobatics.SubSkill.Roll.Mechanics=&7구르기는 수동적인 부분이 있는 능력입니다.\n낙하 데미지를 입을 때마다, 당신은 당신의 능력 레벨에 따라 데미지를 완전히 무효화할 수 있습니다. 능력 레벨이 &e{6}%&7일 때, 당신은 &e{0}%&7의 확률로 데미지를 무효화할 수 있으며, 우아한 구르기를 활성화하면 &e{1}%&7의 확률로 데미지를 무효화할 수 있습니다.\n성공 확률은 능력 레벨에 따라 선형적으로 조정되며, 능력 레벨 &e{2}&7에서 최대치에 도달합니다. 곡예 능력을 1 레벨 올릴 때마다 &e{3}%&7의 확률이 증가합니다.\n웅크리기 버튼을 누르면 구르기 확률이 2배가 되며, 데미지를 2배로 감소시킬 수 있습니다. 웅크리기를 누르면 일반적인 구르기가 우아한 구르기로 변합니다.\n구르기는 최대 &c{4}&7의 데미지를 무효화합니다. 우아한 구르기는 최대 &a{5}&7의 데미지를 무효화합니다.
|
||||
Acrobatics.SubSkill.GracefulRoll.Name=우아한 구르기
|
||||
Acrobatics.SubSkill.Dodge.Stat=구르기 확률
|
||||
Acrobatics.Ability.Proc=&a**우아한 구르기**
|
||||
Acrobatics.Combat.Proc=&a**회피**
|
||||
Acrobatics.DodgeChance=회피 확률: &e{0}
|
||||
@ -44,6 +167,11 @@ Alchemy.Concoctions.Rank=혼합 랭크: &e{0}/{1}
|
||||
Alchemy.Concoctions.Ingredients=성분 [&e{0}&c]: &e{1}
|
||||
Alchemy.SkillName=연금술
|
||||
Alchemy.Skillup=연금술 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Alchemy.SubSkill.Catalysis.Stat=양조 속도
|
||||
Alchemy.SubSkill.Concoctions.Stat=혼합 랭크: &a{0}&3/&a{1}
|
||||
Alchemy.SubSkill.Concoctions.Stat.Extra=성분 [&a{0}&3]: &a{1}
|
||||
Alchemy.Ability.Locked.0={0}+ 레벨에서 해금됩니다 (촉매)
|
||||
Alchemy.SkillName=연금술
|
||||
|
||||
#ARCHERY
|
||||
Archery.Combat.DazeChance=현혹 확률: &e{0}
|
||||
@ -58,6 +186,13 @@ Archery.SubSkill.ArrowRetrieval.Description=시체에서 화살 회수 확률
|
||||
Archery.Listener=궁술(ARCHERY):
|
||||
Archery.SkillName=궁술
|
||||
Archery.Skillup=궁술 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Archery.SubSkill.SkillShot.Stat=스킬샷 추가 피해
|
||||
Archery.SubSkill.Daze.Stat=현혹 확률
|
||||
Archery.SubSkill.ArrowRetrieval.Stat=화살 회수 확률
|
||||
Archery.SubSkill.ArcheryLimitBreak.Name=궁술 한계 돌파
|
||||
Archery.SubSkill.ArcheryLimitBreak.Description=한계 돌파. 강한 적에게 추가 피해를 줍니다. PVP를 위해 만들어졌으며, PVE에서 추가 피해를 줄지는 서버 설정에 따라 다릅니다.
|
||||
Archery.SubSkill.ArcheryLimitBreak.Stat=한계 돌파 최대 피해
|
||||
|
||||
|
||||
#AXES
|
||||
Axes.Ability.Bonus.0=도끼 마스터리
|
||||
@ -93,6 +228,12 @@ Axes.Skills.SS.Refresh=&a당신의 &e뼈 쪼개기 &a기술은 이제 사용 가
|
||||
Axes.Skills.SS.Other.Off={0}님이 &c뼈 쪼개기를&a 준비 해제했습니다
|
||||
Axes.Skills.SS.Other.On=&a{0}&2님이 &c뼈 쪼개기를 사용했습니다!
|
||||
Axes.Skillup=부술 기술이 {0} 올라 총 ({1}) 레벨이 되었습니다
|
||||
Axes.Ability.Ready.Extra=도끼 준비 완료. &7({0}은 {1}초 동안 쿨타임 중입니다)
|
||||
Axes.SubSkill.SkullSplitter.Stat=뼈 쪼개기 지속시간
|
||||
Axes.SubSkill.CriticalStrikes.Stat=크리티컬 스트라이크 확률
|
||||
Axes.SubSkill.AxesLimitBreak.Name=도끼 한계 돌파
|
||||
Axes.SubSkill.AxesLimitBreak.Description=한계를 돌파합니다. 강한 상대에 대한 추가 피해가 증가합니다. PVP를 위해 만들어졌으며, PVE에서 추가 피해를 줄지는 서버 설정에 따라 다릅니다.
|
||||
Axes.SubSkill.AxesLimitBreak.Stat=한계 돌파 최대 피해
|
||||
|
||||
#EXCAVATION
|
||||
Excavation.Ability.Lower=&7**삽 준비 해제**
|
||||
@ -110,6 +251,11 @@ Excavation.Skills.GigaDrillBreaker.Refresh=&a당신의 &e기가 드릴 버서커
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off={0}&2님은 &c기가 드릴 버서커를 사용했습니다!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=&a{0}&2님은 &c기가 드릴 버서커를 사용 했습니다!
|
||||
Excavation.Skillup=발굴 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Excavation.SubSkill.GigaDrillBreaker.Stat=기가 드릴 버서커 지속시간
|
||||
Excavation.SubSkill.Archaeology.Name=고고학
|
||||
Excavation.SubSkill.Archaeology.Description=땅의 비밀을 발굴하세요! 높은 기술 레벨은 보물을 찾을 때 경험치 구슬을 찾을 확률을 높입니다!
|
||||
Excavation.SubSkill.Archaeology.Stat=고고학 경험치 구슬 확률
|
||||
Excavation.SubSkill.Archaeology.Stat.Extra=고고학 경험치 구슬량
|
||||
|
||||
#FISHING
|
||||
Fishing.Ability.Chance=입질 확률: &e{0}
|
||||
@ -126,7 +272,7 @@ Fishing.Ability.FD=어부의 다이어트 랭크: &e{0}랭크
|
||||
Fishing.SubSkill.TreasureHunter.Name=트레져 헌터 (패시브)
|
||||
Fishing.SubSkill.TreasureHunter.Description=물건(그외) 낚시
|
||||
Fishing.SubSkill.MagicHunter.Name=매직 헌터
|
||||
Fishing.SubSkill.MagicHunter.Description=인챈트 아이템 발견
|
||||
Fishing.SubSkill.MagicHunter.Description=인챈트된 아이템 발견
|
||||
Fishing.SubSkill.Shake.Name=흔들기 (vs. 독립체)
|
||||
Fishing.SubSkill.Shake.Description=아이템을 몹이나 낚시에서 얻음
|
||||
Fishing.SubSkill.FishermansDiet.Name=어부의 다이어트
|
||||
@ -141,6 +287,19 @@ Fishing.Ability.TH.Boom=&7폭발 시간!!!
|
||||
Fishing.Ability.TH.Poison=&7낌새가 좋지 않습니다...
|
||||
Fishing.SkillName=낚시
|
||||
Fishing.Skillup=낚시 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Fishing.ScarcityTip=&e&o이 지역은 과잉 낚시로 인해 어필이 부족합니다. 더 많은 물고기를 잡으려면 다른 곳에 낚싯대를 던져보세요. 적어도 {0} 블록 이상 떨어진 곳에서 낚시하세요.
|
||||
Fishing.Scared=&7&o물고기를 놀라게 하는 불규칙한 움직임입니다!
|
||||
Fishing.Exhausting=&c&o낚싯대를 부적절하게 사용하면 피로가 쌓이고 낚싯대가 닳아버립니다!
|
||||
Fishing.LowResourcesTip=&7이 지역에는 물고기가 많이 남아있지 않을 것 같습니다. 적어도 {0} 블록 이상 떨어진 곳에서 낚시해보세요.
|
||||
Fishing.SubSkill.TreasureHunter.Stat=보물 사냥꾼 랭크: &a{0}&3/&a{1}
|
||||
Fishing.SubSkill.TreasureHunter.Stat.Extra=드롭 비율: &7일반: &e{0} &a희귀: &e{1}\n&9레어: &e{2} &d에픽: &e{3} &6레전드리: &e{4} &b신화: &e{5}
|
||||
Fishing.SubSkill.MagicHunter.Stat=매직 헌터 확률
|
||||
Fishing.SubSkill.Shake.Stat=흔들기 확률
|
||||
Fishing.SubSkill.FishermansDiet.Stat=어부의 다이어트: &a랭크 {0}
|
||||
Fishing.SubSkill.MasterAngler.Description=어부가 더 자주 물고기를 잡습니다. 보트에서 낚시할 때 더 잘 작동합니다.
|
||||
Fishing.SubSkill.MasterAngler.Stat=낚시 최소 대기 시간 감소: &a-{0} 초
|
||||
Fishing.SubSkill.MasterAngler.Stat.Extra=낚시 최대 대기 시간 감소: &a-{0} 초
|
||||
Fishing.SubSkill.IceFishing.Stat=얼음 낚시
|
||||
|
||||
#HERBALISM
|
||||
Herbalism.Ability.DoubleDropChance=2배 드롭 확률: &e{0}
|
||||
@ -151,23 +310,23 @@ Herbalism.Ability.GTh.Chance=재배의 재능 확률: &e{0}
|
||||
Herbalism.Ability.GTh.Fail=**재배의 재능 실패**
|
||||
Herbalism.Ability.GTh.Stage=재배의 재능 단계: &e 작물 재배 {0}단계
|
||||
Herbalism.Ability.GTh=&a**재배의 재능**
|
||||
Herbalism.Ability.HylianLuck=하일리안의 행운 확률: &e{0}
|
||||
Herbalism.Ability.HylianLuck=하이랄인의 행운 확률: &e{0}
|
||||
Herbalism.Ability.Lower=&7**호미 준비 해제**
|
||||
Herbalism.Ability.Ready=&a**호미 준비 완료**
|
||||
Herbalism.Ability.ShroomThumb.Chance=버섯재배자의 숨결 확률: &e{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=**버섯재배자의 숨결 실패**
|
||||
Herbalism.SubSkill.GreenTerra.Name=재배의 대지 (능력)
|
||||
Herbalism.SubSkill.GreenTerra.Description=대지 뿌리기, 드롭 3배
|
||||
Herbalism.SubSkill.GreenTerra.Description=대지 뿌리기, 드롭 3배, 재배의 재능 부스트
|
||||
Herbalism.SubSkill.GreenThumb.Name=재배의 재능 (밀)
|
||||
Herbalism.SubSkill.GreenThumb.Description=수확시 자동 씨 심기
|
||||
Herbalism.Effect.4=재배의 재능 (블록들)
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=이끼낀 블록 만들기, 잔디 자라게하기
|
||||
Herbalism.SubSkill.GreenThumb.Description.2=이끼 낀 블록 만들기, 잔디 자라게 하기
|
||||
Herbalism.SubSkill.FarmersDiet.Name=농부의 다이어트
|
||||
Herbalism.SubSkill.FarmersDiet.Description=농작물 배고품 회복 향상
|
||||
Herbalism.SubSkill.DoubleDrops.Name=2배 드롭 (모든 작물)
|
||||
Herbalism.SubSkill.DoubleDrops.Description=항상 드롭 2배
|
||||
Herbalism.SubSkill.HylianLuck.Name=하일리안의 행운
|
||||
Herbalism.SubSkill.HylianLuck.Description=적은 확률로 레어아이템 얻음
|
||||
Herbalism.SubSkill.HylianLuck.Name=하이랄인의 행운
|
||||
Herbalism.SubSkill.HylianLuck.Description=적은 확률로 레어 아이템 얻음
|
||||
Herbalism.SubSkill.ShroomThumb.Name=버섯재배자의 숨결
|
||||
Herbalism.SubSkill.ShroomThumb.Description=흙 & 잔디에 균사체 살포
|
||||
Herbalism.HylianLuck=&a하이랄의 행운이 오늘 너에게 따르는구나!
|
||||
@ -179,6 +338,13 @@ Herbalism.Skills.GTe.Refresh=&a당신의 &e재배의 대지 &a기술은 이제
|
||||
Herbalism.Skills.GTe.Other.Off={0}&2님은 &c재배의 대지를 사용했습니다!
|
||||
Herbalism.Skills.GTe.Other.On=&a{0}&2님은 &c재배의 대지를 사용했습니다!
|
||||
Herbalism.Skillup=약초학 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Herbalism.SubSkill.GreenTerra.Stat=재배의 대지 지속 시간
|
||||
Herbalism.SubSkill.GreenThumb.Stat=재배의 재능 확률
|
||||
Herbalism.SubSkill.GreenThumb.Stat.Extra=재배의 재능 단계: &a작물이 {0} 단계로 자라납니다
|
||||
Herbalism.SubSkill.FarmersDiet.Stat=농부의 다이어트: &a랭크 {0}
|
||||
Herbalism.SubSkill.DoubleDrops.Stat=2배 드롭 확률
|
||||
Herbalism.SubSkill.HylianLuck.Stat=하이랄인의 행운 확률
|
||||
Herbalism.SubSkill.ShroomThumb.Stat=버섯재배자의 숨결 확률
|
||||
|
||||
#MINING
|
||||
Mining.Ability.Length=파괴자 지속시간: &e{0}s
|
||||
@ -207,8 +373,13 @@ Mining.Skills.SuperBreaker.Other.Off={0}&2님은 &c파괴자를 사용했습니
|
||||
Mining.Skills.SuperBreaker.Other.On=&a{0}&2님은 &c파괴자를 사용했습니다!
|
||||
Mining.Skills.SuperBreaker.Refresh=&a당신의 &e파괴자는 &a이제 사용 가능합니다!
|
||||
Mining.Skillup=채광 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Mining.SubSkill.SuperBreaker.Stat=파괴자 지속 시간
|
||||
Mining.SubSkill.DoubleDrops.Stat=드롭 2배 확률
|
||||
Mining.SubSkill.BlastMining.Stat=폭발 채광: &a랭크 {0}/{1} &7({2})
|
||||
Mining.SubSkill.BlastMining.Stat.Extra=폭발 범위 증가: &a+{0}
|
||||
Mining.SubSkill.DemolitionsExpertise.Stat=전문 폭파 피해 감소
|
||||
|
||||
#Blast Mining
|
||||
#폭발 채굴
|
||||
Mining.Blast.Boom=&7**폭발**
|
||||
Mining.Blast.Effect=+{0} 광물 이익, {1}x 드롭
|
||||
Mining.Blast.Radius.Increase=폭발 반경 증가: &e+{0}
|
||||
@ -249,6 +420,10 @@ Repair.Skills.StackedItems=&4한번에 많은 아이템을 수리할 수 없습
|
||||
Repair.Skills.Super.Chance=슈퍼 수리 확률: &e{0}
|
||||
Repair.Skillup=수리 기술이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Repair.Pretty.Name=수리
|
||||
Repair.SubSkill.RepairMastery.Stat=수리 마스터리: &a추가 {0} 내구성 복구
|
||||
Repair.SubSkill.SuperRepair.Stat=슈퍼 수리 확률
|
||||
Repair.SubSkill.ArcaneForging.Stat=인챈트 아이템 수리: &e랭크 {0}/{1}
|
||||
Repair.SubSkill.ArcaneForging.Stat.Extra=&3인챈트 아이템 수리 확률:&7 성공 &a{0}&7%, 실패 &c{1}&7%
|
||||
|
||||
#Arcane Forging
|
||||
Repair.Arcane.Chance.Downgrade=&7인챈트 수리 격하 확률: &e{0}%
|
||||
@ -263,8 +438,6 @@ Repair.Arcane.Rank=인챈트 수리: &e{0}/{1}랭크
|
||||
Salvage.Pretty.Name=회수
|
||||
Salvage.SubSkill.AdvancedSalvage.Name=전문적인 회수
|
||||
Salvage.SubSkill.AdvancedSalvage.Description=손상된 아이템 회수
|
||||
Salvage.SubSkill.ArcaneSalvaging.Name=신비로운 회수
|
||||
Salvage.SubSkill.ArcaneSalvaging.Description=아이템의 인챈트 추출
|
||||
Salvage.Ability.Locked.0={0} 레벨 때 기술해제 (전문적인 회수)
|
||||
Salvage.Ability.Bonus.0=전문적인 회수
|
||||
Salvage.Ability.Bonus.1=부셔진 아이템의 최대 추출량 {0}
|
||||
@ -281,6 +454,21 @@ Salvage.Skills.ArcaneSuccess=&a당신은 이 아이템의 모든 지식을 추
|
||||
Salvage.Listener.Anvil=&4당신은 회수 모루를 놓았습니다, 도구나 방어구 회수에 쓰입니다.
|
||||
Salvage.Listener=회수(SALVAGE):
|
||||
Salvage.SkillName=회수
|
||||
Salvage.Pretty.Name=Salvage
|
||||
Salvage.SubSkill.UnderstandingTheArt.Name=예술의 이해
|
||||
Salvage.SubSkill.UnderstandingTheArt.Description=이웃의 쓰레기를 뒤지는 것뿐만 아니라 환경을 보호하는 것입니다.\n회수의 다양한 속성을 강화합니다.
|
||||
Salvage.SubSkill.ScrapCollector.Name=폐기물 수집가
|
||||
Salvage.SubSkill.ScrapCollector.Description=아이템에서 재료를 회수하며, 완벽한 회수는 기술과 운에 달려 있습니다.
|
||||
Salvage.SubSkill.ScrapCollector.Stat=폐기물 수집가: &a최대 &e{0}&a개의 아이템을 회수합니다. 운이 조금 관여됩니다.
|
||||
Salvage.SubSkill.ArcaneSalvage.Name=신비로운 회수
|
||||
Salvage.SubSkill.ArcaneSalvage.Description=아이템에서 인챈트 추출
|
||||
Salvage.SubSkill.ArcaneSalvage.Stat=신비로운 회수: &e랭크 {0}/{1}
|
||||
Salvage.Skills.Lottery.Normal=&6{1}&6에서 &3{0}&6개의 재료를 회수했습니다.
|
||||
Salvage.Skills.Lottery.Perfect=&a&l완벽합니다!&r&6{1}&6에서 수고 없이 &3{0}&6개의 재료를 회수했습니다.
|
||||
Salvage.Skills.Lottery.Untrained=&7회수에 적절하게 훈련되지 않았습니다. {1}&7에서는 &c{0}&7개의 재료만 회수할 수 있었습니다.
|
||||
|
||||
#Anvil (Shared between SALVAGE and REPAIR)
|
||||
Anvil.Unbreakable=이 아이템은 Unbreakable입니다!
|
||||
|
||||
#SWORDS
|
||||
Swords.Ability.Lower=&7**검 준비 해제**
|
||||
@ -312,6 +500,21 @@ Swords.Skills.SS.Other.Off={0}&2님은 &c톱날 공격 스킬을 사용 해제
|
||||
Swords.Skills.SS.Other.On=&a{0}&2님은 &c톱날 공격 스킬을 사용했습니다!
|
||||
Swords.Skillup=검술 스킬이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Swords.SS.Length=톱날 공격 지속시간: &e{0}초
|
||||
Swords.Combat.Rupture.Note.Update.One=&7(파열 노트): 주기적인 피해는 치명적이지 않으며 초당 두 번 발생하며 방어구를 무시합니다.
|
||||
Swords.SubSkill.CounterAttack.Stat=반격 확률
|
||||
Swords.SubSkill.SerratedStrikes.Stat=톱날 공격 지속시간
|
||||
Swords.SubSkill.Rupture.Name=파열
|
||||
Swords.SubSkill.Rupture.Description=폭발적으로 끝나는 지속 피해 효과
|
||||
Swords.SubSkill.Stab.Name=찌르기
|
||||
Swords.SubSkill.Stab.Description=공격에 추가 피해를 줍니다.
|
||||
Swords.SubSkill.Stab.Stat=찌르기 피해
|
||||
Swords.SubSkill.SwordsLimitBreak.Name=검 한계 돌파
|
||||
Swords.SubSkill.SwordsLimitBreak.Description=한계를 깨는 것. 강력한 상대에 대한 추가 피해. PVP를 위해 설계되었으며, PVE에서 피해 증가 여부는 서버 설정에 따릅니다.
|
||||
Swords.SubSkill.SwordsLimitBreak.Stat=한계 돌파 최대 피해
|
||||
Swords.SubSkill.Rupture.Stat=파열 확률
|
||||
Swords.SubSkill.Rupture.Stat.Extra=[[DARK_AQUA]]파열 지속 시간: &e{0}초&a (플레이어), &e{1}초&a (몹).
|
||||
Swords.SubSkill.Rupture.Stat.TickDamage=[[DARK_AQUA]]파열 순수 틱 피해: &e{0}&a (플레이어), &e{1}&a (몹).
|
||||
Swords.SubSkill.Rupture.Stat.ExplosionDamage=[[DARK_AQUA]]파열 폭발 피해: &e{0}&a (플레이어), &e{1}&a (몹).
|
||||
|
||||
#TAMING
|
||||
Taming.Ability.Bonus.0=환경 인식
|
||||
@ -335,9 +538,9 @@ Taming.Ability.Locked.5={0}레벨 때 스킬해제 (신성한 사냥개)
|
||||
Taming.Combat.Chance.Gore=돌진 확률: &e{0}
|
||||
Taming.SubSkill.BeastLore.Name=짐승의 포효
|
||||
Taming.SubSkill.BeastLore.Description=뼈로 늑대/오셀롯 검사
|
||||
Taming.SubSkill.ShockProof.Name=충격 증명
|
||||
Taming.SubSkill.ShockProof.Name=충격 방지
|
||||
Taming.SubSkill.ShockProof.Description=폭발 피해 절감
|
||||
Taming.SubSkill.CallOfTheWild.Name=짐승의 포효
|
||||
Taming.SubSkill.CallOfTheWild.Name=야생의 포효
|
||||
Taming.SubSkill.CallOfTheWild.Description=옆에 동물 소환
|
||||
Taming.SubSkill.CallOfTheWild.Description.2=&7COTW (오셀롯): 쭈그리면서 물고기를 들고 {0}번 좌 클릭
|
||||
Taming.Effect.15=&7COTW (늑대): 쭈그리면서 뼈를 들고 {0}번 좌 클릭
|
||||
@ -362,7 +565,17 @@ Taming.Summon.Complete=&a소환 완료
|
||||
Taming.Summon.Fail.Ocelot=당신 근처에 이미 많은 오셀롯이 있어 더는 소환시킬 수 없습니다.
|
||||
Taming.Summon.Fail.Wolf=당신 근처에 이미 많은 늑대가 있어 더는 소환시킬 수 없습니다.
|
||||
Taming.Summon.Fail.Horse=당신 근처에 이미 많은 말이 있어 더는 소환시킬 수 없습니다.
|
||||
Taming.Summon.Name.Format={0}의 {1}
|
||||
Taming.SubSkill.Pummel.Name=퍼멜
|
||||
Taming.SubSkill.Pummel.Description=당신의 늑대는 상대방을 넉백시킬 확률이 있습니다.
|
||||
Taming.SubSkill.Pummel.TargetMessage=늑대에 의해 넉백당했습니다!
|
||||
Taming.Summon.COTW.Success.WithoutLifespan=&a(Call Of The Wild) &7당신은 &6{0}&7을 소환했습니다.
|
||||
Taming.Summon.COTW.Success.WithLifespan=&a(Call Of The Wild) &7당신은 &6{0}&7을 소환했으며, 지속 시간은 &6{1}&7초입니다.
|
||||
Taming.Summon.COTW.Limit=&a(Call Of The Wild) &7동시에 소환할 수 있는 애완동물은 최대 &c{0}마리&7입니다.
|
||||
Taming.Summon.COTW.TimeExpired=&a(Call Of The Wild) &7시간이 지났습니다. 당신의 &6{0}&7이(가) 떠납니다.
|
||||
Taming.Summon.COTW.Removed=&a(Call Of The Wild) &7소환된 &6{0}&7이(가) 이 세상에서 사라졌습니다.
|
||||
Taming.Summon.COTW.BreedingDisallowed=&a(Call Of The Wild) &c소환된 동물은 번식할 수 없습니다.
|
||||
Taming.Summon.COTW.NeedMoreItems=&a(Call Of The Wild) &7더 필요한 아이템은 &e{0}&7개의 &3{1}&7입니다.
|
||||
Taming.Summon.Name.Format=&6(COTW) &f{0}의 {1}
|
||||
|
||||
#UNARMED
|
||||
Unarmed.Ability.Berserk.Length=버서커 지속시간: &e{0}초
|
||||
@ -393,13 +606,24 @@ Unarmed.Skills.Berserk.Other.Off={0}&2님은 &c버서커를 사용했습니다!
|
||||
Unarmed.Skills.Berserk.Other.On=&a{0}&2님은 &c버서커를 사용합니다!
|
||||
Unarmed.Skills.Berserk.Refresh=&a당신의 &e버서커 &a스킬은 이제 사용 가능합니다!
|
||||
Unarmed.Skillup=비무장 스킬이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Unarmed.SubSkill.Berserk.Stat=버서커 지속시간
|
||||
Unarmed.SubSkill.Disarm.Stat=비무장 확률
|
||||
Unarmed.SubSkill.UnarmedLimitBreak.Name=비무장 한계 돌파
|
||||
Unarmed.SubSkill.UnarmedLimitBreak.Description=한계를 깨는 것. 강한 상대에 대한 향상된 피해. PVP를 위해 고안되었으며, PVE에서 피해 증가 여부는 서버 설정에 따라 다릅니다.
|
||||
Unarmed.SubSkill.UnarmedLimitBreak.Stat=한계 돌파 최대 피해
|
||||
Unarmed.SubSkill.SteelArmStyle.Name=강철 팔 형태
|
||||
Unarmed.SubSkill.SteelArmStyle.Description=견고해지는 팔
|
||||
Unarmed.SubSkill.ArrowDeflect.Stat=화살 회피 확률
|
||||
Unarmed.SubSkill.IronGrip.Stat=강철 주먹 확률
|
||||
Unarmed.SubSkill.BlockCracker.Name=블록 크래커
|
||||
Unarmed.SubSkill.BlockCracker.Description=주먹으로 바위 부수기
|
||||
|
||||
#WOODCUTTING
|
||||
Woodcutting.Ability.0=나뭇잎 떨어트리기
|
||||
Woodcutting.Ability.1=나뭇잎 청소
|
||||
Woodcutting.Ability.Chance.DDrop=드롭 2배 확률: &e{0}
|
||||
Woodcutting.Ability.Length=나무꾼 지속시간: &e{0}초
|
||||
Woodcutting.Ability.Locked.0={0}레벨 때 스킬이 해제됩니다 (나뭇잎 바람)
|
||||
Woodcutting.Ability.Locked.0={0}레벨 때 스킬이 해제됩니다 (나뭇잎 떨어트리기)
|
||||
Woodcutting.SubSkill.TreeFeller.Name=나무꾼 (능력)
|
||||
Woodcutting.SubSkill.TreeFeller.Description=나무 폭발시키기
|
||||
Woodcutting.SubSkill.LeafBlower.Name=나뭇잎 떨어트리기
|
||||
@ -416,12 +640,21 @@ Woodcutting.Skills.TreeFeller.Other.On=&a{0}&2님은 &c나무꾼 스킬을 사
|
||||
Woodcutting.Skills.TreeFeller.Splinter=도끼 파편 조각 수집!
|
||||
Woodcutting.Skills.TreeFeller.Threshold=그 나무는 너무 큽니다!
|
||||
Woodcutting.Skillup=벌목 스킬이 {0} 올라 총 {1} 레벨이 되었습니다
|
||||
Woodcutting.SubSkill.TreeFeller.Stat=나무꾼 지속시간
|
||||
Woodcutting.SubSkill.KnockOnWood.Name=나무 두드리기
|
||||
Woodcutting.SubSkill.KnockOnWood.Description=나무꾼을 사용할 때 추가 아이템을 찾을 수 있습니다.
|
||||
Woodcutting.SubSkill.KnockOnWood.Stat=나무 두드리기
|
||||
Woodcutting.SubSkill.KnockOnWood.Loot.Normal=나무에서 일반적인 아이템 획득
|
||||
Woodcutting.SubSkill.KnockOnWood.Loot.Rank2=나무에서 일반적인 아이템과 경험치 오브 획득
|
||||
Woodcutting.SubSkill.HarvestLumber.Stat=드롭 2배 확률
|
||||
Woodcutting.SubSkill.Splinter.Name=파편
|
||||
Woodcutting.SubSkill.Splinter.Description=나무를 더 효율적으로 베어내세요.
|
||||
Woodcutting.SubSkill.BarkSurgeon.Name=나무 껍질 수술
|
||||
Woodcutting.SubSkill.BarkSurgeon.Description=나무 껍질을 벗길 때 유용한 재료를 추출하세요.
|
||||
Woodcutting.SubSkill.NaturesBounty.Name=자연의 풍요
|
||||
Woodcutting.SubSkill.NaturesBounty.Description=자연에서 경험치를 모으세요.
|
||||
|
||||
#ABILITIY
|
||||
##generic
|
||||
Ability.Generic.Refresh=&a**능력이 재 공급 되었습니다!**
|
||||
Ability.Generic.Template.Lock=&7{0}
|
||||
Ability.Generic.Template=&6{0}: &3{1}
|
||||
|
||||
#COMBAT
|
||||
Combat.ArrowDeflect=&f**화살 회피**
|
||||
@ -432,10 +665,13 @@ Combat.Gore=&a**돌진**
|
||||
Combat.StruckByGore=**돌진에 맞았습니다**
|
||||
Combat.TargetDazed=목표가 &4혼란스러워합니다
|
||||
Combat.TouchedFuzzy=&4혼란이 일어났습니다. 아~ 어지러워.
|
||||
Combat.BeastLoreHorseSpeed=&3말 이동 속도 (&a{0} 블록/초&3)
|
||||
Combat.BeastLoreHorseJumpStrength=&3말 점프 강도 (&a최대 {0} 블록&3)
|
||||
|
||||
#COMMANDS
|
||||
##generic
|
||||
mcMMO.Description=mcMMO&3 프로젝트에 대해서:,&6mcMMO는 한 &c오픈 소스&6 RPG 모드로 2011년 2월에 &9nossr50&6님이 만들었습니다. 목표는 질좋은 RPG 경험을 제공하는 것 입니다.,&3팁:,&6 - &c/mcmmo help&a 명령어들을 봅니다,&6 - &a타입 &c/스킬이름&a 자세한 스킬 정보를 봅니다,&3개발자들:,&6 - &anossr50 &9(제작자),&6 - &aGJ &9(프로젝트 주장),&6 - &aNuclearW &9(개발자),&6 - &abm01 &9(개발자),&6 - &aTfT_02 &9(개발자),&6 - &aGlitchfinder &9(개발자),&6 - &at00thpick1 &9(개발자),&3유용한 링크:,&6 - &ahttps://github.com/mcMMO-Dev/mcMMO/issues&6 버그 보고,&6 - &a#mcmmo @ irc.esper.net&6 IRC 채팅,
|
||||
mcMMO.Description.FormerDevs=&3이전 개발자: &aGJ, NuclearW, bm01, TfT_02, Glitchfinder
|
||||
Commands.addlevels.AwardAll.1=&a당신은 모든 스킬에 {0} 레벨을 지급했습니다!
|
||||
Commands.addlevels.AwardAll.2=모든 스킬이 {0}로 변경되었습니다
|
||||
Commands.addlevels.AwardSkill.1=&a당신은 {0} 레벨을 {1}에 지급하였습니다!
|
||||
@ -453,12 +689,17 @@ Commands.Cooldowns.Header=&6--= &amcMMO 능력 재 사용 대기시간&6 =--
|
||||
Commands.Cooldowns.Row.N=\ &c{0}&f - &6{1}초 남음
|
||||
Commands.Cooldowns.Row.Y=\ &b{0}&f - &2준비!
|
||||
Commands.Database.Cooldown=이 명령어를 다시 치기전에 1초를 기달려야만 합니다.
|
||||
Commands.Database.Processing=당신의 이전 명령어는 여전히 작업중입니다. 기다려주세요.
|
||||
Commands.Database.Processing=당신의 이전 명령어가 여전히 실행 중입니다. 기다려주세요.
|
||||
Commands.Database.CooldownMS=이 명령어를 다시 사용하기 전에 {0} 밀리초를 기다려야 합니다.
|
||||
Commands.Disabled=이 명령어는 비활성화 되있습니다.
|
||||
Commands.DoesNotExist= &c플레이어는 데이터베이스에 존재하지 않습니다!
|
||||
Commands.DoesNotExist= &c플레이어가 데이터베이스에 존재하지 않습니다!
|
||||
Commands.AdminChatSpy.Enabled=mcMMO 파티 채팅 감시가 활성화되었습니다.
|
||||
Commands.AdminChatSpy.Disabled=mcMMO 파티 채팅 감시가 비활성화되었습니다.
|
||||
Commands.AdminChatSpy.Toggle=mcMMO 파티 채팅 감시가 &e{0}&6님에 의해 토글되었습니다.
|
||||
Commands.AdminChatSpy.Chat=&6[감시: &a{0}&6] &f{1}
|
||||
Commands.GodMode.Disabled=mcMMO 불사신 모드 비활성화
|
||||
Commands.GodMode.Enabled=mcMMO 불사신 모드 활성화
|
||||
Commands.GodMode.Forbidden=[mcMMO] 이 월드에서 불사신 모드는 허용 금지입니다 (펄미선 확인)
|
||||
Commands.GodMode.Forbidden=[mcMMO] 이 월드에서 불사신 모드는 허용 금지입니다 (펄미션을 확인하세요)
|
||||
Commands.GodMode.Toggle=불사신 모드는 &e{0}&f(으)로 전환되었습니다
|
||||
Commands.Healthbars.Changed.HEARTS=[mcMMO] 당신의 체력바 보기 방식은 &c하트&f로 변경되었습니다.
|
||||
Commands.Healthbars.Changed.BAR=[mcMMO] 당신의 체력바 보기 방식은 &e박스&f로 변경되었습니다.
|
||||
@ -497,7 +738,7 @@ Commands.NoConsole=이 명령어는 콘솔에서의 사용을 지원하지 않
|
||||
Commands.Notifications.Off=능력 알림이 &c켜졌습니다
|
||||
Commands.Notifications.On=능력 알림이 &a꺼졌습니다
|
||||
Commands.Offline=이 명령어는 오프라인 플레이어에게 동작하지 않습니다.
|
||||
Commands.NotLoaded=플레이어 프로파일은 불러와지지 않았습니다Player profile is not loaded yet.
|
||||
Commands.NotLoaded=플레이어 프로파일을 아직 불러오지 못했습니다.
|
||||
Commands.Other=---[]&a기타 명령어&c[]---
|
||||
Commands.Party.Header=-----[]&a파티&c[]-----
|
||||
Commands.Party.Features.Header=-----[]&a특징&c[]-----
|
||||
@ -568,6 +809,7 @@ Commands.Scoreboard.Help.3=&3/mcscoreboard&b time [n] &f - McMMO 점수판을 &d
|
||||
Commands.Scoreboard.Tip.Keep=&6팁: &c/mcscoreboard keep&6 점수판을 보이게 항상 유지.
|
||||
Commands.Scoreboard.Tip.Clear=&6팁: &c/mcscoreboard clear&6 점수판 감춤.
|
||||
Commands.Skill.Invalid=잘못된 스킬 이름 입니다!
|
||||
Commands.Skill.ChildSkill=이 명령어에는 부가 스킬을 사용할 수 없습니다!
|
||||
Commands.Skill.Leaderboard=--mcMMO &9{0}&e 점수표--
|
||||
Commands.SkillInfo=&a- 스킬에 대한 자세한 정보를 봅니다
|
||||
Commands.Stats.Self=당신의 통계
|
||||
@ -577,6 +819,7 @@ Commands.Usage.0=올바른 사용법 /{0}
|
||||
Commands.Usage.1=올바른 사용법 /{0} {1}
|
||||
Commands.Usage.2=올바른 사용법 /{0} {1} {2}
|
||||
Commands.Usage.3=올바른 사용법 /{0} {1} {2} {3}
|
||||
Commands.Usage.3.XP=&c올바른 사용법은 /{0} {1} {2} {3}&7입니다 (명령어를 실행한 플레이어에게 알리지 않고 실행하려면 끝에 -s를 포함시킬 수 있습니다)
|
||||
Commands.Usage.FullClassName=클레스이름
|
||||
Commands.Usage.Level=레벨
|
||||
Commands.Usage.Message=메세지
|
||||
@ -586,13 +829,28 @@ Commands.Usage.Password=비밀번호
|
||||
Commands.Usage.Player=플레이어
|
||||
Commands.Usage.Rate=배율
|
||||
Commands.Usage.Skill=스킬
|
||||
Commands.Usage.SubSkill=부가 스킬
|
||||
Commands.Usage.XP=xp
|
||||
Commands.XPBar.Reset=&6mcMMO의 XP 바 설정이 초기화되었습니다.
|
||||
Commands.XPBar.SettingChanged=&6{0}&6의 XP 바 설정이 &a{1}&6로 변경되었습니다.
|
||||
Commands.Description.mmoinfo=스킬 또는 메커니즘에 대한 자세한 정보를 읽습니다.
|
||||
Commands.MmoInfo.Mystery=&7아직 이 스킬을 해금하지 않았지만, 해금하면 여기에서 자세한 정보를 읽을 수 있습니다!
|
||||
Commands.MmoInfo.NoMatch=해당 부가 스킬이 존재하지 않습니다!
|
||||
Commands.MmoInfo.Header=&3-=[]=====[]&6 MMO 정보 &3[]=====[]=-
|
||||
Commands.MmoInfo.SubSkillHeader=&6이름:&e {0}
|
||||
Commands.MmoInfo.DetailsHeader=&3-=[]=====[]&a 자세한 내용 &3[]=====[]=-
|
||||
Commands.MmoInfo.OldSkill=&7mcMMO 스킬은 개선된 모듈식 스킬 시스템으로 변환되고 있습니다. 불행히도 이 스킬은 아직 변환되지 않았으며 자세한 통계가 없습니다. 새로운 시스템은 새로운 mcMMO 스킬을 더 빠르게 출시하고 기존 스킬에 대한 유연성을 높일 수 있게 해줍니다.
|
||||
Commands.MmoInfo.Mechanics=&3-=[]=====[]&6 메커니즘 &3[]=====[]=-
|
||||
Commands.MmoInfo.Stats=통계: {0}
|
||||
Commands.Mmodebug.Toggle=mcMMO 디버그 모드가 &6{0}&7되었습니다. 디버그 모드를 활성화하면 지원을 위해 유용한 정보를 얻기 위해 블록을 클릭할 수 있습니다.
|
||||
mcMMO.NoInvites=이 시간에 당신은 초대하지 못합니다
|
||||
mcMMO.NoPermission=&4권한이 부족합니다.
|
||||
mcMMO.NoSkillNote=&8만약 당신이 스킬을 사용할 수 없다면 여기에 표시되지 않습니다.
|
||||
|
||||
|
||||
|
||||
##party
|
||||
Party.Forbidden=[mcMMO] 이 월드에서 파티를 하실 수 없습니다 (펄미선 확인)
|
||||
Party.Forbidden=[mcMMO] 이 월드에서 파티를 하실 수 없습니다 (펄미션을 확인하세요)
|
||||
Party.Help.0=올바른 사용법 &3{0} <플레이어> [비밀번호].
|
||||
Party.Help.1=파티를 만들려면, &3{0} <이름> [비밀번호].
|
||||
Party.Help.2=파티 정보를 볼려면 &3{0}
|
||||
@ -694,14 +952,22 @@ Commands.xprate.proper.2=이것은 XP 이벤트인지 아닌지 true 또는 fals
|
||||
Commands.xprate.started.0=&6mcMMO 경험치 이벤트가 시작되었습니다!
|
||||
Commands.xprate.started.1=&6mcMMO 경험치 배율은 {0}배 입니다!
|
||||
XPRate.Event= &6mcMMO 는 현재 경험치 이벤트 중입니다! 경험치는 {0}배 입니다!
|
||||
Commands.NegativeNumberWarn=마이너스 숫자는 허용되지 않습니다!
|
||||
Commands.Event.Start=&amcMMO&6 이벤트 시작!
|
||||
Commands.Event.Stop=&amcMMO&3 이벤트 종료!
|
||||
Commands.Event.Stop.Subtitle=&a즐거운 시간이었기를 바랍니다!
|
||||
Commands.Event.XP=&3XP 배율이 이제 &6{0}&3배입니다
|
||||
Commands.xprate.started.0=&6mcMMO XP 이벤트가 시작되었습니다!
|
||||
Commands.xprate.started.1=&6mcMMO XP 배율은 이제 {0}배입니다!
|
||||
|
||||
#EFFECTS
|
||||
##generic
|
||||
Effects.Effects=효과
|
||||
Effects.Child=&8LVL: &a{0}
|
||||
Effects.Level=&8LVL: &a{0} &3XP&e(&6{1}&e/&6{2}&e)
|
||||
Effects.Parent= &6{0} -
|
||||
Effects.Template=&3{0}: &a{1}
|
||||
# Admin Notifications
|
||||
Server.ConsoleName=&e[서버]
|
||||
Notifications.Admin.XPRate.Start.Self=&7전체 XP 배율을 &6{0}배로 설정했습니다.
|
||||
Notifications.Admin.XPRate.End.Self=&7XP 배율 이벤트를 종료했습니다.
|
||||
Notifications.Admin.XPRate.End.Others={0} &7님이 XP 배율 이벤트를 종료했습니다.
|
||||
Notifications.Admin.XPRate.Start.Others={0} &7님이 전체 XP 배율 {1}배로 이벤트를 시작 또는 수정했습니다.
|
||||
Notifications.Admin.Format.Others=&6(&amcMMO &3관리자&6) &7{0}
|
||||
Notifications.Admin.Format.Self=&6(&amcMMO&6) &7{0}
|
||||
|
||||
#GUIDES
|
||||
Guides.Available=&7{0} 가이드가 있습니다 - 타입 /{1} ? [페이지]
|
||||
@ -711,148 +977,153 @@ Guides.Page.OutOfRange=그 페이지는 존재하지 않습니다, 오직 총 {0
|
||||
Guides.Usage= 사용법 /{0} ? [페이지]
|
||||
|
||||
##Acrobatics
|
||||
Guides.Acrobatics.Section.0=&3곡예에 대하여:\n&e곡예는 mcMMO의 우와하게 움직이는 예술입니다.\n&e전투 특혜와 환경 손상 특혜를 증가시킵니다.\n\n&3XP 얻기:\n&e이 스킬의 XP를 얻을려면 전투나 생존에서 피해를 \n&e입는 낙하에서 착지 행동이 요구됩니다.
|
||||
Guides.Acrobatics.Section.1=&3어떻게 구르기를 하나요?\n&e당신이 낙하 피해를 받을 때 피해를 무효화할\n&e지속적인 기회를 가지게 됩니다. 쭈구리기 버튼을 누르고 있으면\n&e떨어지는 동안 두배의 기회를 가지게 됩니다.\n&eThis triggers a Graceful Roll instead of a standard one.\n&eGraceful Rolls are like regular rolls but are twice as likely to\n&eoccur and provide more damage safety than regular rolls.\n&eRolling chance is tied to your skill level
|
||||
Guides.Acrobatics.Section.0=&3곡예에 대하여:\n&e곡예는 mcMMO의 우아하게 움직이는 예술입니다.\n&e전투 특혜와 환경 손상 특혜를 증가시킵니다.\n\n&3XP 얻기:\n&e이 스킬의 XP를 얻을려면 전투나 생존에서 피해를 \n&e입는 낙하에서 착지 행동이 요구됩니다.
|
||||
Guides.Acrobatics.Section.1=&3어떻게 구르기를 하나요?\n&e당신이 낙하 피해를 받을 때 피해를 무효화할\n&e지속적인 기회를 가지게 됩니다. 웅크리기 키를 누르고 있으면\n&e떨어지는 동안 두 배의 기회를 가지게 됩니다.\n&e이는 일반 구르기 대신 우아한 구르기를 발동시킵니다.\n&e우아한 구르기는 일반 구르기보다 두 배 더 자주 발동되며\n&e일반 구르기보다 더 많은 피해 방어를 제공합니다.\n&e구르기 확률은 스킬 레벨에 연결됩니다.
|
||||
Guides.Acrobatics.Section.2=&3어떻게 회피를 하나요?\n&e회피는 당신이 전투에서 상처를 입을 때 입는\n&e피해를 반감시키는 지속적인 기회입니다.\n&e이것은 당신의 스킬 레벨과 연결됩니다.
|
||||
|
||||
##Alchemy
|
||||
Guides.Alchemy.Section.0=&3About Alchemy:\n&eAlchemy is about brewing potions.\n&eIt provides a speed increase in the potion brew time, as well\n&eas the addition of new (previously) unobtainable potions.\n\n\n&3XP GAIN:\n&eTo gain XP in this skill you need to brew potions.
|
||||
Guides.Alchemy.Section.1=&3How does Catalysis work?\n&eCatalysis speeds of the brewing process, with a\n&emax speed of 4x at level 1000.\n&eThis ability is unlocked at level 100 by default.
|
||||
Guides.Alchemy.Section.2=&3How does Concoctions work?\n&eConcoctions allows brewing of more potions with custom ingredients.\n&eWhich special ingredients are unlocked is determined\n&eby your Rank. There are 8 ranks to unlock.
|
||||
Guides.Alchemy.Section.3=&3Concoctions tier 1 ingredients:\n&eBlaze Powder, Fermented Spider Eye, Ghast Tear, Redstone,\n&eGlowstone Dust, Sugar, Glistering Melon, Golden Carrot,\n&eMagma Cream, Nether Wart, Spider Eye, Suplhur, Water Lily,\n&ePufferfish\n&e(Vanilla Potions)
|
||||
Guides.Alchemy.Section.4=&3Concoctions tier 2 ingredients:\n&eCarrot (Potion of Haste)\n&eSlimeball (Potion of Dullness)\n\n&3Concoctions tier 3 ingredients:\n&eQuartz (Potion of Absorption)\n&eRed Mushroom (Potion of Leaping)
|
||||
Guides.Alchemy.Section.5=&3Concoctions tier 4 ingredients:\n&eApple (Potion of Health Boost)\n&eRotten Flesh (Potion of Hunger)\n\n&3Concoctions tier 5 ingredients:\n&eBrown Mushroom (Potion of Nausea)\n&eInk Sack (Potion of Blindness)
|
||||
Guides.Alchemy.Section.6=&3Concoctions tier 6 ingredients:\n&eFern (Potion of Saturation)\n\n&3Concoctions tier 7 ingredients:\n&ePoisonous Potato (Potion of Decay)\n\n&3Concoctions tier 8 ingredients:\n&eRegular Golden Apple (Potion of Resistance)
|
||||
Guides.Alchemy.Section.0=[[DARK_AQUA]]연금술에 대하여:\n[[YELLOW]]연금술은 물약을 양조하는 것입니다.\n[[YELLOW]]물약 양조 시간을 빠르게 하고, 이전에 얻을 수 없었던\n[[YELLOW]]새로운 물약을 추가합니다.\n\n\n[[DARK_AQUA]]XP 획득:\n[[YELLOW]]이 스킬에서 XP를 얻으려면 물약을 양조해야 합니다.
|
||||
Guides.Alchemy.Section.1=[[DARK_AQUA]]Catalysis는 어떻게 작동하나요?\n[[YELLOW]]Catalysis는 양조 과정을 가속화시키며, 최대\n[[YELLOW]]속도는 기본 설정에서 레벨 1000에서 4배입니다.\n[[YELLOW]]이 능력은 기본 설정에서 레벨 100에서 잠금 해제됩니다.
|
||||
Guides.Alchemy.Section.2=[[DARK_AQUA]]Concoctions는 어떻게 작동하나요?\n[[YELLOW]]Concoctions는 사용자 정의 재료로 더 많은 물약을 양조할 수 있게 합니다.\n[[YELLOW]]잠금 해제되는 특별한 재료는 등급에 따라 결정됩니다.\n[[YELLOW]]잠금 해제할 수 있는 등급은 총 8개입니다.
|
||||
Guides.Alchemy.Section.3=[[DARK_AQUA]]Concoctions 1단계 재료:\n[[YELLOW]]블레이즈 가루, 발효된 거미 눈, 가스트 눈물, 레드스톤,\n[[YELLOW]]발광석 가루, 설탕, 반짝이는 수박 조각, 황금 당근,\n[[YELLOW]]마그마 크림, 네더 사마귀, 거미 눈, 수플후르, 워터 릴리,\n[[YELLOW]]복어\n[[YELLOW]](바닐라 물약)
|
||||
Guides.Alchemy.Section.4=[[DARK_AQUA]]Concoctions 2단계 재료:\n[[YELLOW]]당근 (신속의 물약)\n[[YELLOW]]슬라임볼 (채굴 피로의 물약)\n\n[[DARK_AQUA]]Concoctions 3단계 재료:\n[[YELLOW]]석영 (흡수의 물약)\n[[YELLOW]]토끼 발 (도약의 물약)
|
||||
Guides.Alchemy.Section.5=[[DARK_AQUA]]Concoctions 4단계 재료:\n[[YELLOW]]사과 (생명력 강화의 물약)\n[[YELLOW]]썩은 고기 (허기의 물약)\n\n[[DARK_AQUA]]Concoctions 5단계 재료:\n[[YELLOW]]갈색 버섯 (멀미의 물약)\n[[YELLOW]]잉크 주머니 (실명의 물약)
|
||||
Guides.Alchemy.Section.6=[[DARK_AQUA]]Concoctions 6단계 재료:\n[[YELLOW]]고사리 (포화의 물약)\n\n[[DARK_AQUA]]Concoctions 7단계 재료:\n[[YELLOW]]독이 있는 감자 (부패의 물약)\n\n[[DARK_AQUA]]Concoctions 8단계 재료:\n[[YELLOW]]일반 황금 사과 (저항의 물약)
|
||||
|
||||
##Archery
|
||||
Guides.Archery.Section.0=&3궁술에 대하여:\n&e궁술은 활과 화살로 쏘는 것을 뜻합니다.\n&e궁술은 PVP에서 당신이 적을 현혹시키는 능력과\n&e레벨 크기의 데미지 부스터를 같은 것으로\n&e전투 보너스를 제공합니다. In addition to this, you can retrieve\n&esome of your spent arrows from the corpses of your foes.\n\n\n&3XP GAIN:\n&eTo gain XP in this skill you need to shoot mobs or\n&eother players.
|
||||
Guides.Archery.Section.1=&3How does Skill Shot work?\n&eSkill Shot provides additional damage to your shots.\n&eThe bonus damage from Skill Shot increases as you\n&elevel in Archery.\n&eWith the default settings, your archery damage increases 10%\n&eevery 50 levels, to a maximum of 200% bonus damage.
|
||||
Guides.Archery.Section.2=&3How does Daze work?\n&eYou have a passive chance to daze other players when\n&eyou shoot them. When Daze triggers it forces your opponents\n&eto look straight up for a short duration.\n&eA Daze shot also deals an additional 4 damage (2 hearts).
|
||||
Guides.Archery.Section.3=&3How does Arrow Retrieval work?\n&eYou have a passive chance to retrieve some of your arrows\n&ewhen you kill a mob with your bow.\n&eThis chance increases as you level in Archery.\n&eBy default, this ability increases by 0.1% per level, up to 100%\n&eat level 1000.
|
||||
Guides.Archery.Section.0=&3궁술에 대하여:\n&e궁술은 활과 화살로 사격하는 것입니다.\n&e레벨에 따라 증가하는 데미지 보너스와 PvP에서 상대를\n&e혼란시키는 능력과 같은 다양한 전투 보너스를 제공합니다.\n&e또한, 상대의 시체에서 사용한 화살을 일부 회수할 수 있습니다.\n\n\n&3XP 획득:\n&e이 스킬에서 XP를 얻으려면 몹이나 다른 플레이어를\n&e쏴서 맞춰야 합니다.
|
||||
Guides.Archery.Section.1=&3Skill Shot은 어떻게 작동하나요?\n&eSkill Shot은 사격에 추가 데미지를 제공합니다.\n&eSkill Shot의 보너스 데미지는 궁술 레벨에 따라\n&e증가합니다.\n&e기본 설정에서 Archery 레벨당 활 데미지가 50 레벨마다\n&e10% 증가하여 최대 200%의 보너스 데미지를 얻을 수 있습니다.
|
||||
Guides.Archery.Section.2=&3Daze는 어떻게 작동하나요?\n&e상대를 사격할 때 상대를 혼란시키는 확률이 있습니다.\n&eDaze가 발동되면 상대는 잠시 동안 위를 바라보게 됩니다.\n&eDaze 사격은 추가로 4의 데미지(2 하트)를 입힙니다.
|
||||
Guides.Archery.Section.3=&3Arrow Retrieval은 어떻게 작동하나요?\n&e활로 몹을 처치할 때 일부 화살을 회수할 수 있는\n&e확률이 있습니다.\n&e이 확률은 궁술 레벨에 따라 증가합니다.\n&e기본 설정에서 이 능력은 레벨당 0.1%씩 증가하여\n&e레벨 1000에서 100%까지 증가합니다.
|
||||
|
||||
##Axes
|
||||
Guides.Axes.Section.0=&3About Axes:\n&eWith the Axes skill you can use your axe for much more then\n&ejust deforesting! You can hack and chop away at mobs\n&eand players to gain XP, hitting mobs with the effect of\n&eknockback and inflicting DEADLY criticals on mobs and players.\n&eYour axe also becomes a hand-held woodchipper,\n&ebreaking down the enemy's armor with ease as your level\n&eincreases.\n&3XP GAIN:\n&eTo gain XP in this skill you need hit other mobs or players\n&ewith an Axe.
|
||||
Guides.Axes.Section.1=&3How does Skull Splitter work?\n&eThis ability allows you to deal an AoE (Area of Effect) hit.\n&eThis AoE hit will deal half as much damage as you did to the\n&emain target, so it's great for clearing out large piles of mobs.
|
||||
Guides.Axes.Section.2=&3How does Critical Strikes work?\n&eCritical Strikes is a passive ability which gives players a\n&echance to deal additional damage.\n&eWith the default settings, every 2 skill levels in Axes awards a\n&e0.1% chance to deal a Critical Strike, causing 2.0 times damage\n&eto mobs or 1.5 times damage against other players.
|
||||
Guides.Axes.Section.3=&3How does Axe Mastery work?\n&eAxe Mastery is a passive ability that will add additional damage\n&eto your hits when using Axes.\n&eBy default, the bonus damage increases by 1 every 50 levels,\n&eup to a cap of 4 extra damage at level 200.
|
||||
Guides.Axes.Section.4=&3How does Armor Impact work?\n&eStrike with enough force to shatter armor!\n&eArmor Impact has a passive chance to damage your\n&eopponent's armor. This damage increases as you level in Axes.
|
||||
Guides.Axes.Section.5=&3How does Greater Impact work?\n&eYou have a passive chance to achieve a greater impact when\n&ehitting mobs or players with your axe.\n&eBy default this chance is 25%. This passive ability has an\n&eextreme knockback effect, similar to the Knockback II\n&eenchantment. In addition, it deals bonus damage to the target.
|
||||
Guides.Axes.Section.0=&3부술에 대하여:\n&e부술 스킬을 사용하여 도끼로 나무를 베는 것 이상의 다양한 기능을 사용할 수 있습니다.\n&e부술 스킬을 사용하여 몹과 플레이어를 공격하고 경험치를 얻을 수 있으며,\n&e넉백 효과로 몹에게 치명적인 일격을 가할 수 있습니다.\n&e또한, 레벨이 올라감에 따라 적의 갑옷을 쉽게 파괴할 수 있는\n&e손에 들고 사용하는 나무 굴삭기가 됩니다.\n&3XP 획득:\n&e이 스킬에서 XP를 얻으려면 도끼로 다른 몹이나 플레이어를 공격해야 합니다.
|
||||
Guides.Axes.Section.1=&3뼈 쪼개기는 어떻게 작동하나요?\n&e이 능력을 사용하면 AoE(영역 효과) 공격을 할 수 있습니다.\n&e이 AoE 공격은 주요 대상에 가한 데미지의 절반만큼의 데미지를 입힙니다.\n&e따라서 대량의 몹을 제거하는 데에 효과적입니다.
|
||||
Guides.Axes.Section.2=&3크리티컬 히트는 어떻게 작동하나요?\n&e크리티컬 히트는 플레이어가 추가 데미지를 입힐 수 있는\n&e확률적인 능력입니다.\n&e기본 설정에서, 부술 스킬 레벨 2마다 0.1%의 확률로\n&e크리티컬 히트를 가할 수 있으며, 이로 인해 몹에게는\n&e2배의 데미지를, 다른 플레이어에게는 1.5배의 데미지를 입힙니다.
|
||||
Guides.Axes.Section.3=&3도끼 마스터리는 어떻게 작동하나요?\n&e도끼 마스터리는 액스를 사용할 때 공격에 추가 데미지를\n&e줍니다.\n&e기본 설정에서, 보너스 데미지는 레벨당 50마다 1씩 증가하며,\n&e레벨 200에서 최대 4의 추가 데미지를 얻을 수 있습니다.
|
||||
Guides.Axes.Section.4=&3갑옷 충격는 어떻게 작동하나요?\n&e강력한 힘으로 갑옷을 파괴하세요!\n&e갑옷 충격는 상대의 갑옷을 손상시킬 확률이 있습니다.\n&e이 확률은 부술 스킬 레벨이 올라감에 따라 증가합니다.
|
||||
Guides.Axes.Section.5=&3엄청난 충격는 어떻게 작동하나요?\n&e부술 스킬로 몹이나 플레이어를 공격할 때\n&e더 큰 영향을 줄 확률이 있습니다.\n&e기본 설정에서 이 확률은 25%입니다.\n&e이 패시브 능력은 넉백 II 마법과 유사한\n&e인챈트 효과를 가지며, 대상에게 추가 데미지를 입힙니다.
|
||||
|
||||
##Excavation
|
||||
Guides.Excavation.Section.0=&3About Excavation:\n&eExcavation is the act of digging up dirt to find treasures.\n&eBy excavating the land you will find treasures.\n&eThe more you do this the more treasures you can find.\n\n&3XP GAIN:\n&eTo gain XP in this skill you must dig with a shovel in hand.\n&eOnly certain materials can be dug up for treasures and XP.
|
||||
Guides.Excavation.Section.1=&3Compatible Materials:\n&eGrass, Dirt, Sand, Clay, Gravel, Mycelium, Soul Sand, Snow
|
||||
Guides.Excavation.Section.2=&3How to use Giga Drill Breaker:\n&eWith a shovel in hand right click to ready your tool.\n&eOnce in this state you have about 4 seconds to make\n&econtact with Excavation compatible materials this will\n&eactivate Giga Drill Breaker.
|
||||
Guides.Excavation.Section.3=&3What is Giga Drill Breaker?\n&eGiga Drill Breaker is an ability with a cooldown\n&etied to Excavation skill. It triples your chance\n&eof finding treasures and enables instant break\n&eon Excavation materials.
|
||||
Guides.Excavation.Section.4=&3How does Treasure Hunter work?\n&eEvery possible treasure for Excavation has its own\n&eskill level requirement for it to drop, as a result it's\n&edifficult to say how much it is helping you.\n&eJust keep in mind that the higher your Excavation skill\n&eis, the more treasures that can be found.\n&eAnd also keep in mind that each type of Excavation\n&ecompatible material has its own unique list of treasures.\n&eIn other words you will find different treasures in Dirt\nðan you would in Gravel.
|
||||
Guides.Excavation.Section.5=&3Notes about Excavation:\n&eExcavation drops are completely customizeable\n&eSo results vary server to server.
|
||||
Guides.Excavation.Section.0=&3발굴에 대하여:\n&e발굴은 보물을 찾기 위해 흙을 파내는 행위입니다.\n&e땅을 파내면 보물을 찾을 수 있습니다.\n&e이를 계속하면 더 많은 보물을 찾을 수 있습니다.\n\n&3XP 획득:\n&e이 스킬에서 XP를 얻으려면 삽을 들고 파야 합니다.\n&e일부 재료만 보물과 XP를 얻을 수 있습니다.
|
||||
Guides.Excavation.Section.1=&3호환 가능한 재료:\n&e풀, 흙, 모래, 점토, 자갈, 버섯, 영혼 모래, 눈
|
||||
Guides.Excavation.Section.2=&3기가 드릴 버서커 사용 방법:\n&e삽을 들고 우클릭하여 도구를 준비합니다.\n&e이 상태에서 약 4초 안에 발굴 호환 가능한 재료에\n&e접촉하면 기가 드릴 버서커가 활성화됩니다.
|
||||
Guides.Excavation.Section.3=&3기가 드릴 버서커란 무엇인가요?\n&e기가 드릴 버서커는 발굴 스킬과 연결된 재사용 대기시간이 있는\n&e능력입니다. 이는 보물을 찾을 확률을 세 배로 늘리고\n&e발굴 재료를 즉시 부술 수 있게 합니다.
|
||||
Guides.Excavation.Section.4=&3고고학은 어떻게 작동하나요?\n&e발굴을 위한 가능한 모든 보물은 떨어지기 위한\n&e스킬 레벨 요구 사항이 있으므로, 얼마나 도움이 되는지\n&정확히 말하기는 어렵습니다.\n&e단지 기억해 두세요. 발굴 스킬이 높을수록\n&더 많은 보물을 찾을 수 있습니다.\n&또한, 각각의 발굴 호환 가능한 재료에는 고유한 보물 목록이 있습니다.\n&다시 말해, 흙에서 찾는 보물과 자갈에서 찾는 보물은 다릅니다.
|
||||
Guides.Excavation.Section.5=&3발굴에 대한 참고 사항:\n&e발굴 보상은 완전히 사용자 정의할 수 있으므로\n&결과는 서버마다 다릅니다.
|
||||
|
||||
##Fishing
|
||||
Guides.Fishing.Section.0=&3About Fishing:\n&eWith the Fishing skill, Fishing is exciting again!\n&eFind hidden treasures, and shake items off mobs.\n\n&3XP GAIN:\n&eCatch fish.
|
||||
Guides.Fishing.Section.1=&3How does Treasure Hunter work?\n&eThis ability allows you to find treasure from fishing \n&ewith a small chance of the items being enchanted.\n&eEvery possible treasure for Fishing has a chance\n&eto drop on any level. It depends however\n&ewhat the rarity of the item is how often it will drop.\n&eThe higher your Fishing skill is, the better\n&eyour chances are to find better treasures.
|
||||
Guides.Fishing.Section.2=&3How does Ice Fishing work?\n&eThis passive skill allows you to fish in ice lakes!\n&eCast your fishing rod in an ice lake and the ability will\n&ecreate a small hole in the ice to fish in.
|
||||
Guides.Fishing.Section.3=&3How does Master Angler work?\n&eThis passive skill increases the bite chance while fishing.\n&eWhen you've unlocked this ability, fishing while in\n&ea boat or when an ocean biome doubles the bite chance.
|
||||
Guides.Fishing.Section.4=&3How does Shake work?\n&eThis active ability allows you to shake items loose from mobs\n&eby hooking them with the fishing rod. \n&eMobs will drop items they would normally drop on death.\n&eIt is also possible to acquire mob skulls, which are normally \n&eunobtainable in survival mode.
|
||||
Guides.Fishing.Section.5=&3How does Fisherman's Diet work?\n&eThis passive skill increases the amount of hunger restored \n&efrom eating fish.
|
||||
Guides.Fishing.Section.6=&3Notes about Fishing:\n&eFishing drops are completely customizable,\n&eso results vary server to server.
|
||||
Guides.Fishing.Section.0=&3낚시에 대하여:\n&e낚시 스킬이 있다면 낚시가 다시 즐거워집니다!\n&e숨겨진 보물을 찾고 몹에서 아이템을 떨어뜨립니다.\n\n&3XP 획득:\n&e물고기를 낚아서 경험치를 얻습니다.
|
||||
Guides.Fishing.Section.1=&3보물 사냥꾼은 어떻게 작동하나요?\n&e이 능력을 사용하면 낚시로 보물을 찾을 수 있습니다.\n&e아이템이 인챈트된 상태로 드롭될 수 있는 작은 확률이 있습니다.\n&e낚시로 얻을 수 있는 모든 보물은 어떤 레벨에서든 드롭될 수 있습니다.\n&e그러나 아이템의 희귀도에 따라 얼마나 자주 드롭되는지가 달라집니다.\n&e낚시 스킬이 높을수록 더 좋은 보물을 찾을 확률이 높아집니다.
|
||||
Guides.Fishing.Section.2=&3얼음 낚시는 어떻게 작동하나요?\n&e이 패시브 스킬을 사용하면 얼음 호수에서 낚시를 할 수 있습니다!\n&e낚싯대를 얼음 호수에 던지면 물고기를 낚을 수 있는 작은 구멍이 생성됩니다.
|
||||
Guides.Fishing.Section.3=&3낚시꾼 장인은 어떻게 작동하나요?\n&e이 패시브 스킬은 낚시할 때 물고기가 물에 물릴 확률을 증가시킵니다.\n&e이 능력을 잠금 해제하면 보트에서 낚시할 때\n&e물고기를 잡을 확률이 높아집니다.
|
||||
Guides.Fishing.Section.4=&3흔들기는 어떻게 작동하나요?\n&e이 액티브 능력을 사용하면 낚싯대로 몹에게서 아이템을 흔들어 떨어뜨릴 수 있습니다.\n&e몹은 일반적으로 죽을 때 떨어뜨리는 아이템을 드롭합니다.\n&e또한, 서바이벌 모드에서는 얻을 수 없는 몹 머리를 획득할 수도 있습니다.
|
||||
Guides.Fishing.Section.5=&3어부의 다이어트는 어떻게 작동하나요?\n&e이 패시브 스킬은 물고기를 먹을 때 회복되는 포만감을 증가시킵니다.
|
||||
Guides.Fishing.Section.6=&3낚시에 대한 참고 사항:\n&e낚시 아이템은 완전히 사용자 정의할 수 있으므로\n&결과는 서버마다 다릅니다.
|
||||
|
||||
##Herbalism
|
||||
Guides.Herbalism.Section.0=&3About Herbalism:\n&eHerbalism is about collecting herbs and plants.\n\n\n&3XP GAIN:\n&eCollect plants and herbs.
|
||||
Guides.Herbalism.Section.1=&3Compatible Blocks\n&eWheat, Potatoes, Carrots, Melons, \n&ePumpkins, Sugar Canes, Cocoa Beans, Flowers, Cacti, Mushrooms,\n&eNether Wart, Lily Pads, and Vines.
|
||||
Guides.Herbalism.Section.2=&3How does Green Terra work?\n&eGreen Terra is an active ability, you can right-click\n&ewhile holding a hoe to activate Green Terra.\n&eGreen Terra grants players a chance to get 3x drops from\n&eharvesting plants. It also gives players the ability to\n&espread life into blocks and transform them using seeds\n&efrom your inventory.
|
||||
Guides.Herbalism.Section.3=&3How does Green Thumb (Crops) work?\n&eThis passive ability will automatically replant crops when\n&eharvesting.\n&eYour chance of success depends on your Herbalism skill.
|
||||
Guides.Herbalism.Section.4=&3How does Green Thumb (Cobble/Stone Brick/Dirt) work?\n&eThis active ability allows you to turn blocks into their\n&e"plant-related" counterparts. You can do this by right-clicking\n&ea block, while holding seeds. This will consume 1 seed.
|
||||
Guides.Herbalism.Section.5=&3How does Farmer's Diet work?\n&eThis passive skill increases the amount of hunger restored \n&ewhen eating Bread, Cookies, Melons, Mushroom Soup, Carrots,\n&eand Potatoes.
|
||||
Guides.Herbalism.Section.6=&3How does Hylian Luck work?\n&eThis passive ability gives you a chance to find rare items\n&ewhen certain blocks are broken with a sword.
|
||||
Guides.Herbalism.Section.7=&3How do Double Drops work?\n&eThis passive ability gives players more yield from their\n&eharvests.
|
||||
Guides.Herbalism.Section.0=&3약초학에 대하여:\n&e약초학은 허브와 식물을 수집하는 것에 관한 스킬입니다.\n\n\n&3XP 획득:\n&e식물과 허브를 수집하세요.
|
||||
Guides.Herbalism.Section.1=&3호환 가능한 블록:\n&e밀, 감자, 당근, 수박, \n&e호박, 사탕수수, 코코아 콩, 꽃, 선인장, 버섯,\n&e네더 사마귀, 원반, 덩굴.
|
||||
Guides.Herbalism.Section.2=&3재배의 대지는 어떻게 작동하나요?\n&e재배의 대지는 액티브 능력으로, 괭이를 들고 우클릭하여\n&e재배의 대지를 활성화할 수 있습니다.\n&e재배의 대지는 식물을 수확할 때 3배의 드롭을 얻을 확률을\n&제공합니다. 또한 인벤토리의 씨앗을 사용하여 블록에\n&생명을 불어넣고 변형시킬 수 있는 능력을 제공합니다.
|
||||
Guides.Herbalism.Section.3=&3재배의 재능 (작물)은 어떻게 작동하나요?\n&e이 패시브 능력은 작물을 수확할 때 자동으로 재심을\n&합니다. 성공 확률은 약초학 스킬 레벨에 따라 달라집니다.
|
||||
Guides.Herbalism.Section.4=&3재배의 재능 (석재/돌/흙)은 어떻게 작동하나요?\n&e이 액티브 능력은 블록을 해당하는 "식물 관련" 블록으로\n&변환할 수 있게 합니다. 씨앗을 들고 블록을 우클릭하여\n&사용할 수 있습니다. 이 과정에서 1개의 씨앗이 소모됩니다.
|
||||
Guides.Herbalism.Section.5=&3농부의 다이어트는 어떻게 작동하나요?\n&e이 패시브 스킬은 빵, 쿠키, 수박, 버섯 스튜, 당근,\n&감자를 섭취할 때 회복되는 포만감을 증가시킵니다.
|
||||
Guides.Herbalism.Section.6=&3하이랄인의 행운은 어떻게 작동하나요?\n&e이 패시브 능력은 검으로 특정 블록을 부술 때\n&희귀 아이템을 얻을 확률을 제공합니다.
|
||||
Guides.Herbalism.Section.7=&32배 드롭은 어떻게 작동하나요?\n&e이 패시브 능력은 수확 시 더 많은 수확량을 제공합니다.
|
||||
|
||||
##Mining
|
||||
Guides.Mining.Section.0=&3About Mining:\n&eMining consists of mining stone and ores. It provides bonuses\n&eto the amount of materials dropped while mining.\n\n&3XP GAIN:\n&eTo gain XP in this skill, you must mine with a pickaxe in hand.\n&eOnly certain blocks award XP.
|
||||
Guides.Mining.Section.1=&3Compatible Materials:\n&eStone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n&eLapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n&eGlowstone, and Netherrack.
|
||||
Guides.Mining.Section.2=&3How to use Super Breaker:\n&eWith a pickaxe in your hand, right click to ready your tool.\n&eOnce in this state, you have about 4 seconds to make contact\n&ewith Mining compatible materials, which will activate Super\n&eBreaker.
|
||||
Guides.Mining.Section.3=&3What is Super Breaker?\n&eSuper Breaker is an ability with a cooldown tied to the Mining\n&eskill. It triples your chance of extra items dropping and\n&eenables instant break on Mining materials.
|
||||
Guides.Mining.Section.4=&3How to use Blast Mining:\n&eWith a detonator in hand, which is a flint & steel by default,\n&ecrouch and right-click on TNT from a distance. This will cause the TNT\n&eto instantly explode.
|
||||
Guides.Mining.Section.5=&3How does Blast Mining work?\n&eBlast Mining is an ability with a cooldown tied to the Mining\n&eskill. It gives bonuses when mining with TNT and allows you\n&eto remote detonate TNT. There are three parts to Blast Mining.\n&eThe first part is Bigger Bombs, which increases blast radius.\n&eThe second is Demolitions Expert, which decreases damage\n&efrom TNT explosions. The third part simply increases the\n&eamount of ores dropped from TNT and decreases the\n&edebris dropped.
|
||||
Guides.Mining.Section.0=&3채광에 대하여:\n&e채광은 돌과 광석을 캐는 것으로, 채굴 시 드롭되는 자원의 양에 보너스를 제공합니다.\n\n&3XP 획득:\n&e이 스킬에서 XP를 얻으려면 손에 곡괭이를 들고 채굴해야 합니다.\n&e일부 블록만 XP를 제공합니다.
|
||||
Guides.Mining.Section.1=&3호환 가능한 자료:\n&e돌, 석탄 광석, 철 광석, 금 광석, 다이아몬드 광석, 레드스톤 광석,\n&e청금석 광석, 흑요석, 이끼 낀 석재, 엔더 돌,\n&e발광석, 네더랙입니다.
|
||||
Guides.Mining.Section.2=&3파괴자는 어떻게 작동하나요?\n&e곡괭이를 손에 들고, 우클릭을 하면 도구가 준비 상태가 됩니다.\n&e이 상태에서, 4초 안에 채광 가능 블록을 좌클릭하면, 이것은 파괴자를 발동할 것입니다.
|
||||
Guides.Mining.Section.3=&3파괴자가 무엇인가요?\n&e파괴자는 채광 스킬과 연결된 재사용 대기시간이 있는 능력입니다. 이는 추가 아이템이 떨어질 확률을 세 배로 늘리고 채광 재료를 즉시 부술 수 있게 합니다.
|
||||
Guides.Mining.Section.4=&3폭발 채굴은 어떻게 작동하나요?\n&e곡괭이를 손에 들고 웅크리기를 한 후 TNT를 멀리서 우클릭하세요. 이것은 TNT를 즉시 폭발시킬 것입니다.
|
||||
Guides.Mining.Section.5=&3폭발 채굴은 어떻게 작동합니까?\n&e 폭발 채굴은 채광 스킬과 연결된 쿨타임이 있는 기능입니다. TNT로 채굴할 때 보너스를 제공하고 TNT를 원격으로 폭발시킬 수 있습니다. 폭발 채굴에는 세 가지 부분이 있습니다.\n&e 첫 번째 부분은 폭발 반경을 증가시키는 더 큰 폭탄입니다.\n&e 두 번째 부분은 TNT 폭발로 인한 피해를 감소시키는 해체 전문가입니다. 세 번째 부분은 단순히 TNT에서 떨어지는 광석의 양을 증가시키고 떨어지는 파편을 감소시킵니다.
|
||||
|
||||
##Repair
|
||||
Guides.Repair.Section.0=&3About Repair:\n&eRepair allows you to use an iron block to repair armor and\n&etools, or a gold block to salvage armor and tools.\n\n&3XP GAIN:\n&eRepair tools or armor using the mcMMO Anvil. This is an\n&eiron block by default and should not be confused with\nðe Vanilla Minecraft Anvil.
|
||||
Guides.Repair.Section.1=&3How can I use Repair?\n&ePlace down a mcMMO Anvil and right-click to repair the item \n&eyou're currently holding. This consumes 1 item on every use.
|
||||
Guides.Repair.Section.2=&3How does Repair Mastery work?\n&eRepair Mastery increases the repair amount. The extra amount\n&erepaired is influenced by your Repair skill level.
|
||||
Guides.Repair.Section.3=&3How does Super Repair work?\n&eSuper Repair is a passive ability. When repairing an item,\n&eit grants players a chance to repair an item with\n&edouble effectiveness.
|
||||
Guides.Repair.Section.4=&3How does Arcane Forging work?\n&eThis passive ability allows you to repair items with a certain\n&echance of maintaining its enchantments. The enchants may be\n&ekept at their existing levels, downgraded to a lower level,\n&eor lost entirely.
|
||||
Guides.Repair.Section.0=&3수리에 대하여:\n&e수리는 철 블록을 사용하여 갑옷과 도구를 수리할 수 있게 합니다.\n\n&3XP 획득:\n&emcMMO 모루를 사용하여 도구나 갑옷을 수리하세요. 이는\n&e기본적으로 철 블록이며, Minecraft의 일반 모루와 혼동되지 않아야 합니다.
|
||||
Guides.Repair.Section.1=&3어떻게 수리를 사용할 수 있나요?\n&emcMMO 모루를 설치하고 현재 들고 있는 아이템을 우클릭하여 수리하세요. 이는 사용할 때마다 1개의 아이템을 소모합니다.
|
||||
Guides.Repair.Section.2=&3수리 마스터리은 어떻게 작동하나요?\n&e수리 마스터리은 수리량을 증가시킵니다. 추가로 수리되는 양은 수리 스킬 레벨에 영향을 받습니다.
|
||||
Guides.Repair.Section.3=&3슈퍼 수리는 어떻게 작동하나요?\n&e슈퍼 수리는 패시브 능력입니다. 아이템을 수리할 때\n&e더욱 효과적으로 아이템을 수리할 수 있는 기회를 제공합니다.
|
||||
Guides.Repair.Section.4=&3인챈트 아이템 수리는 어떻게 작동하나요?\n&e이 패시브 능력은 일정 확률로 아이템을 수리할 때\n&e인챈트를 유지할 수 있게 합니다. 인챈트는\n&e기존 레벨로 유지되거나 낮은 레벨로 강등되거나\n&완전히 사라질 수 있습니다.
|
||||
|
||||
##Salvage
|
||||
Guides.Salvage.Section.0=&3About Salvage:\n&eSalvage allows you to use an gold block to salvage armor and\n&etools.\n\n&3XP GAIN:\n&eSalvage is a child skill of Repair and Fishing, your Salvage\n&eskill level is based on your Fishing and Repair skill levels.
|
||||
Guides.Salvage.Section.1=&3How can I use Salvage?\n&ePlace down a mcMMO Salvage Anvil and right-click to salvage\nðe item you're currently holding. This will break apart the item,\n&eand give back materials used to craft the item.\n\n&eFor example, salvaging an iron pickaxe will give you iron bars.
|
||||
Guides.Salvage.Section.2=&3How does Advanced Salvage work?\n&eWhen unlocked, this ability allows you to salvage damaged items.\n&eThe yield percentage increases as you level up. A higher yield\n&emeans that you can get more materials back.\n&eWith advanced salvage you will always get 1 material back,\n&eunless the item is too damaged. So you don't have to worry\n&eabout destroying items without getting anything in return.
|
||||
Guides.Salvage.Section.3=&3To illustrate how this works, here's an example:\n&eLet's say we salvage a gold pickaxe which is damaged for 20%,\nðis means that the maximum amount you could get is only 2\n&e(because the pick is crafted with 3 ingots - each worth\n&e33,33% durability) which is equal to 66%. If your yield\n&epercentage is below 66% you are not able to get 2 ingots.\n&eIf it is above this value you are able to gain the "full amount",\n&ewhich means that you will get 2 ingots.
|
||||
Guides.Salvage.Section.4=&3How does Arcane Salvage work?\n&eThis ability allows you to get enchanted books when salvaging\n&eenchanted items. Depending on your level the chance of\n&esuccessfully extracting a full or partial enchantment varies.\n\n&eWhen an enchantment is partially extracted, the enchantment\n&ebook will have a lower level enchantment compared to what\n&eit was on the item.
|
||||
Guides.Salvage.Section.0=&3회수에 대하여:\n&e회수는 금 블록을 사용하여 갑옷과 도구를 회수할 수 있게 합니다.\n\n&3XP 획득:\n&e회수는 수리 및 낚시의 부가 스킬로, 회수 스킬 레벨은 낚시 및 수리 스킬 레벨에 기반합니다.
|
||||
Guides.Salvage.Section.1=&3회수를 어떻게 사용할 수 있나요?\n&emcMMO 회수 모루를 설치하고 현재 들고 있는 아이템을 우클릭하여 회수하세요. 이렇게 하면 아이템이 분해되고 아이템을 제작하는 데 사용된 재료가 반환됩니다.\n\n&e예를 들어, 철 곡괭이를 회수하면 철 주괴를 얻을 수 있습니다.
|
||||
Guides.Salvage.Section.2=&3전문적인 회수는 어떻게 작동하나요?\n&e전문적인 회수를 잠금 해제하면 손상된 아이템을 회수할 수 있습니다. 레벨이 올라감에 따라 수확률이 증가합니다. 높은 수확률은 더 많은 재료를 얻을 수 있음을 의미합니다.\n&e전문적인 회수를 사용하면 항상 1개의 재료를 얻게 되며, 아이템이 너무 손상된 경우를 제외하고는 아이템을 파괴하고 아무것도 얻지 못하는 일은 없습니다.
|
||||
Guides.Salvage.Section.3=&3작동 방식을 설명하기 위해 예를 들어보겠습니다:\n&e손상된 금 곡괭이를 회수한다고 가정해 봅시다. 이 경우 최대로 얻을 수 있는 양은 2개입니다(곡괭이는 3개의 주괴로 제작되며 각각의 주괴는 33.33%의 내구성을 가지므로 66%에 해당하는 2개입니다). 수확률이 66%보다 낮으면 2개의 주괴를 얻을 수 없습니다. 수확률이 이 값보다 높으면 "전체 양"을 얻을 수 있으며, 즉 2개의 주괴를 얻게 됩니다.
|
||||
Guides.Salvage.Section.4=&3신비로운 회수는 어떻게 작동하나요?\n&e이 능력을 사용하면 마법이 부여된 아이템을 회수할 때 마법이 부여된 책을 얻을 수 있습니다. 레벨에 따라 완전한 부분 또는 부분적인 부여를 성공적으로 추출할 확률이 다릅니다.\n\n&e부분적으로 추출된 경우, 부여된 책은 아이템에 있던 부여보다 낮은 레벨의 부여를 가지게 됩니다.
|
||||
|
||||
##Smelting
|
||||
Guides.Smelting.Section.0=Coming soon...
|
||||
Guides.Smelting.Section.0=준비 중...
|
||||
|
||||
##Swords
|
||||
Guides.Swords.Section.0=&3About Swords:\n&eThis skill awards combat bonuses to anyone fighting with a\n&esword.\n\n&3XP GAIN:\n&eXP is gained based on the amount of damage dealt to mobs or \n&eother players when wielding a sword.
|
||||
Guides.Swords.Section.1=&3How does Serrated Strikes work?\n&eSerrated Strikes is an active ability, you can activate it by\n&eright-clicking with a sword. This ability allows you to deal \n&ean AoE (Area of Effect) hit. This AoE will do a bonus 25%\n&edamage and will inflict a bleed effect that lasts for 5 ticks.
|
||||
Guides.Swords.Section.2=&3How does Counter Attack work?\n&eCounter Attack is an active ability. When blocking and taking\n&ehits from mobs, you will have a chance to reflect 50% of \nðe damage that was taken.
|
||||
Guides.Swords.Section.3=&3How does Bleed work?\n&eBleed causes enemies to take damage every two seconds. The \n&etarget will bleed until the effect wears off, or death, \n&ewhichever comes first.\n&eThe duration of the bleed is increased by your sword skill.
|
||||
Guides.Swords.Section.0=&3검술에 대해:\n&e이 스킬은 검을 사용하는 사람에게 전투 보너스를 제공합니다.\n\n&3XP 획득:\n&e검을 사용하여 몹이나 다른 플레이어에게 입힌 데미지에 따라 경험치를 획득합니다.
|
||||
Guides.Swords.Section.1=&3톱날 공격은 어떻게 작동하나요?\n&e톱날 공격은 액티브 능력으로, 검으로 우클릭하여 활성화할 수 있습니다. 이 능력을 사용하면 AoE(영역 효과) 공격을 할 수 있습니다. 이 AoE는 추가 25%의 데미지를 입히며, Rupture를 적용할 수도 있습니다.
|
||||
Guides.Swords.Section.2=&3카운터 어택은 활성 능력입니다. 몹으로부터 공격을 막으면서 피해를 입을 때, 받은 피해의 50%를 반사할 확률이 있습니다.
|
||||
Guides.Swords.Section.3=&3파열은 적에게 2초마다 피해를 입힙니다. 이 효과는 피해를 입은 대상이 죽거나 효과가 사라질 때까지 계속됩니다. 검 기술이 높을수록 피 효과의 지속 시간이 증가합니다.
|
||||
|
||||
##Taming
|
||||
Guides.Taming.Section.0=&3About Taming:\n&eTaming will give players various combat bonuses when using\n&etamed wolves.\n\n&3XP GAIN:\n&eTo gain XP in this skill, you need to tame wolves/ocelots or\n&eget into combat with your wolves.
|
||||
Guides.Taming.Section.1=&3How does Call of the Wild work?\n&eCall of the Wild is an active ability that will allow you to summon\n&ea wolf or an ocelot by your side. You can do this by\n&eleft-clicking while holding bones or fish.
|
||||
Guides.Taming.Section.2=&3How does Beast Lore work?\n&eBeast Lore allows players to inspect pets and to check the\n&estats of wolves and ocelots. Left-click a wolf or ocelot to use\n&eBeast Lore.
|
||||
Guides.Taming.Section.3=&3How does Gore work?\n&eGore is a passive ability that has a chance of inflicting a\n&ebleeding effect on your wolves' targets.
|
||||
Guides.Taming.Section.4=&3How does Sharpened Claws work?\n&eSharpened Claws provides a damage bonus to damage dealt\n&eby wolves. The damage bonus depends on your Taming level.
|
||||
Guides.Taming.Section.5=&3How does Environmentally Aware work?\n&eThis passive ability will allow wolves to teleport to you when\nðey get near hazards, such as Cacti/Lava. It will also give\n&ewolves fall damage immunity.
|
||||
Guides.Taming.Section.6=&3How does Thick Fur work?\n&eThis passive ability will reduce damage and make wolves\n&efire resistant.
|
||||
Guides.Taming.Section.7=&3How does Shock Proof work?\n&eThis passive ability reduces damage done to wolves\n&efrom explosions.
|
||||
Guides.Taming.Section.8=&3How does Fast Food Service work?\n&eThis passive ability gives wolves a chance to heal whenever\nðey perform an attack.
|
||||
Guides.Taming.Section.0=&3조련에 대하여:\n&e조련은 길들인 늑대를 사용할 때 다양한 전투 보너스를 제공합니다.\n\n&3XP 획득:\n&e이 스킬에서 경험치를 얻으려면 늑대/오셀롯을 길들이거나\n&e늑대와 전투해야 합니다.
|
||||
Guides.Taming.Section.1=&3야생의 포효는 어떻게 작동하나요?\n&e야생의 포효는 액티브 능력으로, 뼈다귀나 생선을 들고\n&e웅크리고 좌클릭하여 늑대나 오셀롯을 소환할 수 있습니다.
|
||||
Guides.Taming.Section.2=&3짐승의 포효는 어떻게 작동하나요?\n&e짐승의 포효는 펫을 검사하고 늑대와 오셀롯의\n&estats를 확인할 수 있게 합니다. 늑대나 오셀롯을 좌클릭하여\n&e짐승의 포효를 사용하세요.
|
||||
Guides.Taming.Section.3=&3돌진은 어떻게 작동하나요?\n&e돌진은 패시브 능력으로, 늑대의 대상에게 출혈 효과를\n&적용할 수 있는 확률이 있습니다.
|
||||
Guides.Taming.Section.4=&3날카로운 발톱은 어떻게 작동하나요?\n&e날카로운 발톱은 늑대가 입히는 피해에 추가적인 데미지 보너스를\n&제공합니다. 이 데미지 보너스는 테이밍 레벨에 따라 달라집니다.
|
||||
Guides.Taming.Section.5=&3환경 인식은 어떻게 작동하나요?\n&e이 패시브 능력은 늑대가 선인장/용암과 같은 위험 요소에\n&가까이 다가갈 때 당신에게 순간이동할 수 있게 합니다.\n&또한, 늑대에게 낙하 피해 면역성을 제공합니다.
|
||||
Guides.Taming.Section.6=&3두꺼운 털은 어떻게 작동하나요?\n&e이 패시브 능력은 늑대의 피해를 감소시키고\n&불에 대한 내성을 제공합니다.
|
||||
Guides.Taming.Section.7=&3충격 방지는 어떻게 작동하나요?\n&e이 패시브 능력은 늑대가 폭발로 인한 피해를\n&감소시킵니다.
|
||||
Guides.Taming.Section.8=&3빠른 음식 제공은 어떻게 작동하나요?\n&e이 패시브 능력은 늑대가 공격할 때마다 회복할\n&수 있는 기회를 제공합니다.
|
||||
|
||||
##Unarmed
|
||||
Guides.Unarmed.Section.0=&3About Unarmed:\n&eUnarmed will give players various combat bonuses when using\n&eyour fists as a weapon. \n\n&3XP GAIN:\n&eXP is gained based on the amount of damage dealt to mobs \n&eor other players when unarmed.
|
||||
Guides.Unarmed.Section.1=&3How does Berserk work?\n&eBeserk is an active ability that is activated by\n&eright-clicking. While in Beserk mode, you deal 50% more\n&edamage and you can break weak materials instantly, such as\n&eDirt and Grass.
|
||||
Guides.Unarmed.Section.2=&3How does Iron Arm work?\n&eIron Arm increases the damage dealt when hitting mobs or\n&eplayers with your fists.
|
||||
Guides.Unarmed.Section.3=&3How does Arrow Deflect work?\n&eArrow Deflect is a passive ability that gives you a chance\n&eto deflect arrows shot by Skeletons or other players.\n&eThe arrow will fall harmlessly to the ground.
|
||||
Guides.Unarmed.Section.4=&3How does Iron Grip work?\n&eIron Grip is a passive ability that counters disarm. As your\n&eunarmed level increases, the chance of preventing a disarm increases.
|
||||
Guides.Unarmed.Section.5=&3How does Disarm work?\n&eThis passive ability allows players to disarm other players,\n&ecausing the target's equipped item to fall to the ground.
|
||||
Guides.Unarmed.Section.0=&3비무장에 대해:\n&e비무장은 주먹을 무기로 사용할 때 플레이어에게 다양한 전투 보너스를 제공합니다. \n\n&3XP 획득:\n&e맨손으로 몹이나 다른 플레이어에게 입힌 피해량에 따라 경험치를 획득합니다.
|
||||
Guides.Unarmed.Section.1=&3버서커는 어떻게 작동하나요?\n&e버서커는 우클릭으로 활성화되는 액티브 능력입니다. 버서커 모드에서는 추가로 50%의 피해를 입히며, 흙과 풀과 같은 약한 재료를 즉시 부술 수 있습니다.
|
||||
Guides.Unarmed.Section.2=&3강철 팔 형태는 어떻게 작동하나요?\n&e강철 팔 형태는 주먹으로 몹이나 플레이어를 때릴 때 입히는 피해량을 증가시킵니다.
|
||||
Guides.Unarmed.Section.3=&3화살 회피는 어떻게 작동하나요?\n&e화살 튕김은 스켈레톤이나 다른 플레이어가 발사한 화살을 튕길 확률을 제공하는 패시브 능력입니다. 화살은 피해를 입히지 않고 땅에 떨어집니다.
|
||||
Guides.Unarmed.Section.4=&3강철 주먹은 어떻게 작동하나요?\n&e강철 주먹은 다른 스킬의 강제 무장 해제 효과를 방지하는 패시브 능력입니다. 비무장 레벨이 올라갈수록 강제 무장 해제를 방지하는 확률이 증가합니다.
|
||||
Guides.Unarmed.Section.5=&3비무장은 어떻게 작동하나요?\n&e이 패시브 능력은 플레이어가 다른 플레이어의 무기를 해제할 수 있게 해줍니다. 대상의 장착된 아이템은 땅에 떨어집니다.
|
||||
|
||||
##Woodcutting
|
||||
Guides.Woodcutting.Section.0=&3About Woodcutting:\n&eWoodcutting is all about chopping down trees.\n\n&3XP GAIN:\n&eXP is gained whenever you break log blocks.
|
||||
Guides.Woodcutting.Section.1=&3How does Tree Feller work?\n&eTree Feller is an active ability, you can right-click\n&ewhile holding an ax to activate Tree Feller. This will\n&ecause the entire tree to break instantly, dropping all\n&eof its logs at once.
|
||||
Guides.Woodcutting.Section.2=&3How does Leaf Blower work?\n&eLeaf Blower is a passive ability that will cause leaf\n&eblocks to break instantly when hit with an axe. By default,\nðis ability unlocks at level 100.
|
||||
Guides.Woodcutting.Section.3=&3How do Double Drops work?\n&eThis passive ability gives you a chance to obtain an extra\n&eblock for every log you chop.
|
||||
Guides.Woodcutting.Section.0=&3벌목에 대하여:\n&e벌목은 나무를 베는 것에 관한 스킬입니다.\n\n&3XP 획득:\n&e나무 블록을 부술 때마다 경험치를 얻습니다.
|
||||
Guides.Woodcutting.Section.1=&3나무꾼은 어떻게 작동하나요?\n&e나무꾼은 액티브 능력으로, 도끼를 들고 우클릭하여\n&e나무 베기를 활성화할 수 있습니다. 이렇게 하면\n&e전체 나무가 즉시 부서지고 한 번에 모든\n&나무 블록이 떨어집니다.
|
||||
Guides.Woodcutting.Section.2=&3나뭇잎 청소는 어떻게 작동하나요?\n&e나뭇잎 청소는 패시브 능력으로, 도끼로\n&맞힌 잎사귀 블록이 즉시 부서지게 합니다.\n&기본적으로 이 능력은 레벨 100에서 해금됩니다.
|
||||
Guides.Woodcutting.Section.3=&3드롭 2배는 어떻게 작동하나요?\n&e이 패시브 능력은 베는 나무마다 추가로\n&한 개의 블록을 얻을 수 있는 기회를 제공합니다.
|
||||
|
||||
#INSPECT
|
||||
Inspect.Offline= &c그 플레이어는 오프라인 입니다, 오직 op들만 검사할 수 있습니다!
|
||||
Inspect.Offline= &c그 플레이어는 오프라인 상태이므로 검사할 수 없습니다. 오프라인 플레이어를 검사하려면 권한이 필요합니다.
|
||||
Inspect.OfflineStats=mcMMO 오프라인 유저 스텟은 &e{0} 입니다
|
||||
Inspect.Stats=&amcMMO 스텟은 &e{0} 입니다
|
||||
Inspect.TooFar=당신은 그 플레이어와 너무 멀리 떨어져 있어 검사할 수 없습니다!
|
||||
|
||||
#ITEMS
|
||||
Item.ChimaeraWing.Fail=**키메라의 날개 실패!**
|
||||
Item.ChimaeraWing.Pass=**키메라 날개**
|
||||
Item.ChimaeraWing.Name=키메라 날개
|
||||
Item.ChimaeraWing.Pass=**키메라의 날개**
|
||||
Item.ChimaeraWing.Name=키메라의 날개
|
||||
Item.ChimaeraWing.Lore=&7당신의 침대로 텔레포트합니다.
|
||||
Item.Generic.Wait=키메라의 날개를 다시 사용할려면 &e({0}초) &c기달려야 합니다!
|
||||
Item.Injured.Wait=당신은 최근에 부상을 당했고 사용할려면 &e({0}초) &f기달려야 합니다
|
||||
Item.Generic.Wait=키메라의 날개를 다시 사용하려면 &e({0}초) &c기다려야 합니다!
|
||||
Item.Injured.Wait=당신은 최근에 부상을 당했으며 이것을 사용하려면 &e({0}초) &f기다려야 합니다
|
||||
Item.FluxPickaxe.Name=용해 곡괭이
|
||||
Item.FluxPickaxe.Lore.1=&7광물을 즉시 제련할 기회를 가집니다.
|
||||
Item.FluxPickaxe.Lore.2=&7제련 요구 레벨 {0} 이상
|
||||
|
||||
#TELEPORTATION
|
||||
Teleport.Commencing=&7텔레포트가 &6({0}) &7초안에 시작됩니다, 가만히 기달려주세요...
|
||||
Teleport.Commencing=&7텔레포트가 &6({0}) &7초안에 시작됩니다, 가만히 기다려주세요...
|
||||
Teleport.Cancelled=&4텔레포트 취소됨!
|
||||
|
||||
#SKILLS
|
||||
Skills.Child=&6(하위 스킬)
|
||||
Skills.Child=&6(부가 스킬)
|
||||
Skills.Disarmed=&4당신은 무장 해제되었습니다!
|
||||
Skills.Header=-----[]&a{0}&c[]-----
|
||||
Skills.NeedMore=&4당신은 &7{0}가 더 필요합니다
|
||||
Skills.Parents = 상위들
|
||||
Skills.NeedMore=&4당신은 &7{0}&4가 더 필요합니다
|
||||
Skills.NeedMore.Extra=&4당신은 &7{0}{1}가 더 필요합니다
|
||||
Skills.Parents = 상위 속성들
|
||||
Skills.MaxXP=최대 XP
|
||||
Skills.Stats={0}&a{1}&3 XP(&7{2}&3/&7{3}&3)
|
||||
Skills.ChildStats={0}&a{1}
|
||||
Skills.TooTired=스킬 재 사용 대기시간: ({0}초)
|
||||
Skills.TooTired.Named=&7(&6{0}&e {1}s&7)
|
||||
Skills.TooTired.Extra=&6{0}&e의 쿨타임: {1}
|
||||
Skills.Cancelled={0} 취소됨!
|
||||
Skills.ConfirmOrCancel=&a다시 우-클릭을 하면 확인 &6{0}&a. 좌-클릭을 하면 취소가 됩니다.
|
||||
Skills.AbilityGateRequirementFail=&7이 슈퍼 능력을 사용하려면 &e{0}&7만큼의 &3{1}&7 스킬 레벨이 필요합니다.
|
||||
|
||||
#STATISTICS
|
||||
Stats.Header.Combat=&6-=전투 스킬=-
|
||||
@ -879,62 +1150,47 @@ Hardcore.Mode.Enabled=&6[mcMMO] 하드코어 모드 {0}가 {1}에 활성화됨.
|
||||
Hardcore.DeathStatLoss.Name=스킬 데스 패널티
|
||||
Hardcore.DeathStatLoss.PlayerDeath=&6[mcMMO] &4당신은 죽어서 &9{0}&4 레벨을 잃었습니다.
|
||||
Hardcore.DeathStatLoss.PercentageChanged=&6[mcMMO] 스텟 감소 비율이 {0}로 변경되었습니다..
|
||||
Hardcore.Vampirism.Name=뱀파이어리점
|
||||
Hardcore.Vampirism.Killer.Failure=&6[mcMMO] &e{0}&7님은 특별한 기술을 가지고 있지않아 당신이 가져갈 지식이 없습니다.
|
||||
Hardcore.Vampirism.Name=뱀파이어리즘
|
||||
Hardcore.Vampirism.Killer.Failure=&6[mcMMO] &e{0}&7님은 특별한 기술을 가지고 있지 않아 당신이 가져갈 지식이 없습니다.
|
||||
Hardcore.Vampirism.Killer.Success=&6[mcMMO] &3당신은 &e{1}&3님으로부터 &9{0}&3 레벨을 훔쳤습니다.
|
||||
Hardcore.Vampirism.Victim.Failure=&6[mcMMO] &e{0}&7님은 당신의 지식을 가져갈수 없었습니다!
|
||||
Hardcore.Vampirism.Victim.Failure=&6[mcMMO] &e{0}&7님은 당신의 지식을 가져갈 수 없었습니다!
|
||||
Hardcore.Vampirism.Victim.Success=&6[mcMMO] &e{0}&4님은 당신에게서 &9{1}&4 레벨을 훔쳐갔습니다!
|
||||
Hardcore.Vampirism.PercentageChanged=&6[mcMMO] 스텟 흡혈 비율이 {0}로 변경되었습니다.
|
||||
|
||||
#MOTD
|
||||
MOTD.Donate=&3기부 정보:
|
||||
MOTD.Hardcore.Enabled=&6[mcMMO] &3하드코어 모드 활성화됨: &4{0}
|
||||
MOTD.Hardcore.DeathStatLoss.Stats=&6[mcMMO] &3데스 패널티 능력: &4{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=&6[mcMMO] &3뱀파이어리점 스텟 흡수: &4{0}%
|
||||
MOTD.Hardcore.Vampirism.Stats=&6[mcMMO] &3뱀파이어리즘 스텟 흡수: &4{0}%
|
||||
MOTD.PerksPrefix=[mcMMO 특전]
|
||||
MOTD.Version=&6[mcMMO] 구동중인 버전 &3{0}
|
||||
MOTD.Website=&6[mcMMO] &a{0}&e - mcMMO 웹사이트
|
||||
|
||||
# XP BAR
|
||||
XPBar.Template={0}
|
||||
XPBar.Template.EarlyGameBoost=&6새로운 스킬을 배우는 중...
|
||||
XPBar.Acrobatics=곡예 Lv.&6{0}
|
||||
XPBar.Alchemy=연금술 Lv.&6{0}
|
||||
XPBar.Archery=궁술 Lv.&6{0}
|
||||
XPBar.Axes=부술 Lv.&6{0}
|
||||
XPBar.Excavation=발굴 Lv.&6{0}
|
||||
XPBar.Fishing=낚시 Lv.&6{0}
|
||||
XPBar.Herbalism=약초학 Lv.&6{0}
|
||||
XPBar.Mining=채광 Lv.&6{0}
|
||||
XPBar.Repair=수리 Lv.&6{0}
|
||||
XPBar.Salvage=회수 Lv.&6{0}
|
||||
XPBar.Smelting=제련 Lv.&6{0}
|
||||
XPBar.Swords=검술 Lv.&6{0}
|
||||
XPBar.Taming=조련 Lv.&6{0}
|
||||
XPBar.Unarmed=비무장 Lv.&6{0}
|
||||
XPBar.Woodcutting=벌목 Lv.&6{0}
|
||||
XPBar.Complex.Template={0} &3 {4}&f% &3(&f{1}&3/&f{2}&3)
|
||||
|
||||
|
||||
#SMELTING
|
||||
Smelting.Ability.FluxMining=유동 채굴 확률: &e{0}
|
||||
Smelting.Ability.FuelEfficiency=유동 효율성 배율: &e{0}x
|
||||
Smelting.Ability.FuelEfficiency=연료 효율성 배율: &e{0}x
|
||||
Smelting.Ability.Locked.0={0}레벨 때 기술이 해제됩니다 (바닐라 XP 부스트)
|
||||
Smelting.Ability.Locked.1={0}레벨 때 기술이 해제됩니다 (유동 채굴)
|
||||
Smelting.Ability.SecondSmelt=두번째 재련 확률: &e{0}
|
||||
Smelting.Ability.VanillaXPBoost=바닐라 XP 배율: &e{0}x
|
||||
Smelting.SubSkill.FuelEfficiency.Name=유동 효율성
|
||||
Smelting.SubSkill.UnderstandingTheArt.Name=예술의 이해
|
||||
Smelting.SubSkill.UnderstandingTheArt.Description=아마도 동굴에서 너무 많은 시간을 보내고 있을지도 모릅니다.\n제련의 다양한 속성을 강화합니다.
|
||||
Smelting.SubSkill.UnderstandingTheArt.Stat=바닐라 XP 배율: &e{0}배
|
||||
Smelting.SubSkill.FuelEfficiency.Name=연료 효율성
|
||||
Smelting.SubSkill.FuelEfficiency.Stat=연료 효율성 배율: &e{0}배
|
||||
Smelting.SubSkill.FuelEfficiency.Description=화로에서 재련시 연료 연소 시간 증가
|
||||
Smelting.SubSkill.SecondSmelt.Name=두번째 제련
|
||||
Smelting.SubSkill.SecondSmelt.Name=두 번째 제련
|
||||
Smelting.SubSkill.SecondSmelt.Description=제련시 얻는 자원 2배
|
||||
Smelting.SubSkill.SecondSmelt.Stat=두 번째 재련 확률
|
||||
Smelting.Effect.4=바닐라 XP 부스트
|
||||
Smelting.Effect.5=제련중 바닐라 XP 얻기 증가
|
||||
Smelting.SubSkill.FluxMining.Name=유동 채굴
|
||||
Smelting.SubSkill.FluxMining.Description=채굴중 광물 즉시 재련 확률
|
||||
Smelting.SubSkill.FluxMining.Stat=유동 채굴 확률
|
||||
Smelting.FluxMining.Success=&a광물이 재련되었습니다!
|
||||
Smelting.Listener=제련(Smelting):
|
||||
Smelting.SkillName=제련
|
||||
|
||||
|
||||
#COMMAND DESCRIPTIONS
|
||||
Commands.Description.addlevels=mcMMO 레벨을 유저에게 추가
|
||||
Commands.Description.adminchat=mcMMO 관리자 채팅 켜기/끄기나 관리자 채팅 메세지 보내기
|
||||
@ -943,6 +1199,7 @@ Commands.Description.hardcore=mcMMO 하드코어 확률 수정이나 하드코
|
||||
Commands.Description.inspect=다른 플레이어의 mcMMO 자세한 정보 보기
|
||||
Commands.Description.mcability=mcMMO 우-클릭 능력 켜기/끄기
|
||||
Commands.Description.mccooldown=모든 mcMMO 능력 재 사용 대기시간 보기
|
||||
Commands.Description.mcchatspy=mcMMO 파티 채팅 감시 켜기/끄기
|
||||
Commands.Description.mcgod=mcMMO 불사신-모드 켜기/끄기
|
||||
Commands.Description.mchud=mcMMO HUD 방식 변경
|
||||
Commands.Description.mcmmo=mcMMO 제작자 설명 보기
|
||||
@ -955,6 +1212,7 @@ Commands.Description.mcscoreboard=당신의 mcMMO 점수판 관리
|
||||
Commands.Description.mcstats=자신의 mcMMO 레벨과 XP 보기
|
||||
Commands.Description.mctop=mcMMO 점수표 보기
|
||||
Commands.Description.mmoedit=유저의 mcMMO 레벨 수정
|
||||
Commands.Description.mmodebug=블록을 때릴 때 유용한 정보를 출력하는 디버그 모드를 켜기/끄기.
|
||||
Commands.Description.mmoupdate=mcMMO 데이터베이스를 flatfile에서 MySQL로 전환
|
||||
Commands.Description.mcconvert=데이터베이스 타입 또는 경험 공식 타입 전환
|
||||
Commands.Description.mmoshowdb=현재 데이터베이스 타입 이름 보기(나중에 /mmoupdate와 함께 쓰입니다)
|
||||
@ -963,13 +1221,13 @@ Commands.Description.partychat=mcMMO 파티 채팅 켜기/끄기나 파티 채
|
||||
Commands.Description.ptp=mcMMO 파티 맴버 텔레포트
|
||||
Commands.Description.Skill=mcMMO 기술 {0}의 자세한 정보 보기
|
||||
Commands.Description.skillreset=유저의 mcMMO 레벨 재설정
|
||||
Commands.Description.vampirism=mcMMO 뱀파이어리점 비율이나 뱀파이어리점 모드 켜기/끄기
|
||||
Commands.Description.vampirism=mcMMO 뱀파이어리즘 비율이나 뱀파이어리즘 모드 켜기/끄기
|
||||
Commands.Description.xplock=명확한 mcMMO 기술의 mcMMO xp 바를 잠금
|
||||
Commands.Description.xprate=mcMMO XP 배율 수정이나 mcMMO XP 이벤트 시작
|
||||
|
||||
#UPDATE CHECKER
|
||||
UpdateChecker.outdated=당신은 mcMMO 구버전을 사용중입니다!
|
||||
UpdateChecker.newavailable=신 버전이 BukkitDev에 업로드되어 있습니다.
|
||||
UpdateChecker.newavailable=신 버전이 Spigot에 업로드되어 있습니다.
|
||||
|
||||
#SCOREBOARD HEADERS
|
||||
Scoreboard.Header.PlayerStats=mcMMO 스텟
|
||||
@ -983,29 +1241,49 @@ Scoreboard.Misc.CurrentXP=&a현재 XP
|
||||
Scoreboard.Misc.RemainingXP=남은 XP
|
||||
Scoreboard.Misc.Cooldown=&d재 사용 대기시간
|
||||
Scoreboard.Misc.Overall=&6종합
|
||||
Scoreboard.Misc.Ability=능력
|
||||
|
||||
#DATABASE RECOVERY
|
||||
Profile.Loading.Success=&a당신의 mcMMO 프로파일이 불러와졌습니다.
|
||||
Profile.PendingLoad=&c당신의 mcMMO 프로파일을 아직 불러오지 못했습니다.
|
||||
Profile.Loading.Success=&a당신의 mcMMO 프로파일을 불러왔습니다.
|
||||
Profile.Loading.Failure=mcMMO는 여전히 당신의 데이터를 읽을 수 없습니다. 당신은 아마도 &b서버관리자와 연락&c하기를 원할 것입니다.\n&e당신은 여전히 서버에서 게임중이지만, 당신은 &lmcMMO 레벨이 없고&e 당신이 얻은 어느 XP도 &l저장되지 않을 겁니다&e.
|
||||
Profile.Loading.AdminFailureNotice=&4[A]&c mcMMO는 &e{0}&c 플레이어 데이터 읽기가 불가능합니다. &d당신의 데이터베이스 설치를 검사해주세요.
|
||||
Commands.XPBar.Usage=Proper usage is /mmoxpbar <skillname | reset> <show | hide>
|
||||
Commands.Description.mmoxpbar=Player settings for mcMMO XP bars
|
||||
Commands.Description.mmocompat=Information about mcMMO and whether its in compatibility mode or fully functional.
|
||||
Profile.Loading.FailurePlayer=mcMMO가 데이터를 로드하는 데 문제가 발생했습니다. 로드 시도 횟수: {0}회. 이 문제에 대해 서버 관리자에게 문의하십시오. 데이터가 로드되지 않은 동안 XP를 획득하거나 기술을 사용할 수 없습니다.
|
||||
Profile.Loading.FailureNotice=&4[A]&c mcMMO는 &e{0}&c 플레이어 데이터를 로드하지 못했습니다. &d데이터베이스 설정을 확인하십시오. 현재까지 시도한 횟수: {1}.
|
||||
Commands.XPBar.Usage=올바른 사용법: /mmoxpbar <스킬명 | reset> <show | hide>
|
||||
Commands.Description.mmoxpbar=mcMMO XP 바에 대한 플레이어 설정
|
||||
Commands.Description.mmocompat=mcMMO의 호환 모드 또는 완전한 기능 여부에 대한 정보
|
||||
|
||||
#OVERHAULs
|
||||
Overhaul.Levelup=&l{0} &r(이)가 레벨 &r&a&l{2}&r&f 로 성장 했습니다.
|
||||
Overhaul.Name.Acrobatics=곡예
|
||||
Overhaul.Name.Alchemy=연금술
|
||||
Overhaul.Name.Archery=궁술
|
||||
Overhaul.Name.Axes=부술
|
||||
Overhaul.Name.Excavation=발굴
|
||||
Overhaul.Name.Fishing=낚시
|
||||
Overhaul.Name.Herbalism=약초학
|
||||
Overhaul.Name.Mining=채광
|
||||
Overhaul.Name.Repair=수리
|
||||
Overhaul.Name.Salvage=회수
|
||||
Overhaul.Name.Smelting=제련
|
||||
Overhaul.Name.Swords=검술
|
||||
Overhaul.Name.Taming=조련
|
||||
Overhaul.Name.Unarmed=비무장
|
||||
Overhaul.Name.Woodcutting=벌목
|
||||
#Holiday
|
||||
Holiday.AprilFools.Levelup=&6{0}은(는) 이제 &a{1}&6레벨입니다!
|
||||
Holiday.Anniversary=&9{0}주년을 축하합니다!\n&9nossr50의 모든 작업과 개발자들을 기리기 위해 불꽃쇼를 선물합니다!
|
||||
|
||||
#Reminder Messages
|
||||
Reminder.Squelched=&7알림: 현재 mcMMO로부터 알림을 받지 않고 있습니다. 알림을 활성화하려면 다시 /mcnotify 명령을 실행하십시오. 이것은 자동으로 매 시간마다 알림이 전송되는 것입니다.
|
||||
|
||||
#Locale
|
||||
Locale.Reloaded=&a번역을 리로드했습니다!
|
||||
|
||||
#Player Leveling Stuff
|
||||
LevelCap.PowerLevel=&6(&amcMMO&6) &e파워 레벨 &c{0}&e에 도달했습니다. 이제부터 스킬 레벨이 상승하지 않습니다.
|
||||
LevelCap.Skill=&6(&amcMMO&6) &e&6{1}&e 스킬의 레벨 캡 &c{0}&e에 도달했습니다. 이제부터 이 스킬의 레벨이 상승하지 않습니다.
|
||||
Commands.XPBar.Usage=올바른 사용법: /mmoxpbar <스킬명 | reset> <show | hide>
|
||||
Commands.Description.mmoxpbar=mcMMO XP 바에 대한 플레이어 설정
|
||||
Commands.Description.mmocompat=mcMMO의 호환 모드 또는 완전한 기능 여부에 대한 정보
|
||||
Compatibility.Layer.Unsupported=&6{0}&6의 호환성은 이 버전의 Minecraft에서 지원되지 않습니다.
|
||||
Compatibility.Layer.PartialSupport=&6{0}&6의 호환성은 이 버전의 Minecraft에서 완전히 지원되지 않지만, mcMMO는 일부 기능을 에뮬레이션하기 위해 보조 시스템을 실행 중입니다.
|
||||
Commands.XPBar.DisableAll=&6모든 mcMMO XP 바가 비활성화되었습니다. 기본 설정으로 복원하려면 /mmoxpbar reset을 사용하세요.
|
||||
|
||||
#Modern Chat Settings
|
||||
Chat.Style.Admin=&b(A) &r{0} &b\u2192 &r{1}
|
||||
Chat.Style.Party=&a(P) &r{0} &a\u2192 &r{1}
|
||||
Chat.Style.Party.Leader=&a(P) &r{0} &6\u2192 &r{1}
|
||||
Chat.Identity.Console=&6* 콘솔 *
|
||||
Chat.Channel.On=&6(&amcMMO-Chat&6) &e당신의 채팅 메시지는 이제 &a{0}&e 채팅 채널로 자동 전달됩니다.
|
||||
Chat.Channel.Off=&6(&amcMMO-Chat&6) &7당신의 채팅 메시지는 더 이상 특정 채팅 채널로 자동 전달되지 않습니다.
|
||||
Chat.Spy.Party=&6[&eSPY&6-&a{2}&6] &r{0} &b\u2192 &r{1}
|
||||
Broadcasts.LevelUpMilestone=&6(&amcMMO&6) {0}&7님이 &3{2}&7에서 레벨 &a{1}&7에 도달했습니다!
|
||||
Broadcasts.PowerLevelUpMilestone=&6(&amcMMO&6) {0}&7님이 파워 레벨 &a{1}&7에 도달했습니다!
|
||||
Scoreboard.Recovery=mcMMO 점수판을 복구하는 중입니다...
|
||||
Scoreboard.Disabled=이 서버의 mcMMO 점수판이 비활성화되었습니다. 이 설정은 mcMMO/config.yml에서 찾을 수 있습니다.
|
||||
Scoreboard.NotSetupYet=당신의 mcMMO 점수판이 아직 설정되지 않았습니다. 나중에 다시 시도해보세요.
|
||||
|
@ -518,7 +518,7 @@ Unarmed.SubSkill.IronGrip.Name=铁腕
|
||||
Unarmed.SubSkill.IronGrip.Description=防止你被缴械
|
||||
Unarmed.SubSkill.IronGrip.Stat=铁腕触发概率
|
||||
Unarmed.SubSkill.BlockCracker.Name=方块粉碎机
|
||||
Unarmed.SubSkill.BlockCracker.Description=用拳头打碎是头
|
||||
Unarmed.SubSkill.BlockCracker.Description=用拳头打碎石头
|
||||
Unarmed.Listener=格斗(Unarmed):
|
||||
Unarmed.SkillName=格斗
|
||||
Unarmed.Skills.Berserk.Off=**狂暴结束**
|
||||
|
@ -406,8 +406,22 @@ Fishing:
|
||||
Shake:
|
||||
Standard:
|
||||
Rank_1: 15
|
||||
Rank_2: 20
|
||||
Rank_3: 25
|
||||
Rank_4: 30
|
||||
Rank_5: 40
|
||||
Rank_6: 50
|
||||
Rank_7: 60
|
||||
Rank_8: 70
|
||||
RetroMode:
|
||||
Rank_1: 150
|
||||
Rank_2: 200
|
||||
Rank_3: 250
|
||||
Rank_4: 300
|
||||
Rank_5: 400
|
||||
Rank_6: 500
|
||||
Rank_7: 600
|
||||
Rank_8: 700
|
||||
MasterAngler:
|
||||
Standard:
|
||||
Rank_1: 1
|
||||
|
Loading…
Reference in New Issue
Block a user