From aa65be0e1bb3f421ede71162244a045ed09fa7c7 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sat, 17 Feb 2024 16:30:47 -0800 Subject: [PATCH 01/11] dev mode --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e65b832e7..04f2e769c 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.228 + 2.1.229-SNAPSHOT mcMMO https://github.com/mcMMO-Dev/mcMMO From c358c8ce0b64cb833d1c78169258c4e09ae194f3 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 19 Feb 2024 16:12:39 -0800 Subject: [PATCH 02/11] Add missing getHandlerList() to McMMOEntityDamageByRuptureEvent fixes #4972 --- .../skills/rupture/McMMOEntityDamageByRuptureEvent.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/gmail/nossr50/events/skills/rupture/McMMOEntityDamageByRuptureEvent.java b/src/main/java/com/gmail/nossr50/events/skills/rupture/McMMOEntityDamageByRuptureEvent.java index 6612af381..3190538ae 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/rupture/McMMOEntityDamageByRuptureEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/rupture/McMMOEntityDamageByRuptureEvent.java @@ -54,4 +54,8 @@ public class McMMOEntityDamageByRuptureEvent extends EntityEvent implements Canc public HandlerList getHandlers() { return handlers; } + + public static @NotNull HandlerList getHandlerList() { + return handlers; + } } From 3361d28887264be231f1ceaca40e4f76f037bda5 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 19 Feb 2024 17:55:57 -0800 Subject: [PATCH 03/11] Party system can now be disabled via config Closes #4873 --- Changelog.txt | 13 + pom.xml | 8 +- .../java/com/gmail/nossr50/api/PartyAPI.java | 92 +++- .../nossr50/commands/CommandManager.java | 4 +- .../commands/chat/PartyChatCommand.java | 2 +- .../commands/party/PartyAcceptCommand.java | 5 +- .../party/PartyChangeOwnerCommand.java | 2 +- .../nossr50/commands/party/PartyCommand.java | 106 ++-- .../commands/party/PartyCreateCommand.java | 7 +- .../commands/party/PartyDisbandCommand.java | 5 +- .../commands/party/PartyInfoCommand.java | 2 +- .../commands/party/PartyInviteCommand.java | 6 +- .../commands/party/PartyJoinCommand.java | 9 +- .../commands/party/PartyKickCommand.java | 6 +- .../commands/party/PartyQuitCommand.java | 5 +- .../commands/party/PartyRenameCommand.java | 5 +- .../alliance/PartyAllianceAcceptCommand.java | 3 +- .../party/alliance/PartyAllianceCommand.java | 2 +- .../alliance/PartyAllianceDisbandCommand.java | 3 +- .../alliance/PartyAllianceInviteCommand.java | 3 +- .../commands/party/teleport/PtpCommand.java | 2 +- .../nossr50/config/party/PartyConfig.java | 21 + .../gmail/nossr50/datatypes/party/Party.java | 2 +- .../nossr50/datatypes/player/McMMOPlayer.java | 19 +- .../nossr50/listeners/EntityListener.java | 4 +- src/main/java/com/gmail/nossr50/mcMMO.java | 28 +- .../com/gmail/nossr50/party/PartyManager.java | 464 +++++++++--------- .../com/gmail/nossr50/party/ShareHandler.java | 4 +- .../nossr50/runnables/SaveTimerTask.java | 2 +- .../runnables/items/TeleportationWarmup.java | 2 +- .../runnables/party/PartyAutoKickTask.java | 4 +- .../commands/CommandRegistrationManager.java | 61 +-- .../nossr50/util/skills/CombatUtils.java | 6 +- src/main/resources/party.yml | 4 + 34 files changed, 478 insertions(+), 433 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/config/party/PartyConfig.java create mode 100644 src/main/resources/party.yml diff --git a/Changelog.txt b/Changelog.txt index ef92067b1..698c67f99 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,16 @@ +Version 2.1.229 + Added new party.yml config, which lets admins disable the party system entirely without having to use permissions + Fixed error caused by missing API in McMMOEntityDamageByRuptureEvent + (API) Major API changes to PartyManager + (API) PartyManager is no longer a static singleton class, use mcMMO.getPartyManager() to get the PartyManager + (API) Added com.gmail.nossr50.mcMMO.isPartySystemEnabled to check if the party system is enabled + (API) Added com.gmail.nossr50.api.PartyAPI.isPartySystemEnabled as an alternative, to check if the party system is enabled + (API) Added missing com.gmail.nossr50.events.skills.rupture.McMMOEntityDamageByRuptureEvent.getHandlerList + + NOTES: + Admins can now enable/disable the whole party system with a setting in the new party.yml config + You'll have to start your server one time to generate the config, then change the setting and reboot your server. + Version 2.1.228 Fixed a stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event (API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent diff --git a/pom.xml b/pom.xml index 04f2e769c..bfc3cd43f 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.229-SNAPSHOT + 2.1.229 mcMMO https://github.com/mcMMO-Dev/mcMMO @@ -14,9 +14,9 @@ UTF-8 - 16 - 16 - 16 + 17 + 17 + 17 diff --git a/src/main/java/com/gmail/nossr50/api/PartyAPI.java b/src/main/java/com/gmail/nossr50/api/PartyAPI.java index 7592df5e6..ce5efaf6e 100644 --- a/src/main/java/com/gmail/nossr50/api/PartyAPI.java +++ b/src/main/java/com/gmail/nossr50/api/PartyAPI.java @@ -3,12 +3,15 @@ package com.gmail.nossr50.api; import com.gmail.nossr50.datatypes.interactions.NotificationType; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.PartyLeader; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.NotificationManager; import com.gmail.nossr50.util.player.UserManager; +import jdk.jfr.Experimental; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; import java.util.*; @@ -24,13 +27,22 @@ public final class PartyAPI { * @return the name of the player's party, or null if not in a party */ public static String getPartyName(Player player) { - if (!inParty(player)) { + if (!mcMMO.p.getPartyConfig().isPartyEnabled() || !inParty(player)) { return null; } return UserManager.getPlayer(player).getParty().getName(); } + /** + * Check if the party system is enabled. + * + * @return true if the party system is enabled, false otherwise + */ + public static boolean isPartySystemEnabled() { + return mcMMO.p.getPartyConfig().isPartyEnabled(); + } + /** * Checks if a player is in a party. *
@@ -40,7 +52,7 @@ public final class PartyAPI { * @return true if the player is in a party, false otherwise */ public static boolean inParty(Player player) { - if(UserManager.getPlayer(player) == null) + if(!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) return false; return UserManager.getPlayer(player).inParty(); @@ -51,12 +63,15 @@ public final class PartyAPI { *
* This function is designed for API usage. * - * @param playera The first player to check - * @param playerb The second player to check + * @param playerA The first player to check + * @param playerB The second player to check * @return true if the two players are in the same party, false otherwise */ - public static boolean inSameParty(Player playera, Player playerb) { - return PartyManager.inSameParty(playera, playerb); + public static boolean inSameParty(Player playerA, Player playerB) { + if (!mcMMO.p.getPartyConfig().isPartyEnabled()) + return false; + + return mcMMO.p.getPartyManager().inSameParty(playerA, playerB); } /** @@ -67,7 +82,7 @@ public final class PartyAPI { * @return the list of parties. */ public static List getParties() { - return PartyManager.getParties(); + return mcMMO.p.getPartyManager().getParties(); } /** @@ -81,23 +96,29 @@ public final class PartyAPI { */ @Deprecated public static void addToParty(Player player, String partyName) { + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) { + return; + } + //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) + final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); + + if(mmoPlayer == null) return; - Party party = PartyManager.getParty(partyName); + Party party = mcMMO.p.getPartyManager().getParty(partyName); if (party == null) { party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); } else { - if(PartyManager.isPartyFull(player, party)) + if(mcMMO.p.getPartyManager().isPartyFull(player, party)) { NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString()); return; } } - PartyManager.addToParty(UserManager.getPlayer(player), party); + mcMMO.p.getPartyManager().addToParty(mmoPlayer, party); } /** @@ -119,19 +140,18 @@ public final class PartyAPI { * @param partyName The party to add the player to * @param bypassLimit if true bypasses party size limits */ - //TODO: bypasslimit not used? public static void addToParty(Player player, String partyName, boolean bypassLimit) { //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) + if(!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) return; - Party party = PartyManager.getParty(partyName); + Party party = mcMMO.p.getPartyManager().getParty(partyName); if (party == null) { party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); } - PartyManager.addToParty(UserManager.getPlayer(player), party); + mcMMO.p.getPartyManager().addToParty(UserManager.getPlayer(player), party); } /** @@ -143,10 +163,10 @@ public final class PartyAPI { */ public static void removeFromParty(Player player) { //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) + if(!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) return; - PartyManager.removeFromParty(UserManager.getPlayer(player)); + mcMMO.p.getPartyManager().removeFromParty(UserManager.getPlayer(player)); } /** @@ -157,8 +177,11 @@ public final class PartyAPI { * @param partyName The party name * @return the leader of the party */ - public static String getPartyLeader(String partyName) { - return PartyManager.getPartyLeaderName(partyName); + public static @Nullable String getPartyLeader(String partyName) { + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) + return null; + + return mcMMO.p.getPartyManager().getPartyLeaderName(partyName); } /** @@ -171,7 +194,10 @@ public final class PartyAPI { */ @Deprecated public static void setPartyLeader(String partyName, String playerName) { - PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName)); + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) + return; + + mcMMO.p.getPartyManager().setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), mcMMO.p.getPartyManager().getParty(partyName)); } /** @@ -184,9 +210,12 @@ public final class PartyAPI { */ @Deprecated public static List getOnlineAndOfflineMembers(Player player) { - List members = new ArrayList<>(); + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) { + return null; + } - for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) { + List members = new ArrayList<>(); + for (UUID memberUniqueId : mcMMO.p.getPartyManager().getAllMembers(player).keySet()) { OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId); members.add(member); } @@ -203,7 +232,10 @@ public final class PartyAPI { */ @Deprecated public static LinkedHashSet getMembers(Player player) { - return (LinkedHashSet) PartyManager.getAllMembers(player).values(); + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) + return null; + + return (LinkedHashSet) mcMMO.p.getPartyManager().getAllMembers(player).values(); } /** @@ -215,7 +247,10 @@ public final class PartyAPI { * @return all the player names and uuids in the player's party */ public static LinkedHashMap getMembersMap(Player player) { - return PartyManager.getAllMembers(player); + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) + return null; + + return mcMMO.p.getPartyManager().getAllMembers(player); } /** @@ -227,7 +262,10 @@ public final class PartyAPI { * @return all online players in this party */ public static List getOnlineMembers(String partyName) { - return PartyManager.getOnlineMembers(partyName); + if(!mcMMO.p.getPartyConfig().isPartyEnabled()) + return null; + + return mcMMO.p.getPartyManager().getOnlineMembers(partyName); } /** @@ -239,7 +277,7 @@ public final class PartyAPI { * @return all online players in the player's party */ public static List getOnlineMembers(Player player) { - return PartyManager.getOnlineMembers(player); + return mcMMO.p.getPartyManager().getOnlineMembers(player); } public static boolean hasAlly(String partyName) { @@ -247,7 +285,7 @@ public final class PartyAPI { } public static String getAllyName(String partyName) { - Party ally = PartyManager.getParty(partyName).getAlly(); + Party ally = mcMMO.p.getPartyManager().getParty(partyName).getAlly(); if (ally != null) { return ally.getName(); } diff --git a/src/main/java/com/gmail/nossr50/commands/CommandManager.java b/src/main/java/com/gmail/nossr50/commands/CommandManager.java index ea72fc2f9..c17c7fb1d 100644 --- a/src/main/java/com/gmail/nossr50/commands/CommandManager.java +++ b/src/main/java/com/gmail/nossr50/commands/CommandManager.java @@ -47,7 +47,7 @@ public class CommandManager { if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) { bukkitCommandManager.registerCommand(new AdminChatCommand(pluginRef)); } - if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.PARTY)) { + if(pluginRef.getPartyConfig().isPartyEnabled() && ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.PARTY)) { bukkitCommandManager.registerCommand(new PartyChatCommand(pluginRef)); } } @@ -105,7 +105,7 @@ public class CommandManager { public void validatePlayerParty(@NotNull Player player) { McMMOPlayer mmoPlayer = UserManager.getPlayer(player); - if(mmoPlayer.getParty() == null) { + if(!pluginRef.getPartyConfig().isPartyEnabled() || mmoPlayer.getParty() == null) { throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None")); } } diff --git a/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java b/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java index 9e420e901..acd7a6168 100644 --- a/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java @@ -78,7 +78,7 @@ public class PartyChatCommand extends BaseCommand { mcMMO.p.getLogger().severe("You need to specify a party name and then write a message afterwards."); } else { //Grab party - Party targetParty = PartyManager.getParty(args[0]); + Party targetParty = mcMMO.p.getPartyManager().getParty(args[0]); if(targetParty != null) { pluginRef.getChatManager().processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1), targetParty); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java index 09cb1165e..7febacd11 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -31,11 +32,11 @@ public class PartyAcceptCommand implements CommandExecutor { } // Changing parties - if (!PartyManager.changeOrJoinParty(mcMMOPlayer, mcMMOPlayer.getPartyInvite().getName())) { + if (!mcMMO.p.getPartyManager().changeOrJoinParty(mcMMOPlayer, mcMMOPlayer.getPartyInvite().getName())) { return true; } - PartyManager.joinInvitedParty(mcMMOPlayer); + mcMMO.p.getPartyManager().joinInvitedParty(mcMMOPlayer); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "accept")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java index a918a3ce9..28d5079f7 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java @@ -31,7 +31,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor { return true; } - PartyManager.setPartyLeader(target.getUniqueId(), playerParty); + mcMMO.p.getPartyManager().setPartyLeader(target.getUniqueId(), playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "owner", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java index 752552747..52e99bd3c 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java @@ -23,11 +23,45 @@ import java.util.Collections; import java.util.List; public class PartyCommand implements TabExecutor { - private static final List PARTY_SUBCOMMANDS; - private static final List XPSHARE_COMPLETIONS = ImmutableList.of("none", "equal"); - private static final List ITEMSHARE_COMPLETIONS = ImmutableList.of("none", "equal", "random", "loot", "mining", "herbalism", "woodcutting", "misc"); + private final List PARTY_SUBCOMMANDS; + private final List XPSHARE_COMPLETIONS = ImmutableList.of("none", "equal"); + private final List ITEMSHARE_COMPLETIONS = ImmutableList.of("none", "equal", "random", "loot", "mining", "herbalism", "woodcutting", "misc"); + private final CommandExecutor partyJoinCommand; + private final CommandExecutor partyAcceptCommand; + private final CommandExecutor partyCreateCommand; + private final CommandExecutor partyQuitCommand; + private final CommandExecutor partyXpShareCommand; + private final CommandExecutor partyItemShareCommand; + private final CommandExecutor partyInviteCommand; + private final CommandExecutor partyKickCommand; + private final CommandExecutor partyDisbandCommand; + private final CommandExecutor partyChangeOwnerCommand; + private final CommandExecutor partyLockCommand; + private final CommandExecutor partyChangePasswordCommand; + private final CommandExecutor partyRenameCommand; + private final CommandExecutor partyInfoCommand; + private final CommandExecutor partyHelpCommand; + private final CommandExecutor partyTeleportCommand; + private final CommandExecutor partyAllianceCommand; + public PartyCommand() { + partyJoinCommand = new PartyJoinCommand(); + partyAcceptCommand = new PartyAcceptCommand(); + partyCreateCommand = new PartyCreateCommand(); + partyQuitCommand = new PartyQuitCommand(); + partyXpShareCommand = new PartyXpShareCommand(); + partyItemShareCommand = new PartyItemShareCommand(); + partyInviteCommand = new PartyInviteCommand(); + partyKickCommand = new PartyKickCommand(); + partyDisbandCommand = new PartyDisbandCommand(); + partyChangeOwnerCommand = new PartyChangeOwnerCommand(); + partyLockCommand = new PartyLockCommand(); + partyChangePasswordCommand = new PartyChangePasswordCommand(); + partyRenameCommand = new PartyRenameCommand(); + partyInfoCommand = new PartyInfoCommand(); + partyHelpCommand = new PartyHelpCommand(); + partyTeleportCommand = new PtpCommand(); + partyAllianceCommand = new PartyAllianceCommand(); - static { ArrayList subcommands = new ArrayList<>(); for (PartySubcommandType subcommand : PartySubcommandType.values()) { @@ -38,24 +72,6 @@ public class PartyCommand implements TabExecutor { PARTY_SUBCOMMANDS = ImmutableList.copyOf(subcommands); } - private final CommandExecutor partyJoinCommand = new PartyJoinCommand(); - private final CommandExecutor partyAcceptCommand = new PartyAcceptCommand(); - private final CommandExecutor partyCreateCommand = new PartyCreateCommand(); - private final CommandExecutor partyQuitCommand = new PartyQuitCommand(); - private final CommandExecutor partyXpShareCommand = new PartyXpShareCommand(); - private final CommandExecutor partyItemShareCommand = new PartyItemShareCommand(); - private final CommandExecutor partyInviteCommand = new PartyInviteCommand(); - private final CommandExecutor partyKickCommand = new PartyKickCommand(); - private final CommandExecutor partyDisbandCommand = new PartyDisbandCommand(); - private final CommandExecutor partyChangeOwnerCommand = new PartyChangeOwnerCommand(); - private final CommandExecutor partyLockCommand = new PartyLockCommand(); - private final CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand(); - private final CommandExecutor partyRenameCommand = new PartyRenameCommand(); - private final CommandExecutor partyInfoCommand = new PartyInfoCommand(); - private final CommandExecutor partyHelpCommand = new PartyHelpCommand(); - private final CommandExecutor partyTeleportCommand = new PtpCommand(); - private final CommandExecutor partyAllianceCommand = new PartyAllianceCommand(); - @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (CommandUtils.noConsoleUsage(sender)) { @@ -73,13 +89,13 @@ public class PartyCommand implements TabExecutor { return true; } - if(UserManager.getPlayer(player) == null) + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + if(mcMMOPlayer == null) { player.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); if (args.length < 1) { if (!mcMMOPlayer.inParty()) { @@ -140,31 +156,18 @@ public class PartyCommand implements TabExecutor { return true; } - switch (subcommand) { - case XPSHARE: - return partyXpShareCommand.onCommand(sender, command, label, args); - case ITEMSHARE: - return partyItemShareCommand.onCommand(sender, command, label, args); - case KICK: - return partyKickCommand.onCommand(sender, command, label, args); - case DISBAND: - return partyDisbandCommand.onCommand(sender, command, label, args); - case OWNER: - return partyChangeOwnerCommand.onCommand(sender, command, label, args); - case LOCK: - case UNLOCK: - return partyLockCommand.onCommand(sender, command, label, args); - case PASSWORD: - return partyChangePasswordCommand.onCommand(sender, command, label, args); - case RENAME: - return partyRenameCommand.onCommand(sender, command, label, args); - case ALLIANCE: - return partyAllianceCommand.onCommand(sender, command, label, args); - default: - break; - } - - return true; + return switch (subcommand) { + case XPSHARE -> partyXpShareCommand.onCommand(sender, command, label, args); + case ITEMSHARE -> partyItemShareCommand.onCommand(sender, command, label, args); + case KICK -> partyKickCommand.onCommand(sender, command, label, args); + case DISBAND -> partyDisbandCommand.onCommand(sender, command, label, args); + case OWNER -> partyChangeOwnerCommand.onCommand(sender, command, label, args); + case LOCK, UNLOCK -> partyLockCommand.onCommand(sender, command, label, args); + case PASSWORD -> partyChangePasswordCommand.onCommand(sender, command, label, args); + case RENAME -> partyRenameCommand.onCommand(sender, command, label, args); + case ALLIANCE -> partyAllianceCommand.onCommand(sender, command, label, args); + default -> true; + }; } @Override @@ -179,12 +182,13 @@ public class PartyCommand implements TabExecutor { return ImmutableList.of(); } + List playerNames = CommandUtils.getOnlinePlayerNames(sender); + switch (subcommand) { case JOIN: case INVITE: case KICK: case OWNER: - List playerNames = CommandUtils.getOnlinePlayerNames(sender); return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<>(playerNames.size())); case XPSHARE: return StringUtil.copyPartialMatches(args[1], XPSHARE_COMPLETIONS, new ArrayList<>(XPSHARE_COMPLETIONS.size())); @@ -198,7 +202,7 @@ public class PartyCommand implements TabExecutor { case TELEPORT: List matches = StringUtil.copyPartialMatches(args[1], PtpCommand.TELEPORT_SUBCOMMANDS, new ArrayList<>(PtpCommand.TELEPORT_SUBCOMMANDS.size())); - if (matches.size() == 0) { + if (matches.isEmpty()) { Player player = (Player) sender; final McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java index 34daed151..80d4d23ee 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -26,16 +27,16 @@ public class PartyCreateCommand implements CommandExecutor { } // Check to see if the party exists, and if it does cancel creating a new party - if (PartyManager.checkPartyExistence(player, args[1])) { + if (mcMMO.p.getPartyManager().checkPartyExistence(player, args[1])) { return true; } // Changing parties - if (!PartyManager.changeOrJoinParty(mcMMOPlayer, args[1])) { + if (!mcMMO.p.getPartyManager().changeOrJoinParty(mcMMOPlayer, args[1])) { return true; } - PartyManager.createParty(mcMMOPlayer, args[1], getPassword(args)); + mcMMO.p.getPartyManager().createParty(mcMMOPlayer, args[1], getPassword(args)); return true; default: diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java index e21776370..3b0ed16bc 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java @@ -4,6 +4,7 @@ import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -26,14 +27,14 @@ public class PartyDisbandCommand implements CommandExecutor { final String partyName = playerParty.getName(); for (Player member : playerParty.getOnlineMembers()) { - if (!PartyManager.handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) { + if (!mcMMO.p.getPartyManager().handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) { return true; } member.sendMessage(LocaleLoader.getString("Party.Disband")); } - PartyManager.disbandParty(mcMMOPlayer, playerParty); + mcMMO.p.getPartyManager().disbandParty(mcMMOPlayer, playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "disband")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java index ab46f14de..c17707926 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java @@ -125,7 +125,7 @@ public class PartyInfoCommand implements CommandExecutor { * Only show members of the party that this member can see */ - List nearMembers = PartyManager.getNearVisibleMembers(mcMMOPlayer); + List nearMembers = mcMMO.p.getPartyManager().getNearVisibleMembers(mcMMOPlayer); int membersOnline = party.getVisibleMembers(player).size(); player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java index 7a24a4936..65abe4e82 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java @@ -40,19 +40,19 @@ public class PartyInviteCommand implements CommandExecutor { return true; } - if (PartyManager.inSameParty(player, target)) { + if (mcMMO.p.getPartyManager().inSameParty(player, target)) { sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", targetName)); return true; } - if (!PartyManager.canInvite(mcMMOPlayer)) { + if (!mcMMO.p.getPartyManager().canInvite(mcMMOPlayer)) { player.sendMessage(LocaleLoader.getString("Party.Locked")); return true; } Party playerParty = mcMMOPlayer.getParty(); - if (PartyManager.isPartyFull(target, playerParty)) { + if (mcMMO.p.getPartyManager().isPartyFull(target, playerParty)) { player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite", target.getName(), playerParty.toString(), mcMMO.p.getGeneralConfig().getPartyMaxSize())); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java index 8971fc0ed..be170cd4e 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -51,25 +52,25 @@ public class PartyJoinCommand implements CommandExecutor { String password = getPassword(args); // Make sure party passwords match - if (!PartyManager.checkPartyPassword(player, targetParty, password)) { + if (!mcMMO.p.getPartyManager().checkPartyPassword(player, targetParty, password)) { return true; } String partyName = targetParty.getName(); // Changing parties - if (!PartyManager.changeOrJoinParty(mcMMOPlayer, partyName)) { + if (!mcMMO.p.getPartyManager().changeOrJoinParty(mcMMOPlayer, partyName)) { return true; } - if(PartyManager.isPartyFull(player, targetParty)) + if(mcMMO.p.getPartyManager().isPartyFull(player, targetParty)) { player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull", targetParty.toString())); return true; } player.sendMessage(LocaleLoader.getString("Commands.Party.Join", partyName)); - PartyManager.addToParty(mcMMOPlayer, targetParty); + mcMMO.p.getPartyManager().addToParty(mcMMOPlayer, targetParty); return true; default: diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java index fd6b3e495..b9218b980 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java @@ -37,15 +37,15 @@ public class PartyKickCommand implements CommandExecutor { Player onlineTarget = target.getPlayer(); String partyName = playerParty.getName(); - if (!PartyManager.handlePartyChangeEvent(onlineTarget, partyName, null, EventReason.KICKED_FROM_PARTY)) { + if (!mcMMO.p.getPartyManager().handlePartyChangeEvent(onlineTarget, partyName, null, EventReason.KICKED_FROM_PARTY)) { return true; } - PartyManager.processPartyLeaving(UserManager.getPlayer(onlineTarget)); + mcMMO.p.getPartyManager().processPartyLeaving(UserManager.getPlayer(onlineTarget)); onlineTarget.sendMessage(LocaleLoader.getString("Commands.Party.Kick", partyName)); } - PartyManager.removeFromParty(target, playerParty); + mcMMO.p.getPartyManager().removeFromParty(target, playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "kick", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java index c450a0757..920f69ac9 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java @@ -4,6 +4,7 @@ import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -26,11 +27,11 @@ public class PartyQuitCommand implements CommandExecutor { McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); Party playerParty = mcMMOPlayer.getParty(); - if (!PartyManager.handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) { + if (!mcMMO.p.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) { return true; } - PartyManager.removeFromParty(mcMMOPlayer); + mcMMO.p.getPartyManager().removeFromParty(mcMMOPlayer); sender.sendMessage(LocaleLoader.getString("Commands.Party.Leave")); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java index 29e35cd4a..c6e55fc4a 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java @@ -4,6 +4,7 @@ import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -36,14 +37,14 @@ public class PartyRenameCommand implements CommandExecutor { Player player = mcMMOPlayer.getPlayer(); // Check to see if the party exists, and if it does cancel renaming the party - if (PartyManager.checkPartyExistence(player, newPartyName)) { + if (mcMMO.p.getPartyManager().checkPartyExistence(player, newPartyName)) { return true; } String leaderName = playerParty.getLeader().getPlayerName(); for (Player member : playerParty.getOnlineMembers()) { - if (!PartyManager.handlePartyChangeEvent(member, oldPartyName, newPartyName, EventReason.CHANGED_PARTIES)) { + if (!mcMMO.p.getPartyManager().handlePartyChangeEvent(member, oldPartyName, newPartyName, EventReason.CHANGED_PARTIES)) { return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java index 1977ad67b..2e8eed2d5 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.commands.party.alliance; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -31,7 +32,7 @@ public class PartyAllianceAcceptCommand implements CommandExecutor { return true; } - PartyManager.acceptAllianceInvite(mcMMOPlayer); + mcMMO.p.getPartyManager().acceptAllianceInvite(mcMMOPlayer); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "alliance", "accept")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java index 27f6e4d21..5e47a451c 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java @@ -129,7 +129,7 @@ public class PartyAllianceCommand implements TabExecutor { } private void displayMemberInfo(McMMOPlayer mcMMOPlayer) { - List nearMembers = PartyManager.getNearMembers(mcMMOPlayer); + List nearMembers = mcMMO.p.getPartyManager().getNearMembers(mcMMOPlayer); player.sendMessage(LocaleLoader.getString("Commands.Party.Alliance.Members.Header")); player.sendMessage(playerParty.createMembersList(player)); player.sendMessage(ChatColor.DARK_GRAY + "----------------------------"); diff --git a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java index c2cfa666c..c8f2609e0 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.commands.party.alliance; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; @@ -28,7 +29,7 @@ public class PartyAllianceDisbandCommand implements CommandExecutor { return true; } - PartyManager.disbandAlliance(player, party, party.getAlly()); + mcMMO.p.getPartyManager().disbandAlliance(player, party, party.getAlly()); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "alliance", "disband")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java index 408c6136a..855a525e8 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.commands.party.alliance; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -44,7 +45,7 @@ public class PartyAllianceInviteCommand implements CommandExecutor { return true; } - if (PartyManager.inSameParty(player, target)) { + if (mcMMO.p.getPartyManager().inSameParty(player, target)) { sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", targetName)); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java index 48276c723..e757688f8 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java @@ -210,7 +210,7 @@ public class PtpCommand implements TabExecutor { return false; } - if (!PartyManager.inSameParty(player, target)) { + if (!mcMMO.p.getPartyManager().inSameParty(player, target)) { player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName)); return false; } diff --git a/src/main/java/com/gmail/nossr50/config/party/PartyConfig.java b/src/main/java/com/gmail/nossr50/config/party/PartyConfig.java new file mode 100644 index 000000000..cf4ce277d --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/party/PartyConfig.java @@ -0,0 +1,21 @@ +package com.gmail.nossr50.config.party; + +import com.gmail.nossr50.config.BukkitConfig; + +import java.io.File; + +public class PartyConfig extends BukkitConfig { + public PartyConfig(File dataFolder) { + super("party.yml", dataFolder); + validate(); + } + + @Override + protected void loadKeys() { + + } + + public boolean isPartyEnabled() { + return config.getBoolean("Party.Enabled", true); + } +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/party/Party.java b/src/main/java/com/gmail/nossr50/datatypes/party/Party.java index ccf1c991c..9b684c742 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/party/Party.java +++ b/src/main/java/com/gmail/nossr50/datatypes/party/Party.java @@ -253,7 +253,7 @@ public class Party { } } } else { - PartyManager.informPartyMembersLevelUp(this, levelsGained, getLevel()); + mcMMO.p.getPartyManager().informPartyMembersLevelUp(this, levelsGained, getLevel()); } } diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java index 0500035d5..80e53ccc7 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java +++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java @@ -64,6 +64,7 @@ import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.plugin.Plugin; import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.EnumMap; import java.util.Map; @@ -642,11 +643,11 @@ public class McMMOPlayer implements Identified { applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason, xpGainSource); - if (party == null || party.hasReachedLevelCap()) { + if (!mcMMO.p.getPartyConfig().isPartyEnabled() || party == null || party.hasReachedLevelCap()) { return; } - if (!mcMMO.p.getGeneralConfig().getPartyXpNearMembersNeeded() || !PartyManager.getNearMembers(this).isEmpty()) { + if (!mcMMO.p.getGeneralConfig().getPartyXpNearMembersNeeded() || !mcMMO.p.getPartyManager().getNearMembers(this).isEmpty()) { party.applyXpGain(modifyXpGain(skill, xp)); } } @@ -746,11 +747,13 @@ public class McMMOPlayer implements Identified { */ public void setupPartyData() { - party = PartyManager.getPlayerParty(player.getName(), player.getUniqueId()); - ptpRecord = new PartyTeleportRecord(); + if (mcMMO.p.isPartySystemEnabled()) { + party = mcMMO.p.getPartyManager().getPlayerParty(player.getName(), player.getUniqueId()); + ptpRecord = new PartyTeleportRecord(); - if (inParty()) { - loginParty(); + if (inParty()) { + loginParty(); + } } } @@ -770,7 +773,7 @@ public class McMMOPlayer implements Identified { this.party = party; } - public Party getParty() { + public @Nullable Party getParty() { return party; } @@ -786,7 +789,7 @@ public class McMMOPlayer implements Identified { invite = null; } - public PartyTeleportRecord getPartyTeleportRecord() { + public @Nullable PartyTeleportRecord getPartyTeleportRecord() { return ptpRecord; } diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index e3ac46c5c..a432dda05 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -495,8 +495,8 @@ public class EntityListener implements Listener { //Party Friendly Fire if(!mcMMO.p.getGeneralConfig().getPartyFriendlyFire()) - if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) - || PartyManager.areAllies(defendingPlayer, attackingPlayer)) + if ((mcMMO.p.getPartyManager().inSameParty(defendingPlayer, attackingPlayer) + || mcMMO.p.getPartyManager().areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) { event.setCancelled(true); diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index f6e96c3fb..20e429f8d 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -8,6 +8,7 @@ import com.gmail.nossr50.config.mods.ArmorConfigManager; import com.gmail.nossr50.config.mods.BlockConfigManager; import com.gmail.nossr50.config.mods.EntityConfigManager; import com.gmail.nossr50.config.mods.ToolConfigManager; +import com.gmail.nossr50.config.party.PartyConfig; import com.gmail.nossr50.config.skills.alchemy.PotionConfig; import com.gmail.nossr50.config.skills.repair.RepairConfigManager; import com.gmail.nossr50.config.skills.salvage.SalvageConfigManager; @@ -139,8 +140,10 @@ public class mcMMO extends JavaPlugin { private GeneralConfig generalConfig; private AdvancedConfig advancedConfig; + private PartyConfig partyConfig; private FoliaLib foliaLib; + private PartyManager partyManager; // private RepairConfig repairConfig; // private SalvageConfig salvageConfig; @@ -182,6 +185,7 @@ public class mcMMO extends JavaPlugin { //Init configs advancedConfig = new AdvancedConfig(getDataFolder()); + partyConfig = new PartyConfig(getDataFolder()); //Store this value so other plugins can check it isRetroModeEnabled = generalConfig.getIsRetroMode(); @@ -259,7 +263,10 @@ public class mcMMO extends JavaPlugin { registerCoreSkills(); registerCustomRecipes(); - PartyManager.loadParties(); + if (partyConfig.isPartyEnabled()) { + partyManager = new PartyManager(this); + partyManager.loadParties(); + } formulaManager = new FormulaManager(); @@ -377,7 +384,7 @@ public class mcMMO extends JavaPlugin { UserManager.saveAll(); // Make sure to save player information if the server shuts down UserManager.clearAll(); Alchemy.finishAllBrews(); // Finish all partially complete AlchemyBrewTasks to prevent vanilla brewing continuation on restart - PartyManager.saveParties(); // Save our parties + getPartyManager().saveParties(); // Save our parties //TODO: Needed? if(generalConfig.getScoreboardsEnabled()) @@ -783,6 +790,23 @@ public class mcMMO extends JavaPlugin { return advancedConfig; } + public @NotNull PartyConfig getPartyConfig() { + return partyConfig; + } + + /** + * Check if the party system is enabled + * + * @return true if the party system is enabled, false otherwise + */ + public boolean isPartySystemEnabled() { + return partyConfig.isPartyEnabled(); + } + + public PartyManager getPartyManager() { + return partyManager; + } + public @NotNull FoliaLib getFoliaLib() { return foliaLib; } diff --git a/src/main/java/com/gmail/nossr50/party/PartyManager.java b/src/main/java/com/gmail/nossr50/party/PartyManager.java index 7bc3afe9b..dd8b79a6a 100644 --- a/src/main/java/com/gmail/nossr50/party/PartyManager.java +++ b/src/main/java/com/gmail/nossr50/party/PartyManager.java @@ -22,6 +22,8 @@ import com.gmail.nossr50.util.sounds.SoundType; import org.bukkit.OfflinePlayer; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.io.File; import java.util.ArrayList; @@ -31,104 +33,44 @@ import java.util.Map.Entry; import java.util.UUID; import java.util.logging.Level; +import static java.util.Objects.requireNonNull; + public final class PartyManager { - private static final String partiesFilePath = mcMMO.getFlatFileDirectory() + "parties.yml"; - private static final List parties = new ArrayList<>(); - private static final File partyFile = new File(partiesFilePath); + private final @NotNull List parties; + private final @NotNull File partyFile; + private final @NotNull mcMMO pluginRef; - private PartyManager() {} - - /** - * Check if a party with a given name already exists. - * - * @param player The player to notify - * @param partyName The name of the party to check - * @return true if a party with that name exists, false otherwise - */ - public static boolean checkPartyExistence(Player player, String partyName) { - if (getParty(partyName) == null) { - return false; - } - - player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", partyName)); - return true; + public PartyManager(@NotNull mcMMO pluginRef) { + this.pluginRef = pluginRef; + final String partiesFilePath = mcMMO.getFlatFileDirectory() + "parties.yml"; + this.partyFile = new File(partiesFilePath); + this.parties = new ArrayList<>(); } /** * Checks if the player can join a party, parties can have a size limit, although there is a permission to bypass this - * @param player player who is attempting to join the party + * + * @param player player who is attempting to join the party * @param targetParty the target party * @return true if party is full and cannot be joined */ - public static boolean isPartyFull(Player player, Party targetParty) - { - return !Permissions.partySizeBypass(player) && mcMMO.p.getGeneralConfig().getPartyMaxSize() >= 1 && targetParty.getOnlineMembers().size() >= mcMMO.p.getGeneralConfig().getPartyMaxSize(); + public boolean isPartyFull(@NotNull Player player, @NotNull Party targetParty) { + requireNonNull(player, "player cannot be null!"); + requireNonNull(targetParty, "targetParty cannot be null!"); + return !Permissions.partySizeBypass(player) && pluginRef.getGeneralConfig().getPartyMaxSize() >= 1 && targetParty.getOnlineMembers().size() >= pluginRef.getGeneralConfig().getPartyMaxSize(); } - /** - * Attempt to change parties or join a new party. - * - * @param mcMMOPlayer The player changing or joining parties - * @param newPartyName The name of the party being joined - * @return true if the party was joined successfully, false otherwise - */ - public static boolean changeOrJoinParty(McMMOPlayer mcMMOPlayer, String newPartyName) { - Player player = mcMMOPlayer.getPlayer(); + public boolean areAllies(@NotNull Player firstPlayer, @NotNull Player secondPlayer) { + requireNonNull(firstPlayer, "firstPlayer cannot be null!"); + requireNonNull(secondPlayer, "secondPlayer cannot be null!"); - if (mcMMOPlayer.inParty()) { - Party oldParty = mcMMOPlayer.getParty(); - - if (!handlePartyChangeEvent(player, oldParty.getName(), newPartyName, EventReason.CHANGED_PARTIES)) { - return false; - } - - removeFromParty(mcMMOPlayer); - } - else return handlePartyChangeEvent(player, null, newPartyName, EventReason.JOINED_PARTY); - - return true; - } - - /** - * Check if two online players are in the same party. - * - * @param firstPlayer The first player - * @param secondPlayer The second player - * @return true if they are in the same party, false otherwise - */ - public static boolean inSameParty(Player firstPlayer, Player secondPlayer) { //Profile not loaded - if(UserManager.getPlayer(firstPlayer) == null) - { + if (UserManager.getPlayer(firstPlayer) == null) { return false; } //Profile not loaded - if(UserManager.getPlayer(secondPlayer) == null) - { - return false; - } - - Party firstParty = UserManager.getPlayer(firstPlayer).getParty(); - Party secondParty = UserManager.getPlayer(secondPlayer).getParty(); - - if (firstParty == null || secondParty == null) { - return false; - } - - return firstParty.equals(secondParty); - } - - public static boolean areAllies(Player firstPlayer, Player secondPlayer) { - //Profile not loaded - if(UserManager.getPlayer(firstPlayer) == null) - { - return false; - } - - //Profile not loaded - if(UserManager.getPlayer(secondPlayer) == null) - { + if (UserManager.getPlayer(secondPlayer) == null) { return false; } @@ -145,16 +87,17 @@ public final class PartyManager { /** * Get the near party members. * - * @param mcMMOPlayer The player to check + * @param mmoPlayer The player to check * @return the near party members */ - public static List getNearMembers(McMMOPlayer mcMMOPlayer) { + public @NotNull List getNearMembers(@NotNull McMMOPlayer mmoPlayer) { + requireNonNull(mmoPlayer, "mmoPlayer cannot be null!"); List nearMembers = new ArrayList<>(); - Party party = mcMMOPlayer.getParty(); + Party party = mmoPlayer.getParty(); if (party != null) { - Player player = mcMMOPlayer.getPlayer(); - double range = mcMMO.p.getGeneralConfig().getPartyShareRange(); + Player player = mmoPlayer.getPlayer(); + double range = pluginRef.getGeneralConfig().getPartyShareRange(); for (Player member : party.getOnlineMembers()) { if (!player.equals(member) && member.isValid() && Misc.isNear(player.getLocation(), member.getLocation(), range)) { @@ -166,13 +109,14 @@ public final class PartyManager { return nearMembers; } - public static List getNearVisibleMembers(McMMOPlayer mcMMOPlayer) { + public @NotNull List getNearVisibleMembers(@NotNull McMMOPlayer mmoPlayer) { + requireNonNull(mmoPlayer, "mmoPlayer cannot be null!"); List nearMembers = new ArrayList<>(); - Party party = mcMMOPlayer.getParty(); + Party party = mmoPlayer.getParty(); if (party != null) { - Player player = mcMMOPlayer.getPlayer(); - double range = mcMMO.p.getGeneralConfig().getPartyShareRange(); + Player player = mmoPlayer.getPlayer(); + double range = pluginRef.getGeneralConfig().getPartyShareRange(); for (Player member : party.getVisibleMembers(player)) { if (!player.equals(member) @@ -186,14 +130,14 @@ public final class PartyManager { return nearMembers; } - /** * Get a list of all players in this player's party. * * @param player The player to check * @return all the players in the player's party */ - public static LinkedHashMap getAllMembers(Player player) { + public @NotNull LinkedHashMap getAllMembers(@NotNull Player player) { + requireNonNull(player, "player cannot be null!"); Party party = getParty(player); return party == null ? new LinkedHashMap<>() : party.getMembers(); @@ -205,7 +149,8 @@ public final class PartyManager { * @param partyName The party to check * @return all online players in this party */ - public static List getOnlineMembers(String partyName) { + public @NotNull List getOnlineMembers(@NotNull String partyName) { + requireNonNull(partyName, "partyName cannot be null!"); return getOnlineMembers(getParty(partyName)); } @@ -215,11 +160,12 @@ public final class PartyManager { * @param player The player to check * @return all online players in this party */ - public static List getOnlineMembers(Player player) { + public @NotNull List getOnlineMembers(@NotNull Player player) { + requireNonNull(player, "player cannot be null!"); return getOnlineMembers(getParty(player)); } - private static List getOnlineMembers(Party party) { + private List getOnlineMembers(@Nullable Party party) { return party == null ? new ArrayList<>() : party.getOnlineMembers(); } @@ -229,7 +175,8 @@ public final class PartyManager { * @param partyName The party name * @return the existing party, null otherwise */ - public static Party getParty(String partyName) { + public @Nullable Party getParty(@NotNull String partyName) { + requireNonNull(partyName, "partyName cannot be null!"); for (Party party : parties) { if (party.getName().equalsIgnoreCase(partyName)) { return party; @@ -246,9 +193,10 @@ public final class PartyManager { * @return the existing party, null otherwise */ @Deprecated - public static Party getPlayerParty(String playerName) { + public @Nullable Party getPlayerParty(@NotNull String playerName) { + requireNonNull(playerName, "playerName cannot be null!"); for (Party party : parties) { - if (party.getMembers().containsKey(playerName)) { + if (party.getMembers().containsValue(playerName)) { return party; } } @@ -262,7 +210,9 @@ public final class PartyManager { * @param uuid The members uuid * @return the existing party, null otherwise */ - public static Party getPlayerParty(String playerName, UUID uuid) { + public @Nullable Party getPlayerParty(@NotNull String playerName, @NotNull UUID uuid) { + requireNonNull(playerName, "playerName cannot be null!"); + requireNonNull(uuid, "uuid cannot be null!"); for (Party party : parties) { LinkedHashMap members = party.getMembers(); if (members.containsKey(uuid) || members.containsValue(playerName)) { @@ -285,16 +235,18 @@ public final class PartyManager { * @param player The member * @return the existing party, null otherwise */ - public static Party getParty(Player player) { + public @Nullable Party getParty(@NotNull Player player) { + requireNonNull(player, "player cannot be null!"); //Profile not loaded - if(UserManager.getPlayer(player) == null) - { + if (UserManager.getPlayer(player) == null) { return null; } - McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); + if(mmoPlayer == null) + return null; - return mcMMOPlayer.getParty(); + return mmoPlayer.getParty(); } /** @@ -302,7 +254,7 @@ public final class PartyManager { * * @return the list of parties. */ - public static List getParties() { + public @NotNull List getParties() { return parties; } @@ -310,9 +262,12 @@ public final class PartyManager { * Remove a player from a party. * * @param player The player to remove - * @param party The party + * @param party The party */ - public static void removeFromParty(OfflinePlayer player, Party party) { + public void removeFromParty(@NotNull OfflinePlayer player, @NotNull Party party) { + requireNonNull(player, "player cannot be null!"); + requireNonNull(party, "party cannot be null!"); + LinkedHashMap members = party.getMembers(); String playerName = player.getName(); @@ -324,8 +279,7 @@ public final class PartyManager { if (members.isEmpty()) { parties.remove(party); - } - else { + } else { // If the leaving player was the party leader, appoint a new leader from the party members if (party.getLeader().getUniqueId().equals(player.getUniqueId())) { setPartyLeader(members.keySet().iterator().next(), party); @@ -340,7 +294,12 @@ public final class PartyManager { * * @param mcMMOPlayer The player to remove */ - public static void removeFromParty(McMMOPlayer mcMMOPlayer) { + public void removeFromParty(@NotNull McMMOPlayer mcMMOPlayer) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); + if (mcMMOPlayer.getParty() == null) { + return; + } + removeFromParty(mcMMOPlayer.getPlayer(), mcMMOPlayer.getParty()); processPartyLeaving(mcMMOPlayer); } @@ -351,21 +310,23 @@ public final class PartyManager { * @param party The party to remove * @deprecated Use {@link #disbandParty(McMMOPlayer, Party)} */ - public static void disbandParty(Party party) { + public void disbandParty(@NotNull Party party) { + requireNonNull(party, "party cannot be null!"); disbandParty(null, party); } /** * Disband a party. Kicks out all members and removes the party. * + * @param mcMMOPlayer The player to remove (can be null? lol) * @param party The party to remove */ - public static void disbandParty(McMMOPlayer mcMMOPlayer, Party party) { + public void disbandParty(@Nullable McMMOPlayer mcMMOPlayer, @NotNull Party party) { + requireNonNull(party, "party cannot be null!"); //TODO: Potential issues with unloaded profile? for (final Player member : party.getOnlineMembers()) { //Profile not loaded - if(UserManager.getPlayer(member) == null) - { + if (UserManager.getPlayer(member) == null) { continue; } @@ -387,10 +348,14 @@ public final class PartyManager { * Create a new party * * @param mcMMOPlayer The player to add to the party - * @param partyName The party to add the player to - * @param password The password for this party, null if there was no password + * @param partyName The party to add the player to + * @param password The password for this party, null if there was no password */ - public static void createParty(McMMOPlayer mcMMOPlayer, String partyName, String password) { + public void createParty(@NotNull McMMOPlayer mcMMOPlayer, @NotNull String partyName, @Nullable String password) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); + requireNonNull(partyName, "partyName cannot be null!"); + requireNonNull(password, "password cannot be null!"); + Player player = mcMMOPlayer.getPlayer(); Party party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName.replace(".", ""), password); @@ -409,12 +374,12 @@ public final class PartyManager { /** * Check if a player can join a party * - * @param player The player trying to join a party - * @param party The party + * @param player The player trying to join a party + * @param party The party * @param password The password provided by the player * @return true if the player can join the party */ - public static boolean checkPartyPassword(Player player, Party party, String password) { + public boolean checkPartyPassword(@NotNull Player player, @NotNull Party party, @Nullable String password) { if (party.isLocked()) { String partyPassword = party.getPassword(); @@ -442,7 +407,8 @@ public final class PartyManager { * * @param mcMMOPlayer The player to add to the party */ - public static void joinInvitedParty(McMMOPlayer mcMMOPlayer) { + public void joinInvitedParty(@NotNull McMMOPlayer mcMMOPlayer) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party invite = mcMMOPlayer.getPartyInvite(); // Check if the party still exists, it might have been disbanded @@ -454,9 +420,8 @@ public final class PartyManager { /* * Don't let players join a full party */ - if(mcMMO.p.getGeneralConfig().getPartyMaxSize() > 0 && invite.getMembers().size() >= mcMMO.p.getGeneralConfig().getPartyMaxSize()) - { - NotificationManager.sendPlayerInformation(mcMMOPlayer.getPlayer(), NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept", invite.getName(), String.valueOf(mcMMO.p.getGeneralConfig().getPartyMaxSize())); + if (pluginRef.getGeneralConfig().getPartyMaxSize() > 0 && invite.getMembers().size() >= pluginRef.getGeneralConfig().getPartyMaxSize()) { + NotificationManager.sendPlayerInformation(mcMMOPlayer.getPlayer(), NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept", invite.getName(), String.valueOf(pluginRef.getGeneralConfig().getPartyMaxSize())); return; } @@ -470,7 +435,8 @@ public final class PartyManager { * * @param mcMMOPlayer The player who accepts the alliance invite */ - public static void acceptAllianceInvite(McMMOPlayer mcMMOPlayer) { + public void acceptAllianceInvite(@NotNull McMMOPlayer mcMMOPlayer) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party invite = mcMMOPlayer.getPartyAllianceInvite(); Player player = mcMMOPlayer.getPlayer(); @@ -490,7 +456,10 @@ public final class PartyManager { createAlliance(mcMMOPlayer.getParty(), invite); } - public static void createAlliance(Party firstParty, Party secondParty) { + public void createAlliance(@NotNull Party firstParty, @NotNull Party secondParty) { + requireNonNull(firstParty, "firstParty cannot be null!"); + requireNonNull(secondParty, "secondParty cannot be null!"); + firstParty.setAlly(secondParty); secondParty.setAlly(firstParty); @@ -503,16 +472,22 @@ public final class PartyManager { } } - public static boolean disbandAlliance(Player player, Party firstParty, Party secondParty){ + public boolean disbandAlliance(@NotNull Player player, @NotNull Party firstParty, @NotNull Party secondParty) { + requireNonNull(player, "player cannot be null!"); + requireNonNull(firstParty, "firstParty cannot be null!"); + requireNonNull(secondParty, "secondParty cannot be null!"); + if (!handlePartyChangeAllianceEvent(player, firstParty.getName(), secondParty.getName(), McMMOPartyAllianceChangeEvent.EventReason.DISBAND_ALLIANCE)) { return false; } - PartyManager.disbandAlliance(firstParty, secondParty); + disbandAlliance(firstParty, secondParty); return true; } - private static void disbandAlliance(Party firstParty, Party secondParty) { + private void disbandAlliance(@NotNull Party firstParty, @NotNull Party secondParty) { + requireNonNull(firstParty, "firstParty cannot be null!"); + requireNonNull(secondParty, "secondParty cannot be null!"); firstParty.setAlly(null); secondParty.setAlly(null); @@ -529,9 +504,12 @@ public final class PartyManager { * Add a player to a party * * @param mcMMOPlayer The player to add to the party - * @param party The party + * @param party The party */ - public static void addToParty(McMMOPlayer mcMMOPlayer, Party party) { + public void addToParty(@NotNull McMMOPlayer mcMMOPlayer, @NotNull Party party) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); + requireNonNull(party, "party cannot be null!"); + Player player = mcMMOPlayer.getPlayer(); String playerName = player.getName(); @@ -547,7 +525,8 @@ public final class PartyManager { * @param partyName The party name * @return the leader of the party */ - public static String getPartyLeaderName(String partyName) { + public @Nullable String getPartyLeaderName(@NotNull String partyName) { + requireNonNull(partyName, "partyName cannot be null!"); Party party = getParty(partyName); return party == null ? null : party.getLeader().getPlayerName(); @@ -556,11 +535,13 @@ public final class PartyManager { /** * Set the leader of a party. * - * @param uuid The uuid of the player to set as leader + * @param uuid The uuid of the player to set as leader * @param party The party */ - public static void setPartyLeader(UUID uuid, Party party) { - OfflinePlayer player = mcMMO.p.getServer().getOfflinePlayer(uuid); + public void setPartyLeader(@NotNull UUID uuid, @NotNull Party party) { + requireNonNull(uuid, "uuid cannot be null!"); + requireNonNull(party, "party cannot be null!"); + OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(uuid); UUID leaderUniqueId = party.getLeader().getUniqueId(); for (Player member : party.getOnlineMembers()) { @@ -568,11 +549,9 @@ public final class PartyManager { if (memberUniqueId.equals(player.getUniqueId())) { member.sendMessage(LocaleLoader.getString("Party.Owner.Player")); - } - else if (memberUniqueId.equals(leaderUniqueId)) { + } else if (memberUniqueId.equals(leaderUniqueId)) { member.sendMessage(LocaleLoader.getString("Party.Owner.NotLeader")); - } - else { + } else { member.sendMessage(LocaleLoader.getString("Party.Owner.New", player.getName())); } } @@ -585,24 +564,96 @@ public final class PartyManager { * * @return true if the player can invite */ - public static boolean canInvite(McMMOPlayer mcMMOPlayer) { + public boolean canInvite(@NotNull McMMOPlayer mcMMOPlayer) { + requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party party = mcMMOPlayer.getParty(); return !party.isLocked() || party.getLeader().getUniqueId().equals(mcMMOPlayer.getPlayer().getUniqueId()); } /** - * Load party file. + * Check if a party with a given name already exists. + * + * @param player The player to notify + * @param partyName The name of the party to check + * @return true if a party with that name exists, false otherwise */ - public static void loadParties() { - if (!partyFile.exists()) { - return; + public boolean checkPartyExistence(@NotNull Player player, @NotNull String partyName) { + requireNonNull(player, "player cannot be null!"); + requireNonNull(partyName, "partyName cannot be null!"); + + if (getParty(partyName) == null) { + return false; } -// if (mcMMO.getUpgradeManager().shouldUpgrade(UpgradeType.ADD_UUIDS_PARTY)) { -// loadAndUpgradeParties(); -// return; -// } + player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", partyName)); + return true; + } + + /** + * Attempt to change parties or join a new party. + * + * @param mmoPlayer The player changing or joining parties + * @param newPartyName The name of the party being joined + * @return true if the party was joined successfully, false otherwise + */ + public boolean changeOrJoinParty(@NotNull McMMOPlayer mmoPlayer, @NotNull String newPartyName) { + requireNonNull(mmoPlayer, "mmoPlayer cannot be null!"); + requireNonNull(newPartyName, "newPartyName cannot be null!"); + + final Player player = mmoPlayer.getPlayer(); + + if (mmoPlayer.inParty()) { + final Party oldParty = mmoPlayer.getParty(); + + if (!handlePartyChangeEvent(player, oldParty.getName(), newPartyName, EventReason.CHANGED_PARTIES)) { + return false; + } + + removeFromParty(mmoPlayer); + } else return handlePartyChangeEvent(player, null, newPartyName, EventReason.JOINED_PARTY); + + return true; + } + + /** + * Check if two online players are in the same party. + * + * @param firstPlayer The first player + * @param secondPlayer The second player + * @return true if they are in the same party, false otherwise + */ + public boolean inSameParty(@NotNull Player firstPlayer, @NotNull Player secondPlayer) { + requireNonNull(firstPlayer, "firstPlayer cannot be null!"); + requireNonNull(secondPlayer, "secondPlayer cannot be null!"); + + //Profile not loaded + if (UserManager.getPlayer(firstPlayer) == null) { + return false; + } + + //Profile not loaded + if (UserManager.getPlayer(secondPlayer) == null) { + return false; + } + + Party firstParty = UserManager.getPlayer(firstPlayer).getParty(); + Party secondParty = UserManager.getPlayer(secondPlayer).getParty(); + + if (firstParty == null || secondParty == null) { + return false; + } + + return firstParty.equals(secondParty); + } + + /** + * Load party file. + */ + public void loadParties() { + if (!pluginRef.getPartyConfig().isPartyEnabled() || !partyFile.exists()) { + return; + } try { YamlConfiguration partiesFile; @@ -641,31 +692,30 @@ public final class PartyManager { parties.add(party); } catch (Exception e) { - mcMMO.p.getLogger().log(Level.WARNING, "An exception occurred while loading a party with name '" + partyName + "'. Skipped loading party.", e); + pluginRef.getLogger().log(Level.WARNING, "An exception occurred while loading a party with name '" + partyName + "'. Skipped loading party.", e); } } - LogUtils.debug(mcMMO.p.getLogger(), "Loaded (" + parties.size() + ") Parties..."); + LogUtils.debug(pluginRef.getLogger(), "Loaded (" + parties.size() + ") Parties..."); for (Party party : hasAlly) { - party.setAlly(PartyManager.getParty(partiesFile.getString(party.getName() + ".Ally"))); + party.setAlly(getParty(partiesFile.getString(party.getName() + ".Ally"))); } } catch (Exception e) { e.printStackTrace(); } - } /** * Save party file. */ - public static void saveParties() { - LogUtils.debug(mcMMO.p.getLogger(), "[Party Data] Saving..."); + public void saveParties() { + LogUtils.debug(pluginRef.getLogger(), "[Party Data] Saving..."); if (partyFile.exists()) { if (!partyFile.delete()) { - mcMMO.p.getLogger().warning("Could not delete party file. Party saving failed!"); + pluginRef.getLogger().warning("Could not delete party file. Party saving failed!"); return; } } @@ -705,91 +755,23 @@ public final class PartyManager { try { partiesFile.save(partyFile); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } -// private static void loadAndUpgradeParties() { -// YamlConfiguration partiesFile = YamlConfiguration.loadConfiguration(partyFile); -// -// if (!partyFile.renameTo(new File(mcMMO.getFlatFileDirectory() + "parties.yml.converted"))) { -// mcMMO.p.getLogger().severe("Could not rename parties.yml to parties.yml.converted!"); -// return; -// } -// -// ArrayList hasAlly = new ArrayList<>(); -// -// for (String partyName : partiesFile.getConfigurationSection("").getKeys(false)) { -// Party party = new Party(partyName); -// -// String leaderName = partiesFile.getString(partyName + ".Leader"); -// PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(leaderName, false); -// -// if (!profile.isLoaded()) { -// mcMMO.p.getLogger().warning("Could not find UUID in database for party leader " + leaderName + " in party " + partyName); -// continue; -// } -// -// UUID leaderUniqueId = profile.getUniqueId(); -// -// party.setLeader(new PartyLeader(leaderUniqueId, leaderName)); -// party.setPassword(partiesFile.getString(partyName + ".Password")); -// party.setLocked(partiesFile.getBoolean(partyName + ".Locked")); -// party.setLevel(partiesFile.getInt(partyName + ".Level")); -// party.setXp(partiesFile.getInt(partyName + ".Xp")); -// -// if (partiesFile.getString(partyName + ".Ally") != null) { -// hasAlly.add(party); -// } -// -// party.setXpShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ExpShareMode", "NONE"))); -// party.setItemShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ItemShareMode", "NONE"))); -// -// for (ItemShareType itemShareType : ItemShareType.values()) { -// party.setSharingDrops(itemShareType, partiesFile.getBoolean(partyName + ".ItemShareType." + itemShareType.toString(), true)); -// } -// -// LinkedHashMap members = party.getMembers(); -// -// for (String memberName : partiesFile.getStringList(partyName + ".Members")) { -// PlayerProfile memberProfile = mcMMO.getDatabaseManager().loadPlayerProfile(memberName, false); -// -// if (!memberProfile.isLoaded()) { -// mcMMO.p.getLogger().warning("Could not find UUID in database for party member " + memberName + " in party " + partyName); -// continue; -// } -// -// UUID memberUniqueId = memberProfile.getUniqueId(); -// -// members.put(memberUniqueId, memberName); -// } -// -// parties.add(party); -// } -// -// LogUtils.debug(mcMMO.p.getLogger(), "Loaded (" + parties.size() + ") Parties..."); -// -// for (Party party : hasAlly) { -// party.setAlly(PartyManager.getParty(partiesFile.getString(party.getName() + ".Ally"))); -// } -// -// mcMMO.getUpgradeManager().setUpgradeCompleted(UpgradeType.ADD_UUIDS_PARTY); -// } - /** * Handle party change event. * - * @param player The player changing parties + * @param player The player changing parties * @param oldPartyName The name of the old party * @param newPartyName The name of the new party - * @param reason The reason for changing parties + * @param reason The reason for changing parties * @return true if the change event was successful, false otherwise */ - public static boolean handlePartyChangeEvent(Player player, String oldPartyName, String newPartyName, EventReason reason) { + public boolean handlePartyChangeEvent(Player player, String oldPartyName, String newPartyName, EventReason reason) { McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, newPartyName, reason); - mcMMO.p.getServer().getPluginManager().callEvent(event); + pluginRef.getServer().getPluginManager().callEvent(event); return !event.isCancelled(); } @@ -797,15 +779,15 @@ public final class PartyManager { /** * Handle party alliance change event. * - * @param player The player changing party alliances + * @param player The player changing party alliances * @param oldAllyName The name of the old ally * @param newAllyName The name of the new ally - * @param reason The reason for changing allies + * @param reason The reason for changing allies * @return true if the change event was successful, false otherwise */ - public static boolean handlePartyChangeAllianceEvent(Player player, String oldAllyName, String newAllyName, McMMOPartyAllianceChangeEvent.EventReason reason) { + public boolean handlePartyChangeAllianceEvent(Player player, String oldAllyName, String newAllyName, McMMOPartyAllianceChangeEvent.EventReason reason) { McMMOPartyAllianceChangeEvent event = new McMMOPartyAllianceChangeEvent(player, oldAllyName, newAllyName, reason); - mcMMO.p.getServer().getPluginManager().callEvent(event); + pluginRef.getServer().getPluginManager().callEvent(event); return !event.isCancelled(); } @@ -815,7 +797,7 @@ public final class PartyManager { * * @param mcMMOPlayer The player to remove party data from. */ - public static void processPartyLeaving(McMMOPlayer mcMMOPlayer) { + public void processPartyLeaving(@NotNull McMMOPlayer mcMMOPlayer) { mcMMOPlayer.removeParty(); mcMMOPlayer.setChatMode(ChatChannel.NONE); mcMMOPlayer.setItemShareModifier(10); @@ -824,12 +806,12 @@ public final class PartyManager { /** * Notify party members when the party levels up. * - * @param party The concerned party + * @param party The concerned party * @param levelsGained The amount of levels gained - * @param level The current party level + * @param level The current party level */ - public static void informPartyMembersLevelUp(Party party, int levelsGained, int level) { - boolean levelUpSoundsEnabled = mcMMO.p.getGeneralConfig().getLevelUpSoundsEnabled(); + public void informPartyMembersLevelUp(Party party, int levelsGained, int level) { + boolean levelUpSoundsEnabled = pluginRef.getGeneralConfig().getLevelUpSoundsEnabled(); for (Player member : party.getOnlineMembers()) { member.sendMessage(LocaleLoader.getString("Party.LevelUp", levelsGained, level)); @@ -842,10 +824,10 @@ public final class PartyManager { /** * Notify party members when a player joins. * - * @param party The concerned party + * @param party The concerned party * @param playerName The name of the player that joined */ - private static void informPartyMembersJoin(Party party, String playerName) { + private void informPartyMembersJoin(Party party, String playerName) { for (Player member : party.getOnlineMembers()) { member.sendMessage(LocaleLoader.getString("Party.InformedOnJoin", playerName)); } @@ -854,10 +836,10 @@ public final class PartyManager { /** * Notify party members when a party member quits. * - * @param party The concerned party + * @param party The concerned party * @param playerName The name of the player that left */ - private static void informPartyMembersQuit(Party party, String playerName) { + private void informPartyMembersQuit(Party party, String playerName) { for (Player member : party.getOnlineMembers()) { member.sendMessage(LocaleLoader.getString("Party.InformedOnQuit", playerName)); } diff --git a/src/main/java/com/gmail/nossr50/party/ShareHandler.java b/src/main/java/com/gmail/nossr50/party/ShareHandler.java index cc991104d..38aa0e2c3 100644 --- a/src/main/java/com/gmail/nossr50/party/ShareHandler.java +++ b/src/main/java/com/gmail/nossr50/party/ShareHandler.java @@ -35,7 +35,7 @@ public final class ShareHandler { return false; } - List nearMembers = PartyManager.getNearVisibleMembers(mcMMOPlayer); + List nearMembers = mcMMO.p.getPartyManager().getNearVisibleMembers(mcMMOPlayer); if (nearMembers.isEmpty()) { return false; @@ -87,7 +87,7 @@ public final class ShareHandler { return false; } - List nearMembers = PartyManager.getNearMembers(mcMMOPlayer); + List nearMembers = mcMMO.p.getPartyManager().getNearMembers(mcMMOPlayer); if (nearMembers.isEmpty()) { return false; diff --git a/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java b/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java index e109cce98..32c6f8dd4 100644 --- a/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java @@ -21,6 +21,6 @@ public class SaveTimerTask extends CancellableRunnable { } - PartyManager.saveParties(); + mcMMO.p.getPartyManager().saveParties(); } } diff --git a/src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java b/src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java index 52d245227..7490c4117 100644 --- a/src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java +++ b/src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java @@ -32,7 +32,7 @@ public class TeleportationWarmup extends CancellableRunnable { mcMMOPlayer.setTeleportCommenceLocation(null); - if (!PartyManager.inSameParty(teleportingPlayer, targetPlayer)) { + if (!mcMMO.p.getPartyManager().inSameParty(teleportingPlayer, targetPlayer)) { teleportingPlayer.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetPlayer.getName())); return; } diff --git a/src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java b/src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java index 18891155c..2db0c3c27 100644 --- a/src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java @@ -22,7 +22,7 @@ public class PartyAutoKickTask extends CancellableRunnable { long currentTime = System.currentTimeMillis(); - for (Party party : PartyManager.getParties()) { + for (Party party : mcMMO.p.getPartyManager().getParties()) { for (UUID memberUniqueId : party.getMembers().keySet()) { OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId); boolean isProcessed = processedPlayers.contains(memberUniqueId); @@ -38,7 +38,7 @@ public class PartyAutoKickTask extends CancellableRunnable { } for (Entry entry : toRemove.entrySet()) { - PartyManager.removeFromParty(entry.getKey(), entry.getValue()); + mcMMO.p.getPartyManager().removeFromParty(entry.getKey(), entry.getValue()); } } } diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java index 83d305486..371124b06 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java @@ -139,15 +139,6 @@ public final class CommandRegistrationManager { command.setExecutor(new McgodCommand()); } -// private static void registerDropTreasureCommand() { -// PluginCommand command = mcMMO.p.getCommand("mmodroptreasures"); -// command.setDescription(LocaleLoader.getString("Commands.Description.droptreasures")); -// command.setPermission("mcmmo.commands.droptreasures"); -// command.setPermissionMessage(permissionsMessage); -// command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mcgod")); -// command.setExecutor(new DropTreasureCommand()); -// } - private static void registerMmoInfoCommand() { PluginCommand command = mcMMO.p.getCommand("mmoinfo"); command.setDescription(LocaleLoader.getString("Commands.Description.mmoinfo")); @@ -317,28 +308,6 @@ public final class CommandRegistrationManager { command.setExecutor(new McconvertCommand()); } -// private static void registerAdminChatCommand() { -// PluginCommand command = mcMMO.p.getCommand("adminchat"); -// command.setDescription(LocaleLoader.getString("Commands.Description.adminchat")); -// command.setPermission("mcmmo.chat.adminchat"); -// command.setPermissionMessage(permissionsMessage); -// command.setUsage(LocaleLoader.getString("Commands.Usage.0", "adminchat")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "adminchat", "")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "adminchat", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">")); -// command.setExecutor(new AdminChatCommand()); -// } - -// private static void registerPartyChatCommand() { -// PluginCommand command = mcMMO.p.getCommand("partychat"); -// command.setDescription(LocaleLoader.getString("Commands.Description.partychat")); -// command.setPermission("mcmmo.chat.partychat;mcmmo.commands.party"); -// command.setPermissionMessage(permissionsMessage); -// command.setUsage(LocaleLoader.getString("Commands.Usage.0", "partychat")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "partychat", "")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "partychat", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">")); -// command.setExecutor(new PartyChatCommand()); -// } - private static void registerPartyCommand() { PluginCommand command = mcMMO.p.getCommand("party"); command.setDescription(LocaleLoader.getString("Commands.Description.party")); @@ -360,26 +329,6 @@ public final class CommandRegistrationManager { command.setExecutor(new PtpCommand()); } -// private static void registerHardcoreCommand() { -// PluginCommand command = mcMMO.p.getCommand("hardcore"); -// command.setDescription(LocaleLoader.getString("Commands.Description.hardcore")); -// command.setPermission("mcmmo.commands.hardcore;mcmmo.commands.hardcore.toggle;mcmmo.commands.hardcore.modify"); -// command.setPermissionMessage(permissionsMessage); -// command.setUsage(LocaleLoader.getString("Commands.Usage.1", "hardcore", "[on|off]")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "hardcore", "<" + LocaleLoader.getString("Commands.Usage.Rate") + ">")); -// command.setExecutor(new HardcoreCommand()); -// } -// -// private static void registerVampirismCommand() { -// PluginCommand command = mcMMO.p.getCommand("vampirism"); -// command.setDescription(LocaleLoader.getString("Commands.Description.vampirism")); -// command.setPermission("mcmmo.commands.vampirism;mcmmo.commands.vampirism.toggle;mcmmo.commands.vampirism.modify"); -// command.setPermissionMessage(permissionsMessage); -// command.setUsage(LocaleLoader.getString("Commands.Usage.1", "vampirism", "[on|off]")); -// command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "vampirism", "<" + LocaleLoader.getString("Commands.Usage.Rate") + ">")); -// command.setExecutor(new VampirismCommand()); -// } - private static void registerMcnotifyCommand() { PluginCommand command = mcMMO.p.getCommand("mcnotify"); command.setDescription(LocaleLoader.getString("Commands.Description.mcnotify")); @@ -459,13 +408,11 @@ public final class CommandRegistrationManager { registerMmoeditCommand(); registerSkillresetCommand(); - // Hardcore Commands -// registerHardcoreCommand(); -// registerVampirismCommand(); - // Party Commands - registerPartyCommand(); - registerPtpCommand(); + if (mcMMO.p.getPartyConfig().isPartyEnabled()) { + registerPartyCommand(); + registerPtpCommand(); + } // Player Commands registerInspectCommand(); diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 5f060f582..ba5ea16fc 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -741,7 +741,7 @@ public final class CombatUtils { XPGainReason xpGainReason; if (target instanceof Player defender) { - if (!ExperienceConfig.getInstance().getExperienceGainsPlayerVersusPlayerEnabled() || PartyManager.inSameParty(mcMMOPlayer.getPlayer(), (Player) target)) { + if (!ExperienceConfig.getInstance().getExperienceGainsPlayerVersusPlayerEnabled() || mcMMO.p.getPartyManager().inSameParty(mcMMOPlayer.getPlayer(), (Player) target)) { return; } @@ -828,7 +828,7 @@ public final class CombatUtils { return false; } - if ((PartyManager.inSameParty(player, defender) || PartyManager.areAllies(player, defender)) && !(Permissions.friendlyFire(player) && Permissions.friendlyFire(defender))) { + if ((mcMMO.p.getPartyManager().inSameParty(player, defender) || mcMMO.p.getPartyManager().areAllies(player, defender)) && !(Permissions.friendlyFire(player) && Permissions.friendlyFire(defender))) { return false; } @@ -879,7 +879,7 @@ public final class CombatUtils { if (tamer instanceof Player owner) { - return (owner == attacker || PartyManager.inSameParty(attacker, owner) || PartyManager.areAllies(attacker, owner)); + return (owner == attacker || mcMMO.p.getPartyManager().inSameParty(attacker, owner) || mcMMO.p.getPartyManager().areAllies(attacker, owner)); } } diff --git a/src/main/resources/party.yml b/src/main/resources/party.yml new file mode 100644 index 000000000..16eebf6cb --- /dev/null +++ b/src/main/resources/party.yml @@ -0,0 +1,4 @@ +# Settings for mcMMO Party System +Party: + # Enable or disable the mcMMO party system + Enabled: true \ No newline at end of file From cdc187b2117c2427cfa500bc1fb320404bdd75c9 Mon Sep 17 00:00:00 2001 From: IAISI <126729304+IAISI@users.noreply.github.com> Date: Tue, 20 Feb 2024 18:20:08 +0100 Subject: [PATCH 04/11] Fix PartySaving related NPEs (only save parties if they're enabled) (#4973) Co-authored-by: Dieu --- src/main/java/com/gmail/nossr50/mcMMO.java | 3 ++- src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 20e429f8d..025e36f90 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -384,7 +384,8 @@ public class mcMMO extends JavaPlugin { UserManager.saveAll(); // Make sure to save player information if the server shuts down UserManager.clearAll(); Alchemy.finishAllBrews(); // Finish all partially complete AlchemyBrewTasks to prevent vanilla brewing continuation on restart - getPartyManager().saveParties(); // Save our parties + if(partyConfig.isPartyEnabled()) + getPartyManager().saveParties(); // Save our parties //TODO: Needed? if(generalConfig.getScoreboardsEnabled()) diff --git a/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java b/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java index 32c6f8dd4..d9822e191 100644 --- a/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java @@ -20,7 +20,7 @@ public class SaveTimerTask extends CancellableRunnable { count++; } - - mcMMO.p.getPartyManager().saveParties(); + if(mcMMO.p.getPartyConfig().isPartyEnabled()) + mcMMO.p.getPartyManager().saveParties(); } } From b0d0030d600e8fc068339def1f8e267f4c15f48e Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 22 Feb 2024 17:54:42 -0800 Subject: [PATCH 05/11] 2.1.230 --- Changelog.txt | 3 +++ pom.xml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index 698c67f99..e036098ec 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,6 @@ +Version 2.1.230 + Fixed an error that could happen when mcMMO was saving when parties were disabled by party.yml + Version 2.1.229 Added new party.yml config, which lets admins disable the party system entirely without having to use permissions Fixed error caused by missing API in McMMOEntityDamageByRuptureEvent diff --git a/pom.xml b/pom.xml index bfc3cd43f..02f35f1ba 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.229 + 2.1.230 mcMMO https://github.com/mcMMO-Dev/mcMMO From 7f9ed94d23311553c5d81da0edb0469a5fe95363 Mon Sep 17 00:00:00 2001 From: IAISI <126729304+IAISI@users.noreply.github.com> Date: Fri, 23 Feb 2024 02:57:05 +0100 Subject: [PATCH 06/11] Fix exceptions on EntityCombustByEntityEvent, EntityDamageByEntityEvent, PartyAutoKickTask if parties are disabled (#4976) * Only run EntityListener#checkParties on EntityCombustByEntityEvent if Parties are enabled * Only run PartyAutoKickTask Task if Parties are enabled * Only run EntityListener#checkParties on EntityDamageByEntityEvent if Parties are enabled * Check if Parties are enabled before running inSameParty in CombatUtils#processCombatXP --------- Co-authored-by: Dieu --- .../com/gmail/nossr50/listeners/EntityListener.java | 6 +++--- src/main/java/com/gmail/nossr50/mcMMO.java | 13 +++++++------ .../com/gmail/nossr50/util/skills/CombatUtils.java | 3 ++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index a432dda05..8076fc1fd 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -259,7 +259,7 @@ public class EntityListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent event) { //Prevent players from setting fire to each other if they are in the same party - if(event.getEntity() instanceof Player defender) { + if(mcMMO.p.getPartyConfig().isPartyEnabled() && event.getEntity() instanceof Player defender) { if(event.getCombuster() instanceof Projectile projectile) { if(projectile.getShooter() instanceof Player attacker) { @@ -365,7 +365,7 @@ public class EntityListener implements Listener { if(attacker instanceof Projectile projectile) { if(projectile.getShooter() instanceof Player attackingPlayer && !attackingPlayer.equals(defendingPlayer)) { //Check for party friendly fire and cancel the event - if (checkParties(event, defendingPlayer, attackingPlayer)) { + if (mcMMO.p.getPartyConfig().isPartyEnabled() && checkParties(event, defendingPlayer, attackingPlayer)) { return; } } @@ -383,7 +383,7 @@ public class EntityListener implements Listener { } } } else if (attacker instanceof Player attackingPlayer){ - if (checkParties(event, defendingPlayer, attackingPlayer)) + if (mcMMO.p.getPartyConfig().isPartyEnabled() && checkParties(event, defendingPlayer, attackingPlayer)) return; } } diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 025e36f90..700699140 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -671,13 +671,14 @@ public class mcMMO extends JavaPlugin { } // Automatically remove old members from parties - long kickIntervalTicks = generalConfig.getAutoPartyKickInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR; + if(partyConfig.isPartyEnabled()) { + long kickIntervalTicks = generalConfig.getAutoPartyKickInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR; - if (kickIntervalTicks == 0) { - getFoliaLib().getImpl().runLater(new PartyAutoKickTask(), 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup. - } - else if (kickIntervalTicks > 0) { - getFoliaLib().getImpl().runTimer(new PartyAutoKickTask(), kickIntervalTicks, kickIntervalTicks); + if (kickIntervalTicks == 0) { + getFoliaLib().getImpl().runLater(new PartyAutoKickTask(), 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup. + } else if (kickIntervalTicks > 0) { + getFoliaLib().getImpl().runTimer(new PartyAutoKickTask(), kickIntervalTicks, kickIntervalTicks); + } } // Update power level tag scoreboards diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index ba5ea16fc..1d5eea33f 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -741,7 +741,8 @@ public final class CombatUtils { XPGainReason xpGainReason; if (target instanceof Player defender) { - if (!ExperienceConfig.getInstance().getExperienceGainsPlayerVersusPlayerEnabled() || mcMMO.p.getPartyManager().inSameParty(mcMMOPlayer.getPlayer(), (Player) target)) { + if (!ExperienceConfig.getInstance().getExperienceGainsPlayerVersusPlayerEnabled() || + (mcMMO.p.getPartyConfig().isPartyEnabled() && mcMMO.p.getPartyManager().inSameParty(mcMMOPlayer.getPlayer(), (Player) target))) { return; } From 4d85f24d9810b47dfec45fd892de65b9a746e0d9 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 22 Feb 2024 18:04:57 -0800 Subject: [PATCH 07/11] 2.1.230 --- Changelog.txt | 3 ++- .../nossr50/listeners/EntityListener.java | 26 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index e036098ec..99528ae53 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Version 2.1.230 - Fixed an error that could happen when mcMMO was saving when parties were disabled by party.yml + Fixed an error that could happen when mcMMO was saving when parties were disabled by party.yml (thanks IAISI & L4BORG) + Fixed several exceptions when checking PVP damage when parties were disabled by party.yml (thanks IAISI & L4BORG) Version 2.1.229 Added new party.yml config, which lets admins disable the party system entirely without having to use permissions diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index 8076fc1fd..c762e9436 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.events.fake.FakeEntityTameEvent; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.metadata.MobMetaFlagType; import com.gmail.nossr50.metadata.MobMetadataService; -import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.runnables.TravelingBlockMetaCleanup; import com.gmail.nossr50.skills.archery.Archery; import com.gmail.nossr50.skills.mining.BlastMining; @@ -259,16 +258,16 @@ public class EntityListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent event) { //Prevent players from setting fire to each other if they are in the same party - if(mcMMO.p.getPartyConfig().isPartyEnabled() && event.getEntity() instanceof Player defender) { + if(event.getEntity() instanceof Player defender) { if(event.getCombuster() instanceof Projectile projectile) { if(projectile.getShooter() instanceof Player attacker) { - if(checkParties(event, defender, attacker)) { + if(checkIfInPartyOrSamePlayer(event, defender, attacker)) { event.setCancelled(true); } } } else if(event.getCombuster() instanceof Player attacker) { - if(checkParties(event, defender, attacker)) { + if(checkIfInPartyOrSamePlayer(event, defender, attacker)) { event.setCancelled(true); } } @@ -364,8 +363,8 @@ public class EntityListener implements Listener { //If the attacker is a Player or a projectile belonging to a player if(attacker instanceof Projectile projectile) { if(projectile.getShooter() instanceof Player attackingPlayer && !attackingPlayer.equals(defendingPlayer)) { - //Check for party friendly fire and cancel the event - if (mcMMO.p.getPartyConfig().isPartyEnabled() && checkParties(event, defendingPlayer, attackingPlayer)) { + //Check for friendly fire and cancel the event + if (checkIfInPartyOrSamePlayer(event, defendingPlayer, attackingPlayer)) { return; } } @@ -383,7 +382,7 @@ public class EntityListener implements Listener { } } } else if (attacker instanceof Player attackingPlayer){ - if (mcMMO.p.getPartyConfig().isPartyEnabled() && checkParties(event, defendingPlayer, attackingPlayer)) + if (checkIfInPartyOrSamePlayer(event, defendingPlayer, attackingPlayer)) return; } } @@ -482,14 +481,17 @@ public class EntityListener implements Listener { } } - public boolean checkParties(Cancellable event, Player defendingPlayer, Player attackingPlayer) { - if (!UserManager.hasPlayerDataKey(defendingPlayer) || !UserManager.hasPlayerDataKey(attackingPlayer)) { + public boolean checkIfInPartyOrSamePlayer(Cancellable event, Player defendingPlayer, Player attackingPlayer) { + // This check is probably necessary outside of the party system + if (defendingPlayer.equals(attackingPlayer)) { return true; } - // We want to make sure we're not gaining XP or applying abilities - // when we hit ourselves - if (defendingPlayer.equals(attackingPlayer)) { + if(!pluginRef.isPartySystemEnabled()) { + return false; + } + + if (!UserManager.hasPlayerDataKey(defendingPlayer) || !UserManager.hasPlayerDataKey(attackingPlayer)) { return true; } From 2117c67084e01a1806a8ee1be2c6ad81593f6480 Mon Sep 17 00:00:00 2001 From: Momshroom Date: Sat, 9 Mar 2024 22:16:14 -0600 Subject: [PATCH 08/11] Fixed NPE when party creation doesn't use password. Solves bug reported here: https://discord.com/channels/526933440214597677/526938425161416727/1213131451235827753 (#4981) Signed-off-by: Momshroom --- src/main/java/com/gmail/nossr50/party/PartyManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/gmail/nossr50/party/PartyManager.java b/src/main/java/com/gmail/nossr50/party/PartyManager.java index dd8b79a6a..130a9b996 100644 --- a/src/main/java/com/gmail/nossr50/party/PartyManager.java +++ b/src/main/java/com/gmail/nossr50/party/PartyManager.java @@ -354,7 +354,6 @@ public final class PartyManager { public void createParty(@NotNull McMMOPlayer mcMMOPlayer, @NotNull String partyName, @Nullable String password) { requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); requireNonNull(partyName, "partyName cannot be null!"); - requireNonNull(password, "password cannot be null!"); Player player = mcMMOPlayer.getPlayer(); From 4d060b192b87afa6c2ed641a46b5e08b01afe51c Mon Sep 17 00:00:00 2001 From: Mangchi__ <87377625+mangchi57@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:17:14 +0900 Subject: [PATCH 09/11] Update locale_ko.properties (#4977) * Update locale_ko.properties * Update locale_ko.properties fixed-1 --- .../resources/locale/locale_ko.properties | 2107 ++++++++--------- 1 file changed, 987 insertions(+), 1120 deletions(-) diff --git a/src/main/resources/locale/locale_ko.properties b/src/main/resources/locale/locale_ko.properties index 5eabe51e2..4f1533bd6 100644 --- a/src/main/resources/locale/locale_ko.properties +++ b/src/main/resources/locale/locale_ko.properties @@ -1,60 +1,49 @@ # korean locale file v2.0 # ----------------- -# Setting up a new standard for string names, for easier localization. -# SkillName.SubType.LocalEffect.Increment -# Skill name, such as ACROBATICS, MINING. -# Sub-type, such as EFFECT, ABILITY, COMBAT. -# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE. -# Increment, for multi-line or array-like lists. -# ###### -# -# EXAMPLES: -# -# Acrobatics.Ability.Proc -# Axes.Ability.Refresh.1 -# -# --wolfwork +# Work : MangChi__ / JJangGu +#๋กœ์ผ€์ผ ํŒŒ์ผ์„ ์ •๊ทœํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ ์„ ์šฉ์„œํ•ด ์ฃผ์„ธ์š”. +# TODO: 16์ง„์ˆ˜๋ฅผ ์ง€์›ํ•˜๋„๋ก JSON์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. -#DO NOT USE COLOR CODES IN THE JSON KEYS -#COLORS ARE DEFINED IN advanced.yml IF YOU WISH TO CHANGE THEM -JSON.Rank=๋žญํฌ +#JSON ํ‚ค์— ์ƒ‰์ƒ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. +#์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” Advanced.yml์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. +JSON.Rank=๋“ฑ๊ธ‰ JSON.DescriptionHeader=์„ค๋ช… JSON.JWrapper.Header=์„ธ๋ถ€ ์ •๋ณด -JSON.Type.Passive=ํŒจ์‹œ๋ธŒ -JSON.Type.Active=์•กํ‹ฐ๋ธŒ +JSON.Type.Passive=์ˆ˜๋™์  +JSON.Type.Active=๋Šฅ๋™์  JSON.Type.SuperAbility=์Šˆํผ ๋Šฅ๋ ฅ -JSON.Locked=-=[ํ•ด๊ธˆ๋˜์ง€ ์•Š์Œ]=- +JSON.Locked=-=[์ž ๊น€]=- JSON.LevelRequirement=๋ ˆ๋ฒจ ์š”๊ตฌ ์‚ฌํ•ญ JSON.JWrapper.Target.Type=๋Œ€์ƒ ์œ ํ˜•: JSON.JWrapper.Target.Block=๋ธ”๋ก JSON.JWrapper.Target.Player=ํ”Œ๋ ˆ์ด์–ด -JSON.JWrapper.Perks.Header=&6ํ–‰์šด ํฝ +JSON.JWrapper.Perks.Header=&6์šด์ด ์ข‹์€ ํŠน์„ฑ JSON.JWrapper.Perks.Lucky={0}% ๋” ์ข‹์€ ํ™•๋ฅ  JSON.Hover.Tips=ํŒ JSON.Acrobatics=๊ณก์˜ˆ JSON.Alchemy=์—ฐ๊ธˆ์ˆ  -JSON.Archery=๊ถ์ˆ  -JSON.Axes=๋ถ€์ˆ  -JSON.Excavation=๋ฐœ๊ตด +JSON.Archery=ํ™œ์˜๊ธฐ +JSON.Axes=์ฐธ์ˆ˜ +JSON.Excavation=ํŒŒ๊ดด JSON.Fishing=๋‚š์‹œ -JSON.Herbalism=์•ฝ์ดˆํ•™ +JSON.Herbalism=์•ฝ์ดˆ ์ฑ„์ง‘ JSON.Mining=์ฑ„๊ด‘ JSON.Repair=์ˆ˜๋ฆฌ -JSON.Salvage=ํšŒ์ˆ˜ +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.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.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์— {0}์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ ˆ๋ฒจ์„ ์ด๋ฆ„์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ˜„์žฌ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. JSON.Hover.Mystery=&7??? JSON.Hover.Mystery2=&e[&8{0}&e]&8???&r JSON.Hover.SkillName=&3{0}&r @@ -63,29 +52,27 @@ 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ํ•˜๋‚˜ ์ด์ƒ์˜ ์•„์ดํ…œ์„ ๊ฐ€์ง„ ์•„์ดํ…œ ์Šคํƒ์€ ํšŒ์ˆ˜ํ•˜๊ฑฐ๋‚˜ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์Šคํƒ์„ ๋ถ„ํ• ํ•˜์„ธ์š”. +# ํ•˜์œ„ ์Šคํ‚ฌ์— ์‚ฌ์šฉ๋˜๋Š” JSON ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. +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 +#JSON ํ‚ค์— ์ƒ‰์ƒ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. +#์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” Advanced.yml์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. mcMMO.Template.Prefix=&6(&amcMMO&6) &7{0} - -# BEGIN STYLING -Ability.Generic.Refresh=&a**๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!** +# ์Šคํƒ€์ผ๋ง ์‹œ์ž‘ +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.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) @@ -93,1197 +80,1077 @@ 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[]=====[] +MOTD.Version.Overhaul=&6[mcMMO] &3์˜ค๋ฒ„ํ™€ ์‹œ๋Œ€&6 - &3{0} +Overhaul.mcMMO.Header=&c[]=====[]&a mcMMO - ์˜ค๋ฒ„ํ™€ ์‹œ๋Œ€ &c[]=====[] Overhaul.mcMMO.Url.Wrap.Prefix=&c[| Overhaul.mcMMO.Url.Wrap.Suffix=&c|] -Overhaul.mcMMO.MmoInfo.Wiki=&e[&f์ด ์Šคํ‚ฌ์„ ์œ„ํ‚ค์—์„œ ๋ณด๊ธฐ!&e] - +Overhaul.mcMMO.MmoInfo.Wiki=&e[&f์ด ์Šคํ‚ฌ์„ ์œ„ํ‚ค์—์„œ ํ™•์ธํ•˜์„ธ์š”!&e] +# Overhaul.Levelup can take {0} - Skill Name defined in Overhaul.Name {1} - Amount of levels gained {2} - Level in skill +Overhaul.Levelup=&l{0} ๋Šฅ๋ ฅ์ด ์ฆ๊ฐ€ํ•˜์—ฌ &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=๋ฒŒ๋ชฉ # /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! +# XP ๋ฐ”๋Š” ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -- {0} = ์Šคํ‚ฌ ๋ ˆ๋ฒจ, {1} ํ˜„์žฌ ๊ฒฝํ—˜์น˜, {2} ๋‹ค์Œ ๋ ˆ๋ฒจ๊นŒ์ง€ ํ•„์š”ํ•œ ๊ฒฝํ—˜์น˜, {3} ํŒŒ์›Œ ๋ ˆ๋ฒจ, {4} ๋ ˆ๋ฒจ์˜ ๋ฐฑ๋ถ„์œจ +# XP ๋ฐ” ์ œ๋ชฉ์ด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒฝํ—˜์น˜๋ฅผ ํš๋“ํ•  ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained๋ฅผ ์ผœ์ฃผ์„ธ์š”! 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.Template.EarlyGameBoost=&6์ƒˆ๋กœ์šด ์Šคํ‚ฌ ๋ฐฐ์›€ ์ค‘... +XPBar.Acrobatics=๊ณก์˜ˆ ๋ ˆ๋ฒจ &6{0} +XPBar.Alchemy=์—ฐ๊ธˆ์ˆ  ๋ ˆ๋ฒจ &6{0} +XPBar.Archery=ํ™œ์˜๊ธฐ ๋ ˆ๋ฒจ &6{0} +XPBar.Axes=์ฐธ์ˆ˜ ๋ ˆ๋ฒจ &6{0} +XPBar.Excavation=ํŒŒ๊ดด ๋ ˆ๋ฒจ &6{0} +XPBar.Fishing=๋‚š์‹œ ๋ ˆ๋ฒจ &6{0} +XPBar.Herbalism=์•ฝ์ดˆ ์ฑ„์ง‘ ๋ ˆ๋ฒจ &6{0} +XPBar.Mining=์ฑ„๊ด‘ ๋ ˆ๋ฒจ &6{0} +XPBar.Repair=์ˆ˜๋ฆฌ ๋ ˆ๋ฒจ &6{0} +XPBar.Salvage=๋ถ„ํ•ด ๋ ˆ๋ฒจ &6{0} +XPBar.Smelting=์ œ๋ จ ๋ ˆ๋ฒจ &6{0} +XPBar.Swords=๊ฒ€์ˆ  ๋ ˆ๋ฒจ &6{0} +XPBar.Taming=๊ธธ๋“ค์ด๊ธฐ ๋ ˆ๋ฒจ &6{0} +XPBar.Unarmed=๋งจ์† ์ „ํˆฌ ๋ ˆ๋ฒจ &6{0} +XPBar.Woodcutting=๋ฒŒ๋ชฉ ๋ ˆ๋ฒจ &6{0} +#์ด๊ฒƒ์€ experience.yml์—์„œ 'ExtraDetails' ์„ค์ •์ด ์ผœ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ(๊ธฐ๋ณธ์ ์œผ๋กœ ๊บผ์ ธ ์žˆ์Œ) ์‚ฌ์šฉ๋˜๋Š” ๋ฏธ๋ฆฌ ์„ค์ •๋œ ํ…œํ”Œ๋ฆฟ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด ํ…œํ”Œ๋ฆฟ์„ ๋ฌด์‹œํ•˜๊ณ  ์œ„์˜ ๋ฌธ์ž์—ด๋งŒ ํŽธ์ง‘ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 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 +# XP ๋ฐ”๋Š” ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -- {0} = ์Šคํ‚ฌ ๋ ˆ๋ฒจ, {1} ํ˜„์žฌ ๊ฒฝํ—˜์น˜, {2} ๋‹ค์Œ ๋ ˆ๋ฒจ๊นŒ์ง€ ํ•„์š”ํ•œ ๊ฒฝํ—˜์น˜, {3} ํŒŒ์›Œ ๋ ˆ๋ฒจ, {4} ๋ ˆ๋ฒจ์˜ ๋ฐฑ๋ถ„์œจ +# XP ๋ฐ” ์ œ๋ชฉ์ด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒฝํ—˜์น˜๋ฅผ ํš๋“ํ•  ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained๋ฅผ ์ผœ์ฃผ์„ธ์š”! +# ์Šคํƒ€์ผ๋ง ๋ - -#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} -Acrobatics.SubSkill.Roll.Name=๊ตฌ๋ฅด๊ธฐ -Acrobatics.SubSkill.Roll.Description=์ถ”๋ฝ ๋ฐ๋ฏธ์ง€ ๊ฐ์†Œ ๋˜๋Š” ๋ฌดํšจ -Acrobatics.SubSkill.GracefulRoll.Name=์šฐ์•„ํ•œ ๊ตฌ๋ฅด๊ธฐ -Acrobatics.SubSkill.GracefulRoll.Description=๊ตฌ๋ฅด๊ธฐ 2๋ฐฐ ํšจ๊ณผ +#์žฌ์ฃผ ๋„˜๊ธฐ +Acrobatics.Ability.Proc=&a**์šฉ์•„์น˜** (Graceful Landing) +Acrobatics.Combat.Proc=&a**ํšŒํ”ผ** (Dodged) +Acrobatics.SubSkill.Roll.Stats=&6Roll ํ™•๋ฅ  &e{0}%&6 ์šฐ์•„ํ•œ Roll ํ™•๋ฅ  &e{1}% +Acrobatics.SubSkill.Roll.Stat=Roll ํ™•๋ฅ  +Acrobatics.SubSkill.Roll.Stat.Extra=์šฐ์•„ํ•œ Roll ํ™•๋ฅ  +Acrobatics.SubSkill.Roll.Name=Roll +Acrobatics.SubSkill.Roll.Description=์ „๋žต์ ์œผ๋กœ ์ฐฉ์ง€ํ•˜์—ฌ ํ”ผํ•ด๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค. +Acrobatics.SubSkill.Roll.Chance=Roll ํ™•๋ฅ : &e{0} +Acrobatics.SubSkill.Roll.GraceChance=์šฐ์•„ํ•œ Roll ํ™•๋ฅ : &e{0} +Acrobatics.SubSkill.Roll.Mechanics=&7Roll์€ ์ˆ˜๋™ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๋Šฅ๋™์ ์ธ ํ•˜์œ„ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.\n๋‚™ํ•˜ ํ”ผํ•ด๋ฅผ ์ž…์„ ๋•Œ๋งˆ๋‹ค ๊ธฐ์ˆ  ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ํ”ผํ•ด๋ฅผ ์™„์ „ํžˆ ๋ฌดํšจํ™”ํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ๋ฒจ &e{6}%&7์—์„œ ํ”ผํ•ด๋ฅผ ๋ฐฉ์ง€ํ•  ํ™•๋ฅ ์€ &e{0}%&7์ด๋ฉฐ, ์šฐ์•„ํ•œ Roll์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด &e{1}%&7์ž…๋‹ˆ๋‹ค.\n์„ฑ๊ณต ํ™•๋ฅ ์€ ๋Šฅ๋ ฅ ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ์„ ํ˜• ๊ณก์„ ์œผ๋กœ ์กฐ์ •๋˜๋ฉฐ, ๋Šฅ๋ ฅ์ด ์žˆ๋Š” Acrobatics ๋ ˆ๋ฒจ๋งˆ๋‹ค &e{3}%&7์˜ ์„ฑ๊ณต ํ™•๋ฅ ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.\n์Šค๋‹ˆํฌ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‚™ํ•˜ ํ”ผํ•ด๋ฅผ ํ”ผํ•˜๋Š” ๊ธฐํšŒ๊ฐ€ ๋‘ ๋ฐฐ๋กœ ๋Š˜์–ด๋‚˜๋ฉฐ, ์ตœ๋Œ€ 2๋ฐฐ์˜ ๋‚™ํ•˜ ํ”ผํ•ด๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์Šค๋‹ˆํฌ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ผ๋ฐ˜์ ์ธ Roll์ด ์šฐ์•„ํ•œ Roll๋กœ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.\nRoll์€ ์ตœ๋Œ€ &c{4}&7์˜ ํ”ผํ•ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์šฐ์•„ํ•œ Roll์€ ์ตœ๋Œ€ &a{5}&7์˜ ํ”ผํ•ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Acrobatics.SubSkill.GracefulRoll.Name=์šฐ์•„ํ•œ Roll +Acrobatics.SubSkill.GracefulRoll.Description=์ผ๋ฐ˜ Roll์˜ 2๋ฐฐ ํšจ๊ณผ์ ์ธ ๊ธฐ์ˆ  Acrobatics.SubSkill.Dodge.Name=ํšŒํ”ผ -Acrobatics.SubSkill.Dodge.Description=๋‚™ํ•˜ ๋ฐ๋ฏธ์ง€ ์ ˆ๋ฐ˜ ๊ฐ์†Œ -Acrobatics.Listener=๊ณก์˜ˆ(ACROBATICS): -Acrobatics.SubSkill.Roll.Chance=๊ตฌ๋ฅด๊ธฐ ํ™•๋ฅ : &e{0} -Acrobatics.SubSkill.Roll.GraceChance=์šฐ์•„ํ•œ ๊ตฌ๋ฅด๊ธฐ ํ™•๋ฅ : &e{0} -Acrobatics.Roll.Text=**๊ตฌ๋ฅด๊ธฐ** +Acrobatics.SubSkill.Dodge.Description=๊ณต๊ฒฉ ํ”ผํ•ด๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค. +Acrobatics.SubSkill.Dodge.Stat=ํšŒํ”ผ ํ™•๋ฅ  +Acrobatics.Listener=๊ณก์˜ˆ: +Acrobatics.Roll.Text=&o**Roll ์‚ฌ์šฉ** Acrobatics.SkillName=๊ณก์˜ˆ -Acrobatics.Skillup=๋‚™๋ฒ• ๊ธฐ์ˆ ์ด {0} ์˜ฌ๋ผ ์ด {1} ๋ ˆ๋ฒจ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค -#ALCHEMY -Alchemy.SubSkill.Catalysis.Name=์ด‰๋งค -Alchemy.SubSkill.Catalysis.Description=ํฌ์…˜ ์–‘์กฐ ์†๋„ ์ฆ๊ฐ€ -Alchemy.SubSkill.Concoctions.Name=ํ˜ผํ•ฉ -Alchemy.SubSkill.Concoctions.Description=๋” ๋งŽ์€ ์„ฑ๋ถ„์˜ ํฌ์…˜ ์–‘์กฐ -Alchemy.Listener=์—ฐ๊ธˆ์ˆ (ALCHEMY): -Alchemy.Ability.Locked.0={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ ํ•ด์ œ (์ด‰๋งค) -Alchemy.Catalysis.Speed=์–‘์กฐ ์†๋„: &e{0} -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.SubSkill.Catalysis.Name=์ด‰๋งค์ž‘์šฉ +Alchemy.SubSkill.Catalysis.Description=ํฌ์…˜ ์ œ์กฐ ์†๋„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Alchemy.SubSkill.Catalysis.Stat=ํฌ์…˜ ์ œ์กฐ ์†๋„ +Alchemy.SubSkill.Concoctions.Name=์กฐํ•ฉ +Alchemy.SubSkill.Concoctions.Description=๋” ๋งŽ์€ ์žฌ๋ฃŒ๋กœ ํฌ์…˜์„ ์ œ์กฐํ•ฉ๋‹ˆ๋‹ค. +Alchemy.SubSkill.Concoctions.Stat=์กฐํ•ฉ ์ˆœ์œ„: &a{0}&3/&a{1} +Alchemy.SubSkill.Concoctions.Stat.Extra=์žฌ๋ฃŒ [&a{0}&3]: &a{1} +Alchemy.Listener=์—ฐ๊ธˆ์ˆ : +Alchemy.Ability.Locked.0={0}+ SKILL (CATALYSIS)๊นŒ์ง€ ์ž ๊ธˆ Alchemy.SkillName=์—ฐ๊ธˆ์ˆ  -#ARCHERY -Archery.Combat.DazeChance=ํ˜„ํ˜น ํ™•๋ฅ : &e{0} -Archery.Combat.RetrieveChance=ํ™”์‚ด ํšŒ์ˆ˜ ํ™•๋ฅ : &e{0} -Archery.Combat.SkillshotBonus=์˜๊ธฐ ์†œ์”จ ์ถ”๊ฐ€ ํ”ผํ•ด ํ™•๋ฅ : &e{0} -Archery.SubSkill.SkillShot.Name=์˜๊ธฐ ์†œ์”จ -Archery.SubSkill.SkillShot.Description=ํ™œ ํ”ผํ•ด ์˜๊ตฌ ์ฆ๊ฐ€ -Archery.SubSkill.Daze.Name=ํ˜„ํ˜น (ํ”Œ๋ ˆ์ด์–ด) -Archery.SubSkill.Daze.Description=์ ์—๊ฒŒ ํ˜ผ๋ž€, {0} ํ”ผํ•ด ์ถ”๊ฐ€ +#์–‘๊ถ +Archery.SubSkill.SkillShot.Name=์Šคํ‚ฌ ์‚ฌ๊ฒฉ +Archery.SubSkill.SkillShot.Description=ํ™œ๋กœ ์ž…ํžˆ๋Š” ํ”ผํ•ด๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Archery.SubSkill.SkillShot.Stat=์Šคํ‚ฌ ์‚ฌ๊ฒฉ ์ถ”๊ฐ€ ํ”ผํ•ด +Archery.SubSkill.Daze.Name=ํ˜ผ๋ž€์‹œํ‚ค๊ธฐ +Archery.SubSkill.Daze.Description=์ƒ๋Œ€๋ฅผ ํ˜ผ๋ž€์‹œํ‚ค๊ณ  ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ์ž…ํž™๋‹ˆ๋‹ค. +Archery.SubSkill.Daze.Stat=ํ˜ผ๋ž€ ํ™•๋ฅ  Archery.SubSkill.ArrowRetrieval.Name=ํ™”์‚ด ํšŒ์ˆ˜ -Archery.SubSkill.ArrowRetrieval.Description=์‹œ์ฒด์—์„œ ํ™”์‚ด ํšŒ์ˆ˜ ํ™•๋ฅ  ์ฆ๊ฐ€ -Archery.Listener=๊ถ์ˆ (ARCHERY): -Archery.SkillName=๊ถ์ˆ  -Archery.Skillup=๊ถ์ˆ  ๊ธฐ์ˆ ์ด {0} ์˜ฌ๋ผ ์ด {1} ๋ ˆ๋ฒจ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Archery.SubSkill.SkillShot.Stat=์Šคํ‚ฌ์ƒท ์ถ”๊ฐ€ ํ”ผํ•ด -Archery.SubSkill.Daze.Stat=ํ˜„ํ˜น ํ™•๋ฅ  +Archery.SubSkill.ArrowRetrieval.Description=์‹œ์ฒด์—์„œ ํ™”์‚ด์„ ํšŒ์ˆ˜ํ•  ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Archery.SubSkill.ArrowRetrieval.Stat=ํ™”์‚ด ํšŒ์ˆ˜ ํ™•๋ฅ  -Archery.SubSkill.ArcheryLimitBreak.Name=๊ถ์ˆ  ํ•œ๊ณ„ ๋ŒํŒŒ -Archery.SubSkill.ArcheryLimitBreak.Description=ํ•œ๊ณ„ ๋ŒํŒŒ. ๊ฐ•ํ•œ ์ ์—๊ฒŒ ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ์ค๋‹ˆ๋‹ค. PVP๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, PVE์—์„œ ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ์ค„์ง€๋Š” ์„œ๋ฒ„ ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. -Archery.SubSkill.ArcheryLimitBreak.Stat=ํ•œ๊ณ„ ๋ŒํŒŒ ์ตœ๋Œ€ ํ”ผํ•ด +Archery.SubSkill.ArcheryLimitBreak.Name=์–‘๊ถ ํ•œ๊ณ„ ๊ทน๋ณต +Archery.SubSkill.ArcheryLimitBreak.Description=ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์ƒ๋Œ€์— ๋Œ€ํ•œ ํ”ผํ•ด๋Ÿ‰์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. PVP์šฉ์œผ๋กœ ์ ์šฉ๋˜๋ฉฐ, PVE์—์„œ ํ”ผํ•ด๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ฌ์ง€๋Š” ์„œ๋ฒ„ ์„ค์ •์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. +Archery.SubSkill.ArcheryLimitBreak.Stat=ํ•œ๊ณ„ ๊ทน๋ณต ์ตœ๋Œ€ ํ”ผํ•ด๋Ÿ‰ +Archery.Listener=์–‘๊ถ: +Archery.SkillName=์–‘๊ถ - -#AXES -Axes.Ability.Bonus.0=๋„๋ผ ๋งˆ์Šคํ„ฐ๋ฆฌ -Axes.Ability.Bonus.1={0} ์ถ”๊ฐ€ ํ”ผํ•ด -Axes.Ability.Bonus.2=๊ฐ‘์˜ท ์ถฉ๊ฒฉ -Axes.Ability.Bonus.3=๋ฐฉ์–ด๊ตฌ ์ถ”๊ฐ€ ํ”ผํ•ด: {0} -Axes.Ability.Bonus.4=์—„์ฒญ๋‚œ ์ถฉ๊ฒฉ -Axes.Ability.Bonus.5=๋น„๋ฌด์žฅ ์ถ”๊ฐ€ ํ”ผํ•ด: {0} -Axes.Ability.Lower=&7**๋„๋ผ ์ค€๋น„ ํ•ด์ œ** -Axes.Ability.Ready=&a**๋„๋ผ ์ค€๋น„ ์™„๋ฃŒ** -Axes.Combat.CritStruck=&4ํฌ๋ฆฌํ‹ฐ์ปฌ ํžˆํŠธ์— ๋งž์•˜์Šต๋‹ˆ๋‹ค! -Axes.Combat.CritChance=ํฌ๋ฆฌํ‹ฐ์ปฌ ํžˆํŠธ ํ™•๋ฅ : &e{0} -Axes.Combat.CriticalHit=ํฌ๋ฆฌํ‹ฐ์ปฌ ํžˆํŠธ! -Axes.Combat.GI.Proc=&a**์ตœ๊ณ ์˜ ๊ฐ•ํƒ€๋ฅผ ๋•Œ๋ ธ์Šต๋‹ˆ๋‹ค** -Axes.Combat.GI.Struck=**์—„์ฒญ๋‚œ ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค** -Axes.Combat.SS.Struck=&4๋ผˆ ์ชผ๊ฐœ๊ธฐ์— ๋งž์•˜์Šต๋‹ˆ๋‹ค! -Axes.Combat.SS.Length=๋ผˆ ์ชผ๊ฐœ๊ธฐ ์ง€์†์‹œ๊ฐ„: &e{0}์ดˆ -Axes.SubSkill.SkullSplitter.Name=๋ผˆ ์ชผ๊ฐœ๊ธฐ (๋Šฅ๋ ฅ) -Axes.SubSkill.SkullSplitter.Description=๊ด‘์—ญ ์ถ”๊ฐ€ ํ”ผํ•ด -Axes.SubSkill.CriticalStrikes.Name=ํฌ๋ฆฌํ‹ฐ์ปฌ ์ŠคํŠธ๋ผ์ดํฌ -Axes.SubSkill.CriticalStrikes.Description=ํ”ผํ•ด 2๋ฐฐ -Axes.SubSkill.AxeMastery.Name=๋„๋ผ ๋งˆ์Šคํ„ฐ๋ฆฌ -Axes.SubSkill.AxeMastery.Description=์ถ”๊ฐ€ ํŠนํ˜œ ํ”ผํ•ด -Axes.SubSkill.ArmorImpact.Name=๊ฐ‘์˜ท ์ถฉ๊ฒฉ -Axes.SubSkill.ArmorImpact.Description=๊ฐ‘์˜ท ํŒŒ๊ดด ๊ณต๊ฒฉ -Axes.SubSkill.GreaterImpact.Name=์—„์ฒญ๋‚œ ์ถฉ๊ฒฉ -Axes.SubSkill.GreaterImpact.Description=๋น„๋ฌด์žฅ ์ถ”๊ฐ€ ํ”ผํ•ด -Axes.Listener=๋ถ€์ˆ (AXES): -Axes.SkillName=๋ถ€์ˆ  -Axes.Skills.SS.Off=**๋ผˆ ์ชผ๊ฐœ๊ธฐ ๋ฐœ๋™ ํ•ด์ œ** -Axes.Skills.SS.On=&a**๋ผˆ ์ชผ๊ฐœ๊ธฐ ๋ฐœ๋™** -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.Ability.Bonus.0=๋„๋ผ ์ˆ™๋ จ +Axes.Ability.Bonus.1=์ถ”๊ฐ€ {0} ํ”ผํ•ด +Axes.Ability.Bonus.2=๋ฐฉ์–ด๊ตฌ ํƒ€๊ฒฉ +Axes.Ability.Bonus.3={0} ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ๋ฐฉ์–ด๊ตฌ์— ์ž…ํž™๋‹ˆ๋‹ค. +Axes.Ability.Bonus.4=๊ฐ•๋ ฅํ•œ ํƒ€๊ฒฉ +Axes.Ability.Bonus.5={0} ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ๋ฐฉ์–ด๊ตฌ๊ฐ€ ์—†๋Š” ์ ์—๊ฒŒ ์ž…ํž™๋‹ˆ๋‹ค. +Axes.Ability.Lower=&7๋„๋ผ๋ฅผ ๋‚ด๋ ค๋†“์Šต๋‹ˆ๋‹ค. +Axes.Ability.Ready=&3๋„๋ผ๋ฅผ &6์ค€๋น„&3ํ•ฉ๋‹ˆ๋‹ค. +Axes.Ability.Ready.Extra=&3์ฐธ์ˆ˜๋ฅผ &6์ค€๋น„&3ํ•ฉ๋‹ˆ๋‹ค. &7({0}์ด(๊ฐ€) {1}์ดˆ ๋™์•ˆ ์žฌ์‚ฌ์šฉ ๋Œ€๊ธฐ ์ค‘์ž…๋‹ˆ๋‹ค) +Axes.Combat.CritStruck=&4์น˜๋ช…์ ์œผ๋กœ ๋งž์•˜์Šต๋‹ˆ๋‹ค! +Axes.Combat.CriticalHit=์น˜๋ช…ํƒ€! +Axes.Combat.GI.Proc=&a**๊ฐ•๋ ฅํ•œ ํž˜์œผ๋กœ ํƒ€๊ฒฉ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค** +Axes.Combat.GI.Struck=**๊ฐ•๋ ฅํ•œ ํƒ€๊ฒฉ์œผ๋กœ ๋งž์•˜์Šต๋‹ˆ๋‹ค** +Axes.Combat.SS.Struck=&4ํ•ด๊ณจ ๋ถ„์‡„๋กœ ๋งž์•˜์Šต๋‹ˆ๋‹ค! +Axes.SubSkill.SkullSplitter.Name=ํ•ด๊ณจ ๋ถ„์‡„ +Axes.SubSkill.SkullSplitter.Description=๊ด‘์—ญ ํ”ผํ•ด๋ฅผ ์ž…ํž™๋‹ˆ๋‹ค. +Axes.SubSkill.SkullSplitter.Stat=ํ•ด๊ณจ ๋ถ„์‡„ ์ง€์† ์‹œ๊ฐ„ +Axes.SubSkill.CriticalStrikes.Name=์น˜๋ช…ํƒ€ +Axes.SubSkill.CriticalStrikes.Description=๋‘ ๋ฐฐ์˜ ํ”ผํ•ด๋ฅผ ์ž…ํž™๋‹ˆ๋‹ค. +Axes.SubSkill.CriticalStrikes.Stat=์น˜๋ช…ํƒ€ ํ™•๋ฅ  +Axes.SubSkill.AxeMastery.Name=์ฐธ์ˆ˜ ์ˆ™๋ จ +Axes.SubSkill.AxeMastery.Description=์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ์ž…ํž™๋‹ˆ๋‹ค. +Axes.SubSkill.AxesLimitBreak.Name=์ฐธ์ˆ˜ ํ•œ๊ณ„ ๋ŒํŒŒ +Axes.SubSkill.AxesLimitBreak.Description=ํ•œ๊ณ„๋ฅผ ๋ŒํŒŒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์ ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ”ผํ•ด๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. PVP๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, PVE์—์„œ์˜ ์ถ”๊ฐ€ ํ”ผํ•ด ์ฆ๊ฐ€ ์—ฌ๋ถ€๋Š” ์„œ๋ฒ„ ์„ค์ •์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. Axes.SubSkill.AxesLimitBreak.Stat=ํ•œ๊ณ„ ๋ŒํŒŒ ์ตœ๋Œ€ ํ”ผํ•ด - -#EXCAVATION -Excavation.Ability.Lower=&7**์‚ฝ ์ค€๋น„ ํ•ด์ œ** -Excavation.Ability.Ready=&a**์‚ฝ ์ค€๋น„ ์™„๋ฃŒ** -Excavation.SubSkill.GigaDrillBreaker.Name=๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค (๋Šฅ๋ ฅ) -Excavation.SubSkill.GigaDrillBreaker.Description=๋“œ๋กญ ์†๋„ 3๋ฐฐ, ๊ฒฝํ—˜์น˜ 3๋ฐฐ, ์†๋„ ์ฆ๊ฐ€ -Excavation.SubSkill.TreasureHunter.Name=๋ณด๋ฌผ ์‚ฌ๋ƒฅ๊พผ -Excavation.SubSkill.TreasureHunter.Description=๋ณด๋ฌผ ๋ฐœ๊ตด ๋Šฅ๋ ฅ -Excavation.Effect.Length=๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค ์ง€์†์‹œ๊ฐ„: &e{0}์ดˆ -Excavation.Listener=๋ฐœ๊ตด(EXCAVATION): -Excavation.SkillName=๋ฐœ๊ตด -Excavation.Skills.GigaDrillBreaker.Off=**๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค ๋ฐœ๋™ ํ•ด์ œ** -Excavation.Skills.GigaDrillBreaker.On=&a**๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค ๋ฐœ๋™** -Excavation.Skills.GigaDrillBreaker.Refresh=&a๋‹น์‹ ์˜ &e๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค &a๊ธฐ์ˆ ์€ ์ด์ œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! -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=๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ฒ„์„œ์ปค ์ง€์†์‹œ๊ฐ„ +Axes.SubSkill.ArmorImpact.Name=๋ฐฉ์–ด๊ตฌ ํƒ€๊ฒฉ +Axes.SubSkill.ArmorImpact.Description=์ถฉ๋ถ„ํ•œ ํž˜์œผ๋กœ ๋ฐฉ์–ด๊ตฌ๋ฅผ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค. +Axes.SubSkill.GreaterImpact.Name=๊ฐ•๋ ฅํ•œ ํƒ€๊ฒฉ +Axes.SubSkill.GreaterImpact.Description=๋ฐฉ์–ด๊ตฌ๊ฐ€ ์—†๋Š” ์ ์—๊ฒŒ ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ ์ž…ํž™๋‹ˆ๋‹ค. +Axes.Listener=์ฐธ์ˆ˜: +Axes.SkillName=์ฐธ์ˆ˜ +Axes.Skills.SS.Off=**ํ•ด๊ณจ ๋ถ„์‡„ ํšจ๊ณผ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Axes.Skills.SS.On=&a**ํ•ด๊ณจ ๋ถ„์‡„ ํ™œ์„ฑํ™”๋จ** +Axes.Skills.SS.Refresh=&aํ•ด๋‹น &eํ•ด๊ณจ ๋ถ„์‡„ &a๊ธฐ์ˆ ์ด ํšŒ๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Axes.Skills.SS.Other.Off=ํ•ด๊ณจ ๋ถ„์‡„&a ํšจ๊ณผ๊ฐ€ &e{0}์—๊ฒŒ์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค +Axes.Skills.SS.Other.On=&a{0}&2์ด(๊ฐ€) &cํ•ด๊ณจ ๋ถ„์‡„๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +#๋ฐœ๊ตด +Excavation.Ability.Lower=&7์‚ฝ์„ ๋‚ด๋ ค๋†“์Šต๋‹ˆ๋‹ค. +Excavation.Ability.Ready=&3์‚ฝ์„ &6์ค€๋น„&3ํ•ฉ๋‹ˆ๋‹ค. +Excavation.SubSkill.GigaDrillBreaker.Name=๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค +Excavation.SubSkill.GigaDrillBreaker.Description=๋“œ๋กญ ํ™•๋ฅ  3๋ฐฐ, ๊ฒฝํ—˜์น˜ 3๋ฐฐ, ์†๋„ ์ฆ๊ฐ€ +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} -Fishing.Ability.Info=๋งค์ง ํ—Œํ„ฐ: &7 **ํŠธ๋ ˆ์ ธ ํ—Œํ„ฐ ๋žญํฌ ํ–ฅ์ƒ** -Fishing.Ability.Locked.0={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (ํ”๋“ค๊ธฐ) -Fishing.Ability.Locked.1={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (์–ผ์Œ ๋‚š์‹œ) -Fishing.Ability.Locked.2={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (๋‚š์‹œ๊พผ ์žฅ์ธ) -Fishing.Ability.Rank=ํŠธ๋ ˆ์ ธ ํ—Œํ„ฐ ๋žญํฌ: &e{0}/5๋žญํฌ -Fishing.Ability.TH.DropRate= ๋“œ๋กญ ๋น„์œจ: &4ํ•จ์ •: &e{0} &7๊ณตํ†ต: &e{1} &a๋น„๊ณตํ†ต: &e{2}\n&9๋ ˆ์–ด: &e{3} &d์—ํ”ฝ: &e{4} &6๋ ˆ์ „๋“œ๋ฆฌ: &e{5} &b๋ ˆ์ฝ”๋“œ: &e{6} -Fishing.Ability.TH.MagicRate=๋งค์ง ํ—Œํ„ฐ ํ™•๋ฅ : &e{0} -Fishing.Ability.Shake=ํ”๋“ค๊ธฐ ํ™•๋ฅ : &e{0} -Fishing.Ability.IceFishing=์–ผ์Œ ๋‚š์‹œ: ์–ผ์Œ์—์„œ ๋‚š์‹œ -Fishing.Ability.FD=์–ด๋ถ€์˜ ๋‹ค์ด์–ดํŠธ ๋žญํฌ: &e{0}๋žญํฌ -Fishing.SubSkill.TreasureHunter.Name=ํŠธ๋ ˆ์ ธ ํ—Œํ„ฐ (ํŒจ์‹œ๋ธŒ) -Fishing.SubSkill.TreasureHunter.Description=๋ฌผ๊ฑด(๊ทธ์™ธ) ๋‚š์‹œ -Fishing.SubSkill.MagicHunter.Name=๋งค์ง ํ—Œํ„ฐ -Fishing.SubSkill.MagicHunter.Description=์ธ์ฑˆํŠธ๋œ ์•„์ดํ…œ ๋ฐœ๊ฒฌ -Fishing.SubSkill.Shake.Name=ํ”๋“ค๊ธฐ (vs. ๋…๋ฆฝ์ฒด) -Fishing.SubSkill.Shake.Description=์•„์ดํ…œ์„ ๋ชน์ด๋‚˜ ๋‚š์‹œ์—์„œ ์–ป์Œ -Fishing.SubSkill.FishermansDiet.Name=์–ด๋ถ€์˜ ๋‹ค์ด์–ดํŠธ -Fishing.SubSkill.FishermansDiet.Description=์–ด๋ฅ˜ ์Œ์‹ ํ—ˆ๊ธฐ ํšŒ๋ณต ์ฆ๊ฐ€ -Fishing.SubSkill.MasterAngler.Name=๋‚š์‹œ๊พผ ์žฅ์ธ -Fishing.SubSkill.IceFishing.Name=์–ผ์Œ ๋‚š์‹œ -Fishing.SubSkill.IceFishing.Description=์–ผ์Œ์ด ๋ฎํ˜€์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ๋‚š์‹œ ๊ฐ€๋Šฅ -Fishing.Chance.Raining=&9 ๋น„ ํŠนํ˜œ -Fishing.Listener=๋‚š์‹œ(FISHING): -Fishing.Ability.TH.MagicFound=&7์ด ์ž…์งˆ์—์„œ ๋งˆ๋ฒ•์ด ๋Š๊ปด์ง‘๋‹ˆ๋‹ค... -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=๋งค์ง ํ—Œํ„ฐ ํ™•๋ฅ  +Excavation.SubSkill.Archaeology.Description=๋•…์˜ ๋น„๋ฐ€์„ ๋ฐํ˜€๋ƒ…๋‹ˆ๋‹ค! ๋†’์€ ์Šคํ‚ฌ ๋ ˆ๋ฒจ์€ ๋ณด๋ฌผ์„ ์ฐพ์„ ๋•Œ ๊ฒฝํ—˜์น˜ ์˜ค๋ธŒ๋ฅผ ๋ฐœ๊ฒฌํ•  ํ™•๋ฅ ์„ ๋†’์ž…๋‹ˆ๋‹ค! +Excavation.SubSkill.Archaeology.Stat=๊ณ ๊ณ ํ•™ ๊ฒฝํ—˜์น˜ ์˜ค๋ธŒ ํ™•๋ฅ  +Excavation.SubSkill.Archaeology.Stat.Extra=๊ณ ๊ณ ํ•™ ๊ฒฝํ—˜์น˜ ์˜ค๋ธŒ ์–‘ +Excavation.Listener=๋ฐœ๊ตด: +Excavation.SkillName=๋ฐœ๊ตด +Excavation.Skills.GigaDrillBreaker.Off=**๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค ํšจ๊ณผ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Excavation.Skills.GigaDrillBreaker.On=&a**๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค ํ™œ์„ฑํ™”๋จ** +Excavation.Skills.GigaDrillBreaker.Refresh=&aํ•ด๋‹น &e๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค &a๊ธฐ์ˆ ์ด ํšŒ๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Excavation.Skills.GigaDrillBreaker.Other.Off=๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค&a ํšจ๊ณผ๊ฐ€ &e{0}์—๊ฒŒ์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค +Excavation.Skills.GigaDrillBreaker.Other.On=&a{0}&2์ด(๊ฐ€) &c๊ธฐ๊ฐ€ ๋“œ๋ฆด ๋ธŒ๋ ˆ์ด์ปค๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +#๋‚š์‹œ +Fishing.ScarcityTip=&e&o์ด ์ง€์—ญ์€ ๋‚š์‹œ๊ฐ€ ๊ณผ์ž‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์žก์œผ๋ ค๋ฉด ๋‹ค๋ฅธ ๊ณณ์— ๋‚š์‹ฏ๋Œ€๋ฅผ ๋˜์ง€์„ธ์š”. ์ ์–ด๋„ {0} ๋ธ”๋ก ๋–จ์–ด์ง„ ๊ณณ์—์„œ ๋‚š์‹œํ•˜์„ธ์š”. +Fishing.Scared=&7&o๋‚œ์žกํ•œ ์›€์ง์ž„์€ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ๋†€๋ผ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค! +Fishing.Exhausting=&c&o๋‚š์‹œ๋Œ€๋ฅผ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ํ”ผ๋กœ๊ฐ€ ์Œ“์ด๊ณ  ๋‚š์‹œ๋Œ€๊ฐ€ ๋‹ณ์Šต๋‹ˆ๋‹ค! +Fishing.LowResourcesTip=&7์ด ์ง€์—ญ์—๋Š” ๋ฌผ๊ณ ๊ธฐ๊ฐ€ ๋งŽ์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ {0} ๋ธ”๋ก ๋–จ์–ด์ง„ ๊ณณ์—์„œ ๋‚š์‹œํ•˜์„ธ์š”. +Fishing.Ability.Info=๋งˆ๋ฒ•์‚ฌ ์‚ฌ๋ƒฅ๊พผ: &7 **๋ณด๋ฌผ์‚ฌ๋ƒฅ๊พผ ๋žญํฌ์— ๋”ฐ๋ผ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค** +Fishing.Ability.Locked.0={0}+ ์Šคํ‚ฌ๊นŒ์ง€ ์ž ๊ธˆ (ํ”๋“ค๊ธฐ) +Fishing.Ability.Locked.1={0}+ ์Šคํ‚ฌ๊นŒ์ง€ ์ž ๊ธˆ (์–ผ์Œ ๋‚š์‹œ) +Fishing.Ability.Locked.2={0}+ ์Šคํ‚ฌ๊นŒ์ง€ ์ž ๊ธˆ (๋งˆ์Šคํ„ฐ ๋‚š์‹œ๊พผ) +Fishing.SubSkill.TreasureHunter.Name=๋ณด๋ฌผ์‚ฌ๋ƒฅ๊พผ +Fishing.SubSkill.TreasureHunter.Description=๋‹ค์–‘ํ•œ ๋ฌผ๊ฑด์„ ๋‚š์•„์˜ฌ๋ฆฝ๋‹ˆ๋‹ค +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.Name=๋งˆ๋ฒ•์‚ฌ ์‚ฌ๋ƒฅ๊พผ +Fishing.SubSkill.MagicHunter.Description=๋งˆ๋ฒ• ๋ถ€์—ฌ๋œ ์•„์ดํ…œ์„ ์ฐพ์Šต๋‹ˆ๋‹ค +Fishing.SubSkill.MagicHunter.Stat=๋งˆ๋ฒ•์‚ฌ ์‚ฌ๋ƒฅ๊พผ ํ™•๋ฅ  +Fishing.SubSkill.Shake.Name=ํ”๋“ค๊ธฐ +Fishing.SubSkill.Shake.Description=๋‚š์‹ฏ๋Œ€๋กœ ๋ชน์ด๋‚˜ ํ”Œ๋ ˆ์ด์–ด์—์„œ ์•„์ดํ…œ์„ ํ”๋“ค์–ด ๋–จ๊ตฌ์„ธ์š” Fishing.SubSkill.Shake.Stat=ํ”๋“ค๊ธฐ ํ™•๋ฅ  -Fishing.SubSkill.FishermansDiet.Stat=์–ด๋ถ€์˜ ๋‹ค์ด์–ดํŠธ: &a๋žญํฌ {0} -Fishing.SubSkill.MasterAngler.Description=์–ด๋ถ€๊ฐ€ ๋” ์ž์ฃผ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์žก์Šต๋‹ˆ๋‹ค. ๋ณดํŠธ์—์„œ ๋‚š์‹œํ•  ๋•Œ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. +Fishing.SubSkill.FishermansDiet.Name=์–ด๋ถ€์˜ ์‹๋‹จ +Fishing.SubSkill.FishermansDiet.Description=๋‚š์€ ์Œ์‹์˜ ํฌ๋งŒ๊ฐ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค +Fishing.SubSkill.FishermansDiet.Stat=์–ด๋ถ€์˜ ์‹๋‹จ: &a๋žญํฌ {0} +Fishing.SubSkill.MasterAngler.Name=๋งˆ์Šคํ„ฐ ๋‚š์‹œ๊พผ +Fishing.SubSkill.MasterAngler.Description=๋ฌผ๊ณ ๊ธฐ๋ฅผ ๋” ์ž์ฃผ ์žก์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐฐ์—์„œ ๋‚š์‹œํ•  ๋•Œ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Fishing.SubSkill.MasterAngler.Stat=๋‚š์‹œ ์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๊ฐ์†Œ: &a-{0} ์ดˆ Fishing.SubSkill.MasterAngler.Stat.Extra=๋‚š์‹œ ์ตœ๋Œ€ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๊ฐ์†Œ: &a-{0} ์ดˆ +Fishing.SubSkill.IceFishing.Name=์–ผ์Œ ๋‚š์‹œ +Fishing.SubSkill.IceFishing.Description=์–ผ์Œ ์ƒ๋ฌผ์ด ์„œ์‹ํ•˜๋Š” ์ƒ๋ฌผ๊พผ์ž…๋‹ˆ๋‹ค Fishing.SubSkill.IceFishing.Stat=์–ผ์Œ ๋‚š์‹œ - -#HERBALISM -Herbalism.Ability.DoubleDropChance=2๋ฐฐ ๋“œ๋กญ ํ™•๋ฅ : &e{0} -Herbalism.Ability.FD=๋†๋ถ€์˜ ๋‹ค์ด์–ดํŠธ: &e{0}๋žญํฌ -Herbalism.Ability.GTe.Length=์žฌ๋ฐฐ์˜ ๋Œ€์ง€ ์ง€์†์‹œ๊ฐ„: &e{0}์ดˆ -Herbalism.Ability.GTe.NeedMore=์žฌ๋ฐฐ์˜ ๋Œ€์ง€์— ๋ฟŒ๋ฆด ์”จ๊ฐ€ ์ข€๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. -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.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.GreenThumb.Name=์žฌ๋ฐฐ์˜ ์žฌ๋Šฅ (๋ฐ€) -Herbalism.SubSkill.GreenThumb.Description=์ˆ˜ํ™•์‹œ ์ž๋™ ์”จ ์‹ฌ๊ธฐ -Herbalism.Effect.4=์žฌ๋ฐฐ์˜ ์žฌ๋Šฅ (๋ธ”๋ก๋“ค) -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.ShroomThumb.Name=๋ฒ„์„ฏ์žฌ๋ฐฐ์ž์˜ ์ˆจ๊ฒฐ -Herbalism.SubSkill.ShroomThumb.Description=ํ™ & ์ž”๋””์— ๊ท ์‚ฌ์ฒด ์‚ดํฌ -Herbalism.HylianLuck=&aํ•˜์ด๋ž„์˜ ํ–‰์šด์ด ์˜ค๋Š˜ ๋„ˆ์—๊ฒŒ ๋”ฐ๋ฅด๋Š”๊ตฌ๋‚˜! -Herbalism.Listener=์•ฝ์ดˆํ•™(HERBALISM): +Fishing.Chance.Raining=&9 ๋น„ ๋ณด๋„ˆ์Šค +Fishing.Listener=๋‚š์‹œ: +Fishing.Ability.TH.MagicFound=&7์ด ์žก์€ ๋ฌผ๊ณ ๊ธฐ์—๋Š” ๋งˆ๋ฒ•์˜ ์†๊ธธ์„ ๋Š๋‚๋‹ˆ๋‹ค... +Fishing.Ability.TH.Boom=&7ํญ๋ฐœ ์‹œ๊ฐ„!!! +Fishing.Ability.TH.Poison=&7๋ญ”๊ฐ€ ์ด์ƒํ•œ ๋ƒ„์ƒˆ๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค... +Fishing.SkillName=๋‚š์‹œ +#์•ฝ์ดˆํ•™ +Herbalism.Ability.GTe.NeedMore=๋” ๋งŽ์€ ์”จ์•—์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋…น์ƒ‰ ์—๋„ˆ์ง€๋ฅผ ์ „ํŒŒํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. +Herbalism.Ability.GTh.Fail=**์‹๋ฌผ์žฌ๋ฐฐ ์‹คํŒจ** +Herbalism.Ability.GTh=&a**์‹๋ฌผ์žฌ๋ฐฐ** +Herbalism.Ability.Lower=&7๊ตญ์ง€๋ฅผ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. +Herbalism.Ability.Ready=&3๊ตญ์ง€๋ฅผ &6์ค€๋น„&3ํ•ฉ๋‹ˆ๋‹ค. +Herbalism.Ability.ShroomThumb.Fail=**๋ฒ„์„ฏ์ธ ์‹คํŒจ** +Herbalism.SubSkill.GreenTerra.Name=๊ทธ๋ฆฐ ํ…Œ๋ผ +Herbalism.SubSkill.GreenTerra.Description=ํ…Œ๋ผ๋ฅผ ์ „ํŒŒํ•˜๋ฉฐ, ๋“œ๋กญ 3๋ฐฐ ์ฆ๊ฐ€, ์‹๋ฌผ์žฌ๋ฐฐ ๊ฐ•ํ™” +Herbalism.SubSkill.GreenTerra.Stat=๊ทธ๋ฆฐ ํ…Œ๋ผ ์ง€์†์‹œ๊ฐ„ +Herbalism.SubSkill.GreenThumb.Name=์‹๋ฌผ์žฌ๋ฐฐ +Herbalism.SubSkill.GreenThumb.Description=๊ตญ์ง€๋กœ ์ž‘๋ฌผ ์ˆ˜ํ™• ์‹œ ์ž๋™์œผ๋กœ ์‹ฌ๊ธฐ +Herbalism.SubSkill.GreenThumb.Stat=์‹๋ฌผ์žฌ๋ฐฐ ํ™•๋ฅ  +Herbalism.SubSkill.GreenThumb.Stat.Extra=์‹๋ฌผ์žฌ๋ฐฐ ๋‹จ๊ณ„: &a์ž‘๋ฌผ ๋‹จ๊ณ„ {0}์—์„œ ์ž๋ž๋‹ˆ๋‹ค +Herbalism.Effect.4=์‹๋ฌผ์žฌ๋ฐฐ (๋ธ”๋ก) +Herbalism.SubSkill.GreenThumb.Description.2=๋ฒฝ๋Œ์— ์ด๋ผ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ํ’€์„ ์ž๋ผ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค +Herbalism.SubSkill.FarmersDiet.Name=๋†๋ถ€์˜ ์‹๋‹จ +Herbalism.SubSkill.FarmersDiet.Description=๋†์‚ฐ๋ฌผ๋กœ๋ถ€ํ„ฐ ํšŒ๋ณต๋˜๋Š” ํ—ˆ๊ธฐ๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค +Herbalism.SubSkill.FarmersDiet.Stat=๋†๋ถ€์˜ ์‹๋‹จ: &a๋“ฑ๊ธ‰ {0} +Herbalism.SubSkill.DoubleDrops.Name=๋”๋ธ” ๋“œ๋กญ +Herbalism.SubSkill.DoubleDrops.Description=๋ณดํ†ต ๋“œ๋กญ์˜ 2๋ฐฐ ํš๋“ +Herbalism.SubSkill.DoubleDrops.Stat=๋”๋ธ” ๋“œ๋กญ ํ™•๋ฅ  +Herbalism.SubSkill.HylianLuck.Name=ํ•˜์ด๋ž„์˜ ํ–‰์šด +Herbalism.SubSkill.HylianLuck.Description=ํฌ๊ท€ ์•„์ดํ…œ์„ ์ฐพ์„ ์ž‘์€ ํ™•๋ฅ  ์ œ๊ณต +Herbalism.SubSkill.HylianLuck.Stat=ํ•˜์ด๋ž„์˜ ํ–‰์šด ํ™•๋ฅ  +Herbalism.SubSkill.ShroomThumb.Name=๋ฒ„์„ฏ์ธ +Herbalism.SubSkill.ShroomThumb.Description=ํ™๊ณผ ํ’€์— ๊ท ์‚ฌ์ฒด๋ฅผ ์ „ํŒŒํ•ฉ๋‹ˆ๋‹ค +Herbalism.SubSkill.ShroomThumb.Stat=๋ฒ„์„ฏ์ธ ํ™•๋ฅ  +Herbalism.HylianLuck=&aํ•˜์ด๋ผ๋ฃจ์˜ ํ–‰์šด์ด ์˜ค๋Š˜์€ ํ•จ๊ป˜ ํ•ฉ๋‹ˆ๋‹ค! +Herbalism.Listener=์•ฝ์ดˆํ•™: Herbalism.SkillName=์•ฝ์ดˆํ•™ -Herbalism.Skills.GTe.Off=**์žฌ๋ฐฐ์˜ ๋Œ€์ง€ ๋น„ํ™œ์„ฑํ™”๋จ** -Herbalism.Skills.GTe.On=&a**์žฌ๋ฐฐ์˜ ๋Œ€์ง€ ํ™œ์„ฑํ™”๋จ** -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=๋ฒ„์„ฏ์žฌ๋ฐฐ์ž์˜ ์ˆจ๊ฒฐ ํ™•๋ฅ  +Herbalism.Skills.GTe.Off=**๊ทธ๋ฆฐ ํ…Œ๋ผ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค** +Herbalism.Skills.GTe.On=&a**๊ทธ๋ฆฐ ํ…Œ๋ผ ํ™œ์„ฑํ™”๋จ** +Herbalism.Skills.GTe.Refresh=&a๊ทธ๋ฆฐ ํ…Œ๋ผ ๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Herbalism.Skills.GTe.Other.Off=&e{0}&a๋‹˜์˜ ๊ทธ๋ฆฐ ํ…Œ๋ผ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Herbalism.Skills.GTe.Other.On=&a{0}&2๋‹˜์ด &c๊ทธ๋ฆฐ ํ…Œ๋ผ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +#์ฑ„๊ด‘ +Mining.Ability.Locked.0={0}+ ์Šคํ‚ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค (ํญํƒ„ ์ฑ„๊ตด) +Mining.Ability.Locked.1={0}+ ์Šคํ‚ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค (๋” ํฐ ํญํƒ„) +Mining.Ability.Locked.2={0}+ ์Šคํ‚ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค (ํญํŒŒ ์ „๋ฌธ๊ฐ€) +Mining.Ability.Lower=&7๊ณก๊ดญ์ด๋ฅผ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. +Mining.Ability.Ready=&3๊ณก๊ดญ์ด๋ฅผ &6์ค€๋น„&3ํ•ฉ๋‹ˆ๋‹ค. +Mining.SubSkill.SuperBreaker.Name=์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค +Mining.SubSkill.SuperBreaker.Description=์†๋„+, ๋“œ๋กญ 3๋ฐฐ ํ™•๋ฅ  +Mining.SubSkill.SuperBreaker.Stat=์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค ์ง€์†์‹œ๊ฐ„ +Mining.SubSkill.DoubleDrops.Name=๋”๋ธ” ๋“œ๋กญ +Mining.SubSkill.DoubleDrops.Description=๋ณดํ†ต ๋“œ๋กญ์˜ 2๋ฐฐ ํš๋“ +Mining.SubSkill.DoubleDrops.Stat=๋”๋ธ” ๋“œ๋กญ ํ™•๋ฅ  +Mining.SubSkill.BlastMining.Name=ํญํƒ„ ์ฑ„๊ตด +Mining.SubSkill.BlastMining.Description=TNT๋กœ ์ฑ„๊ตด ์‹œ ๋ณด๋„ˆ์Šค ํšจ๊ณผ +Mining.SubSkill.BlastMining.Stat=ํญํƒ„ ์ฑ„๊ตด: &a๋“ฑ๊ธ‰ {0}/{1} &7({2}) +Mining.SubSkill.BlastMining.Stat.Extra=ํญ๋ฐœ ๋ฐ˜๊ฒฝ ์ฆ๊ฐ€: &a+{0} +Mining.SubSkill.BiggerBombs.Name=๋” ํฐ ํญํƒ„ +Mining.SubSkill.BiggerBombs.Description=TNT ํญ๋ฐœ ๋ฐ˜๊ฒฝ ์ฆ๊ฐ€ +Mining.SubSkill.DemolitionsExpertise.Name=ํญํŒŒ ์ „๋ฌธ๊ฐ€ +Mining.SubSkill.DemolitionsExpertise.Description=TNT ํญ๋ฐœ๋กœ ์ธํ•œ ํ”ผํ•ด ๊ฐ์†Œ +Mining.SubSkill.DemolitionsExpertise.Stat=ํญํŒŒ ์ „๋ฌธ๊ฐ€ ํ”ผํ•ด ๊ฐ์†Œ -#MINING -Mining.Ability.Length=ํŒŒ๊ดด์ž ์ง€์†์‹œ๊ฐ„: &e{0}s -Mining.Ability.Locked.0={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (ํญ๋ฐœ ์ฑ„๊ตด) -Mining.Ability.Locked.1={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (๊ฑฐ๋Œ€ ํญ๋ฐœ) -Mining.Ability.Locked.2={0}๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ  ํ•ด์ œ (์ „๋ฌธ ํญํŒŒ) -Mining.Ability.Lower=&7**๊ณก๊ดญ์ด ์ค€๋น„ ํ•ด์ œ** -Mining.Ability.Ready=&a**๊ณก๊ดญ์ด ์ค€๋น„ ์™„๋ฃŒ** -Mining.SubSkill.SuperBreaker.Name=ํŒŒ๊ดด์ž (๋Šฅ๋ ฅ) -Mining.SubSkill.SuperBreaker.Description=์†๋„ ํ–ฅ์ƒ, ๋“œ๋กญ ํ™•๋ฅ  3๋ฐฐ -Mining.SubSkill.DoubleDrops.Name=๋“œ๋กญ 2๋ฐฐ -Mining.SubSkill.DoubleDrops.Description=ํ•ญ์ƒ ๋“œ๋กญ 2๋ฐฐ -Mining.SubSkill.BlastMining.Name=ํญ๋ฐœ ์ฑ„๊ตด -Mining.SubSkill.BlastMining.Description=TNT๋กœ ์ฑ„๊ตด์‹œ ์ถ”๊ฐ€ ๊ด‘๋ฌผ -Mining.SubSkill.BiggerBombs.Name=๊ฑฐ๋Œ€ ํญ๋ฐœ -Mining.SubSkill.BiggerBombs.Description=TNT ํญ๋ฐœ๊ฑฐ๋ฆฌ ์ฆ๊ฐ€ -Mining.SubSkill.DemolitionsExpertise.Name=์ „๋ฌธ ํญํŒŒ -Mining.SubSkill.DemolitionsExpertise.Description=TNT ํญ๋ฐœ ํ”ผํ•ด ๊ฐ์†Œ -Mining.Effect.Decrease=์ „๋ฌธ ํญํŒŒ ํ”ผํ•ด ๊ฐ์†Œ: &e{0} -Mining.Effect.DropChance=๋“œ๋กญ 2๋ฐฐ ํ™•๋ฅ : &e{0} -Mining.Listener=์ฑ„๊ด‘(MINING): +Mining.Listener=Mining: Mining.SkillName=์ฑ„๊ด‘ -Mining.Skills.SuperBreaker.Off=**ํŒŒ๊ดด์ž ๋ฐœ๋™ ํ•ด์ œ** -Mining.Skills.SuperBreaker.On=&a**ํŒŒ๊ดด์ž ๋ฐœ๋™** -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=์ „๋ฌธ ํญํŒŒ ํ”ผํ•ด ๊ฐ์†Œ - -#ํญ๋ฐœ ์ฑ„๊ตด -Mining.Blast.Boom=&7**ํญ๋ฐœ** -Mining.Blast.Effect=+{0} ๊ด‘๋ฌผ ์ด์ต, {1}x ๋“œ๋กญ -Mining.Blast.Radius.Increase=ํญ๋ฐœ ๋ฐ˜๊ฒฝ ์ฆ๊ฐ€: &e+{0} -Mining.Blast.Rank=ํญ๋ฐœ ์ฑ„๊ตด: &e{0}/8๋žญํฌ &7({1}) -Mining.Blast.Other.On=&a{0}&2๋‹˜์€ &cํญ๋ฐœ ์ฑ„๊ตด์„ ์‚ฌ์šฉํ•˜์…จ์Šต๋‹ˆ๋‹ค! -Mining.Blast.Refresh=&a๋‹น์‹ ์˜ &eํญ๋ฐœ ์ฑ„๊ตด &a๊ธฐ์ˆ ์€ ์ด์ œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! - +Mining.Skills.SuperBreaker.Off=**์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Mining.Skills.SuperBreaker.On=&a**์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค** +Mining.Skills.SuperBreaker.Other.Off=์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ &e{0}๋‹˜์—๊ฒŒ์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค +Mining.Skills.SuperBreaker.Other.On=&a{0}&2๋‹˜์ด &c์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค! +Mining.Skills.SuperBreaker.Refresh=&a๋‹น์‹ ์˜ &e์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค&a ๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Mining.Listener=Mining: +Mining.SkillName=์ฑ„๊ด‘ +Mining.Skills.SuperBreaker.Off=์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค +Mining.Skills.SuperBreaker.On=&a์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Mining.Skills.SuperBreaker.Other.Off=์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ &e{0}๋‹˜์—๊ฒŒ์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค +Mining.Skills.SuperBreaker.Other.On=&a{0}&2๋‹˜์ด &c์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค! +Mining.Skills.SuperBreaker.Refresh=&a๋‹น์‹ ์˜ &e์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค&a ๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +#Blast Mining +Mining.Blast.Boom=&7ํŽ‘ +Mining.Blast.Cooldown= +Mining.Blast.Effect=์ฑ„๊ตด๋Ÿ‰ +{0}, ๋“œ๋กญ ํšŸ์ˆ˜ {1}๋ฐฐ ์ฆ๊ฐ€ +Mining.Blast.Other.On=&a{0}&2๋‹˜์ด &cํญ๋ฐœ ์ฑ„๊ตด์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค! +Mining.Blast.Refresh=&aํญ๋ฐœ ์ฑ„๊ตด ๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! #REPAIR Repair.SubSkill.Repair.Name=์ˆ˜๋ฆฌ -Repair.SubSkill.Repair.Description=๋„๊ตฌ & ๋ฐฉ์–ด๊ตฌ ์ˆ˜๋ฆฌ -Repair.SubSkill.GoldRepair.Name=๊ธˆ ์ˆ˜๋ฆฌ ({0}๋ ˆ๋ฒจ ์ด์ƒ) -Repair.SubSkill.GoldRepair.Description=๊ธˆ ๋„๊ตฌ & ๋ฐฉ์–ด๊ตฌ ์ˆ˜๋ฆฌ -Repair.SubSkill.IronRepair.Name=์ฒ  ์ˆ˜๋ฆฌ ({0}๋ ˆ๋ฒจ ์ด์ƒ) -Repair.SubSkill.IronRepair.Description=์ฒ  ๋„๊ตฌ & ๋ฐฉ์–ด๊ตฌ ์ˆ˜๋ฆฌ -Repair.SubSkill.StoneRepair.Name=๋Œ ์ˆ˜๋ฆฌ ({0}๋ ˆ๋ฒจ ์ด์ƒ) +Repair.SubSkill.Repair.Description=๋„๊ตฌ ๋ฐ ๊ฐ‘์˜ท ์ˆ˜๋ฆฌ +Repair.SubSkill.GoldRepair.Name=๊ธˆ ์ˆ˜๋ฆฌ ({0}+ ๋ ˆ๋ฒจ) +Repair.SubSkill.GoldRepair.Description=๊ธˆ ๋„๊ตฌ ๋ฐ ๊ฐ‘์˜ท ์ˆ˜๋ฆฌ +Repair.SubSkill.IronRepair.Name=์ฒ  ์ˆ˜๋ฆฌ ({0}+ ๋ ˆ๋ฒจ) +Repair.SubSkill.IronRepair.Description=์ฒ  ๋„๊ตฌ ๋ฐ ๊ฐ‘์˜ท ์ˆ˜๋ฆฌ +Repair.SubSkill.StoneRepair.Name=๋Œ ์ˆ˜๋ฆฌ ({0}+ ๋ ˆ๋ฒจ) Repair.SubSkill.StoneRepair.Description=๋Œ ๋„๊ตฌ ์ˆ˜๋ฆฌ -Repair.SubSkill.RepairMastery.Name=์ˆ˜๋ฆฌ ๋งˆ์Šคํ„ฐ๋ฆฌ -Repair.SubSkill.RepairMastery.Description=์ˆ˜๋ฆฌ ์–‘ ์ฆ๊ฐ€ +Repair.SubSkill.RepairMastery.Name=์ˆ˜๋ฆฌ ์ˆ™๋ จ +Repair.SubSkill.RepairMastery.Description=์ˆ˜๋ฆฌ๋Ÿ‰ ์ฆ๊ฐ€ +Repair.SubSkill.RepairMastery.Stat=์ˆ˜๋ฆฌ ์ˆ™๋ จ๋„: &a์ถ”๊ฐ€๋กœ {0} ๋‚ด๊ตฌ๋„ ๋ณต๊ตฌ Repair.SubSkill.SuperRepair.Name=์Šˆํผ ์ˆ˜๋ฆฌ -Repair.SubSkill.SuperRepair.Description=ํšจ์œจ 2๋ฐฐ -Repair.SubSkill.DiamondRepair.Name=๋‹ค์ด์•„๋ชฌ๋“œ ์ˆ˜๋ฆฌ ({0} ๋ ˆ๋ฒจ) -Repair.SubSkill.DiamondRepair.Description=๋‹ค์ด์•„๋ชฌ๋“œ ๋„๊ตฌ & ๋ฐฉ์–ด๊ตฌ ์ˆ˜๋ฆฌ -Repair.SubSkill.ArcaneForging.Name=์ธ์ฑˆํŠธ ์•„์ดํ…œ ์ˆ˜๋ฆฌ -Repair.SubSkill.ArcaneForging.Description=๋งˆ๋ฒ• ์•„์ดํ…œ ์ˆ˜๋ฆฌ -Repair.Error=&4mcMMO์ด ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค! -Repair.Listener.Anvil=&4๋‹น์‹ ์€ ๋ชจ๋ฃจ๋ฅผ ๋†“์•˜์Šต๋‹ˆ๋‹ค, ๋ชจ๋ฃจ๋Š” ๋„๊ตฌ๋“ค๊ณผ ๋ฐฉ์–ด๊ตฌ๋ฅผ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Repair.Listener=์ˆ˜๋ฆฌ(REPAIR): -Repair.SkillName=์ˆ˜๋ฆฌ -Repair.Skills.AdeptDiamond=&4๋‹น์‹ ์€ ์•„์ง ๋‹ค์ด์•„๋ชฌ๋“œ๋ฅผ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Repair.Skills.AdeptGold=&4๋‹น์‹ ์€ ์•„์ง ๊ธˆ์„ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Repair.Skills.AdeptIron=&4๋‹น์‹ ์€ ์•„์ง ์ฒ ์„ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Repair.Skills.AdeptStone=&4๋‹น์‹ ์€ ์•„์ง ๋Œ์„ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Repair.Skills.Adept=๋‹น์‹ ์€ &e{1}์„/๋ฅผ ์ˆ˜๋ฆฌํ• ๋ ค๋ฉด &e{0}&c๋ ˆ๋ฒจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค -Repair.Skills.FeltEasy=&7์‰ฌ์šด ๋Š๋‚Œ~ -Repair.Skills.FullDurability=&7๋‚ด๊ตฌ๋„๊ฐ€ ๊ฝ‰ ์ฐผ์Šต๋‹ˆ๋‹ค. -Repair.Skills.Mastery=์ˆ˜๋ฆฌ ๋งˆ์Šคํ„ฐ๋ฆฌ: &e์ถ”๊ฐ€ ๋‚ด๊ตฌ์„ฑ ๋ณต๊ตฌ: {0} -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.Description=๋‘ ๋ฐฐ๋กœ ํšจ๊ณผ ์ฆ๊ฐ€ Repair.SubSkill.SuperRepair.Stat=์Šˆํผ ์ˆ˜๋ฆฌ ํ™•๋ฅ  -Repair.SubSkill.ArcaneForging.Stat=์ธ์ฑˆํŠธ ์•„์ดํ…œ ์ˆ˜๋ฆฌ: &e๋žญํฌ {0}/{1} -Repair.SubSkill.ArcaneForging.Stat.Extra=&3์ธ์ฑˆํŠธ ์•„์ดํ…œ ์ˆ˜๋ฆฌ ํ™•๋ฅ :&7 ์„ฑ๊ณต &a{0}&7%, ์‹คํŒจ &c{1}&7% - +Repair.SubSkill.DiamondRepair.Name=๋‹ค์ด์•„๋ชฌ๋“œ ์ˆ˜๋ฆฌ ({0}+ ๋ ˆ๋ฒจ) +Repair.SubSkill.DiamondRepair.Description=๋‹ค์ด์•„๋ชฌ๋“œ ๋„๊ตฌ ๋ฐ ๊ฐ‘์˜ท ์ˆ˜๋ฆฌ +Repair.SubSkill.ArcaneForging.Name=์‹ ๋น„ํ•œ ๋Œ€์žฅ๊ฐ„ +Repair.SubSkill.ArcaneForging.Description=๋งˆ๋ฒ• ์•„์ดํ…œ ์ˆ˜๋ฆฌ +Repair.SubSkill.ArcaneForging.Stat=์‹ ๋น„ํ•œ ๋Œ€์žฅ๊ฐ„: &e๋“ฑ๊ธ‰ {0}/{1} +Repair.SubSkill.ArcaneForging.Stat.Extra=&3์‹ ๋น„ํ•œ ๋Œ€์žฅ๊ฐ„ ํ™•๋ฅ :&7 ์„ฑ๊ณต &a{0}&7%, ์‹คํŒจ &c{1}&7% +Repair.Error=&4mcMMO๊ฐ€ ์ด ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค! +Repair.Listener.Anvil=&4๋‹น์‹ ์€ ๋ชจ๋ฃจ๋ฅผ ๋ฐฐ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฃจ๋Š” ๋„๊ตฌ์™€ ๊ฐ‘์˜ท์„ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Repair.Listener=์ˆ˜๋ฆฌ: +Repair.SkillName=์ˆ˜๋ฆฌ +Repair.Skills.AdeptDiamond=&4๋‹ค์ด์•„๋ชฌ๋“œ ์ˆ˜๋ฆฌ์— ๋Šฅ์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Repair.Skills.AdeptGold=&4๊ธˆ ์ˆ˜๋ฆฌ์— ๋Šฅ์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Repair.Skills.AdeptIron=&4์ฒ  ์ˆ˜๋ฆฌ์— ๋Šฅ์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Repair.Skills.AdeptStone=&4๋Œ ์ˆ˜๋ฆฌ์— ๋Šฅ์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Repair.Skills.Adept=&c๋ ˆ๋ฒจ &e{0}&c ์ด์ƒ์ด์–ด์•ผ &e{1}&c์„(๋ฅผ) ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Repair.Skills.FeltEasy=&7์‰ฝ๊ฒŒ ๋Š๊ปด์กŒ์Šต๋‹ˆ๋‹ค. +Repair.Skills.FullDurability=&7์ด ์•„์ดํ…œ์€ ์™„์ „ํ•œ ๋‚ด๊ตฌ๋„์ž…๋‹ˆ๋‹ค. +Repair.Skills.StackedItems=&4์ค‘์ฒฉ๋œ ์•„์ดํ…œ์€ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Repair.Pretty.Name=์ˆ˜๋ฆฌ #Arcane Forging -Repair.Arcane.Chance.Downgrade=&7์ธ์ฑˆํŠธ ์ˆ˜๋ฆฌ ๊ฒฉํ•˜ ํ™•๋ฅ : &e{0}% -Repair.Arcane.Chance.Success=&7์ธ์ฑˆํŠธ ์ˆ˜๋ฆฌ ์„ฑ๊ณต ํ™•๋ฅ : &e{0}% -Repair.Arcane.Downgrade=์ด ์•„์ดํ…œ์˜ ์ธ์ฑˆํŠธ๋Š” ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. -Repair.Arcane.Fail=์ด ์•„์ดํ…œ์˜ ์ธ์ฑˆํŠธ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ์†Œ๋ฉธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Repair.Arcane.Lost=๋‹น์‹ ์€ ๋ชจ๋“  ์ธ์ฑˆํŠธ๋ฅผ ์œ ์ง€ํ•  ๊ธฐ์ˆ ์ด ์ถฉ๋ถ„์น˜ ์•Š์Šต๋‹ˆ๋‹ค. -Repair.Arcane.Perfect=&a์ด ์•„์ดํ…œ์˜ ์ธ์ฑˆํŠธ๋ฅผ ์ง€์†์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. -Repair.Arcane.Rank=์ธ์ฑˆํŠธ ์ˆ˜๋ฆฌ: &e{0}/{1}๋žญํฌ - +Repair.Arcane.Downgrade=์ด ์•„์ดํ…œ์˜ ์‹ ๋น„ํ•œ ํž˜์ด ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Repair.Arcane.Fail=์ด ์•„์ดํ…œ์˜ ์‹ ๋น„ํ•œ ํž˜์ด ์˜๊ตฌํžˆ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. +Repair.Arcane.Lost=๋„ˆ๋ฌด ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ•˜์—ฌ ๋งˆ๋ฒ•์„ ์ถ”์ถœํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. +Repair.Arcane.Perfect=&a์ด ์•„์ดํ…œ์˜ ์‹ ๋น„ํ•œ ํž˜์„ ์œ ์ง€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. #SALVAGE -Salvage.Pretty.Name=ํšŒ์ˆ˜ -Salvage.SubSkill.AdvancedSalvage.Name=์ „๋ฌธ์ ์ธ ํšŒ์ˆ˜ -Salvage.SubSkill.AdvancedSalvage.Description=์†์ƒ๋œ ์•„์ดํ…œ ํšŒ์ˆ˜ -Salvage.Ability.Locked.0={0} ๋ ˆ๋ฒจ ๋•Œ ๊ธฐ์ˆ ํ•ด์ œ (์ „๋ฌธ์ ์ธ ํšŒ์ˆ˜) -Salvage.Ability.Bonus.0=์ „๋ฌธ์ ์ธ ํšŒ์ˆ˜ -Salvage.Ability.Bonus.1=๋ถ€์…”์ง„ ์•„์ดํ…œ์˜ ์ตœ๋Œ€ ์ถ”์ถœ๋Ÿ‰ {0} -Salvage.Arcane.Rank=์‹ ๋น„๋กœ์šด ํšŒ์ˆ˜: &eRank {0}/{1} -Salvage.Arcane.ExtractFull=&7์ตœ๋Œ€-์ธ์ฑˆํŠธ ๊ธฐํšŒ ๋ถ€๊ณผ -Salvage.Arcane.ExtractPartial=&7์ผ๋ถ€-์ธ์ฑˆํŠธ ๊ธฐํšŒ ๋ถ€๊ณผ -Salvage.Skills.Success=&a์•„์ดํ…œ ํšŒ์ˆ˜๋จ! -Salvage.Skills.Adept.Damaged=&4์†์ƒ๋œ ์•„์ดํ…œ์„ ํšŒ์ˆ˜ํ•  ๋Šฅ๋ ฅ์ด ์—†์Šต๋‹ˆ๋‹ค. -Salvage.Skills.Adept.Level={1}๋ฅผ &cํšŒ์ˆ˜ํ•˜๋ ค๋ฉด &e{0}&c ๋ ˆ๋ฒจ์ด ๋˜์•ผํ•ฉ๋‹ˆ๋‹ค -Salvage.Skills.TooDamaged=&4์ด ์•„์ดํ…œ์€ ์‹ฌํ•˜๊ฒŒ ์†์ƒ๋˜์–ด ํšŒ์ˆ˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Salvage.Skills.ArcaneFailed=๋‹น์‹ ์€ ์ด ์•„์ดํ…œ ์†์˜ ์ง€์‹์„ ์ถ”์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Salvage.Skills.ArcanePartial=๋‹น์‹ ์€ ์ด ์•„์ดํ…œ ์†์˜ ์ง€์‹์˜ ์ผ๋ถ€๋งŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. -Salvage.Skills.ArcaneSuccess=&a๋‹น์‹ ์€ ์ด ์•„์ดํ…œ์˜ ๋ชจ๋“  ์ง€์‹์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! -Salvage.Listener.Anvil=&4๋‹น์‹ ์€ ํšŒ์ˆ˜ ๋ชจ๋ฃจ๋ฅผ ๋†“์•˜์Šต๋‹ˆ๋‹ค, ๋„๊ตฌ๋‚˜ ๋ฐฉ์–ด๊ตฌ ํšŒ์ˆ˜์— ์“ฐ์ž…๋‹ˆ๋‹ค. -Salvage.Listener=ํšŒ์ˆ˜(SALVAGE): -Salvage.SkillName=ํšŒ์ˆ˜ -Salvage.Pretty.Name=Salvage +Salvage.Pretty.Name=๋ถ„ํ•ด Salvage.SubSkill.UnderstandingTheArt.Name=์˜ˆ์ˆ ์˜ ์ดํ•ด -Salvage.SubSkill.UnderstandingTheArt.Description=์ด์›ƒ์˜ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ๋’ค์ง€๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ™˜๊ฒฝ์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.\nํšŒ์ˆ˜์˜ ๋‹ค์–‘ํ•œ ์†์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. +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**๊ฒ€ ์ค€๋น„ ํ•ด์ œ** -Swords.Ability.Ready=&a**๊ฒ€ ์ค€๋น„ ์™„๋ฃŒ** -Swords.Combat.Bleed.Chance=์ถœํ˜ˆ ํ™•๋ฅ : &e{0} -Swords.Combat.Bleed.Length=์ถœํ˜ˆ ์ง€์†์‹œ๊ฐ„: &e{0} ํ‹ฑ -Swords.Combat.Bleed.Note=&7์•Œ๋ฆผ: &e1 ํ‹ฑ์€ 2์ดˆ์ž…๋‹ˆ๋‹ค -Swords.Combat.Bleeding.Started=&4 ๋‹น์‹ ์€ ํ”ผ๋ฅผ ํ˜๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! -Swords.Combat.Bleeding.Stopped=&7์ถœํ˜ˆ์ด &a๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค&7! -Swords.Combat.Bleeding=&a**์ถœํ˜ˆ** -Swords.Combat.Counter.Chance=์นด์šดํ„ฐ ์–ดํƒ ํ™•๋ฅ : &e{0} -Swords.Combat.Counter.Hit=&4์นด์šดํ„ฐ ์–ดํƒ์— ๋งž์•˜์Šต๋‹ˆ๋‹ค! -Swords.Combat.Countered=&a**์นด์šดํ„ฐ-์–ดํƒ** -Swords.Combat.SS.Struck=&4ํ†ฑ๋‚  ๊ณต๊ฒฉ์— ๋งž์•˜์Šต๋‹ˆ๋‹ค! -Swords.SubSkill.CounterAttack.Name=์นด์šดํ„ฐ ์–ดํƒ -Swords.SubSkill.CounterAttack.Description={0} ํ”ผํ•ด ๋ฐ˜์‚ฌ -Swords.SubSkill.SerratedStrikes.Name=ํ†ฑ๋‚  ๊ณต๊ฒฉ (๋Šฅ๋ ฅ) -Swords.SubSkill.SerratedStrikes.Description=ํ”ผํ•ด {0} ์ฆ๊ฐ€, ์ถœํ˜ˆ ์ฆ๊ฐ€ -Swords.Effect.4=ํ†ฑ๋‚  ๊ณต๊ฒฉ ์ถœํ˜ˆ ์ฆ๊ฐ€ -Swords.Effect.5={0} ํ‹ฑ ์ถœํ˜ˆ -Swords.SubSkill.Bleed.Name=์ถœํ˜ˆ -Swords.SubSkill.Bleed.Description=๊ณผ๋‹ค ์ถœํ˜ˆ -Swords.Listener=๊ฒ€์ˆ (SWORDS): -Swords.SkillName=๊ฒ€์ˆ  -Swords.Skills.SS.Off=**ํ†ฑ๋‚  ๊ณต๊ฒฉ ๋ฐœ๋™ ํ•ด์ œ** -Swords.Skills.SS.On=&a**ํ†ฑ๋‚  ๊ณต๊ฒฉ ๋ฐœ๋™** -Swords.Skills.SS.Refresh=&a๋‹น์‹ ์˜ &eํ†ฑ๋‚  ๊ณต๊ฒฉ &a์Šคํ‚ฌ์€ ์ด์ œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! -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(ํŒŒ์—ด ๋…ธํŠธ): ์ฃผ๊ธฐ์ ์ธ ํ”ผํ•ด๋Š” ์น˜๋ช…์ ์ด์ง€ ์•Š์œผ๋ฉฐ ์ดˆ๋‹น ๋‘ ๋ฒˆ ๋ฐœ์ƒํ•˜๋ฉฐ ๋ฐฉ์–ด๊ตฌ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. +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.Ability.Bonus.0=ํ๊ธฐ๋ฌผ ์ˆ˜์ง‘๊ฐ€ +Salvage.Ability.Bonus.1=์ตœ๋Œ€ &e{0}&a๊ฐœ์˜ ์•„์ดํ…œ ๋ถ„ํ•ด. ์ผ๋ถ€ ์šด์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +Salvage.Arcane.ExtractFull=&7์‹ ๋น„ํ•œ ๋ถ„ํ•ด ์ „์ฒด ๋งˆ๋ฒ• ์ถ”์ถœ ํ™•๋ฅ  +Salvage.Arcane.ExtractPartial=&7์‹ ๋น„ํ•œ ๋ถ„ํ•ด ๋ถ€๋ถ„์  ๋งˆ๋ฒ• ์ถ”์ถœ ํ™•๋ฅ  +Salvage.Skills.Success=&a์•„์ดํ…œ์„ ๋ถ„ํ•ดํ•˜์˜€์Šต๋‹ˆ๋‹ค! +Salvage.Skills.Adept.Damaged=&4์†์ƒ๋œ ์•„์ดํ…œ์€ ๋ถ„ํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Salvage.Skills.Adept.Level=๋ ˆ๋ฒจ &e{0}&c ์ด์ƒ์ด์–ด์•ผ &e{1}&c์„(๋ฅผ) ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Salvage.Skills.TooDamaged=&4์ด ์•„์ดํ…œ์€ ๋„ˆ๋ฌด ์†์ƒ๋˜์—ˆ์–ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Salvage.Skills.ArcaneFailed=&c์ด ์•„์ดํ…œ์— ๋‹ด๊ธด ์ง€์‹์„ ์ถ”์ถœํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. +Salvage.Skills.ArcanePartial=&c์ด ์•„์ดํ…œ์— ๋‹ด๊ธด ์ผ๋ถ€ ์ง€์‹๋งŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. +Salvage.Skills.ArcaneSuccess=&a์ด ์•„์ดํ…œ์— ๋‹ด๊ธด ๋ชจ๋“  ์ง€์‹์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! +Salvage.Listener.Anvil=&4๋‹น์‹ ์€ ๋ถ„ํ•ด ๋ชจ๋ฃจ๋ฅผ ๋ฐฐ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„๊ตฌ์™€ ๊ฐ‘์˜ท์„ ๋ถ„ํ•ดํ•˜๋ ค๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Salvage.Listener=๋ถ„ํ•ด: +Salvage.SkillName=๋ถ„ํ•ด +Salvage.Skills.Lottery.Normal=&6{1}&6์—์„œ &3{0}&6๊ฐœ์˜ ์žฌ๋ฃŒ๋ฅผ ๋ถ„ํ•ดํ•˜์˜€์Šต๋‹ˆ๋‹ค. +Salvage.Skills.Lottery.Perfect=&a&l์™„๋ฒฝํ•ด์š”!&r&6 &3{1}&6์„ ์‰ฝ๊ฒŒ ํšŒ์ˆ˜ํ•˜์—ฌ &3{0}&6 ์ž๋ฃŒ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. +Salvage.Skills.Lottery.Untrained=&7์ธ์–‘์— ๋Œ€ํ•œ ๊ต์œก์„ ์ œ๋Œ€๋กœ ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. &a{1}&7์—์„œ &c{0}&7 ์ž๋ฃŒ๋งŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. +#๋ชจ๋ฃจ(SALVAGE์™€ REPAIR ๊ฐ„์— ๊ณต์œ ) +Anvil.Unbreakable=์ด ์•„์ดํ…œ์€ ๊นจ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค! +#๊ฒ€ +Swords.Ability.Lower=&7๊ฒ€์„ ๋‚ด๋ ค๋†“์Šต๋‹ˆ๋‹ค. +Swords.Ability.Ready=&3๋‹น์‹ ์€ &6๊ฒ€์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค&3. +Swords.Combat.Rupture.Note.Update.One=&7(ํŒŒ์—ด ๋…ธํŠธ): ์ฃผ๊ธฐ์ ์ธ ํ”ผํ•ด๋Š” ๋งค์ดˆ ๋‘ ๋ฒˆ ๋ฐœ์ƒํ•˜๋ฉฐ ๋ฐฉ์–ด๊ตฌ๋ฅผ ๋šซ๊ณ  ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. +Swords.Combat.Bleeding.Started=&4์ถœํ˜ˆ ์ค‘์ž…๋‹ˆ๋‹ค! +Swords.Combat.Bleeding.Stopped=&7์ถœํ˜ˆ์ด &a์ค‘๋‹จ&7๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Swords.Combat.Bleeding=&a**์ ์ด ์ถœํ˜ˆ ์ค‘** +Swords.Combat.Counter.Hit=&4๋ฐ˜๊ฒฉ์œผ๋กœ ๊ณต๊ฒฉ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค! +Swords.Combat.Countered=&a**๋ฐ˜๊ฒฉ๋‹นํ•จ** +Swords.Combat.SS.Struck=&4ํ†ฑ๋‹ˆ ๋ชจ์–‘์˜ ํƒ€๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค! +Swords.SubSkill.CounterAttack.Name=๋ฐ˜๊ฒฉ +Swords.SubSkill.CounterAttack.Description=๊ณต๊ฒฉ๋‹นํ–ˆ์„ ๋•Œ ์ผ๋ถ€ ํ”ผํ•ด๋ฅผ ๋ฐ˜์‚ฌํ•ฉ๋‹ˆ๋‹ค! Swords.SubSkill.CounterAttack.Stat=๋ฐ˜๊ฒฉ ํ™•๋ฅ  -Swords.SubSkill.SerratedStrikes.Stat=ํ†ฑ๋‚  ๊ณต๊ฒฉ ์ง€์†์‹œ๊ฐ„ +Swords.SubSkill.SerratedStrikes.Name=ํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ +Swords.SubSkill.SerratedStrikes.Description=์ผ์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ถ€๋ถ„์ ์ธ ํ”ผํ•ด๋ฅผ ์ž…ํžˆ๋ฉฐ ํŒŒ์—ด์„ ์ ์šฉํ•  ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค! +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.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 +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 ๋ชน ๋Œ€์ƒ +Swords.Effect.4=ํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ ํŒŒ์—ด+ +Swords.Effect.5={0} ํ‹ฑ ํŒŒ์—ด +Swords.Listener=๊ฒ€: +Swords.SkillName=๊ฒ€์ˆ  +Swords.Skills.SS.Off=**ํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ ํšจ๊ณผ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Swords.Skills.SS.On=&a**ํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ ํ™œ์„ฑํ™”๋จ** +Swords.Skills.SS.Refresh=&a๋‹น์‹ ์˜ &eํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ &a๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Swords.Skills.SS.Other.Off=ํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ&a๊ฐ€ &e{0}์—๊ฒŒ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Swords.Skills.SS.Other.On=&a{0}&2๋‹˜์ด &cํ†ฑ๋‹ˆ ๋ชจ์–‘ ํƒ€๊ฒฉ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +#๊ธธ๋“ค์ด๊ธฐ Taming.Ability.Bonus.0=ํ™˜๊ฒฝ ์ธ์‹ -Taming.Ability.Bonus.1=๋Š‘๋Œ€ ์œ„ํ—˜ ํšŒํ”ผ +Taming.Ability.Bonus.1=๋Š‘๋Œ€๊ฐ€ ์œ„ํ—˜์„ ํ”ผํ•ฉ๋‹ˆ๋‹ค Taming.Ability.Bonus.2=๋‘๊บผ์šด ํ„ธ -Taming.Ability.Bonus.3=1/{0} ํ”ผํ•ด, ๋‚ดํ™”์„ฑ(๋ถˆ์ €ํ•ญ๋ ฅ) -Taming.Ability.Bonus.4=์ถฉ๊ฒฉ ์ฆ๋ช… -Taming.Ability.Bonus.5=ํ•ญ์ƒ 1/{0} ํญ๋ฐœ ํ”ผํ•ด -Taming.Ability.Bonus.6=๋‚ ์นด๋กœ์šด ๋ฐœํ†ฑ +Taming.Ability.Bonus.3=1/{0} ํ”ผํ•ด, ํ™”์—ผ ์ €ํ•ญ +Taming.Ability.Bonus.4=๋‚ด๊ตฌ์„ฑ์ด ์ข‹์Œ +Taming.Ability.Bonus.5=ํญ๋ฐœ๋ฌผ์˜ ์ผ๋ฐ˜ ํ”ผํ•ด๋ฅผ 1/{0} ๋ฐ›์Šต๋‹ˆ๋‹ค +Taming.Ability.Bonus.6=์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐˆ๊ฒจ์ง„ ๋ฐœํ†ฑ Taming.Ability.Bonus.7=+{0} ํ”ผํ•ด -Taming.Ability.Bonus.8=๋น ๋ฅธ ์Œ์‹ ์ œ๊ณต -Taming.Ability.Bonus.9={0} ํ™•๋ฅ ๋กœ ๊ณต๊ฒฉ์‹œ ํšŒ๋ณต -Taming.Ability.Bonus.10=์‹ ์„ฑํ•œ ์‚ฌ๋ƒฅ๊ฐœ -Taming.Ability.Bonus.11=๋งˆ๋ฒ•์ด๋‚˜ ๋…์œผ๋กœ ์ธํ•œ ์†์ƒ ํšŒ๋ณต -Taming.Ability.Locked.0={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (ํ™˜๊ฒฝ ์ธ์‹) -Taming.Ability.Locked.1={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (๋‘๊บผ์šด ํ„ธ) -Taming.Ability.Locked.2={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (์ถฉ๊ฒฉ ์ฆ๋ช…) -Taming.Ability.Locked.3={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (๋‚ ์นด๋กœ์šด ๋ฐœํ†ฑ) -Taming.Ability.Locked.4={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (๋น ๋ฅธ ์Œ์‹ ์ œ๊ณต) -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.Description=ํญ๋ฐœ ํ”ผํ•ด ์ ˆ๊ฐ -Taming.SubSkill.CallOfTheWild.Name=์•ผ์ƒ์˜ ํฌํšจ -Taming.SubSkill.CallOfTheWild.Description=์˜†์— ๋™๋ฌผ ์†Œํ™˜ -Taming.SubSkill.CallOfTheWild.Description.2=&7COTW (์˜ค์…€๋กฏ): ์ญˆ๊ทธ๋ฆฌ๋ฉด์„œ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ๋“ค๊ณ  {0}๋ฒˆ ์ขŒ ํด๋ฆญ -Taming.Effect.15=&7COTW (๋Š‘๋Œ€): ์ญˆ๊ทธ๋ฆฌ๋ฉด์„œ ๋ผˆ๋ฅผ ๋“ค๊ณ  {0}๋ฒˆ ์ขŒ ํด๋ฆญ -Taming.SubSkill.Gore.Name0=&7COTW (๋ง): ์ญˆ๊ทธ๋ฆฌ๋ฉด์„œ ์‚ฌ๊ณผ๋ฅผ ๋“ค๊ณ  {0}๋ฒˆ ์ขŒ ํด๋ฆญ -Taming.SubSkill.FastFoodService.Name=๋น ๋ฅธ ์Œ์‹ ์ œ๊ณต -Taming.SubSkill.FastFoodService.Description=๊ณต๊ฒฉ์‹œ ์น˜๋ฃŒ ๊ธฐํšŒ -Taming.SubSkill.HolyHound.Name=์‹ ์„ฑํ•œ ์‚ฌ๋ƒฅ๊ฐœ -Taming.SubSkill.HolyHound.Description=๋งˆ๋ฒ• & ๋… ํ”ผํ•ด ์น˜๋ฃŒ -Taming.SubSkill.Gore.Name=๋Œ์ง„ -Taming.SubSkill.Gore.Description=ํฌ๋ฆฌํ‹ฐ์ปฌ ์Šคํฌ๋ผ์ดํฌ ์ถœํ˜ˆ ์ ์šฉ -Taming.SubSkill.SharpenedClaws.Name=๋‚ ์นด๋กœ์šด ๋ฐœํ†ฑ -Taming.SubSkill.SharpenedClaws.Description=์ถ”๊ฐ€ ํ”ผํ•ด +Taming.Ability.Bonus.8=ํŒจ์ŠคํŠธ ํ‘ธ๋“œ ์„œ๋น„์Šค +Taming.Ability.Bonus.9=๊ณต๊ฒฉ ์‹œ ํšŒ๋ณต ํ™•๋ฅ  {0} +Taming.Ability.Bonus.10=์„ฑ์Šค๋Ÿฌ์šด ์‚ฌ๋ƒฅ๊ฐœ +Taming.Ability.Bonus.11=๋งˆ๋ฒ• ๋˜๋Š” ๋… ํ”ผํ•ด๋ฅผ ๋ฐ›์„ ๋•Œ ์ฒด๋ ฅ ํšŒ๋ณต +Taming.Ability.Locked.0={0}+ ๋Šฅ๋ ฅ(ํ™˜๊ฒฝ ์ธ์‹)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Ability.Locked.1={0}+ ๋Šฅ๋ ฅ(๋‘๊บผ์šด ํ„ธ)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Ability.Locked.2={0}+ ๋Šฅ๋ ฅ(๋‚ด๊ตฌ์„ฑ์ด ์ข‹์Œ)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Ability.Locked.3={0}+ ๋Šฅ๋ ฅ(์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐˆ๊ฒจ์ง„ ๋ฐœํ†ฑ)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Ability.Locked.4={0}+ ๋Šฅ๋ ฅ(ํŒจ์ŠคํŠธ ํ‘ธ๋“œ ์„œ๋น„์Šค)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Ability.Locked.5={0}+ ๋Šฅ๋ ฅ(์„ฑ์Šค๋Ÿฌ์šด ์‚ฌ๋ƒฅ๊ฐœ)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Taming.Combat.Chance.Gore=ํ”ผ ํ”ผํ•˜๊ธฐ ํ™•๋ฅ  +Taming.SubSkill.BeastLore.Name=์•ผ์ˆ˜ ์ง€์‹ +Taming.SubSkill.BeastLore.Description=๋Š‘๋Œ€์™€ ์˜ค์…€๋กฏ์„ ๊ฒ€ํ† ํ•˜๋ฉด์„œ ๊ณจ๊ฒฉ์„ ์นฉ๋‹ˆ๋‹ค +Taming.SubSkill.ShockProof.Name=๋‚ด๊ตฌ์„ฑ์ด ์ข‹์Œ +Taming.SubSkill.ShockProof.Description=ํญ๋ฐœ ๋ฐ๋ฏธ์ง€ ๊ฐ์†Œ +Taming.SubSkill.CallOfTheWild.Name=์•ผ์ƒ์˜ ๋ถ€๋ฆ„ +Taming.SubSkill.CallOfTheWild.Description=๋™๋ฌผ์„ ๋‹น์‹  ๊ณ์œผ๋กœ ์†Œํ™˜ํ•ฉ๋‹ˆ๋‹ค +Taming.SubSkill.CallOfTheWild.Description.2=&7COTW: ์•‰์•„์„œ ์™ผ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด\n {0} {1} (์˜ค์…€๋กฏ), {2} {3} (๋Š‘๋Œ€), {4} {5} (๋ง)์ด ์†Œํ™˜๋ฉ๋‹ˆ๋‹ค +Taming.SubSkill.FastFoodService.Name=ํŒจ์ŠคํŠธ ํ‘ธ๋“œ ์„œ๋น„์Šค +Taming.SubSkill.FastFoodService.Description=๋Š‘๋Œ€๊ฐ€ ๊ณต๊ฒฉํ•  ๋•Œ ํšŒ๋ณตํ•  ํ™•๋ฅ  +Taming.SubSkill.HolyHound.Name=์„ฑ์Šค๋Ÿฌ์šด ์‚ฌ๋ƒฅ๊ฐœ +Taming.SubSkill.HolyHound.Description=๋งˆ๋ฒ• ๋ฐ ๋…์œผ๋กœ ํšŒ๋ณต๋ฉ๋‹ˆ๋‹ค +Taming.SubSkill.Gore.Name=ํ”ผ ํ”ผํ•˜๊ธฐ +Taming.SubSkill.Gore.Description=ํŒŒ์—ด์„ ์ ์šฉํ•˜๋Š” ํฌ๋ฆฌํ‹ฐ์ปฌ ์ŠคํŠธ๋ผ์ดํฌ +Taming.SubSkill.SharpenedClaws.Name=์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐˆ๊ฒจ์ง„ ๋ฐœํ†ฑ +Taming.SubSkill.SharpenedClaws.Description=ํ”ผํ•ด ๋ณด๋„ˆ์Šค Taming.SubSkill.EnvironmentallyAware.Name=ํ™˜๊ฒฝ ์ธ์‹ -Taming.SubSkill.EnvironmentallyAware.Description=์„ ์ธ์žฅ/์šฉ์•” ๊ณตํฌ์ฆ, ๋‚™์‚ฌ ํ”ผํ•ด ๊ฐ์†Œ +Taming.SubSkill.EnvironmentallyAware.Description=์„ ์ธ์žฅ/์šฉ์•” ๊ณตํฌ์ฆ, ๋‚™ํ•˜ ํ”ผํ•ด ๋ฉด์—ญ Taming.SubSkill.ThickFur.Name=๋‘๊บผ์šด ํ„ธ -Taming.SubSkill.ThickFur.Description=ํ”ผํ•ด ๊ฐ์†Œ, ๋‚ดํ™”์„ฑ(๋ถˆ์ €ํ•ญ๋ ฅ) -Taming.Listener.Wolf=&8๋Š‘๋Œ€๊ฐ€ ๋‹น์‹ ์—๊ฒŒ ๋˜๋Œ์•„๊ฐ... -Taming.Listener=์กฐ๋ จ(TAMING): -Taming.SkillName=์กฐ๋ จ -Taming.Skillup=์กฐ๋ จ ์Šคํ‚ฌ์ด {0} ์˜ฌ๋ผ ์ด {1} ๋ ˆ๋ฒจ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Taming.Summon.Complete=&a์†Œํ™˜ ์™„๋ฃŒ -Taming.Summon.Fail.Ocelot=๋‹น์‹  ๊ทผ์ฒ˜์— ์ด๋ฏธ ๋งŽ์€ ์˜ค์…€๋กฏ์ด ์žˆ์–ด ๋”๋Š” ์†Œํ™˜์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Taming.Summon.Fail.Wolf=๋‹น์‹  ๊ทผ์ฒ˜์— ์ด๋ฏธ ๋งŽ์€ ๋Š‘๋Œ€๊ฐ€ ์žˆ์–ด ๋”๋Š” ์†Œํ™˜์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Taming.Summon.Fail.Horse=๋‹น์‹  ๊ทผ์ฒ˜์— ์ด๋ฏธ ๋งŽ์€ ๋ง์ด ์žˆ์–ด ๋”๋Š” ์†Œํ™˜์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -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}์ดˆ -Unarmed.Ability.Bonus.0=์•„์ด์–ธ ์•” ์Šคํƒ€์ผ +Taming.SubSkill.ThickFur.Description=ํ”ผํ•ด ๊ฐ์†Œ, ํ™”์—ผ ์ €ํ•ญ +Taming.SubSkill.Pummel.Name=๋•Œ๋ฆฌ๊ธฐ +Taming.SubSkill.Pummel.Description=๋Š‘๋Œ€๊ฐ€ ์ ์„ ๋ฐ€์น˜๋Š” ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค +Taming.SubSkill.Pummel.TargetMessage=๋Š‘๋Œ€์— ์˜ํ•ด ๋ฐ€๋ ธ์Šต๋‹ˆ๋‹ค! +Taming.Listener.Wolf=&8๋‹น์‹ ์˜ ๋Š‘๋Œ€๊ฐ€ ๋‹น์‹ ์—๊ฒŒ๋กœ ๋‹ฌ๋ ค์˜ต๋‹ˆ๋‹ค... +Taming.Listener=๊ธธ๋“ค์ด๊ธฐ: +Taming.SkillName=๊ธธ๋“ค์ด๊ธฐ +Taming.Summon.COTW.Success.WithoutLifespan=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7๋‹น์‹ ์€ &6{0}&7์„(๋ฅผ) ์†Œํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค +Taming.Summon.COTW.Success.WithLifespan=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7๋‹น์‹ ์€ &6{0}&7์„(๋ฅผ) ์†Œํ™˜ํ–ˆ๊ณ  ์ง€์† ์‹œ๊ฐ„์€ &6{1}&7์ดˆ์ž…๋‹ˆ๋‹ค. +Taming.Summon.COTW.Limit=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7๋™์‹œ์— &c{0} &7๋งˆ๋ฆฌ์˜ &7{1}์„(๋ฅผ) ์†Œํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Taming.Summon.COTW.TimeExpired=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค, ๋‹น์‹ ์˜ &6{0}&7์ด(๊ฐ€) ๋– ๋‚ฉ๋‹ˆ๋‹ค. +Taming.Summon.COTW.Removed=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7๋‹น์‹ ์ด ์†Œํ™˜ํ•œ &6{0}&7์ด(๊ฐ€) ์ด ์„ธ๊ณ„์—์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. +Taming.Summon.COTW.BreedingDisallowed=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &c์†Œํ™˜๋œ ๋™๋ฌผ์„ ๋ฒˆ์‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Taming.Summon.COTW.NeedMoreItems=&a(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &7๋” ๋งŽ์€ &e{0}&7๊ฐœ์˜ &3{1}&7์ด(๊ฐ€) ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค +Taming.Summon.Name.Format=&6(์•ผ์ƒ์˜ ๋ถ€๋ฆ„) &f{0}์˜ {1} +#๋น„๋ฌด์žฅ +Unarmed.Ability.Bonus.0=๊ฐ•์ฒ  ํŒ” ์Šคํƒ€์ผ Unarmed.Ability.Bonus.1=+{0} ํ”ผํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ -Unarmed.Ability.Chance.ArrowDeflect=ํ™”์‚ด ํšŒํ”ผ ํ™•๋ฅ : &e{0} -Unarmed.Ability.Chance.Disarm=๋น„๋ฌด์žฅ ํ™•๋ฅ : &e{0} -Unarmed.Ability.Chance.IronGrip=๊ฐ•์ฒ  ์ฃผ๋จน ํ™•๋ฅ : &e{0} -Unarmed.Ability.IronGrip.Attacker=์ƒ๋Œ€๋Š” ๊ฐ•์ฒ  ์ฃผ๋จน์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! -Unarmed.Ability.IronGrip.Defender=&a๊ฐ•์ฒ  ์ฃผ๋จน์˜ ๋น„๋ฌด์žฅ์„ ์ผ์‹œ์ ์œผ๋กœ ๋ฐฉ์–ดํ–ˆ์Šต๋‹ˆ๋‹ค! -Unarmed.Ability.Lower=&7**์† ์ค€๋น„ ํ•ด์ œ** -Unarmed.Ability.Ready=&a**์† ์ค€๋น„ ์™„๋ฃŒ** -Unarmed.SubSkill.Berserk.Name=๋ฒ„์„œ์ปค (๋Šฅ๋ ฅ) -Unarmed.SubSkill.Berserk.Description=+50% ํ”ผํ•ด, ์•ฝํ•œ ๊ด‘๋ฌผ๋“ค์„ ๋ถ€์ˆจ -Unarmed.SubSkill.Disarm.Name=๋น„๋ฌด์žฅ (ํ”Œ๋ ˆ์ด์–ด) -Unarmed.SubSkill.Disarm.Description=์ ์ด ๋“ค๊ณ ์žˆ๋Š” ์•„์ดํ…œ ๋“œ๋กญ -Unarmed.SubSkill.IronArmStyle.Name=๊ฐ•์ฒ  ํŒ” ํ˜•ํƒœ -Unarmed.SubSkill.IronArmStyle.Description=๊ฒฌ๊ณ ํ•ด์ง€๋Š” ํŒ” -Unarmed.SubSkill.ArrowDeflect.Name=ํ™”์‚ด ํšŒํ”ผ -Unarmed.SubSkill.ArrowDeflect.Description=ํšŒํ”ผ ํ™”์‚ด -Unarmed.SubSkill.IronGrip.Name=์•„์ด์–ธ ๊ทธ๋ฆฝ -Unarmed.SubSkill.IronGrip.Description=๋น„๋ฌด์žฅ ์ƒํƒœ ๋ฐฉ์ง€ -Unarmed.Listener=๋น„๋ฌด์žฅ(UNARMED): -Unarmed.SkillName=๋น„๋ฌด์žฅ -Unarmed.Skills.Berserk.Off=**๋ฒ„์„œ์ปค ๋ฐœ๋™ ํ•ด์ œ** -Unarmed.Skills.Berserk.On=&a**๋ฒ„์„œ์ปค ๋ฐœ๋™** -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.Ability.IronGrip.Attacker=์ƒ๋Œ€๋ฐฉ์ด ์ฒ ์ œ ์†์žก์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! +Unarmed.Ability.IronGrip.Defender=&a์ฒ ์ œ ์†์žก์ด ๋•๋ถ„์— ๋ฌด์žฅ ํ•ด์ œ๋ฅผ ๋ง‰์•˜์Šต๋‹ˆ๋‹ค! +Unarmed.Ability.Lower=&7์ฃผ๋จน์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. +Unarmed.Ability.Ready=&3์ฃผ๋จน์„ &6์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค&3. +Unarmed.SubSkill.Berserk.Name=๊ด‘ํญํ™” +Unarmed.SubSkill.Berserk.Description=+50% ํ”ผํ•ด, ์•ฝํ•œ ๋ฌผ์ฒด๋ฅผ ํŒŒ๊ดดํ•ฉ๋‹ˆ๋‹ค +Unarmed.SubSkill.Berserk.Stat=๊ด‘ํญํ™” ์ง€์† ์‹œ๊ฐ„ +Unarmed.SubSkill.Disarm.Name=๋ฌด์žฅ ํ•ด์ œ +Unarmed.SubSkill.Disarm.Description=์ƒ๋Œ€๋ฐฉ์ด ์†์— ๋“  ์•„์ดํ…œ์„ ๋–จ์–ด๋œจ๋ฆฝ๋‹ˆ๋‹ค +Unarmed.SubSkill.Disarm.Stat=๋ฌด์žฅ ํ•ด์ œ ํ™•๋ฅ  Unarmed.SubSkill.UnarmedLimitBreak.Name=๋น„๋ฌด์žฅ ํ•œ๊ณ„ ๋ŒํŒŒ -Unarmed.SubSkill.UnarmedLimitBreak.Description=ํ•œ๊ณ„๋ฅผ ๊นจ๋Š” ๊ฒƒ. ๊ฐ•ํ•œ ์ƒ๋Œ€์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ํ”ผํ•ด. PVP๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, PVE์—์„œ ํ”ผํ•ด ์ฆ๊ฐ€ ์—ฌ๋ถ€๋Š” ์„œ๋ฒ„ ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +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.SteelArmStyle.Name=๊ฐ•์ฒ  ํŒ” ์Šคํƒ€์ผ +Unarmed.SubSkill.SteelArmStyle.Description=์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํŒ”์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค +Unarmed.SubSkill.ArrowDeflect.Name=ํ™”์‚ด ๋ฐฉ์–ด +Unarmed.SubSkill.ArrowDeflect.Description=ํ™”์‚ด์„ ํŠ•๊น๋‹ˆ๋‹ค +Unarmed.SubSkill.ArrowDeflect.Stat=ํ™”์‚ด ๋ฐฉ์–ด ํ™•๋ฅ  +Unarmed.SubSkill.IronGrip.Name=์ฒ ์ œ ์†์žก์ด +Unarmed.SubSkill.IronGrip.Description=๋ฌด์žฅ ํ•ด์ œ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค +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.SubSkill.TreeFeller.Name=๋‚˜๋ฌด๊พผ (๋Šฅ๋ ฅ) -Woodcutting.SubSkill.TreeFeller.Description=๋‚˜๋ฌด ํญ๋ฐœ์‹œํ‚ค๊ธฐ -Woodcutting.SubSkill.LeafBlower.Name=๋‚˜๋ญ‡์žŽ ๋–จ์–ดํŠธ๋ฆฌ๊ธฐ -Woodcutting.SubSkill.LeafBlower.Description=๋‚˜๋ญ‡์žŽ ์ฒญ์†Œ -Woodcutting.SubSkill.HarvestLumber.Name=๋“œ๋กญ 2๋ฐฐ -Woodcutting.SubSkill.HarvestLumber.Description=ํ•ญ์ƒ ๋“œ๋กญ 2๋ฐฐ -Woodcutting.Listener=๋ฒŒ๋ชฉ(WOODCUTTING): -Woodcutting.SkillName=๋ฒŒ๋ชฉ -Woodcutting.Skills.TreeFeller.Off=**๋‚˜๋ฌด๊พผ ๋ฐœ๋™ ํ•ด์ œ** -Woodcutting.Skills.TreeFeller.On=&a**๋‚˜๋ฌด๊พผ ๋ฐœ๋™** -Woodcutting.Skills.TreeFeller.Refresh=&a๋‹น์‹ ์˜ &e๋‚˜๋ฌด๊พผ &a์Šคํ‚ฌ์€ ์ด์ œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! -Woodcutting.Skills.TreeFeller.Other.Off={0}&2๋‹˜์€ &c๋‚˜๋ฌด๊พผ ์Šคํ‚ฌ์„ ์‚ฌ์šฉ ํ•ด์ œํ–ˆ์Šต๋‹ˆ๋‹ค! -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๋ฐฐ ํ™•๋ฅ  +Unarmed.SubSkill.BlockCracker.Description=์ฃผ๋จน์œผ๋กœ ๋ฐ”์œ„๋ฅผ ๋ถ€์ˆ˜์„ธ์š” +Unarmed.Listener=๋น„๋ฌด์žฅ ์ „ํˆฌ: +Unarmed.SkillName=๋น„๋ฌด์žฅ ์ „ํˆฌ +Unarmed.Skills.Berserk.Off=**๊ด‘ํญํ™”๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Unarmed.Skills.Berserk.On=&a**๊ด‘ํญํ™”๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค** +Unarmed.Skills.Berserk.Other.Off=๊ด‘ํญํ™”&a๊ฐ€ &e{0}์—๊ฒŒ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Unarmed.Skills.Berserk.Other.On=&a{0}&2๋‹˜์ด &c๊ด‘ํญํ™”๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +Unarmed.Skills.Berserk.Refresh=&a๋‹น์‹ ์˜ &e๊ด‘ํญํ™” &a๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +#๋‚˜๋ฌด๊พผ +Woodcutting.Ability.0=์žŽ ๋ธ”๋กœ์›Œ +Woodcutting.Ability.1=์žŽ์„ ๋‚ ๋ ค ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค +Woodcutting.Ability.Locked.0={0}+ ๊ธฐ์ˆ (์žŽ ๋ธ”๋กœ์›Œ)๊นŒ์ง€ ์ž ๊ธˆ ํ•ด์ œ๋จ +Woodcutting.SubSkill.TreeFeller.Name=๋‚˜๋ฌด ํŒจ๋Ÿฌ +Woodcutting.SubSkill.TreeFeller.Description=๋‚˜๋ฌด๋ฅผ ํญ๋ฐœ์‹œํ‚ต๋‹ˆ๋‹ค +Woodcutting.SubSkill.TreeFeller.Stat=๋‚˜๋ฌด ํŒจ๋Ÿฌ ์ง€์† ์‹œ๊ฐ„ +Woodcutting.SubSkill.LeafBlower.Name=์žŽ ๋ธ”๋กœ์›Œ +Woodcutting.SubSkill.LeafBlower.Description=์žŽ์„ ๋‚ ๋ ค ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค +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.Name=๋ชฉ์žฌ ์ˆ˜ํ™• +Woodcutting.SubSkill.HarvestLumber.Description=์ˆ™๋ จ๋œ ๊ธฐ์ˆ ๋กœ ๋” ๋งŽ์€ ๋ชฉ์žฌ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค +Woodcutting.SubSkill.HarvestLumber.Stat=๋”๋ธ” ๋“œ๋กญ ํ™•๋ฅ  Woodcutting.SubSkill.Splinter.Name=ํŒŒํŽธ -Woodcutting.SubSkill.Splinter.Description=๋‚˜๋ฌด๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ๋ฒ ์–ด๋‚ด์„ธ์š”. +Woodcutting.SubSkill.Splinter.Description=๋‚˜๋ฌด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ฒ ์–ด ๋‚ด์„ธ์š”. Woodcutting.SubSkill.BarkSurgeon.Name=๋‚˜๋ฌด ๊ป์งˆ ์ˆ˜์ˆ  Woodcutting.SubSkill.BarkSurgeon.Description=๋‚˜๋ฌด ๊ป์งˆ์„ ๋ฒ—๊ธธ ๋•Œ ์œ ์šฉํ•œ ์žฌ๋ฃŒ๋ฅผ ์ถ”์ถœํ•˜์„ธ์š”. -Woodcutting.SubSkill.NaturesBounty.Name=์ž์—ฐ์˜ ํ’์š” -Woodcutting.SubSkill.NaturesBounty.Description=์ž์—ฐ์—์„œ ๊ฒฝํ—˜์น˜๋ฅผ ๋ชจ์œผ์„ธ์š”. - -#ABILITIY - -#COMBAT -Combat.ArrowDeflect=&f**ํ™”์‚ด ํšŒํ”ผ** -Combat.BeastLore=&a**์ง์Šน์˜ ํฌํšจ** -Combat.BeastLoreHealth=&3์ฒด๋ ฅ: (&a{0}&3/{1}) -Combat.BeastLoreOwner=&3์ฃผ์ธ: (&c{0}&3) -Combat.Gore=&a**๋Œ์ง„** -Combat.StruckByGore=**๋Œ์ง„์— ๋งž์•˜์Šต๋‹ˆ๋‹ค** -Combat.TargetDazed=๋ชฉํ‘œ๊ฐ€ &4ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•ฉ๋‹ˆ๋‹ค -Combat.TouchedFuzzy=&4ํ˜ผ๋ž€์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์•„~ ์–ด์ง€๋Ÿฌ์›Œ. +Woodcutting.SubSkill.NaturesBounty.Name=์ž์—ฐ์˜ ์ถ•๋ณต +Woodcutting.SubSkill.NaturesBounty.Description=์ž์—ฐ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฝํ—˜์น˜๋ฅผ ์–ป์œผ์„ธ์š”. +Woodcutting.Listener=๋‚˜๋ฌด๊พผ: +Woodcutting.SkillName=๋‚˜๋ฌด๊พผ +Woodcutting.Skills.TreeFeller.Off=**๋‚˜๋ฌด ํŒจ๋Ÿฌ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค** +Woodcutting.Skills.TreeFeller.On=&a**๋‚˜๋ฌด ํŒจ๋Ÿฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค** +Woodcutting.Skills.TreeFeller.Refresh=&a๋‹น์‹ ์˜ &e๋‚˜๋ฌด ํŒจ๋Ÿฌ &a๋Šฅ๋ ฅ์ด ๊ฐฑ์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Woodcutting.Skills.TreeFeller.Other.Off=๋‚˜๋ฌด ํŒจ๋Ÿฌ&a๊ฐ€ &e{0}์—๊ฒŒ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Woodcutting.Skills.TreeFeller.Other.On=&a{0}&2๋‹˜์ด &c๋‚˜๋ฌด ํŒจ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค! +Woodcutting.Skills.TreeFeller.Splinter=๋‹น์‹ ์˜ ๋„๋ผ๊ฐ€ ์ˆ˜์‹ญ ๊ฐœ์˜ ์กฐ๊ฐ์œผ๋กœ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค! +Woodcutting.Skills.TreeFeller.Threshold=๊ทธ ๋‚˜๋ฌด๋Š” ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค! +#์ „ํˆฌ +Combat.ArrowDeflect=&f**ํ™”์‚ด ๋ฐฉ์–ด** +Combat.BeastLore=&a**์•ผ์ˆ˜ ์ง€์‹** +Combat.BeastLoreHealth=&3์ฒด๋ ฅ (&a{0}&3/{1}) +Combat.BeastLoreOwner=&3์ฃผ์ธ (&c{0}&3) Combat.BeastLoreHorseSpeed=&3๋ง ์ด๋™ ์†๋„ (&a{0} ๋ธ”๋ก/์ดˆ&3) Combat.BeastLoreHorseJumpStrength=&3๋ง ์ ํ”„ ๊ฐ•๋„ (&a์ตœ๋Œ€ {0} ๋ธ”๋ก&3) +Combat.Gore=&a**์ฐ”๋ฆผ** +Combat.StruckByGore=**๋‹น์‹ ์€ ์ฐ”๋ ธ์Šต๋‹ˆ๋‹ค** +Combat.TargetDazed=๋Œ€์ƒ์ด &4ํ˜„๊ธฐ๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค +Combat.TouchedFuzzy=&4ํ„ธ์— ๋‹ฟ์•˜์Šต๋‹ˆ๋‹ค. ์–ด์ง€๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. -#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=&3&emcMMO&3 ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด:,&6mcMMO๋Š” 2011๋…„ 2์›”์— &c์˜คํ”ˆ ์†Œ์Šค&6 RPG ๋ชจ๋“œ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค,&6nossr50&6์— ์˜ํ•ด. ๋ชฉํ‘œ๋Š” ํ’ˆ์งˆ ๋†’์€ RPG ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.,&3ํŒ:,&6 - &a/mcmmo help&a ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ํ™•์ธํ•˜์„ธ์š”,&6 - &a/SKILLNAME&a ์„(๋ฅผ) ์ž…๋ ฅํ•˜์—ฌ ์ž์„ธํ•œ ์Šคํ‚ฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์„ธ์š”,&3๊ฐœ๋ฐœ์ž:,&6 - &anossr50 &9(์ฐฝ์กฐ์ž ๋ฐ ํ”„๋กœ์ ํŠธ ๋ฆฌ๋“œ),&6 - &aelectronicboy &9(๊ฐœ๋ฐœ์ž),&6 - &akashike &9(๊ฐœ๋ฐœ์ž),&6 - &at00thpick1 &9(ํด๋ž˜์‹ ๊ด€๋ฆฌ์ž) 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}์— ์ง€๊ธ‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค! -Commands.addlevels.AwardSkill.2={1} ๋‹˜์€ {0}์„/๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค -Commands.addxp.AwardAll=&a๋‹น์‹ ์€ ๋ชจ๋“  ์Šคํ‚ฌ์— {0} ๊ฒฝํ—˜์น˜๋ฅผ ์ง€๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค! -Commands.addxp.AwardSkill=&a๋‹น์‹ ์€ {0} ๊ฒฝํ—˜์น˜๋ฅผ {1}์— ์ง€๊ธ‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค! -Commands.Ability.Off=๋Šฅ๋ ฅ ์‚ฌ์šฉ์ด &c๊บผ์กŒ์Šต๋‹ˆ๋‹ค -Commands.Ability.On=๋Šฅ๋ ฅ ์‚ฌ์šฉ์ด &a์ผœ์กŒ์Šต๋‹ˆ๋‹ค -Commands.Ability.Toggle=๋Šฅ๋ ฅ ์‚ฌ์šฉ์€ &e{0}(์œผ)๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Commands.AdminChat.Off=๊ด€๋ฆฌ์ž ์ฑ„ํŒ…์ด &c๊บผ์กŒ์Šต๋‹ˆ๋‹ค -Commands.AdminChat.On=๊ด€๋ฆฌ์ž ์ฑ„ํŒ…์ด &a์ผœ์กŒ์Šต๋‹ˆ๋‹ค -Commands.AdminToggle=&a- ๊ด€๋ฆฌ์ž ์ฑ„ํŒ…์„ ์ผœ๊ธฐ/๋„๊ธฐํ•ฉ๋‹ˆ๋‹ค -Commands.Chat.Console=*์‹œ์Šคํ…œ* -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.CooldownMS=์ด ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— {0} ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. -Commands.Disabled=์ด ๋ช…๋ น์–ด๋Š” ๋น„ํ™œ์„ฑํ™” ๋˜์žˆ์Šต๋‹ˆ๋‹ค. -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.Toggle=๋ถˆ์‚ฌ์‹  ๋ชจ๋“œ๋Š” &e{0}&f(์œผ)๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Commands.Healthbars.Changed.HEARTS=[mcMMO] ๋‹น์‹ ์˜ ์ฒด๋ ฅ๋ฐ” ๋ณด๊ธฐ ๋ฐฉ์‹์€ &cํ•˜ํŠธ&f๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.Healthbars.Changed.BAR=[mcMMO] ๋‹น์‹ ์˜ ์ฒด๋ ฅ๋ฐ” ๋ณด๊ธฐ ๋ฐฉ์‹์€ &e๋ฐ•์Šค&f๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.Healthbars.Changed.DISABLED=[mcMMO] ๋‹น์‹ ์˜ ๋ชน ์ฒด๋ ฅ๋ฐ”๋Š” &7๋น„ํ™œ์„ฑํ™”&f ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.Healthbars.Invalid=์ž˜๋ชป๋œ ์ฒด๋ ฅ๋ฐ” ํƒ€์ž…! -Commands.Inspect=<ํ”Œ๋ ˆ์ด์–ด> &a- ์ƒ์„ธํ•œ ํ”Œ๋ ˆ์ด์–ด ์ •๋ณด๋ฅผ ๋ด…๋‹ˆ๋‹ค -Commands.Invite.Success=&a์ดˆ๋Œ€๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. -Commands.Leaderboards=<์Šคํ‚ฌ> <ํŽ˜์ด์ง€> &a- mcMMO ์Šคํ‚ฌ ์ •๋ณด -Commands.mcc.Header=---[]&amcMMO ๋ช…๋ น์–ด&c[]--- -Commands.mcgod=&a- ๋ถˆ์‚ฌ์‹  ๋ชจ๋“œ ์ผœ๊ธฐ/๋„๊ธฐ -Commands.mchud.Invalid=HUD ํƒ€์ž…์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Commands.mcpurge.Success=&a๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฌ์Šต๋‹ˆ๋‹ค! +Commands.addlevels.AwardAll.1=&a๋ชจ๋“  ์Šคํ‚ฌ์— {0} ๋ ˆ๋ฒจ์ด ์ˆ˜์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.addlevels.AwardAll.2=๋ชจ๋“  ์Šคํ‚ฌ์— {0}์ด(๊ฐ€) ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.addlevels.AwardSkill.1=&a{1} ์Šคํ‚ฌ์—์„œ {0} ๋ ˆ๋ฒจ์ด ์ˆ˜์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.addlevels.AwardSkill.2={1}์—์„œ {0}์ด(๊ฐ€) ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.addxp.AwardAll=&a๋ชจ๋“  ์Šคํ‚ฌ์— {0} ๊ฒฝํ—˜์ด ์ฃผ์–ด์กŒ์Šต๋‹ˆ๋‹ค! +Commands.addxp.AwardSkill=&a{1} ์Šคํ‚ฌ์— {0} ๊ฒฝํ—˜์ด ์ฃผ์–ด์กŒ์Šต๋‹ˆ๋‹ค! +Commands.Ability.Off=๋Šฅ๋ ฅ ์‚ฌ์šฉ์ด &c๋น„ํ™œ์„ฑํ™”&f๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Ability.On=๋Šฅ๋ ฅ ์‚ฌ์šฉ์ด &aํ™œ์„ฑํ™”&f๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Ability.Toggle=๋Šฅ๋ ฅ ์‚ฌ์šฉ์ด &e{0}&f์— ๋Œ€ํ•ด ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.AdminChat.Off=์–ด๋“œ๋ฏผ ์ฑ„ํŒ… ์ „์šฉ &c๋น„ํ™œ์„ฑํ™”&f๋จ +Commands.AdminChat.On=์–ด๋“œ๋ฏผ ์ฑ„ํŒ… ์ „์šฉ &aํ™œ์„ฑํ™”&f๋จ +Commands.AdminToggle=&a- ์–ด๋“œ๋ฏผ ์ฑ„ํŒ… ์ „ํ™˜ +Commands.Chat.Console=*์ฝ˜์†”* +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.CooldownMS=์ด ๋ช…๋ น์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— {0} ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. +Commands.Database.Cooldown=์ด ๋ช…๋ น์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— {0} ์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. +Commands.Database.Processing=์ด์ „ ๋ช…๋ น์ด ์•„์ง ์ฒ˜๋ฆฌ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ ค ์ฃผ์‹ญ์‹œ์˜ค. +Commands.Disabled=์ด ๋ช…๋ น์€ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.DoesNotExist= &cํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—†์Šต๋‹ˆ๋‹ค! +Commands.GodMode.Disabled=mcMMO ๊ฐ“ ๋ชจ๋“œ ๋น„ํ™œ์„ฑํ™”๋จ +Commands.GodMode.Enabled=mcMMO ๊ฐ“ ๋ชจ๋“œ ํ™œ์„ฑํ™”๋จ +Commands.AdminChatSpy.Enabled=mcMMO ํŒŒํ‹ฐ ์ฑ„ํŒ… ๊ฐ์‹œ ํ™œ์„ฑํ™”๋จ +Commands.AdminChatSpy.Disabled=mcMMO ํŒŒํ‹ฐ ์ฑ„ํŒ… ๊ฐ์‹œ ๋น„ํ™œ์„ฑํ™”๋จ +Commands.AdminChatSpy.Toggle=mcMMO ํŒŒํ‹ฐ ์ฑ„ํŒ…์ด &e{0}&f์— ๋Œ€ํ•ด ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.AdminChatSpy.Chat=&6[SPY: &a{0}&6] &f{1} +Commands.GodMode.Forbidden=[mcMMO] ์ด ์›”๋“œ์—์„œ ๊ฐ“ ๋ชจ๋“œ๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ถŒํ•œ ์ฐธ์กฐ) +Commands.GodMode.Toggle=๊ฐ“ ๋ชจ๋“œ๊ฐ€ &e{0}&f์— ๋Œ€ํ•ด ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Healthbars.Changed.HEARTS=[mcMMO] ๊ฑด๊ฐ• ๋ง‰๋Œ€ ํ‘œ์‹œ ์œ ํ˜•์ด &cํ•˜ํŠธ&f๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Healthbars.Changed.BAR=[mcMMO] ๊ฑด๊ฐ• ๋ง‰๋Œ€ ํ‘œ์‹œ ์œ ํ˜•์ด &e์ƒ์ž&f๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Healthbars.Changed.DISABLED=[mcMMO] ๋ชน์˜ ๊ฑด๊ฐ• ๋ง‰๋Œ€๊ฐ€ &7๋น„ํ™œ์„ฑํ™”&f๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Healthbars.Invalid=์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฑด๊ฐ• ๋ง‰๋Œ€ ์œ ํ˜•์ž…๋‹ˆ๋‹ค! +Commands.Inspect=<ํ”Œ๋ ˆ์ด์–ด> &a- ์ž์„ธํ•œ ํ”Œ๋ ˆ์ด์–ด ์ •๋ณด ๋ณด๊ธฐ +Commands.Invite.Success=&a์ดˆ๋Œ€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Leaderboards=<์Šคํ‚ฌ> <ํŽ˜์ด์ง€> &a- ๋ฆฌ๋”๋ณด๋“œ +Commands.mcgod=&a- ๊ฐ“ ๋ชจ๋“œ ์ „ํ™˜ +Commands.mchud.Invalid=์œ ํšจํ•˜์ง€ ์•Š์€ HUD ์œ ํ˜•์ž…๋‹ˆ๋‹ค. +Commands.mcpurge.Success=&a๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! Commands.mcrank.Heading=&6-=๊ฐœ์ธ ์ˆœ์œ„=- -Commands.mcrank.Overall=์ข…ํ•ฉ&a - &6๋žญํฌ &f#&a{0} -Commands.mcrank.Player=ํƒ€๊ฒŸ: &f{0} -Commands.mcrank.Skill={0}&a - &6๋žญํฌ &f#&a{1} -Commands.mcrank.Unranked=&f๋žญํฌ์—†์Œ -Commands.mcrefresh.Success={0}์˜ ์ฟจ๋‹ค์šด์ด ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.mcremove.Success=&a{0}๋‹˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Commands.mctop.Tip=&6ํŒ: &c/mcrank&6 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๊ฐœ์ธ ์ˆœ์œ„๋ฅผ ๋ณผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! -Commands.mmoedit=[ํ”Œ๋ ˆ์ด์–ด] <์Šคํ‚ฌ> <์ƒˆ๊ฐ’> &a - ๋Œ€์ƒ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค -Commands.mmoedit.AllSkills.1=&a๋‹น์‹ ์˜ ๋ชจ๋“  ์Šคํ‚ฌ ๋ ˆ๋ฒจ์ด {0}๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Commands.mmoedit.Modified.1=&a๋‹น์‹ ์˜ {0} ๋ ˆ๋ฒจ์ด {1}๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Commands.mmoedit.Modified.2={0}๋‹˜์€ {1}๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. -Commands.mcconvert.Database.Same=๋‹น์‹ ์€ ์ด๋ฏธ {0} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค! -Commands.mcconvert.Database.InvalidType={0} ์€/๋Š” ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํƒ€์ž…์ž…๋‹ˆ๋‹ค. -Commands.mcconvert.Database.Start=&7{0}์—์„œ {1}(์œผ)๋กœ ์ „ํ™˜ ์‹œ์ž‘์ค‘... -Commands.mcconvert.Database.Finish=&7๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋™ ์™„๋ฃŒ; {1} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด์ œ {0} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ์ž๋ฃŒ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. -Commands.mmoshowdb=ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: &a{0} -Commands.mcconvert.Experience.Invalid=์ž˜๋ชป๋œ ๊ณต์‹ ํƒ€์ž…! ์˜ฌ๋ฐ”๋ฅธ ํƒ€์ž…: &aLINEAR &c๊ทธ๋ฆฌ๊ณ  &aEXPONENTIAL. -Commands.mcconvert.Experience.Same=์ด๋ฏธ {0} ๊ณต์‹์„ ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค -Commands.mcconvert.Experience.Start=&7{0} ์—์„œ {1} ๊ณก์„ ์œผ๋กœ ๋ณ€ํ™˜ ์‹œ์ž‘ -Commands.mcconvert.Experience.Finish=&7๊ณต์‹ ๋ณ€ํ™˜ ์™„๋ฃŒ; ์ด์ œ {0} XP ๊ณก์„ ์ž…๋‹ˆ๋‹ค. -Commands.ModDescription=&a- ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ด…๋‹ˆ๋‹ค -Commands.NoConsole=์ด ๋ช…๋ น์–ด๋Š” ์ฝ˜์†”์—์„œ์˜ ์‚ฌ์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Commands.Notifications.Off=๋Šฅ๋ ฅ ์•Œ๋ฆผ์ด &c์ผœ์กŒ์Šต๋‹ˆ๋‹ค -Commands.Notifications.On=๋Šฅ๋ ฅ ์•Œ๋ฆผ์ด &a๊บผ์กŒ์Šต๋‹ˆ๋‹ค -Commands.Offline=์ด ๋ช…๋ น์–ด๋Š” ์˜คํ”„๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Commands.NotLoaded=ํ”Œ๋ ˆ์ด์–ด ํ”„๋กœํŒŒ์ผ์„ ์•„์ง ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. -Commands.Other=---[]&a๊ธฐํƒ€ ๋ช…๋ น์–ด&c[]--- -Commands.Party.Header=-----[]&aํŒŒํ‹ฐ&c[]----- -Commands.Party.Features.Header=-----[]&aํŠน์ง•&c[]----- +Commands.mcrank.Overall=์ข…ํ•ฉ&a - &6์ˆœ์œ„ &f#&a{0} +Commands.mcrank.Player=&e{0}์— ๋Œ€ํ•œ ์ˆœ์œ„ +Commands.mcrank.Skill=&e{0}&a - &6์ˆœ์œ„ &f#&a{1} +Commands.mcrank.Unranked=&f์ˆœ์œ„ ์—†์Œ +Commands.mcrefresh.Success={0}์˜ ์ฟจ๋‹ค์šด์ด ์ƒˆ๋กœ ๊ณ ์ณ์กŒ์Šต๋‹ˆ๋‹ค. +Commands.mcremove.Success=&a{0}๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.mctop.Tip=&6ํŒ: ๋ชจ๋“  ๊ฐœ์ธ ์ˆœ์œ„๋ฅผ ๋ณด๋ ค๋ฉด &c/mcrank&6์„(๋ฅผ) ์‚ฌ์šฉํ•˜์„ธ์š”! +Commands.mmoedit=[ํ”Œ๋ ˆ์ด์–ด] <์Šคํ‚ฌ> <์ƒˆ๊ฐ’> &a - ๋Œ€์ƒ ์ˆ˜์ • +Commands.mmoedit.AllSkills.1=๋ชจ๋“  ์Šคํ‚ฌ์˜ ๋ ˆ๋ฒจ์ด {0}(์œผ)๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.mmoedit.Modified.1={0}์˜ ๋ ˆ๋ฒจ์ด {1}(์œผ)๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.mmoedit.Modified.2={0}์ด(๊ฐ€) {1}๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.mcconvert.Database.Same=์ด๋ฏธ {0} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค! +Commands.mcconvert.Database.InvalidType={0}์€(๋Š”) ์œ ํšจํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์ž…๋‹ˆ๋‹ค. +Commands.mcconvert.Database.Start=&7{0}์—์„œ {1}(์œผ)๋กœ ๋ณ€ํ™˜ ์‹œ์ž‘ ์ค‘... +Commands.mcconvert.Database.Finish=&7๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค; {1} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ด์ œ {0} ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. +Commands.mmoshowdb=ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” &a{0}&f์ž…๋‹ˆ๋‹ค +Commands.mcconvert.Experience.Invalid=์•Œ ์ˆ˜ ์—†๋Š” ๊ณต์‹ ์œ ํ˜•! ์œ ํšจํ•œ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: &aLINEAR ๋ฐ &aEXPONENTIAL. +Commands.mcconvert.Experience.Same=์ด๋ฏธ {0} ๊ณต์‹ ์œ ํ˜•์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค +Commands.mcconvert.Experience.Start=&7{0}์—์„œ {1} ๊ณก์„ ์œผ๋กœ ๋ณ€ํ™˜ ์‹œ์ž‘ ์ค‘ +Commands.mcconvert.Experience.Finish=&7๊ณต์‹ ๋ณ€ํ™˜ ์™„๋ฃŒ; ์ด์ œ {0} ๊ฒฝํ—˜ ๊ณก์„ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +Commands.ModDescription=&a- ๊ฐ„๋‹จํ•œ ๋ชจ๋“œ ์„ค๋ช… ์ฝ๊ธฐ +Commands.NoConsole=์ด ๋ช…๋ น์€ ์ฝ˜์†” ์‚ฌ์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Commands.Notifications.Off=๋Šฅ๋ ฅ ์•Œ๋ฆผ์ด &c๋น„ํ™œ์„ฑํ™”&f๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Notifications.On=๋Šฅ๋ ฅ ์•Œ๋ฆผ์ด &aํ™œ์„ฑํ™”&f๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Offline=์ด ๋ช…๋ น์€ ์˜คํ”„๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Commands.NotLoaded=ํ”Œ๋ ˆ์ด์–ด ํ”„๋กœํ•„์ด ์•„์ง ๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Commands.Party.Status=&8์ด๋ฆ„: &f{0} {1} &8๋ ˆ๋ฒจ: &3{2} Commands.Party.Status.Alliance=&8๋™๋งน: &f{0} -Commands.Party.UnlockedFeatures=&8ํ•ด์ œ๋œ ํŠน์ง•: &7&o{0} +Commands.Party.UnlockedFeatures=&8์ž ๊ธˆ ํ•ด์ œ๋œ ๊ธฐ๋Šฅ: &7&o{0} Commands.Party.ShareMode=&8๊ณต์œ  ๋ชจ๋“œ: Commands.Party.ItemShare=&7์•„์ดํ…œ &3({0}) -Commands.Party.ExpShare=&7EXP &3({0}) -Commands.Party.ItemShareCategories=&8๊ณต์œ ์ค‘์ธ ์•„์ดํ…œ: &7&o{0} -Commands.Party.MembersNear=&8๋‹น์‹ ์˜ ๊ทผ์ฒ˜ &3{0}&8/&3{1} -Commands.Party.Accept=&a- ํŒŒํ‹ฐ ์ดˆ๋Œ€ ํ—ˆ์šฉ -Commands.Party.Chat.Off=ํŒŒํ‹ฐ ์ฑ„ํŒ…์„ &c๋•๋‹ˆ๋‹ค -Commands.Party.Chat.On=ํŒŒํ‹ฐ ์ฑ„ํŒ…์„ &a์ผญ๋‹ˆ๋‹ค -Commands.Party.Commands=---[]&aํŒŒํ‹ฐ ๋ช…๋ น์–ด&c[]--- -Commands.Party.Invite.0=์•Œ๋ฆผ: &a๋‹น์‹ ์€ {1} ๋‹˜์œผ๋กœ๋ถ€ํ„ฐ {0} ํŒŒํ‹ฐ ์ดˆ๋Œ€์— ๊ถŒ์œ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค -Commands.Party.Invite.1=ํƒ€์ž… &a/party accept&e ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด ํŒŒํ‹ฐ ์ดˆ๋Œ€์— ์Šน๋‚™๋ฉ๋‹ˆ๋‹ค -Commands.Party.Invite=<ํ”Œ๋ ˆ์ด์–ด> &a- ํŒŒํ‹ฐ ์ดˆ๋Œ€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค -Commands.Party.Invite.Accepted=&a์ดˆ๋Œ€ ์ˆ˜๋ฝ๋จ. ๋‹น์‹ ์€ {0} ํŒŒํ‹ฐ์— ๊ฐ€์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Commands.Party.Join=์ฐธ์—ฌ๋œ ํŒŒํ‹ฐ: {0} -Commands.Party.Create=&7๋งŒ๋“ค์–ด์ง„ ํŒŒํ‹ฐ: {0} -Commands.Party.Rename=&7๋ณ€๊ฒฝ๋œ ํŒŒํ‹ฐ ์ด๋ฆ„: &f{0} +Commands.Party.ExpShare=&7๊ฒฝํ—˜์น˜ &3({0}) +Commands.Party.ItemShareCategories=&8์•„์ดํ…œ ๊ณต์œ : &7&o{0} +Commands.Party.MembersNear=&8๊ทผ์ฒ˜ ํ”Œ๋ ˆ์ด์–ด &3{0}&8/&3{1} +Commands.Party.Accept=&a- ํŒŒํ‹ฐ ์ดˆ๋Œ€ ์ˆ˜๋ฝ +Commands.Party.Chat.Off=ํŒŒํ‹ฐ ์ฑ„ํŒ… ์ „์šฉ &c๋น„ํ™œ์„ฑํ™” +Commands.Party.Chat.On=ํŒŒํ‹ฐ ์ฑ„ํŒ… ์ „์šฉ &aํ™œ์„ฑํ™” +Commands.Party.Commands=&c---[]&aํŒŒํ‹ฐ ๋ช…๋ น์–ด&c[]--- +Commands.Party.Invite.0=&c์•Œ๋ฆผ: &a{1}๋‹˜์ด {0}์œผ๋กœ๋ถ€ํ„ฐ ํŒŒํ‹ฐ ์ดˆ๋Œ€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. +Commands.Party.Invite.1=&eํŒŒํ‹ฐ ์ดˆ๋Œ€๋ฅผ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด &a/party accept&e๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. +Commands.Party.Invite=&a- ํŒŒํ‹ฐ ์ดˆ๋Œ€ ์ „์†ก +Commands.Party.Invite.Accepted=&a์ดˆ๋Œ€๊ฐ€ ์ˆ˜๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. {0} ํŒŒํ‹ฐ์— ๊ฐ€์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. +Commands.Party.Join=&7ํŒŒํ‹ฐ์— ๊ฐ€์ž…: {0} +Commands.Party.PartyFull=&6{0}&c ํŒŒํ‹ฐ๊ฐ€ ๊ฐ€๋“ ์ฐผ์Šต๋‹ˆ๋‹ค! +Commands.Party.PartyFull.Invite=์ด๋ฏธ &a{1}&c์— &e{0}&c์„(๋ฅผ) ์ดˆ๋Œ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ &3{2}&c๋ช…์ด ์ด ํŒŒํ‹ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค! +Commands.Party.PartyFull.InviteAccept=&a{0}&c ํŒŒํ‹ฐ์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ &3{1}&c๋ช…์ด ์ด ํŒŒํ‹ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค! +Commands.Party.Create=&7ํŒŒํ‹ฐ ์ƒ์„ฑ: {0} +Commands.Party.Rename=&7ํŒŒํ‹ฐ ์ด๋ฆ„์ด ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: &f{0} Commands.Party.SetSharing=&7ํŒŒํ‹ฐ {0} ๊ณต์œ  ์„ค์ •: &3{1} -Commands.Party.ToggleShareCategory=&7ํŒŒํ‹ฐ ์•„์ดํ…œ ๊ณต์œ  &6{0} &7๊ฐ€ &3{1}๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Commands.Party.AlreadyExists=&4{0} ํŒŒํ‹ฐ์€/๋Š” ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค! -Commands.Party.Kick=๋‹น์‹ ์€ {0} ํŒŒํ‹ฐ์—์„œ ์ถ”๋ฐฉ ๋‹นํ•˜์˜€์Šต๋‹ˆ๋‹ค. -Commands.Party.Leave=ํŒŒํ‹ฐ๋ฅผ ๋– ๋‚ฌ์Šต๋‹ˆ๋‹ค -Commands.Party.Members.Header=-----[]&a๋งด๋ฒ„๋“ค&c[]----- -Commands.Party.None=๋‹น์‹ ์€ ํŒŒํ‹ฐ์— ์ฐธ์—ฌ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Commands.Party.Quit=&a- ํ˜„์žฌ ์ฐธ์—ฌ ๋˜์–ด์žˆ๋Š” ํŒŒํ‹ฐ๋ฅผ ๋‚˜๊ฐ‘๋‹ˆ๋‹ค -Commands.Party.Teleport=&a- ํŒŒํ‹ฐ ๋งด๋ฒ„ํ•œํ…Œ ํ…”๋ ˆํฌํŠธํ•ฉ๋‹ˆ๋‹ค -Commands.Party.Toggle=&a- ํŒŒํ‹ฐ ์ฑ„ํŒ…์„ ์ผœ๊ธฐ/๋„๊ธฐ ํ•ฉ๋‹ˆ๋‹ค -Commands.Party1=&a- ์ƒˆ ํŒŒํ‹ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค -Commands.Party2=&a- ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํŒŒํ‹ฐ์— ๊ฐ€์ž…ํ•ฉ๋‹ˆ๋‹ค -Commands.Party.Alliance.Header=-----[]&aํŒŒํ‹ฐ ๋™๋งน&c[]----- -Commands.Party.Alliance.Ally=&f{0} &8ํŒŒํ‹ฐ์˜ ๋™๋งน: &f{1} -Commands.Party.Alliance.Members.Header=-----[]&a๋™๋งน ๊ตฌ์„ฑ์›&c[]----- -Commands.Party.Alliance.Invite.0=์•Œ๋ฆผ: &a{1} ํŒŒํ‹ฐ๋กœ๋ถ€ํ„ฐ {0} ํŒŒํ‹ฐ์™€์˜ ๋™๋งน ์ดˆ๋Œ€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค -Commands.Party.Alliance.Invite.1=ํƒ€์ž… &a/party alliance accept&e ์ดˆ๋Œ€์— ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค -Commands.Party.Alliance.Invite.Accepted=&a๋™๋งน ์ดˆ๋Œ€ ์ˆ˜๋ฝ๋จ. -Commands.Party.Alliance.None=๋‹น์‹ ์€ ๋™๋งน์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Commands.Party.Alliance.AlreadyAllies=๋‹น์‹ ์˜ ํŒŒํ‹ฐ๋Š” ์ด๋ฏธ ๋™๋งน์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๊ณ„๋ฅผ ํ•ด์ง€ํ•˜๋ ค๋ฉด &3/party alliance disband -Commands.Party.Alliance.Help.0=์ด ํŒŒํ‹ฐ๋Š” ๋™๋งน ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์žฅ์„ ์ดˆ๋Œ€ํ•˜์„ธ์š” -Commands.Party.Alliance.Help.1= ๋™๋งน์„ ํ•˜๋ ค๋ฉด &3/party alliance invite &c. -Commands.ptp.Enabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ &aํ™œ์„ฑํ™”๋จ -Commands.ptp.Disabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ &c๋น„ํ™œ์„ฑํ™”๋จ -Commands.ptp.NoRequests=๋‹น์‹ ์€ ์ด ์‹œ๊ฐ„์— ํ…”๋ ˆํฌํŠธ ์š”์ฒญ์„ ํ•˜์‹ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค -Commands.ptp.NoWorldPermissions=[mcMMO] ๋‹น์‹ ์€ ์›”๋“œ {0}(์œผ)๋กœ ํ…”๋ ˆํฌํŠธํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. -Commands.ptp.Request1={0} &a๋‹˜์ด ๋‹น์‹ ์—๊ฒŒ ํ…”๋ ˆํฌํŠธ๋ฅผ ์‹ ์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. -Commands.ptp.Request2=&aํ…”๋ ˆํฌํŠธํ•˜๋ ค๋ฉด, ํƒ€์ž… &e/ptp accept&a. &c{0}&a์ดˆ์— ์š”์ฒญ์ด ๋งŒ๊ธฐ๋ฉ๋‹ˆ๋‹ค. +Commands.Party.ToggleShareCategory=&7ํŒŒํ‹ฐ &6{0} &7์˜ ์•„์ดํ…œ ๊ณต์œ ๊ฐ€ &3{1}&7๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Party.AlreadyExists=&4ํŒŒํ‹ฐ {0}์ด(๊ฐ€) ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค! +Commands.Party.Kick=&c{0}&c๋‹˜์ด ํŒŒํ‹ฐ์—์„œ ์ถ”๋ฐฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: &a{1}&c! +Commands.Party.Leave=&eํ˜„์žฌ ํŒŒํ‹ฐ๋ฅผ ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค +Commands.Party.Members.Header=&c-----[]&aํŒŒํ‹ฐ ๋ฉค๋ฒ„&c[]----- +Commands.Party.None=&cํŒŒํ‹ฐ์— ์†ํ•ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Commands.Party.Quit=&a- ํ˜„์žฌ ํŒŒํ‹ฐ ๋‚˜๊ฐ€๊ธฐ +Commands.Party.Teleport=&a- ํŒŒํ‹ฐ ๋ฉค๋ฒ„๋กœ ์ด๋™ +Commands.Party.Toggle=&a- ํŒŒํ‹ฐ ์ฑ„ํŒ… ์ „ํ™˜ +Commands.Party1=&a- ์ƒˆ๋กœ์šด ํŒŒํ‹ฐ ์ƒ์„ฑ +Commands.Party2=&a- ํ”Œ๋ ˆ์ด์–ด์˜ ํŒŒํ‹ฐ ๊ฐ€์ž… +Commands.Party.Alliance.Header=&c-----[]&aํŒŒํ‹ฐ ๋™๋งน&c[]----- +Commands.Party.Alliance.Ally=&f{0} &8๋™๋งน: &f{1} +Commands.Party.Alliance.Members.Header=&c-----[]&a๋™๋งน ๋ฉค๋ฒ„&c[]----- +Commands.Party.Alliance.Invite.0=์•Œ๋ฆผ: &a{1}๋‹˜์ด {0}์œผ๋กœ๋ถ€ํ„ฐ ํŒŒํ‹ฐ ๋™๋งน ์ดˆ๋Œ€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. +Commands.Party.Alliance.Invite.1=ํŒŒํ‹ฐ ๋™๋งน ์ดˆ๋Œ€๋ฅผ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด &a/party alliance accept&e๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. +Commands.Party.Alliance.Invite.Accepted=&aํŒŒํ‹ฐ ๋™๋งน ์ดˆ๋Œ€๊ฐ€ ์ˆ˜๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Party.Alliance.None=&cํŒŒํ‹ฐ์— ๋™๋งน์ด ์—†์Šต๋‹ˆ๋‹ค. +Commands.Party.Alliance.AlreadyAllies=&cํŒŒํ‹ฐ์— ์ด๋ฏธ ๋™๋งน์ด ์žˆ์Šต๋‹ˆ๋‹ค. &3/party alliance disband&c๋กœ ํ•ด์ฒดํ•˜์„ธ์š”. +Commands.Party.Alliance.Help.0=&c์ด ํŒŒํ‹ฐ๋Š” ์•„์ง ๋™๋งน์„ ๋งบ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํŒŒํ‹ฐ ๋ฆฌ๋”๋ฅผ ์ดˆ๋Œ€ํ•˜์—ฌ +Commands.Party.Alliance.Help.1=&c ๋™๋งน์„ ๋งบ์œผ์„ธ์š”. &3/party alliance invite <ํ”Œ๋ ˆ์ด์–ด>&c. +Commands.ptp.Enabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŒ… &aํ™œ์„ฑํ™”๋จ +Commands.ptp.Disabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŒ… &c๋น„ํ™œ์„ฑํ™”๋จ +Commands.ptp.NoRequests=&cํ˜„์žฌ ํ…”๋ ˆํฌํŠธ ์š”์ฒญ์ด ์—†์Šต๋‹ˆ๋‹ค. +Commands.ptp.NoWorldPermissions=&c[mcMMO] ์›”๋“œ {0}๋กœ ํ…”๋ ˆํฌํŠธํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. +Commands.ptp.Request1=&e{0} &a๋‹˜์ด ๋‹น์‹ ์—๊ฒŒ ํ…”๋ ˆํฌํŠธ๋ฅผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. +Commands.ptp.Request2=&aํ…”๋ ˆํฌํŠธํ•˜๋ ค๋ฉด &e/ptp accept&a๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ์š”์ฒญ์€ &c{0} &a์ดˆ ํ›„ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Commands.ptp.AcceptAny.Enabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ ์š”์ฒญ ํ™•์ธ &aํ™œ์„ฑํ™”๋จ Commands.ptp.AcceptAny.Disabled=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ ์š”์ฒญ ํ™•์ธ &c๋น„ํ™œ์„ฑํ™”๋จ -Commands.ptp.RequestExpired=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ ์š”์ฒญ์ด ๋งŒ๊ธฐ๋จ! -Commands.PowerLevel.Leaderboard=--mcMMO&9 ์ด ๋ ˆ๋ฒจ &e์ ์ˆ˜ํ‘œ-- -Commands.PowerLevel.Capped=&4์ด ๋ ˆ๋ฒจ: &a{0} &4์ตœ๋Œ€ ๋ ˆ๋ฒจ: &e{1} -Commands.PowerLevel=&4์ด ๋ ˆ๋ฒจ: &a{0} -Commands.Reset.All=&a๋‹น์‹ ์˜ ๋ชจ๋“  ์Šคํ‚ฌ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.Reset.Single=&a๋‹น์‹ ์˜ {0} ์Šคํ‚ฌ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Commands.Reset=&a์Šคํ‚ฌ ๋ ˆ๋ฒจ์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ์‹œํ‚ต๋‹ˆ๋‹ค -Commands.Scoreboard.Clear=&3mcMMO ์ ์ˆ˜ํŒ ์ฒญ์†Œ๋จ. -Commands.Scoreboard.NoBoard=mcMMO ์ ์ˆ˜ํŒ์ด ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์ง€ ์•Š์Œ. -Commands.Scoreboard.Keep=&3mcMMO ์ ์ˆ˜ํŒ์€ ๋‹น์‹ ์ด &a/mcscoreboard clear&3๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋  ๊ฒƒ์ž„. -Commands.Scoreboard.Timer=&3mcMMO ์ ์ˆ˜ํŒ์€ ์ง€๊ธˆ์œผ๋กœ๋ถ€ํ„ฐ &6{0}&3์ดˆ ๋‚ด์— ์ฒญ์†Œ๋  ์˜ˆ์ •์ž„. -Commands.Scoreboard.Help.0=&6 == &c/mcscoreboard &a๋„์›€๋ง&6 == -Commands.Scoreboard.Help.1=&3/mcscoreboard&b clear &f - McMMO ์ ์ˆ˜ํŒ์„ ์ฒญ์†Œํ•จ -Commands.Scoreboard.Help.2=&3/mcscoreboard&b keep &f - McMMO ์ ์ˆ˜ํŒ์„ ์œ ์ง€ํ•จ -Commands.Scoreboard.Help.3=&3/mcscoreboard&b time [n] &f - McMMO ์ ์ˆ˜ํŒ์„ &dn&f์ดˆ ํ›„์— ์ฒญ์†Œํ•จ -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=๋‹น์‹ ์˜ ํ†ต๊ณ„ -Commands.Stats=&a- ๋‹น์‹ ์˜ mcMMO ํ†ต๊ณ„ ๋ณด๊ธฐ -Commands.ToggleAbility=&a- ์šฐํด๋ฆญ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์Šคํ‚ฌ๋“ค์„ ์ผœ๊ธฐ/๋„๊ธฐ ํ•ฉ๋‹ˆ๋‹ค -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.ptp.RequestExpired=&cํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ ์š”์ฒญ์ด ๋งŒ๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.PowerLevel.Leaderboard=&e--mcMMO&9 ํŒŒ์›Œ ๋ ˆ๋ฒจ &e๋ฆฌ๋”๋ณด๋“œ-- +Commands.PowerLevel.Capped=&4ํŒŒ์›Œ ๋ ˆ๋ฒจ: &a{0} &4์ตœ๋Œ€ ๋ ˆ๋ฒจ: &e{1} +Commands.PowerLevel=&4ํŒŒ์›Œ ๋ ˆ๋ฒจ: &a{0} +Commands.Reset.All=&a๋ชจ๋“  ์Šคํ‚ฌ ๋ ˆ๋ฒจ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์žฌ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Reset.Single=&a{0} ์Šคํ‚ฌ ๋ ˆ๋ฒจ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์žฌ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Reset=&a- ์Šคํ‚ฌ ๋ ˆ๋ฒจ์„ 0์œผ๋กœ ์žฌ์„ค์ • +Commands.Scoreboard.Clear=&3mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค. +Commands.Scoreboard.NoBoard=&cmcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Commands.Scoreboard.Keep=&3mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. &a/mcscoreboard clear&3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•˜์„ธ์š”. +Commands.Scoreboard.Timer=&3mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ &6{0}&3์ดˆ ํ›„์— ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. +Commands.Scoreboard.Help.0=&6 == &a/mcscoreboard&6 ๋„์›€๋ง == +Commands.Scoreboard.Help.1=&3/mcscoreboard&b clear &f - mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ์ง€์›๋‹ˆ๋‹ค. +Commands.Scoreboard.Help.2=&3/mcscoreboard&b keep &f - mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. +Commands.Scoreboard.Help.3=&3/mcscoreboard&b time [n] &f - mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ &d[n]&f์ดˆ ํ›„์— ์ง€์›๋‹ˆ๋‹ค. +Commands.Scoreboard.Tip.Keep=&6ํŒ: ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ ํ‘œ์‹œ๋œ ์ƒํƒœ์—์„œ &c/mcscoreboard keep&6์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์—ฌ์ง€๋„๋ก ์œ ์ง€ํ•˜์„ธ์š”. +Commands.Scoreboard.Tip.Clear=&6ํŒ: ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด &c/mcscoreboard clear&6๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Commands.XPBar.Reset=&6mcMMO์˜ XP ๋ฐ” ์„ค์ •์ด ์žฌ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.XPBar.SettingChanged=&6{0}&a์˜ XP ๋ฐ” ์„ค์ •์ด &a{1}&a(์œผ)๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Commands.Skill.Invalid=์œ ํšจํ•˜์ง€ ์•Š์€ ์Šคํ‚ฌ๋ช…์ž…๋‹ˆ๋‹ค! +Commands.Skill.ChildSkill=์ด ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ํ•˜์œ„ ์Šคํ‚ฌ์€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! +Commands.Skill.Leaderboard=--mcMMO &9{0}&e ๋ฆฌ๋”๋ณด๋“œ-- +Commands.SkillInfo=&a- ์Šคํ‚ฌ ๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด ๋ณด๊ธฐ +Commands.Stats=&a- ๋‹น์‹ ์˜ mcMMO ์Šคํƒฏ ๋ณด๊ธฐ +Commands.ToggleAbility=&a- ์šฐํด๋ฆญ์œผ๋กœ ๋Šฅ๋ ฅ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” ํ† ๊ธ€ +Commands.Usage.0=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /{0}์ž…๋‹ˆ๋‹ค. +Commands.Usage.1=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /{0} {1}์ž…๋‹ˆ๋‹ค. +Commands.Usage.2=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /{0} {1} {2}์ž…๋‹ˆ๋‹ค. +Commands.Usage.3=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /{0} {1} {2} {3}์ž…๋‹ˆ๋‹ค. +Commands.Usage.3.XP=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /{0} {1} {2} {3}&7์ž…๋‹ˆ๋‹ค (ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์•Œ๋ฆฌ์ง€ ์•Š๊ณ  ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋งˆ์ง€๋ง‰์— -s๋ฅผ ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค). +Commands.Usage.FullClassName=ํด๋ž˜์Šค๋ช… Commands.Usage.Level=๋ ˆ๋ฒจ -Commands.Usage.Message=๋ฉ”์„ธ์ง€ +Commands.Usage.Message=๋ฉ”์‹œ์ง€ Commands.Usage.Page=ํŽ˜์ด์ง€ Commands.Usage.PartyName=์ด๋ฆ„ Commands.Usage.Password=๋น„๋ฐ€๋ฒˆํ˜ธ Commands.Usage.Player=ํ”Œ๋ ˆ์ด์–ด -Commands.Usage.Rate=๋ฐฐ์œจ +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.Usage.SubSkill=ํ•˜์œ„ ์Šคํ‚ฌ +Commands.Usage.XP=๊ฒฝํ—˜์น˜ +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.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.Help.0=์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ• &3{0} <ํ”Œ๋ ˆ์ด์–ด> [๋น„๋ฐ€๋ฒˆํ˜ธ]. -Party.Help.1=ํŒŒํ‹ฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด, &3{0} <์ด๋ฆ„> [๋น„๋ฐ€๋ฒˆํ˜ธ]. -Party.Help.2=ํŒŒํ‹ฐ ์ •๋ณด๋ฅผ ๋ณผ๋ ค๋ฉด &3{0} -Party.Help.3=ํŒŒํ‹ฐ์— ๊ฐ€์ž…ํ• ๋ ค๋ฉด &3{0} <ํ”Œ๋ ˆ์ด์–ด> [๋น„๋ฐ€๋ฒˆํ˜ธ] &c๋‚˜๊ฐˆ๋ ค๋ฉด &3{1} -Party.Help.4=ํŒŒํ‹ฐ๋ฅผ ์ž ๊ธˆ/์ž ๊ธˆํ•ด์ œ ํ• ๋ ค๋ฉด, &3{0} -Party.Help.5=๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ํŒŒํ‹ฐ๋ฅผ ๋ณดํ˜ธํ• ๋ ค๋ฉด, &3{0} <๋น„๋ฐ€๋ฒˆํ˜ธ> -Party.Help.6=ํŒŒํ‹ฐ์—์„œ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ถ”๋ฐฉ์‹œํ‚ฌ๋ ค๋ฉด, &3{0} <ํ”Œ๋ ˆ์ด์–ด> -Party.Help.7=ํŒŒํ‹ฐ์žฅ์„ ๊ต์ฒดํ• ๋ ค๋ฉด, &3{0} <ํ”Œ๋ ˆ์ด์–ด> -Party.Help.8=ํŒŒํ‹ฐ๋ฅผ ํ•ด์ฒดํ• ๋ ค๋ฉด, &3{0} -Party.Help.9=ํŒŒํ‹ฐ ๋งด๋ฒ„๋“ค๊ณผ ์•„์ดํ…œ์„ ๊ณต์œ ํ•˜๋ ค๋ฉด &3{0} -Party.Help.10=ํŒŒํ‹ฐ ๋งด๋ฒ„๋“ค๊ณผ ๊ฒฝํ—˜์น˜ ๊ณต์œ ๋ฅผ ํ™œ์„ฑํ™”ํ™”๋ ค๋ฉด &3{0} -Party.InformedOnJoin={0} &a๋‹˜์ด ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค -Party.InformedOnQuit={0} &a๋‹˜์ด ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์—์„œ ๋– ๋‚ฌ์Šต๋‹ˆ๋‹ค -Party.InformedOnNameChange=&6{0} &a๋‹˜์ด ํŒŒํ‹ฐ ์ด๋ฆ„์„ &f{1}๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค -Party.InvalidName=&4์ž˜๋ชป๋œ ํŒŒํ‹ฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. -Party.Invite.Self=์ž๊ธฐ์ž์‹ ์„ ์ดˆ๋Œ€ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค! -Party.IsLocked=์ด ํŒŒํ‹ฐ๋Š” ์ด๋ฏธ ์ž ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค! -Party.IsntLocked=์ด ํŒŒํ‹ฐ๋Š” ์ž ๊ฒจ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค! -Party.Locked=ํŒŒํ‹ฐ๊ฐ€ ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค, ์˜ค์ง ํŒŒํ‹ฐ์žฅ๋งŒ์ด ์ดˆ๋Œ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Party.NotInYourParty=&4{0}๋‹˜์€ ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ์—†์Šต๋‹ˆ๋‹ค -Party.NotOwner=&4๋‹น์‹ ์€ ํŒŒํ‹ฐ์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. -Party.Target.NotOwner=&4{0}๋‹˜์€ ํŒŒํ‹ฐ์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. -Party.Owner.New=&a{0}๋‹˜์ด ์ƒˆ ํŒŒํ‹ฐ์žฅ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Party.Owner.NotLeader=&4๋‹น์‹ ์€ ์ด์ œ ํŒŒํ‹ฐ์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. -Party.Owner.Player =&a๋‹น์‹ ์€ ์ด์ œ ํŒŒํ‹ฐ์žฅ์ž…๋‹ˆ๋‹ค. -Party.Password.None=์ด ํŒŒํ‹ฐ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณดํ˜ธ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ž…ํ• ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•ด์ฃผ์„ธ์š”. -Party.Password.Incorrect=ํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Party.Password.Set=&a์„ค์ •ํ•œ ํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” {0} ์ž…๋‹ˆ๋‹ค -Party.Password.Removed=&aํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ฒญ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -Party.Player.Invalid=๊ทธ ํ”Œ๋ ˆ์ด์–ด๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Party.NotOnline=&4{0}๋‹˜์€ ์ ‘์†์ค‘์ด ์•„๋‹™๋‹ˆ๋‹ค! -Party.Player.InSameParty={0}๋‹˜์€ ์ด๋ฏธ ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค! -Party.PlayerNotInParty=&4{0}๋‹˜์€ ํŒŒํ‹ฐ์— ์—†์Šต๋‹ˆ๋‹ค -Party.Specify=๋‹น์‹ ์€ ํŒŒํ‹ฐ๋ฅผ ๋ช…๊ธฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. -Party.Teleport.Dead=๋‹น์‹ ์€ ์ฃฝ์€ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋กœ ํ…”๋ ˆํฌํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Party.Teleport.Hurt=๋‹น์‹ ์€ ๋งˆ์ง€๋ง‰์œผ๋กœ {0}์ดˆ์— ๋‹ค์ณ ํ…”๋ ˆํฌํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Party.Teleport.Player=&a๋‹น์‹ ์€ {0}๋กœ ํ…”๋ ˆํฌํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. -Party.Teleport.Self=์ž๊ธฐ์ž์‹ ํ•œํ…Œ ํ…”๋ ˆํฌํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! -Party.Teleport.Target=&a{0}๋‹˜์ด ๋‹น์‹ ์—๊ฒŒ๋กœ ํ…”๋ ˆํฌํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. -Party.Teleport.Disabled={0}๋‹˜์€ ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -Party.Rename.Same=์ด๋ฏธ ๋‹น์‹ ์˜ ํŒŒํ‹ฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค! -Party.Join.Self=์ž๊ธฐ์ž์‹ ์„ ๊ฐ€์ž…์‹œํ‚ฌ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! -Party.Unlocked=&7ํŒŒํ‹ฐ๊ฐ€ ์ž ๊ธˆํ•ด์ œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Party.Disband=&7๊ทธ ํŒŒํ‹ฐ๊ฐ€ ํ•ด์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Party.Alliance.Formed=&7๋‹น์‹ ์˜ ํŒŒํ‹ฐ๋Š” ์ด์ œ &a{0} ํŒŒํ‹ฐ์™€ ๋™๋งน์ž…๋‹ˆ๋‹ค -Party.Alliance.Disband=&7๋‹น์‹ ์˜ ํŒŒํ‹ฐ๋Š” ๋” ์ด์ƒ &c{0} ํŒŒํ‹ฐ์™€ ๋™๋งน์ด ์•„๋‹™๋‹ˆ๋‹ค -Party.Status.Locked=&4(์ดˆ๋Œ€๋งŒ-ํ—ˆ์šฉ) -Party.Status.Unlocked=&2(๊ฐœ๋ฐฉ) -Party.LevelUp=ํŒŒํ‹ฐ ๋ ˆ๋ฒจ์ด {0} ์˜ฌ๋ผ ์ด {1} ๋ ˆ๋ฒจ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.Mmodebug.Toggle=mcMMO ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๊ฐ€ ์ด์ œ &6{0}&7์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๊ฐ€ true์ด๋ฉด ์ง€์›์— ์‚ฌ์šฉ๋˜๋Š” ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ธ”๋ก์„ ๋‘๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +mcMMO.NoInvites=&cํ˜„์žฌ ์ดˆ๋Œ€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. +mcMMO.NoPermission=&4๊ถŒํ•œ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +mcMMO.NoSkillNote=&8ํ•ด๋‹น ์Šคํ‚ฌ์— ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์œผ๋ฉด ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +##ํŒŒํ‹ฐ +Party.Forbidden=[mcMMO] ์ด ์›”๋“œ์—์„œ๋Š” ํŒŒํ‹ฐ๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ถŒํ•œ ํ™•์ธ). +Party.Help.0=&c์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ &3{0} <ํ”Œ๋ ˆ์ด์–ด> [๋น„๋ฐ€๋ฒˆํ˜ธ]์ž…๋‹ˆ๋‹ค. +Party.Help.1=&cํŒŒํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด &3{0} <์ด๋ฆ„> [๋น„๋ฐ€๋ฒˆํ˜ธ]๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.2=&c์ž์„ธํ•œ ์ •๋ณด๋Š” &3{0} &c๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +Party.Help.3=&c๊ฐ€์ž…ํ•˜๋ ค๋ฉด &3{0} <ํ”Œ๋ ˆ์ด์–ด> [๋น„๋ฐ€๋ฒˆํ˜ธ]&c๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๊ฐ€๋ ค๋ฉด &3{1} &c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.4=&cํŒŒํ‹ฐ๋ฅผ ์ž ๊ทธ๊ฑฐ๋‚˜ ์ž ๊ธˆ ํ•ด์ œํ•˜๋ ค๋ฉด &3{0} &c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.5=&cํŒŒํ‹ฐ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด &3{0} <๋น„๋ฐ€๋ฒˆํ˜ธ>&c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.6=&cํ”Œ๋ ˆ์ด์–ด๋ฅผ ํŒŒํ‹ฐ์—์„œ ์ถ”๋ฐฉํ•˜๋ ค๋ฉด &3{0} <ํ”Œ๋ ˆ์ด์–ด>&c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.7=&cํŒŒํ‹ฐ ์†Œ์œ ๊ถŒ์„ ์ด์ „ํ•˜๋ ค๋ฉด &3{0} <ํ”Œ๋ ˆ์ด์–ด>&c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.8=&cํŒŒํ‹ฐ๋ฅผ ํ•ด์ฒดํ•˜๋ ค๋ฉด &3{0} &c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.9=&cํŒŒํ‹ฐ ๋ฉค๋ฒ„์™€ ์•„์ดํ…œ์„ ๊ณต์œ ํ•˜๋ ค๋ฉด &3{0} &c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.Help.10=&cํŒŒํ‹ฐ ๋ฉค๋ฒ„์™€ ๊ฒฝํ—˜์น˜๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด &3{0} &c๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +Party.InformedOnJoin={0} &a๋‹˜์ด ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ๊ฐ€์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค +Party.InformedOnQuit={0} &a๋‹˜์ด ๋‹น์‹ ์˜ ํŒŒํ‹ฐ๋ฅผ ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค +Party.InformedOnNameChange=&6{0} &a๋‹˜์ด ํŒŒํ‹ฐ ์ด๋ฆ„์„ &f{1}&a(์œผ)๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค +Party.InvalidName=&4์œ ํšจํ•˜์ง€ ์•Š์€ ํŒŒํ‹ฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. +Party.Invite.Self=&c์ž์‹ ์„ ์ดˆ๋Œ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! +Party.IsLocked=&c์ด ํŒŒํ‹ฐ๋Š” ์ด๋ฏธ ์ž ๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค! +Party.IsntLocked=&c์ด ํŒŒํ‹ฐ๋Š” ์ž ๊ฒจ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค! +Party.Locked=&cํŒŒํ‹ฐ๊ฐ€ ์ž ๊ฒจ ์žˆ์–ด์„œ, ํŒŒํ‹ฐ ๋ฆฌ๋”๋งŒ ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Party.NotInYourParty=&4{0}๋‹˜์ด ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ์†ํ•ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Party.NotOwner=&4ํŒŒํ‹ฐ ๋ฆฌ๋”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. +Party.Target.NotOwner=&4{0}๋‹˜์ด ํŒŒํ‹ฐ ๋ฆฌ๋”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. +Party.Owner.New=&a{0}๋‹˜์ด ์ƒˆ๋กœ์šด ํŒŒํ‹ฐ ๋ฆฌ๋”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Party.Owner.NotLeader=&4๋” ์ด์ƒ ํŒŒํ‹ฐ ๋ฆฌ๋”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. +Party.Owner.Player =&aํŒŒํ‹ฐ ๋ฆฌ๋”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Party.Password.None=&cํŒŒํ‹ฐ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ž…ํ•˜๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”. +Party.Password.Incorrect=&cํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Party.Password.Set=&aํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ &a{0}&a(์œผ)๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Party.Password.Removed=&aํŒŒํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค. +Party.Player.Invalid=&c์œ ํšจํ•˜์ง€ ์•Š์€ ํ”Œ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. +Party.NotOnline=&4{0}๋‹˜์ด ์˜คํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค! +Party.Player.InSameParty=&c{0}๋‹˜์€ ์ด๋ฏธ ๋‹น์‹ ์˜ ํŒŒํ‹ฐ์— ์†ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค! +Party.PlayerNotInParty=&4{0}๋‹˜์ด ํŒŒํ‹ฐ์— ์†ํ•ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Party.Specify=&cํŒŒํ‹ฐ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +Party.Teleport.Dead=&c์ฃฝ์€ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ํ…”๋ ˆํฌํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Party.Teleport.Hurt=&c์ตœ๊ทผ {0}์ดˆ ๋™์•ˆ ๋‹ค์น˜์…จ๊ธฐ ๋•Œ๋ฌธ์— ํ…”๋ ˆํฌํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Party.Teleport.Player=&a๋‹น์‹ ์ด {0}๋‹˜์—๊ฒŒ ํ…”๋ ˆํฌํŠธํ•˜์˜€์Šต๋‹ˆ๋‹ค. +Party.Teleport.Self=&c์ž์‹ ์—๊ฒŒ ํ…”๋ ˆํฌํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! +Party.Teleport.Target=&a{0}๋‹˜์ด ๋‹น์‹ ์—๊ฒŒ ํ…”๋ ˆํฌํŠธํ•˜์˜€์Šต๋‹ˆ๋‹ค. +Party.Teleport.Disabled=&c{0}๋‹˜์ด ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +Party.Rename.Same=&c์ด๋ฏธ ํ•ด๋‹น ํŒŒํ‹ฐ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค! +Party.Join.Self=&c์ž์‹ ์—๊ฒŒ ๊ฐ€์ž…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! +Party.Unlocked=&7ํŒŒํ‹ฐ๊ฐ€ ์ž ๊ธˆ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Party.Disband=&7ํŒŒํ‹ฐ๊ฐ€ ํ•ด์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Party.Alliance.Formed=&7๋‹น์‹ ์˜ ํŒŒํ‹ฐ๊ฐ€ ์ด์ œ &a{0}&7๋‹˜๊ณผ ๋™๋งน ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค +Party.Alliance.Disband=&7๋‹น์‹ ์˜ ํŒŒํ‹ฐ๋Š” ๋” ์ด์ƒ &c{0}&7๋‹˜๊ณผ ๋™๋งน ๊ด€๊ณ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค +Party.Status.Locked=&4(์ดˆ๋Œ€ ์ „์šฉ) +Party.Status.Unlocked=&2(๊ณต๊ฐœ) +Party.LevelUp=&eํŒŒํ‹ฐ ๋ ˆ๋ฒจ์ด {0}๋งŒํผ ์ฆ๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ „์ฒด ({1}) Party.Feature.Chat=ํŒŒํ‹ฐ ์ฑ„ํŒ… Party.Feature.Teleport=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ Party.Feature.Alliance=๋™๋งน Party.Feature.ItemShare=์•„์ดํ…œ ๊ณต์œ  -Party.Feature.XpShare=๊ฒฝํ—˜์น˜ ๊ณต์œ  -Party.Feature.Locked.Chat={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (ํŒŒํ‹ฐ ์ฑ„ํŒ…) -Party.Feature.Locked.Teleport={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ) -Party.Feature.Locked.Alliance={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (๋™๋งน) -Party.Feature.Locked.ItemShare={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (์•„์ดํ…œ ๊ณต์œ ) -Party.Feature.Locked.XpShare={0}๋ ˆ๋ฒจ ๋•Œ ์Šคํ‚ฌํ•ด์ œ (๊ฒฝํ—˜์น˜ ๊ณต์œ ) -Party.Feature.Disabled.1=ํŒŒํ‹ฐ ์ฑ„ํŒ…์€ ์•„์ง ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Party.Feature.Disabled.2=ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ๋Š” ์•„์ง ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Party.Feature.Disabled.3=ํŒŒํ‹ฐ ๋™๋งน์€ ์•„์ง ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Party.Feature.Disabled.4=์•„์ดํ…œ ๊ณต์œ ๋Š” ์•„์ง ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Party.Feature.Disabled.5=๊ฒฝํ—˜์น˜ ๊ณต์œ ๋Š” ์•„์ง ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -Party.ShareType.Xp=๊ฒฝํ—˜์น˜ +Party.Feature.XpShare=XP ๊ณต์œ  +Party.Feature.Locked.Chat=์ž ๊ธˆ ํ•ด์ œ๊นŒ์ง€ {0}+ (ํŒŒํ‹ฐ ์ฑ„ํŒ…) +Party.Feature.Locked.Teleport=์ž ๊ธˆ ํ•ด์ œ๊นŒ์ง€ {0}+ (ํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ) +Party.Feature.Locked.Alliance=์ž ๊ธˆ ํ•ด์ œ๊นŒ์ง€ {0}+ (๋™๋งน) +Party.Feature.Locked.ItemShare=์ž ๊ธˆ ํ•ด์ œ๊นŒ์ง€ {0}+ (์•„์ดํ…œ ๊ณต์œ ) +Party.Feature.Locked.XpShare=์ž ๊ธˆ ํ•ด์ œ๊นŒ์ง€ {0}+ (XP ๊ณต์œ ) +Party.Feature.Disabled.1=&cํŒŒํ‹ฐ ์ฑ„ํŒ…์ด ์•„์ง ์ž ๊ธˆ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Party.Feature.Disabled.2=&cํŒŒํ‹ฐ ํ…”๋ ˆํฌํŠธ๊ฐ€ ์•„์ง ์ž ๊ธˆ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Party.Feature.Disabled.3=&cํŒŒํ‹ฐ ๋™๋งน์ด ์•„์ง ์ž ๊ธˆ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Party.Feature.Disabled.4=&cํŒŒํ‹ฐ ์•„์ดํ…œ ๊ณต์œ ๊ฐ€ ์•„์ง ์ž ๊ธˆ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Party.Feature.Disabled.5=&cํŒŒํ‹ฐ XP ๊ณต์œ ๊ฐ€ ์•„์ง ์ž ๊ธˆ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Party.ShareType.Xp=XP Party.ShareType.Item=์•„์ดํ…œ Party.ShareMode.None=์—†์Œ -Party.ShareMode.Equal=๊ท ๋“ฑ -Party.ShareMode.Random=๋ฌด์ž‘์œ„ -Party.ItemShare.Category.Loot=๊ฐ•ํƒˆ -Party.ItemShare.Category.Mining=์ฑ„๊ด‘ -Party.ItemShare.Category.Herbalism=์•ฝ์ดˆํ•™ -Party.ItemShare.Category.Woodcutting=๋ฒŒ๋ชฉ +Party.ShareMode.Equal=๋™๋“ฑ +Party.ShareMode.Random=๋žœ๋ค +Party.ItemShare.Category.Loot=์ „๋ฆฌํ’ˆ +Party.ItemShare.Category.Mining=์ฑ„๊ตด +Party.ItemShare.Category.Herbalism=ํ—ˆ๋ธŒ ์ˆ˜ํ™• +Party.ItemShare.Category.Woodcutting=๋‚˜๋ฌด ๋ฒŒ์ฑ„ Party.ItemShare.Category.Misc=๊ธฐํƒ€ - ##xp -Commands.XPGain.Acrobatics=๋–จ์–ด์ง€๊ธฐ -Commands.XPGain.Alchemy=ํฌ์…˜ ์–‘์กฐํ•˜๊ธฐ -Commands.XPGain.Archery=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉํ•˜๊ธฐ -Commands.XPGain.Axes=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉํ•˜๊ธฐ -Commands.XPGain.Child=์ƒ์œ„ ์Šคํ‚ฌ๋“ค๋กœ ๋ถ€ํ„ฐ ๋ ˆ๋ฒจ๋“ค์„ ์–ป์Šต๋‹ˆ๋‹ค -Commands.XPGain.Excavation=๋•… ํŒŒ๊ฑฐ๋‚˜ ๋ณด๋ฌผ ๋ฐœ๊ฒฌํ•˜๊ธฐ -Commands.XPGain.Fishing=๋‚š์‹œํ•˜๊ธฐ -Commands.XPGain.Herbalism=์‹๋ฌผ ์ˆ˜์ง‘ํ•˜๊ธฐ -Commands.XPGain.Mining=๋Œ์ด๋‚˜ ๊ด‘์„ ์บ๊ธฐ -Commands.XPGain.Repair=์ˆ˜๋ฆฌํ•˜๊ธฐ -Commands.XPGain.Swords=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉํ•˜๊ธฐ -Commands.XPGain.Taming=๋™๋ฌผ์„ ์กฐ๋ จํ•˜๊ฑฐ๋‚˜, ์กฐ๋ จ๋œ ๋™๋ฌผ๋กœ ์‚ฌ๋ƒฅํ•˜๊ธฐ -Commands.XPGain.Unarmed=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉํ•˜๊ธฐ -Commands.XPGain.Woodcutting=๋‚˜๋ฌด ์ž๋ฅด๊ธฐ -Commands.XPGain=&8๊ฒฝํ—˜์น˜ ์–ป๋Š” ๋ฐฉ๋ฒ•: &f{0} -Commands.xplock.locked=&6๋‹น์‹ ์˜ ๊ฒฝํ—˜์น˜ ๋ฐ”๋Š” {0}๋กœ ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค! -Commands.xplock.unlocked=&6๋‹น์‹ ์˜ ๊ฒฝํ—˜์น˜ ๋ฐ”๋Š” &a์ž ๊ธˆ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค&6! -Commands.xprate.modified=๊ฒฝํ—˜์น˜ ๋ฐฐ์œจ์ด {0}๋ฐฐ๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค -Commands.xprate.over=mcMMO ๊ฒฝํ—˜์น˜ ์ด๋ฒคํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!! -Commands.xprate.proper.0=๊ฒฝํ—˜์น˜ ๋ฐฐ์œจ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉ๋ฒ•: &f/xprate <๋ฐฐ์œจ> -Commands.xprate.proper.1=๊ฒฝํ—˜์น˜ ๋ฐฐ์œจ์„ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•: &f/xprate reset -Commands.xprate.proper.2=์ด๊ฒƒ์€ XP ์ด๋ฒคํŠธ์ธ์ง€ ์•„๋‹Œ์ง€ true ๋˜๋Š” false๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค -Commands.xprate.started.0=&6mcMMO ๊ฒฝํ—˜์น˜ ์ด๋ฒคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Commands.xprate.started.1=&6mcMMO ๊ฒฝํ—˜์น˜ ๋ฐฐ์œจ์€ {0}๋ฐฐ ์ž…๋‹ˆ๋‹ค! -XPRate.Event= &6mcMMO ๋Š” ํ˜„์žฌ ๊ฒฝํ—˜์น˜ ์ด๋ฒคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค! ๊ฒฝํ—˜์น˜๋Š” {0}๋ฐฐ ์ž…๋‹ˆ๋‹ค! -Commands.NegativeNumberWarn=๋งˆ์ด๋„ˆ์Šค ์ˆซ์ž๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! -Commands.Event.Start=&amcMMO&6 ์ด๋ฒคํŠธ ์‹œ์ž‘! +Commands.XPGain.Acrobatics=๋‚™ํ•˜ +Commands.XPGain.Alchemy=ํฌ์…˜ ์ œ์กฐ +Commands.XPGain.Archery=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉ +Commands.XPGain.Axes=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉ +Commands.XPGain.Child=์ƒ์œ„ ์Šคํ‚ฌ๋กœ๋ถ€ํ„ฐ ๋ ˆ๋ฒจ์„ ์–ป์Œ +Commands.XPGain.Excavation=ํŒŒํ—ค์น˜๊ธฐ ๋ฐ ๋ณด๋ฌผ ์ฐพ๊ธฐ +Commands.XPGain.Fishing=๋‚š์‹œ (๋‹น์—ฐํ•œ ์–˜๊ธฐ์ง€์š”!) +Commands.XPGain.Herbalism=์•ฝ์ดˆ ์ˆ˜ํ™• +Commands.XPGain.Mining=๋Œ ๋ฐ ๊ด‘์„ ์ฑ„๊ตด +Commands.XPGain.Repair=์ˆ˜๋ฆฌ +Commands.XPGain.Swords=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉ +Commands.XPGain.Taming=๋™๋ฌผ ์กฐ๋ จ ๋˜๋Š” ๋Š‘๋Œ€์™€์˜ ์ „ํˆฌ +Commands.XPGain.Unarmed=๋ชฌ์Šคํ„ฐ ๊ณต๊ฒฉ +Commands.XPGain.Woodcutting=๋‚˜๋ฌด ๋ฒ ๊ธฐ +Commands.XPGain=&8XP ํš๋“: &f{0} +Commands.xplock.locked=&6XP ๋ฐ”๊ฐ€ ์ด์ œ {0}์œผ๋กœ ์ž ๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค! +Commands.xplock.unlocked=&6XP ๋ฐ”๊ฐ€ ์ด์ œ &a์ž ๊ธˆ ํ•ด์ œ&6๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Commands.xprate.modified=&cXP ๋น„์œจ์ด {0}(์œผ)๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค +Commands.xprate.over=&cmcMMO XP ๋น„์œจ ์ด๋ฒคํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!! +Commands.xprate.proper.0=&cXP ๋น„์œจ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /xprate <์ •์ˆ˜> ์ž…๋‹ˆ๋‹ค +Commands.xprate.proper.1=&cXP ๋น„์œจ์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณต์›ํ•˜๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์€ /xprate reset์ž…๋‹ˆ๋‹ค +Commands.xprate.proper.2=&cXP ์ด๋ฒคํŠธ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด true ๋˜๋Š” false๋ฅผ ๋ช…์‹œํ•˜์‹ญ์‹œ์˜ค +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.Event.Stop.Subtitle=&a์ฆ๊ฑฐ์› ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค! +Commands.Event.XP=&3XP ๋น„์œจ์€ ์ด์ œ &6{0}&3๋ฐฐ์ž…๋‹ˆ๋‹ค Commands.xprate.started.0=&6mcMMO XP ์ด๋ฒคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Commands.xprate.started.1=&6mcMMO XP ๋ฐฐ์œจ์€ ์ด์ œ {0}๋ฐฐ์ž…๋‹ˆ๋‹ค! +Commands.xprate.started.1=&6mcMMO XP ๋น„์œจ์ด {0}๋ฐฐ๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -# 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.XPRate.Start.Self=&7์ „์—ญ XP ๋น„์œจ ๋ฐฐ์ˆ˜๋ฅผ &6{0}๋ฐฐ&7๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค +Notifications.Admin.XPRate.End.Self=&7XP ๋น„์œจ ์ด๋ฒคํŠธ๋ฅผ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. +Notifications.Admin.XPRate.End.Others={0}&7๋‹˜์ด XP ๋น„์œจ ์ด๋ฒคํŠธ๋ฅผ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค +Notifications.Admin.XPRate.Start.Others={0}&7๋‹˜์ด ์ „์—ญ ๋ฐฐ์ˆ˜๊ฐ€ {1}๋ฐฐ์ธ XP ๋น„์œจ ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค 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} ? [ํŽ˜์ด์ง€] +# ์ด๋ฒคํŠธ +XPRate.Event=&6mcMMO๊ฐ€ ํ˜„์žฌ XP ๋น„์œจ ์ด๋ฒคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค! XP ๋น„์œจ์€ {0}๋ฐฐ์ž…๋‹ˆ๋‹ค! + +#๊ฐ€์ด๋“œ +Guides.Available=&7{0}์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - /{1} ? [ํŽ˜์ด์ง€] Guides.Header=&6-=&a{0} ๊ฐ€์ด๋“œ&6=- -Guides.Page.Invalid=์˜ฌ๋ฐ”๋ฅธ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค! -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&e์ด๋Š” ์ผ๋ฐ˜ ๊ตฌ๋ฅด๊ธฐ ๋Œ€์‹  ์šฐ์•„ํ•œ ๊ตฌ๋ฅด๊ธฐ๋ฅผ ๋ฐœ๋™์‹œํ‚ต๋‹ˆ๋‹ค.\n&e์šฐ์•„ํ•œ ๊ตฌ๋ฅด๊ธฐ๋Š” ์ผ๋ฐ˜ ๊ตฌ๋ฅด๊ธฐ๋ณด๋‹ค ๋‘ ๋ฐฐ ๋” ์ž์ฃผ ๋ฐœ๋™๋˜๋ฉฐ\n&e์ผ๋ฐ˜ ๊ตฌ๋ฅด๊ธฐ๋ณด๋‹ค ๋” ๋งŽ์€ ํ”ผํ•ด ๋ฐฉ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n&e๊ตฌ๋ฅด๊ธฐ ํ™•๋ฅ ์€ ์Šคํ‚ฌ ๋ ˆ๋ฒจ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. -Guides.Acrobatics.Section.2=&3์–ด๋–ป๊ฒŒ ํšŒํ”ผ๋ฅผ ํ•˜๋‚˜์š”?\n&eํšŒํ”ผ๋Š” ๋‹น์‹ ์ด ์ „ํˆฌ์—์„œ ์ƒ์ฒ˜๋ฅผ ์ž…์„ ๋•Œ ์ž…๋Š”\n&eํ”ผํ•ด๋ฅผ ๋ฐ˜๊ฐ์‹œํ‚ค๋Š” ์ง€์†์ ์ธ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.\n&e์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ์Šคํ‚ฌ ๋ ˆ๋ฒจ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. - -##Alchemy -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๋˜ํ•œ, ์ƒ๋Œ€์˜ ์‹œ์ฒด์—์„œ ์‚ฌ์šฉํ•œ ํ™”์‚ด์„ ์ผ๋ถ€ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\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=&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=&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=&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=&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=&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=&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=&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=์ค€๋น„ ์ค‘... - -##Swords -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=&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=&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=&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๊ทธ ํ”Œ๋ ˆ์ด์–ด๋Š” ์˜คํ”„๋ผ์ธ ์ƒํƒœ์ด๋ฏ€๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒ€์‚ฌํ•˜๋ ค๋ฉด ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. -Inspect.OfflineStats=mcMMO ์˜คํ”„๋ผ์ธ ์œ ์ € ์Šคํ…Ÿ์€ &e{0} ์ž…๋‹ˆ๋‹ค -Inspect.Stats=&amcMMO ์Šคํ…Ÿ์€ &e{0} ์ž…๋‹ˆ๋‹ค -Inspect.TooFar=๋‹น์‹ ์€ ๊ทธ ํ”Œ๋ ˆ์ด์–ด์™€ ๋„ˆ๋ฌด ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์–ด ๊ฒ€์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! - -#ITEMS -Item.ChimaeraWing.Fail=**ํ‚ค๋ฉ”๋ผ์˜ ๋‚ ๊ฐœ ์‹คํŒจ!** -Item.ChimaeraWing.Pass=**ํ‚ค๋ฉ”๋ผ์˜ ๋‚ ๊ฐœ** -Item.ChimaeraWing.Name=ํ‚ค๋ฉ”๋ผ์˜ ๋‚ ๊ฐœ -Item.ChimaeraWing.Lore=&7๋‹น์‹ ์˜ ์นจ๋Œ€๋กœ ํ…”๋ ˆํฌํŠธํ•ฉ๋‹ˆ๋‹ค. -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์ดˆ์•ˆ์— ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค, ๊ฐ€๋งŒํžˆ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”... +Guides.Page.Invalid=์œ ํšจํ•œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค! +Guides.Page.OutOfRange=ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํŽ˜์ด์ง€ ์ˆ˜๋Š” {0}์ž…๋‹ˆ๋‹ค. +Guides.Usage= ์‚ฌ์šฉ๋ฒ•: /{0} ? [ํŽ˜์ด์ง€] +##๊ณก์˜ˆ +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&epassiveํ•œ ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&eeSneak ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ๋‚™ํ•˜ ์ค‘์— ํ™•๋ฅ ์„ ๋‘๋ฐฐ๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&e์ด๋กœ ์ธํ•ด ํ‘œ์ค€ ๋กค์ด ์•„๋‹Œ ์šฐ์•„ํ•œ ๋กค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.\n&e์šฐ์•„ํ•œ ๋กค์€ ์ผ๋ฐ˜ ๋กค๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‘ ๋ฐฐ์˜ ํ™•๋ฅ ๋กœ\n&e๋ฐœ์ƒํ•˜๋ฉฐ ํ‘œ์ค€ ๋กค๋ณด๋‹ค ๋” ๋งŽ์€ ํ”ผํ•ด ์•ˆ์ „์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n&e๋กค๋ง ํ™•๋ฅ ์€ ์Šคํ‚ฌ ๋ ˆ๋ฒจ์— ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค. +Guides.Acrobatics.Section.2=&3ํšŒํ”ผ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํšŒํ”ผ๋Š” ์ „ํˆฌ ์ค‘์—\n&e์ž…์€ ํ”ผํ•ด๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๋Š” ์ž๋™ ํ™•๋ฅ ์ž…๋‹ˆ๋‹ค.\n&e์Šคํ‚ฌ ๋ ˆ๋ฒจ์— ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค. +##์—ฐ๊ธˆ์ˆ  +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]]์นดํƒˆ๋ฆฌ์‹œ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n[[YELLOW]]์นดํƒˆ๋ฆฌ์‹œ์Šค๋Š” ์ œ์กฐ ๊ณผ์ •์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.\n[[YELLOW]]๋ ˆ๋ฒจ 100์—์„œ ์ตœ๋Œ€ ์†๋„๊ฐ€ 4๋ฐฐ๊นŒ์ง€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.\n[[YELLOW]]์ด ๋Šฅ๋ ฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆ๋ฒจ 100์—์„œ ์ž ๊ธˆ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. +Guides.Alchemy.Section.2=[[DARK_AQUA]]์กฐ์ œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n[[YELLOW]]์กฐ์ œ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์žฌ๋ฃŒ๋กœ ๋” ๋งŽ์€ ํฌ์…˜์„ ์ œ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n[[YELLOW]]์ž ๊ธˆ ํ•ด์ œ๋œ ํŠน๋ณ„ํ•œ ์žฌ๋ฃŒ๋Š” ์‚ฌ์šฉ์ž์˜ ๋“ฑ๊ธ‰์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.\n[[YELLOW]]์ž ๊ธˆ ํ•ด์ œ๋œ ํŠน๋ณ„ํ•œ ์žฌ๋ฃŒ๋Š” ์‚ฌ์šฉ์ž์˜ ๋“ฑ๊ธ‰์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. 8๊ฐœ์˜ ๋“ฑ๊ธ‰์ด ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Alchemy.Section.3=[[DARK_AQUA]]์กฐ์ œ 1๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Blaze Powder, Fermented Spider Eye, Ghast Tear, Redstone,\n[[YELLOW]]Glowstone Dust, Sugar, Glistering Melon, Golden Carrot,\n[[YELLOW]]Magma Cream, Nether Wart, Spider Eye, Suplhur, Water Lily,\n[[YELLOW]]Pufferfish\n[[YELLOW]](๊ธฐ๋ณธ ํฌ์…˜) +Guides.Alchemy.Section.4=[[DARK_AQUA]]์กฐ์ œ 2๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Carrot (Potion of Haste)\n[[YELLOW]]Slimeball (Potion of Dullness)\n\n[[DARK_AQUA]]์กฐ์ œ 3๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Quartz (Potion of Absorption)\n[[YELLOW]]Rabbit's Foot (Potion of Leaping) +Guides.Alchemy.Section.5=[[DARK_AQUA]]์กฐ์ œ 4๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Apple (Potion of Health Boost)\n[[YELLOW]]Rotten Flesh (Potion of Hunger)\n\n[[DARK_AQUA]]์กฐ์ œ 5๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Brown Mushroom (Potion of Nausea)\n[[YELLOW]]Ink Sack (Potion of Blindness) +Guides.Alchemy.Section.6=[[DARK_AQUA]]์กฐ์ œ 6๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Fern (Potion of Saturation)\n\n[[DARK_AQUA]]์กฐ์ œ 7๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Poisonous Potato (Potion of Decay)\n\n[[DARK_AQUA]]์กฐ์ œ 8๋‹จ๊ณ„ ์žฌ๋ฃŒ:\n[[YELLOW]]Regular Golden Apple (Potion of Resistance) +#์–‘๊ถ +Guides.Archery.Section.0=&3์–‘๊ถ์— ๋Œ€ํ•ด:\n&e์–‘๊ถ๋Š” ํ™œ๊ณผ ํ™”์‚ด๋กœ ์‚ฌ๊ฒฉํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.\n&e์ „ํˆฌ ๋ณด๋„ˆ์Šค๋กœ๋Š” ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•˜๋Š” ์ถ”๊ฐ€ ๋ฐ๋ฏธ์ง€\n&ee์™€ PvP์—์„œ ์ƒ๋Œ€๋ฅผ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ํ•˜๋Š” ๋Šฅ๋ ฅ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&ee์ด์™ธ์—๋„ ์ ๋“ค์˜ ์‹œ์ฒด์—์„œ ์‚ฌ์šฉํ•œ ํ™”์‚ด ์ค‘ ์ผ๋ถ€๋ฅผ\n&eeํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n\n&3XP ํš๋“:\n&e์ด ์Šคํ‚ฌ์—์„œ XP๋ฅผ ํš๋“ํ•˜๋ ค๋ฉด ๋ชน์ด๋‚˜ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋ฅผ\n&ee์‚ฌ๊ฒฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +Guides.Archery.Section.1=&3์Šคํ‚ฌ์ƒท์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์Šคํ‚ฌ์ƒท์€ ์‚ฌ๊ฒฉ์— ์ถ”๊ฐ€ ๋ฐ๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n&e์Šคํ‚ฌ์ƒท์˜ ๋ณด๋„ˆ์Šค ๋ฐ๋ฏธ์ง€๋Š” ์–‘๊ถ ๋ ˆ๋ฒจ์ด\n&ee์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ ์„ค์ •์—์„œ ์–‘๊ถ ๋ฐ๋ฏธ์ง€๋Š” ๋งค 50 ๋ ˆ๋ฒจ๋งˆ๋‹ค\n&ee 10%์”ฉ ์ฆ๊ฐ€ํ•˜์—ฌ ์ตœ๋Œ€ 200%์˜ ๋ณด๋„ˆ์Šค ๋ฐ๋ฏธ์ง€๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. +Guides.Archery.Section.2=&3ํ˜„ํ˜น์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ƒ๋Œ€๋ฅผ ์‚ฌ๊ฒฉํ•  ๋•Œ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ํ• \n&e์ž๋™ ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„ํ˜น์ด ๋ฐœ์ƒํ•˜๋ฉด ์ƒ๋Œ€๋ฐฉ์„\n&ekort ์˜ฌ๋ ค ์ƒ๋‹นํ•œ ์‹œ๊ฐ„ ๋™์•ˆ ์›€์ง์ผ ์ˆ˜ ์—†๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.\n&eํ˜„ํ›… ์‚ฌ๊ฒฉ์€ ์ถ”๊ฐ€์ ์œผ๋กœ 4 ๋ฐ๋ฏธ์ง€(2 ํ•˜ํŠธ)๋ฅผ ์ค๋‹ˆ๋‹ค. +Guides.Archery.Section.3=&3ํ™”์‚ด ํšŒ์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํ™œ๋กœ ๋ชน์„ ์ฃฝ์ผ ๋•Œ ์‚ฌ์šฉํ•œ ํ™”์‚ด ์ค‘ ์ผ๋ถ€๋ฅผ\n&eํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&e์–‘๊ถ ๋ ˆ๋ฒจ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ด ํ™•๋ฅ ์ด\n&ee์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆ๋ฒจ๋งˆ๋‹ค 0.1%์”ฉ ์ฆ๊ฐ€ํ•˜์—ฌ ๋ ˆ๋ฒจ 1000์—์„œ\n&ee 100%๊นŒ์ง€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +##์ฐธ์ˆ˜ +Guides.Axes.Section.0=&3์ฐธ์ˆ˜์— ๋Œ€ํ•ด:\n&eAxe ์Šคํ‚ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚˜๋ฌด๋ฅผ ๋ฒ ๋Š” ๊ฒƒ ์ด์ƒ์˜ ์ผ์—\n&e๋„๋ผ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋ชน๊ณผ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ฐ๊ณ \n&e๋ฒ ์–ด ๊ฒฝํ—˜์น˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชน์—๊ฒŒ\n&e๋„‰๋ฐฑ ํšจ๊ณผ๋ฅผ ์ ์šฉํ•˜๊ณ  ๋ชน๊ณผ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์น˜๋ช…์ ์ธ\n&eํฌ๋ฆฌํ‹ฐ์ปฌ์„ ์ž…ํž ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ๋ฒจ์ด ์˜ค๋ฅด๋ฉด\n&ee์•„์ฒ˜์˜ ๊ฐ‘์˜ท์„ ์‰ฝ๊ฒŒ ๊นจ๋Š” ์ˆ˜๋™ ํ•ธ๋“œ ํ—ฌ๋“œ ์šฐ๋“œ์นฉํผ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.\n&3XP ํš๋“:\n&e์ด ์Šคํ‚ฌ์—์„œ XP๋ฅผ ํš๋“ํ•˜๋ ค๋ฉด ๋„๋ผ๋กœ ๋‹ค๋ฅธ ๋ชน์ด๋‚˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ\n&eb ์น˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. +Guides.Axes.Section.1=&3์Šค์ปฌ ์Šคํ”Œ๋ฆฌํ„ฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ๋Šฅ๋ ฅ์€ ๋ฒ”์œ„ ํ”ผํ•ด๋ฅผ ์ž…ํžˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.\n&ee์ด ๋ฒ”์œ„ ํ”ผํ•ด๋Š” ์ฃผ์š” ๋Œ€์ƒ์— ๊ฐ€ํ•œ ํ”ผํ•ด์˜ ์ ˆ๋ฐ˜์ด ๋ฉ๋‹ˆ๋‹ค.\n&e๊ทธ๋ž˜์„œ ๋งŽ์€ ๋ชน์„ ์‰ฝ๊ฒŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Axes.Section.2=&3์น˜๋ช…ํƒ€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์น˜๋ช…ํƒ€๋Š” ์ถ”๊ฐ€ ๋ฐ๋ฏธ์ง€๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š”\n&eํ™•๋ฅ ์„ ์ œ๊ณตํ•˜๋Š” ์ˆ˜๋™ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ ์„ค์ •์—์„œ Axes 2 ๋ ˆ๋ฒจ๋งˆ๋‹ค 0.1%์˜ ๊ธฐํšŒ๋ฅผ\n&e์–ป์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋ชน์—๊ฒŒ๋Š” 2๋ฐฐ์˜ ๋ฐ๋ฏธ์ง€,\n&eํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋Š” 1.5๋ฐฐ์˜ ๋ฐ๋ฏธ์ง€๋ฅผ ์ž…ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Axes.Section.3=&3๋„๋ผ ๋งˆ์Šคํ„ฐ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๋„๋ผ ๋งˆ์Šคํ„ฐ๋ฆฌ๋Š” ๋„๋ผ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”ผํ•ด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ์ ์œผ๋กœ 50 ๋ ˆ๋ฒจ๋งˆ๋‹ค ๋ณด๋„ˆ์Šค ๋ฐ๋ฏธ์ง€๊ฐ€ 1์”ฉ\n&e์ฆ๊ฐ€ํ•˜์—ฌ ๋ ˆ๋ฒจ 200์—์„œ ์ตœ๋Œ€ 4์˜ ์ถ”๊ฐ€ ํ”ผํ•ด๋ฅผ\n&ee๋ฐ›์Šต๋‹ˆ๋‹ค. +Guides.Axes.Section.4=&3๊ฐ‘์˜ท ์ถฉ๊ฒฉ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๊ฐ‘์˜ท์„ ํŒŒ๊ดดํ• ๋งŒํผ ์ถฉ๊ฒฉ์ ์œผ๋กœ ๊ณต๊ฒฉํ•˜์„ธ์š”!\n&e๊ฐ‘์˜ท ์ถฉ๊ฒฉ์—๋Š” ์ƒ๋Œ€์˜ ๊ฐ‘์˜ท์„ ์†์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”\n&ee์ž๋™ ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Axes ๋ ˆ๋ฒจ์ด ์˜ค๋ฅด๋ฉด\n&ee์ด ๋ฐ๋ฏธ์ง€๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +Guides.Axes.Section.5=&3๋” ํฐ ์˜ํ–ฅ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๋„๋ผ๋กœ ๋ชน์ด๋‚˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ณต๊ฒฉํ•  ๋•Œ ๋” ํฐ\n&e์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ž๋™ ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ํ™•๋ฅ ์€ 25%์ž…๋‹ˆ๋‹ค. ์ด ์ž๋™ ๋Šฅ๋ ฅ์€\n&e๋„‰๋ฐฑ II ์ธ์ฒธํŠธ์™€ ์œ ์‚ฌํ•œ ๊ทน๋‹จ์ ์ธ ๋„‰๋ฐฑ ํšจ๊ณผ๋ฅผ\n&ee๊ฐ€์ง€๋ฉฐ ๋Œ€์ƒ์—๊ฒŒ ์ถ”๊ฐ€ ๋ฐ๋ฏธ์ง€๋ฅผ ์ค๋‹ˆ๋‹ค. +##๋ฐœ๊ตด +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&e3๋ฐฐ๋กœ ๋Š˜๋ฆฌ๊ณ  ๋ฐœ๊ตด ์žฌ๋ฃŒ์— ๋Œ€ํ•œ ์ฆ‰์‹œ ๋ถ€์„œ๋ฅผ\n&ee๋Šฅ๋ ฅํ™”ํ•ฉ๋‹ˆ๋‹ค. +Guides.Excavation.Section.4=&3๊ณ ๊ณ ํ•™์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๋ฐœ๊ตด์„ ์œ„ํ•œ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๋ณด๋ฌผ์€ ํš๋“์„ ์œ„ํ•œ\n&e์Šคํ‚ฌ ๋ ˆ๋ฒจ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—\n&e์–ด๋Š ์ •๋„ ๋„์›€์ด ๋˜๋Š”์ง€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.\n&e๋‹จ์ง€ ๋ฐœ๊ตด ์Šคํ‚ฌ์ด ๋†’์„์ˆ˜๋ก ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”\n&ee๋ณด๋ฌผ์ด ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.\n&e๋˜ํ•œ ๊ฐ ๋ฐœ๊ตด ํ˜ธํ™˜ ์žฌ๋ฃŒ ์œ ํ˜•๋งˆ๋‹ค ๊ณ ์œ ํ•œ\n&e๋ณด๋ฌผ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&e๋‹ค์‹œ ๋งํ•ด Dirt์—์„œ๋Š” ๋‹ค๋ฅธ ๋ณด๋ฌผ์„ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค.\n&ee Gravel. +Guides.Excavation.Section.5=&3๋ฐœ๊ตด์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ:\n&e๋ฐœ๊ตด ๋“œ๋กญ์€ ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&e๊ฒฐ๊ณผ๋Š” ์„œ๋ฒ„๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +##๋‚š์‹œ +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&ee์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋–จ์–ด์ง€๋Š”์ง€๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.\n&e๋‚š์‹œ ์Šคํ‚ฌ์ด ๋†’์„์ˆ˜๋ก ๋” ์ข‹์€ ๋ณด๋ฌผ์„ ๋ฐœ๊ฒฌํ•  ํ™•๋ฅ ์ด\n&ee๋” ์ข‹์•„์ง‘๋‹ˆ๋‹ค. +Guides.Fishing.Section.2=&3์–ผ์Œ ๋‚š์‹œ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์„ ํ†ตํ•ด ์–ผ์Œ ํ˜ธ์ˆ˜์—์„œ ๋‚š์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!\n&e์–ผ์Œ ํ˜ธ์ˆ˜์— ๋‚š์‹ฏ๋Œ€๋ฅผ ๋˜์ง€๋ฉด ๋Šฅ๋ ฅ์ด ํ™œ์„ฑํ™”๋˜์–ด\n&e์ž‘์€ ๊ตฌ๋ฉ์„ ๋งŒ๋“ค์–ด ๋‚š์‹œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Fishing.Section.3=&3๋‚š์‹œ๊พผ์˜ ๋Œ€๊ฐ€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ๋‚š์‹œํ•  ๋•Œ ๋ฌผ๊ณ ๊ธฐ๊ฐ€ ๋‚š์ผ ํ™•๋ฅ ์„\n&e์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ๋Šฅ๋ ฅ์„ ํ•ด์ œํ•˜๋ฉด ๋ณดํŠธ์— ํƒ‘์Šนํ•œ\n&ee์ƒํƒœ์—์„œ ๋‚š์‹œํ•  ๋•Œ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์žก์„ ํ™•๋ฅ ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. +Guides.Fishing.Section.4=&3๋–จ๋ฆผ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚š์‹ฏ๋Œ€๋กœ ๋ชน์—๊ฒŒ์„œ ์•„์ดํ…œ์„\n&e๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. \n&e๋ชน์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃฝ์„ ๋•Œ ๋–จ์–ด๋œจ๋ฆด ์•„์ดํ…œ์„ ๋–จ์–ด๋œจ๋ฆฝ๋‹ˆ๋‹ค.\n&e์ƒ์กด ๋ชจ๋“œ์—์„œ ํš๋“ํ•  ์ˆ˜ ์—†๋Š” ๋ชน ํ•ด๊ณจ๋„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Fishing.Section.5=&3์–ด๋ถ€์˜ ๋‹ค์ด์–ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ๋จน์„ ๋•Œ ํšŒ๋ณต๋˜๋Š”\n&e๋ฐฐ๊ณ ํ””์˜ ์–‘์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Guides.Fishing.Section.6=&3๋‚š์‹œ์— ๊ด€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ:\n&e๋‚š์‹œ ๋“œ๋กญ์€ ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ,\n&ee๊ฒฐ๊ณผ๋Š” ์„œ๋ฒ„๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +##์•ฝ์ดˆํ•™ +Guides.Herbalism.Section.0=&3ํ—ˆ๋ธŒ ์ˆ˜์ง‘์— ๊ด€ํ•˜์—ฌ:\n&eHerbalism์€ ํ—ˆ๋ธŒ์™€ ์‹๋ฌผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.\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&ee์ƒํƒœ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋…น์ƒ‰ ์—๋„ˆ์ง€๋ฅผ\n&eํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&e๋…น์ƒ‰ ์—๋„ˆ์ง€๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ž‘๋ฌผ์„ ์ˆ˜ํ™•ํ•  ๋•Œ 3๋ฐฐ์˜ ๋“œ๋กญ์„\n&ee์–ป์„ ๊ธฐํšŒ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธ๋ฒคํ† ๋ฆฌ์—์„œ ์”จ์•—์„ ์‚ฌ์šฉํ•˜์—ฌ\n&e๋ธ”๋ก์— ์ƒ๋ช…์„ ์ฃผ๊ณ  ๋ณ€ํ˜•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +Guides.Herbalism.Section.3=&3์‹๋ฌผ ์žฌ๋ฐฐ (Crops)๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ์ˆ˜ํ™•ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ž‘๋ฌผ์„ ์žฌ๋ฐฐํ•ฉ๋‹ˆ๋‹ค.\n&ee์„ฑ๊ณต ํ™•๋ฅ ์€ ํ—ˆ๋ธŒ ์Šคํ‚ฌ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +Guides.Herbalism.Section.4=&3์‹๋ฌผ ์žฌ๋ฐฐ (Cobble/Stone Brick/Dirt)๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ธ”๋ก์„ "์‹๋ฌผ ๊ด€๋ จ" ๋™๋ฃŒ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&e์”จ์•—์„ ๋“ค๊ณ  ๋ธ”๋ก์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด 1๊ฐœ์˜ ์”จ์•—์ด ์†Œ๋น„๋ฉ๋‹ˆ๋‹ค. +Guides.Herbalism.Section.5=&3Farmer's Diet๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ๋นต, ์ฟ ํ‚ค, ์ˆ˜๋ฐ•, ๋ฒ„์„ฏ ์ˆ˜ํ”„, ๋‹น๊ทผ,\n&ee๊ฐ์ž๋ฅผ ๋จน์„ ๋•Œ ํšŒ๋ณต๋˜๋Š” ๋ฐฐ๊ณ ํ””์˜ ์–‘์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Guides.Herbalism.Section.6=&3์•ฝ์ดˆํ•™์˜ ํ–‰์šด์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ์ผ๋ถ€ ๋ธ”๋ก์ด ๊ฒ€์ˆ ๋กœ ํŒŒ๊ดด๋  ๋•Œ ํฌ๊ท€ ์•„์ดํ…œ์„ ์ฐพ์„ ๊ธฐํšŒ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. +Guides.Herbalism.Section.7=&3๋”๋ธ” ๋“œ๋กญ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์€ ์ˆ˜ํ™•ํ•  ๋•Œ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋” ๋งŽ์€ ์ˆ˜ํ™•๋Ÿ‰์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +##์ฑ„๊ด‘ +Guides.Mining.Section.0=&3๊ด‘์—…์— ๊ด€ํ•˜์—ฌ:\n&e๊ด‘์—…์€ ๋Œ๊ณผ ๊ด‘๋ฌผ์„ ์บ๋Š” ๊ฒƒ์œผ๋กœ, ์ฑ„๊ตดํ•  ๋•Œ ๋“œ๋กญ๋˜๋Š” ์ž์›์˜ ์–‘์„\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์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ƒํƒœ์—์„œ ๊ด‘์—… ํ˜ธํ™˜๋˜๋Š” ๋ธ”๋ก์— ์ ‘์ด‰ํ•˜์—ฌ\n&e์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. +Guides.Mining.Section.3=&3์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n&e์Šˆํผ ๋ธŒ๋ ˆ์ด์ปค๋Š” ๊ด‘์—… ์Šคํ‚ฌ์— ๊ฒฐํ•ฉ๋œ ์ฟจ๋‹ค์šด์ด ์žˆ๋Š” ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.\n&e์ถ”๊ฐ€ ์•„์ดํ…œ์ด ๋“œ๋กญ๋˜๋Š” ํ™•๋ฅ ์„ ์„ธ ๋ฐฐ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๊ณ ,\n&e๊ด‘์—… ๋ธ”๋ก์— ๋Œ€ํ•ด ์ฆ‰์‹œ ํŒŒ๊ดดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Mining.Section.4=&3ํญํŒŒ ๊ด‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์†์— ๊ณก๊ดญ์ด๋ฅผ ๋“ค๊ณ ,\n&e์›…ํฌ๋ฆฌ๊ณ  TNT๋ฅผ ๊ฑฐ๋ฆฌ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.\n&e๊ทธ๋Ÿฌ๋ฉด TNT๊ฐ€ ์ฆ‰์‹œ ํญ๋ฐœํ•ฉ๋‹ˆ๋‹ค. +Guides.Mining.Section.5=&3ํญํŒŒ ๊ด‘์—…์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํญํŒŒ ๊ด‘์—…์€ ๊ด‘์—… ์Šคํ‚ฌ์— ๊ฒฐํ•ฉ๋œ ์ฟจ๋‹ค์šด์ด ์žˆ๋Š” ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.\n&eTNT์™€ ํ•จ๊ป˜ ์ฑ„๊ตดํ•  ๋•Œ ๋ณด๋„ˆ์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ ,\n&eTNT๋ฅผ ์›๊ฒฉ์œผ๋กœ ํญํŒŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํญํŒŒ ๊ด‘์—…์—๋Š” ์„ธ ๊ฐ€์ง€ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n&e์ฒซ ๋ฒˆ์งธ๋Š” Bigger Bombs๋กœ, ํญ๋ฐœ ๋ฐ˜๊ฒฝ์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.\n&e๋‘ ๋ฒˆ์งธ๋Š” ์ฒ ๊ฑฐ ์ „๋ฌธ๊ฐ€๋กœ, TNT ํญ๋ฐœ๋กœ๋ถ€ํ„ฐ์˜\n&eํ”ผํ•ด๋ฅผ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ๋‹จ์ˆœํžˆ\n&eTNT๋กœ๋ถ€ํ„ฐ ๋“œ๋กญ๋˜๋Š” ๊ด‘์„์˜ ์–‘์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ \n&eํŒŒํŽธ์„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. +##์ˆ˜๋ฆฌํ•˜๋‹ค +Guides.Repair.Section.0=&3์ˆ˜๋ฆฌ์— ๊ด€ํ•˜์—ฌ:\n&e์ˆ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฒ  ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ‘์˜ท๊ณผ\n&e๋„๊ตฌ๋ฅผ ์ˆ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&emcMMO ๋ชจ๋ฃจ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๊ตฌ๋‚˜ ๊ฐ‘์˜ท์„ ์ˆ˜๋ฆฌํ•˜์„ธ์š”.\n&edefault๋กœ ์ฒ  ๋ธ”๋ก์ด๋ฉฐ, Vanilla Minecraft ๋ชจ๋ฃจ์™€\n&eํ˜ผ๋™ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. +Guides.Repair.Section.1=&3์–ด๋–ป๊ฒŒ ์ˆ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?\n&emcMMO ๋ชจ๋ฃจ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ˜„์žฌ ๋“ค๊ณ  ์žˆ๋Š” ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•˜๋ ค๋ฉด\n&emcMMO ๋ชจ๋ฃจ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค 1๊ฐœ์˜ ์•„์ดํ…œ์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค. +Guides.Repair.Section.2=&3์ˆ˜๋ฆฌ ๋งˆ์Šคํ„ฐ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ˆ˜๋ฆฌ ๋งˆ์Šคํ„ฐ๋ฆฌ๋Š” ์ˆ˜๋ฆฌ ์–‘์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ์ˆ˜๋ฆฌ๋œ\n&e์–‘์€ ์ˆ˜๋ฆฌ ์Šคํ‚ฌ ๋ ˆ๋ฒจ์— ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. +Guides.Repair.Section.3=&3์Šˆํผ ์ˆ˜๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์Šˆํผ ์ˆ˜๋ฆฌ๋Š” ์ˆ˜๋™ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•  ๋•Œ\n&ee๋” ํšจ๊ณผ์ ์œผ๋กœ ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•  ๊ธฐํšŒ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. +Guides.Repair.Section.4=&3๋น„๋ฐ€์˜ ๋‹จ์กฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ์ˆ˜๋™ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ํ™•๋ฅ ๋กœ ์ธ์ฑˆํŠธ๋œ ์•„์ดํ…œ์„ ์ˆ˜๋ฆฌํ•˜๊ณ \n&ee๋˜์ง€์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฑˆํŠธ๋Š” ํ˜„์žฌ ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ\n&ee๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ฑฐ๋‚˜ ๋‚ฎ์€ ์ˆ˜์ค€์œผ๋กœ ๊ฐ•๋“ฑ๋˜๊ฑฐ๋‚˜\n&ee์™„์ „ํžˆ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +##์‚ฐ์ถœ๊ธฐ๋Šฅ์ˆ  +Guides.Salvage.Section.0=&3์‚ฐ์ถœ์— ๊ด€ํ•˜์—ฌ:\n&e์‚ฐ์ถœ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธˆ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ‘์˜ท๊ณผ\n&e๋„๊ตฌ๋ฅผ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&e์‚ฐ์ถœ์€ ์ˆ˜๋ฆฌ ๋ฐ ์–ด์—…์˜ ํ•˜์œ„ ์Šคํ‚ฌ์ด๋ฉฐ, ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฐ์ถœ\n&eskil ๋ ˆ๋ฒจ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋‚š์‹œ ๋ฐ ์ˆ˜๋ฆฌ ์Šคํ‚ฌ ๋ ˆ๋ฒจ์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. +Guides.Salvage.Section.1=&3์–ด๋–ป๊ฒŒ ์‚ฐ์ถœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?\n&emcMMO ์‚ฐ์ถœ ๋ชจ๋ฃจ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ˜„์žฌ ๋“ค๊ณ  ์žˆ๋Š” ์•„์ดํ…œ์„\n&emcMMO ์‚ฐ์ถœ ๋ชจ๋ฃจ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„์ดํ…œ์ด ๋ถ„ํ•ด๋˜๊ณ ,\n&e์•„์ดํ…œ์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์ž์›์„ ๋Œ๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.\n\n&์˜ˆ๋ฅผ ๋“ค์–ด, ์ฒ  ๊ณก๊ดญ์ด๋ฅผ ์‚ฐ์ถœํ•˜๋ฉด ์ฒ  ๋ง‰๋Œ€๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +Guides.Salvage.Section.2=&3๊ณ ๊ธ‰ ์‚ฐ์ถœ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ๋Šฅ๋ ฅ์„ ์ž ๊ธˆ ํ•ด์ œํ•˜๋ฉด ์†์ƒ๋œ ์•„์ดํ…œ์„ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&e์ƒ์‚ฐ ๋น„์œจ์€ ๋ ˆ๋ฒจ์ด ์˜ฌ๋ผ๊ฐ์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋†’์€ ์ƒ์‚ฐ๋ฅ ์€\n&ee๋” ๋งŽ์€ ์ž์›์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.\n&e๊ณ ๊ธ‰ ์‚ฐ์ถœ๋กœ ์ธํ•ด ํ•ญ์ƒ 1๊ฐœ์˜ ์ž์›์„ ์–ป๊ฒŒ ๋˜๋ฉฐ,\n&e์•„์ดํ…œ์ด ๋„ˆ๋ฌด ์†์ƒ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์–ป์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.\n&e๋ถ€์Šค๋Ÿฌ๊ธฐ๋ฅผ ๋“œ๋กญํ•˜์ง€ ์•Š๊ณ . +Guides.Salvage.Section.3=&3์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.\n&ee.g. ์šฐ๋ฆฌ๊ฐ€ 20% ์†์ƒ๋œ ๊ธˆ ๊ณก๊ดญ์ด๋ฅผ ์‚ฐ์ถœํ•œ๋‹ค๋ฉด,\n&ee์ตœ๋Œ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์–‘์€ 2๊ฐœ์ž…๋‹ˆ๋‹ค.\n&e(๊ณก๊ดญ์ด๋Š” ๊ฐ๊ฐ 33.33% ๋‚ด๊ตฌ๋„๋กœ ์ œ์ž‘๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ฐ๊ฐ 66%๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.)\n&ee๋‹น์‹ ์˜ ์ˆ˜์ต๋ฅ ์ด 66% ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ 2๊ฐœ์˜ ๋ง‰๋Œ€๋ฅผ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n&ee๊ทธ ์ด์ƒ์ธ ๊ฒฝ์šฐ "์ „์ฒด ์–‘"์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&ee์ด๋Š” 2๊ฐœ์˜ ๋ง‰๋Œ€๋ฅผ ์–ป๊ฒŒ๋ฉ๋‹ˆ๋‹ค. +Guides.Salvage.Section.4=&3๋น„๋ฐ€์˜ ์‚ฐ์ถœ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฑˆํŠธ๋œ ์•„์ดํ…œ์„ ์‚ฐ์ถœํ•˜์—ฌ ์ธ์ฑˆํŠธ๋œ ์ฑ…์„\n&ee์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์ „์ฒด ๋˜๋Š” ๋ถ€๋ถ„์ ์ธ ์ธ์ฑˆํŠธ๋ฅผ\n&ee์ถ”์ถœํ•  ํ™•๋ฅ ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.\n\n&ee์ธ์ฑˆํŠธ๊ฐ€ ๋ถ€๋ถ„์ ์œผ๋กœ ์ถ”์ถœ๋˜๋Š” ๊ฒฝ์šฐ ์ธ์ฑˆํŠธ๋œ\n&ee์ฑ…์€ ์•„์ดํ…œ์— ์žˆ๋˜ ๊ฒƒ๋ณด๋‹ค ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ์ธ์ฑˆํŠธ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +##์ œ๋ จ +Guides.Smelting.Section.0=๊ณง ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค... +##๊ฒ€ +Guides.Swords.Section.0=&3๊ฒ€์— ๊ด€ํ•˜์—ฌ:\n&e์ด ์Šคํ‚ฌ์€ ๊ฒ€์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ „ํˆฌ ๋ณด๋„ˆ์Šค๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&e๊ฒ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชน์ด๋‚˜ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ž…ํžŒ ๋ฐ๋ฏธ์ง€ ์–‘์— ๋”ฐ๋ผ XP๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค. +Guides.Swords.Section.1=&3ํ†ฑ๋‚  ํƒ€๊ฒฉ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํ†ฑ๋‚  ํƒ€๊ฒฉ์€ ์•กํ‹ฐ๋ธŒ ๋Šฅ๋ ฅ์œผ๋กœ, ๊ฒ€์„ ๋“ค๊ณ  ์šฐํด๋ฆญํ•˜์—ฌ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&ee์˜ค๋ธŒ๋ฆฌ์˜คํŠธ (ํšจ๊ณผ ๋ฒ”์œ„) ํƒ€๊ฒฉ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด AO๋Š”\n&e๋ณด๋„ˆ์Šค 25% ๋ฐ๋ฏธ์ง€๋ฅผ ๊ฐ€ํ•˜๊ณ  ๋Ÿฝ์ฒ˜๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Swords.Section.2=&3๋ฐ˜๊ฒฉ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๋ฐ˜๊ฒฉ์€ ์•กํ‹ฐ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ๋ชน์œผ๋กœ๋ถ€ํ„ฐ ๊ณต๊ฒฉ์„ ๋ฐ›์„ ๋•Œ ๋ธ”๋กํ•˜๋ฉด\n&ee๋ฐ›์€ ๋ฐ๋ฏธ์ง€์˜ 50%๋ฅผ ๋ฐ˜์‚ฌํ•  ๊ธฐํšŒ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. +Guides.Swords.Section.3=&3ํŒŒ์—ด์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํŒŒ์—ด์€ ์ ์ด ๋งค ๋‘ ์ดˆ๋งˆ๋‹ค ํ”ผํ•ด๋ฅผ ์ž…๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํšจ๊ณผ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜\n&ee์ ์ด ์ฃฝ์„ ๋•Œ๊นŒ์ง€ ํƒ€๊ฒŸ์€ ์ถœํ˜ˆํ•ฉ๋‹ˆ๋‹ค.\n&e์ถœํ˜ˆ ์ง€์† ์‹œ๊ฐ„์€ ๊ฒ€ ์Šคํ‚ฌ์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +##๊ธธ๋“ค์ด๊ธฐ +Guides.Taming.Section.0=&3ํ…Œ์ด๋ฐ์— ๊ด€ํ•˜์—ฌ:\n&eํ…Œ์ด๋ฐ์€ ๊ธธ๋“ค์ธ ๋Š‘๋Œ€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋‹ค์–‘ํ•œ ์ „ํˆฌ ๋ณด๋„ˆ์Šค๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&e์ด ์Šคํ‚ฌ์—์„œ XP๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋Š‘๋Œ€/์˜ค์…€๋กฏ์„ ๊ธธ๋“ค์ด๊ฑฐ๋‚˜\n&e์ž์‹ ์˜ ๋Š‘๋Œ€์™€ ์ „ํˆฌ์— ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค. +Guides.Taming.Section.1=&3์•ผ์ƒ์˜ ๋ถ€๋ฆ„์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์•ผ์ƒ์˜ ๋ถ€๋ฆ„์€ ๋Šฅ๋™์ ์ธ ๋Šฅ๋ ฅ์œผ๋กœ, ๋ผˆ๋‚˜ ์ƒ์„ ์„ ๋“ค๊ณ  ์žˆ์„ ๋•Œ ์›…ํฌ๋ฆฌ๊ณ  ์™ผ์ชฝ ํด๋ฆญํ•˜์—ฌ\n&e์›…ํฌ๋ฆฌ๊ธฐ + ์™ผ์ชฝ ํด๋ฆญ๋ฅผ ํ•˜๋ฉด ๋Š‘๋Œ€๋‚˜ ์˜ค์…€๋กฏ์„ ์†Œํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Taming.Section.2=&3์•ผ์ˆ˜ ์ƒ์‹์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์•ผ์ˆ˜ ์ƒ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ์™„๋™๋ฌผ์„ ์กฐ์‚ฌํ•˜๊ณ  ๋Š‘๋Œ€์™€ ์˜ค์…€๋กฏ์˜ ํ†ต๊ณ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&ee์•ผ์ˆ˜ ์ง€์‹๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋Š‘๋Œ€๋‚˜ ์˜ค์…€๋กฏ์„ ์™ผ์ชฝ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. +Guides.Taming.Section.3=&3์ฒœ์‹์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ฒœ์‹์€ ๋Š‘๋Œ€์˜ ๋Œ€์ƒ์—๊ฒŒ ์ถœํ˜ˆ ํšจ๊ณผ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ๋Š” ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. +Guides.Taming.Section.4=&3์—ฐ๋งˆ๋œ ๋ฐœํ†ฑ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์—ฐ๋งˆ๋œ ๋ฐœํ†ฑ์€ ๋Š‘๋Œ€๊ฐ€ ๊ฐ€ํ•˜๋Š” ํ”ผํ•ด์— ์ถ”๊ฐ€ ํ”ผํ•ด ๋ณด๋„ˆ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n&e๋ฐ๋ฏธ์ง€ ๋ณด๋„ˆ์Šค๋Š” ๊ธธ๋“ค์ด๊ธฐ ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +Guides.Taming.Section.5=&3ํ™˜๊ฒฝ ์ธ์‹์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ๋Š‘๋Œ€๊ฐ€ ๊ฐ€์‹œ๋‚˜ ์šฉ์•”๊ณผ ๊ฐ™์€ ์œ„ํ—˜์— ๊ฐ€๊นŒ์ด ๊ฐˆ ๋•Œ\n&e๋‹น์‹ ์—๊ฒŒ ํ…”๋ ˆํฌํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Š‘๋Œ€์—๊ฒŒ ์ถ”๋ฝ\n&eํ”ผํ•ด ๋ฉด์—ญ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. +Guides.Taming.Section.6=&3๋‘๊บผ์šด ๋ชจํ”ผ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ๋ฐ๋ฏธ์ง€๋ฅผ ์ค„์ด๊ณ  ๋Š‘๋Œ€๋ฅผ ํ™”์—ผ ๋‚ด์„ฑ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. +Guides.Taming.Section.7=&3์ถฉ๊ฒฉ ๋ฐฉ์ง€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ํญ๋ฐœ๋กœ ์ธํ•œ ๋Š‘๋Œ€์—๊ฒŒ ๊ฐ€ํ•ด์ง€๋Š” ํ”ผํ•ด๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. +Guides.Taming.Section.8=&3ํŒจ์ŠคํŠธ ํ‘ธ๋“œ ์„œ๋น„์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ๋Š‘๋Œ€๊ฐ€ ๊ณต๊ฒฉํ•  ๋•Œ๋งˆ๋‹ค ํšŒ๋ณตํ•  ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +##๋น„๋ฌด์žฅ +Guides.Unarmed.Section.0=&3๋ฌด์žฅ์— ๊ด€ํ•˜์—ฌ:\n&e๋ฌด์žฅ์€ ์ฃผ๋จน์œผ๋กœ ๋ฌด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋‹ค์–‘ํ•œ ์ „ํˆฌ ๋ณด๋„ˆ์Šค๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&e์ฃผ๋จน์œผ๋กœ ๋ชน์ด๋‚˜ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๊ฐ€ํ•œ ๋ฐ๋ฏธ์ง€ ์–‘์— ๋”ฐ๋ผ XP๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค. +Guides.Unarmed.Section.1=&3๊ด‘๋ถ„์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e๊ด‘๋ถ„์€ ์šฐํด๋ฆญ์œผ๋กœ ํ™œ์„ฑํ™”๋˜๋Š” ์•กํ‹ฐ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ๊ด‘๋ถ„ ๋ชจ๋“œ์—์„œ๋Š” 50% ๋” ๋งŽ์€\n&eํ”ผํ•ด ๋ฅผ ๊ฐ€ํ•˜๊ณ , ํ™๊ณผ ํ’€๊ณผ ๊ฐ™์€ ์•ฝํ•œ ์žฌ๋ฃŒ๋ฅผ ์ฆ‰์‹œ ๋ถ€์ˆ  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Guides.Unarmed.Section.2=&3์ฒ  ํŒ” ์Šคํƒ€์ผ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ฒ  ํŒ” ์Šคํƒ€์ผ์€ ์ฃผ๋จน์œผ๋กœ ๋ชน์ด๋‚˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋•Œ๋ฆด ๋•Œ ๊ฐ€ํ•˜๋Š” ํ”ผํ•ด๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Guides.Unarmed.Section.3=&3ํ™”์‚ด ๋ฐ˜์‚ฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํ™”์‚ด ๋ฐ˜์‚ฌ๋Š” ์Šค์ผˆ๋ ˆํ†ค์ด๋‚˜ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฐœ์‚ฌํ•œ ํ™”์‚ด์„ ๋ฐ˜์‚ฌํ•  ๊ธฐํšŒ๋ฅผ ์ฃผ๋Š” ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.\n&eํ™”์‚ด์€ ์œ„ํ—˜ํ•˜๊ฒŒ ๋•…์— ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. +Guides.Unarmed.Section.4=&3์ฒ ์ œ ๊ทธ๋ฆฝ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ฒ ์ œ ๊ทธ๋ฆฝ์€ ๋ฌด์žฅํ•ด์ œ์„ ์นด์šดํ„ฐํ•˜๋Š” ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ๋ฌด์žฅ ๋ ˆ๋ฒจ์ด ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ๋ฌด์žฅํ•ด์ œ์„\n&e๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐํšŒ๊ฐ€ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. +Guides.Unarmed.Section.5=&3๋ฌด์žฅ ํ•ด์ œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฌด์žฅํ•ด์ œํ•˜์—ฌ ๋Œ€์ƒ์˜ ์žฅ๋น„๊ฐ€ ๋•…์— ๋–จ์–ด์ง€๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. +##๋ฒŒ๋ชฉ +Guides.Woodcutting.Section.0=&3๋‚˜๋ฌด๊พผ์— ๊ด€ํ•˜์—ฌ:\n&e๋‚˜๋ฌด๊พผ์€ ๋‚˜๋ฌด๋ฅผ ๋ฒ ๋Š” ๋ฐ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.\n\n&3XP ํš๋“:\n&e๋„ค๋ชจ๋‚œ ๋ธ”๋ก์„ ๋ถ€์ˆ  ๋•Œ๋งˆ๋‹ค XP๊ฐ€ ํš๋“๋ฉ๋‹ˆ๋‹ค. +Guides.Woodcutting.Section.1=&3ํŠธ๋ฆฌ ํŽ ๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&eํŠธ๋ฆฌ ํŽ ๋Ÿฌ๋Š” ์•กํ‹ฐ๋ธŒ ๋Šฅ๋ ฅ์œผ๋กœ, ๋„๋ผ๋ฅผ ๋“ค๊ณ  ์šฐํด๋ฆญํ•˜์—ฌ ํŠธ๋ฆฌ ํŽ ๋Ÿฌ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n&ee์ „์ฒด ํŠธ๋ฆฌ๋ฅผ ์ฆ‰์‹œ ๋ถ€์ˆ˜๊ณ  ๋ชจ๋“  ๋‚˜๋ฌด๋ฅผ ํ•œ ๋ฒˆ์— ๋“œ๋žํ•ฉ๋‹ˆ๋‹ค. +Guides.Woodcutting.Section.2=&3์žŽ ๋ธ”๋กœ์–ด๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์žŽ ๋ธ”๋กœ์–ด๋Š” ๋„๋ผ๋กœ ๋งž์„ ๋•Œ ์žŽ ๋ธ”๋ก์ด ์ฆ‰์‹œ ๋ถ€์„œ์ง€๋„๋ก ํ•˜๋Š” ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.\n&e๊ธฐ๋ณธ์œผ๋กœ ์ด ๋Šฅ๋ ฅ์€ ๋ ˆ๋ฒจ 100์—์„œ ์ž ๊ธˆ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. +Guides.Woodcutting.Section.3=&3๋”๋ธ” ๋“œ๋กญ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€?\n&e์ด ํŒจ์‹œ๋ธŒ ๋Šฅ๋ ฅ์€ ๋ฒ ์–ด ๋‚˜๋ฌด๋งˆ๋‹ค ์ถ”๊ฐ€ ๋ธ”๋ก์„ ์–ป์„ ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +#๊ฒ€์‚ฌ +Inspect.Offline= &c์˜คํ”„๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ™•์ธํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค! +Inspect.OfflineStats=์˜คํ”„๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด &e{0}์˜ mcMMO ํ†ต๊ณ„ +Inspect.Stats=&a{0}์˜ mcMMO ํ†ต๊ณ„ +Inspect.TooFar=ํ•ด๋‹น ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ™•์ธํ•˜๊ธฐ์— ๋„ˆ๋ฌด ๋ฉ€๋ฆฌ ์žˆ์Šต๋‹ˆ๋‹ค! +#์•„์ดํ…œ +Item.ChimaeraWing.Fail=&c**์นด์ด๋ฉ”๋ผ ๋‚ ๊ฐœ ์‹คํŒจ!** +Item.ChimaeraWing.Pass=**์นด์ด๋ฉ”๋ผ ๋‚ ๊ฐœ** +Item.ChimaeraWing.Name=์นด์ด๋ฉ”๋ผ ๋‚ ๊ฐœ +Item.ChimaeraWing.Lore=&7์นจ๋Œ€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. +Item.ChimaeraWing.NotEnough= &e{1}&c์ด(๊ฐ€) ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค! {0}๊ฐœ +Item.NotEnough= &e{1}&c์ด(๊ฐ€) ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค! {0}๊ฐœ +Item.Generic.Wait=๋‹ค์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค! &e({0}์ดˆ) +Item.Injured.Wait=์ตœ๊ทผ์— ๋ถ€์ƒ๋‹นํ–ˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. &e({0}์ดˆ) +Item.FluxPickaxe.Name=ํ”Œ๋Ÿญ์Šค ๊ณก๊ดญ์ด +Item.FluxPickaxe.Lore.1=&7๊ด‘๋ฌผ์„ ์ฆ‰์‹œ ์ œ๋ จํ•˜๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. +Item.FluxPickaxe.Lore.2=&7์ œ๋ จ ๋ ˆ๋ฒจ {0} ์ด์ƒ ํ•„์š” +#ํ…”๋ ˆํฌํŠธ +Teleport.Commencing=&7ํ…”๋ ˆํฌํŠธ ์‹œ์ž‘ &6({0}์ดˆ), &7์ œ์ž๋ฆฌ์— ์„œ์‹ญ์‹œ์˜ค... Teleport.Cancelled=&4ํ…”๋ ˆํฌํŠธ ์ทจ์†Œ๋จ! - -#SKILLS -Skills.Child=&6(๋ถ€๊ฐ€ ์Šคํ‚ฌ) -Skills.Disarmed=&4๋‹น์‹ ์€ ๋ฌด์žฅ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! -Skills.Header=-----[]&a{0}&c[]----- -Skills.NeedMore=&4๋‹น์‹ ์€ &7{0}&4๊ฐ€ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค -Skills.NeedMore.Extra=&4๋‹น์‹ ์€ &7{0}{1}๊ฐ€ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค -Skills.Parents = ์ƒ์œ„ ์†์„ฑ๋“ค -Skills.MaxXP=์ตœ๋Œ€ XP +#์Šคํ‚ฌ +Skills.Child=&6(ํ•˜์œ„ ์Šคํ‚ฌ) +Skills.Disarmed=&4๋ฌด์žฅ์ด ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Skills.Header=-----[] &a{0}&c []----- +Skills.NeedMore=&4{0}๋ฅผ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค +Skills.NeedMore.Extra=&4{0}{1}๋ฅผ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค +Skills.Parents= ์ƒ์œ„ ์Šคํ‚ฌ 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 +Skills.MaxXP=์ตœ๋Œ€ +Skills.TooTired=๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋„ˆ๋ฌด ํ”ผ๊ณคํ•ฉ๋‹ˆ๋‹ค. &e({0}์ดˆ) +Skills.TooTired.Named=&7(&6{0}&e ์ดˆ&7) +Skills.TooTired.Extra=&6{0} &e์Šˆํผ ๋Šฅ๋ ฅ ๋Œ€๊ธฐ์‹œ๊ฐ„ - {1} +Skills.Cancelled=&6{0} &c์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +Skills.ConfirmOrCancel=&a๋‹ค์‹œ ์˜ค๋ฅธ์ชฝ ํด๋ฆญํ•˜์—ฌ &6{0}&a ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์™ผ์ชฝ ํด๋ฆญํ•˜์—ฌ ์ทจ์†Œํ•˜์‹ญ์‹œ์˜ค. +Skills.AbilityGateRequirementFail=&7์ด ์Šˆํผ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด &3{1}&7 ๋ ˆ๋ฒจ์ด ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +#ํ†ต๊ณ„ Stats.Header.Combat=&6-=์ „ํˆฌ ์Šคํ‚ฌ=- -Stats.Header.Gathering=&6-=์ˆ˜์ง‘ ์Šคํ‚ฌ=- +Stats.Header.Gathering=&6-=์ฑ„์ง‘ ์Šคํ‚ฌ=- Stats.Header.Misc=&6-=๊ธฐํƒ€ ์Šคํ‚ฌ=- -Stats.Own.Stats=&a[mcMMO] ์Šคํ…Ÿ - -#PERKS +Stats.Own.Stats=&a[mcMMO] ํ†ต๊ณ„ +#ํŠน์ „ Perks.XP.Name=๊ฒฝํ—˜์น˜ -Perks.XP.Desc=ํŠน์ • ์Šคํ‚ฌ์— ๊ฒฝํ—˜์น˜ ๋ถ€์ŠคํŠธ๋ฅผ ๋ฐ›์Œ. +Perks.XP.Desc=ํŠน์ • ์Šคํ‚ฌ์—์„œ ๋ถ€์ŠคํŠธ๋œ XP๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. Perks.Lucky.Name=ํ–‰์šด -Perks.Lucky.Desc={0} ์Šคํ‚ฌ๊ณผ ๋Šฅ๋ ฅ์— 33.3%์˜ ๋” ๋งŽ์€ ํ™œ์„ฑํ™” ํ™•๋ฅ ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. -Perks.Lucky.Desc.Login=ํŠน์ • ์Šคํ‚ฌ๊ณผ ๋Šฅ๋ ฅ์— 33.3%์˜ ๋” ๋งŽ์€ ํ™œ์„ฑํ™” ํ™•๋ฅ ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. -Perks.Lucky.Bonus=&6 ({0} ์šด์ข‹์€ ํŠน์ „๊ณผ ํ•จ๊ป˜) +Perks.Lucky.Desc={0} ์Šคํ‚ฌ๊ณผ ๋Šฅ๋ ฅ์ด 33.3% ๋” ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. +Perks.Lucky.Desc.Login=ํŠน์ • ์Šคํ‚ฌ๊ณผ ๋Šฅ๋ ฅ์ด 33.3% ๋” ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. +Perks.Lucky.Bonus=&6 (ํ–‰์šด ํŠน์ „์œผ๋กœ {0}) Perks.Cooldowns.Name=๋น ๋ฅธ ํšŒ๋ณต -Perks.Cooldowns.Desc=์žฌ์‚ฌ์šฉ๋Œ€๊ธฐ์‹œ๊ฐ„์„ {0}๋งŒํผ ์ค„์ž…๋‹ˆ๋‹ค -Perks.ActivationTime.Name=์ธ๋‚ด๋ ฅ -Perks.ActivationTime.Desc=๋Šฅ๋ ฅ ํ™œ์„ฑ ์‹œ๊ฐ„์ด {0}์ดˆ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. -Perks.ActivationTime.Bonus=&6 ({0}์ดˆ์˜ ์ธ๋‚ด๋ ฅ ํŠน์ „) - -#HARDCORE -Hardcore.Mode.Disabled=&6[mcMMO] ํ•˜๋“œ์ฝ”์–ด ๋ชจ๋“œ {0}๊ฐ€ {1}์— ๋น„ํ™œ์„ฑํ™”๋จ. -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.Killer.Success=&6[mcMMO] &3๋‹น์‹ ์€ &e{1}&3๋‹˜์œผ๋กœ๋ถ€ํ„ฐ &9{0}&3 ๋ ˆ๋ฒจ์„ ํ›”์ณค์Šต๋‹ˆ๋‹ค. -Hardcore.Vampirism.Victim.Failure=&6[mcMMO] &e{0}&7๋‹˜์€ ๋‹น์‹ ์˜ ์ง€์‹์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค! -Hardcore.Vampirism.Victim.Success=&6[mcMMO] &e{0}&4๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ์„œ &9{1}&4 ๋ ˆ๋ฒจ์„ ํ›”์ณ๊ฐ”์Šต๋‹ˆ๋‹ค! - +Perks.Cooldowns.Desc=์ฟจ๋‹ค์šด ๊ธฐ๊ฐ„์„ {0} ๋งŒํผ ์ค„์ž…๋‹ˆ๋‹ค. +Perks.ActivationTime.Name=์ง€์†๋ ฅ +Perks.ActivationTime.Desc=๋Šฅ๋ ฅ ํ™œ์„ฑํ™” ์‹œ๊ฐ„์„ {0}์ดˆ๋กœ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Perks.ActivationTime.Bonus=&6 ({0}์ดˆ์˜ ์ง€์†๋ ฅ ํŠน์ „) +#ํ•˜๋“œ์ฝ”์–ด +Hardcore.Mode.Disabled=&6[mcMMO] ํ•˜๋“œ์ฝ”์–ด ๋ชจ๋“œ {0}์ด(๊ฐ€) {1}์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Hardcore.Mode.Enabled=&6[mcMMO] ํ•˜๋“œ์ฝ”์–ด ๋ชจ๋“œ {0}์ด(๊ฐ€) {1}์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Hardcore.DeathStatLoss.Name=์Šคํ‚ฌ ์‚ฌ๋ง ํŽ˜๋„ํ‹ฐ +Hardcore.DeathStatLoss.PlayerDeath=&6[mcMMO] &4์ฃฝ์Œ์œผ๋กœ ์ธํ•ด &9{0} ๋ ˆ๋ฒจ์ด ์†์‹ค๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Hardcore.DeathStatLoss.PercentageChanged=&6[mcMMO] ํŽ˜๋„ํ‹ฐ ์†์‹ค ๋น„์œจ์ด {0}๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Hardcore.Vampirism.Name=ํกํ˜ˆ +Hardcore.Vampirism.Killer.Failure=&6[mcMMO] &e{0}&7๋‹˜์€ ์ง€์‹์„ ํ›”์น˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋ฏธ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. +Hardcore.Vampirism.Killer.Success=&6[mcMMO] &3๋‹น์‹ ์€ &e{1} &9{0} ๋ ˆ๋ฒจ์„ ํ›”์ณค์Šต๋‹ˆ๋‹ค. +Hardcore.Vampirism.Victim.Failure=&6[mcMMO] &e{0}&7๋‹˜์ด ๋‹น์‹ ์œผ๋กœ๋ถ€ํ„ฐ ์ง€์‹์„ ํ›”์น˜๋Š” ๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค! +Hardcore.Vampirism.Victim.Success=&6[mcMMO] &e{0}&4๋‹˜์ด ๋‹น์‹ ์œผ๋กœ๋ถ€ํ„ฐ &9{1} ๋ ˆ๋ฒจ์„ ํ›”์ณค์Šต๋‹ˆ๋‹ค! +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.PerksPrefix=[mcMMO ํŠน์ „] -MOTD.Version=&6[mcMMO] ๊ตฌ๋™์ค‘์ธ ๋ฒ„์ „ &3{0} +MOTD.Hardcore.DeathStatLoss.Stats=&6[mcMMO] &3์Šคํ‚ฌ ์‚ฌ๋ง ํŽ˜๋„ํ‹ฐ: &4{0}% +MOTD.Hardcore.Vampirism.Stats=&6[mcMMO] &3ํกํ˜ˆ ์Šคํƒฏ ํก์ˆ˜: &4{0}% +MOTD.PerksPrefix=&6[mcMMO ํŠน์ „] +MOTD.Version=&6[mcMMO] ๋ฒ„์ „ &3{0} ์‹คํ–‰ ์ค‘ MOTD.Website=&6[mcMMO] &a{0}&e - mcMMO ์›น์‚ฌ์ดํŠธ - -#SMELTING -Smelting.Ability.FluxMining=์œ ๋™ ์ฑ„๊ตด ํ™•๋ฅ : &e{0} -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.UnderstandingTheArt.Name=์˜ˆ์ˆ ์˜ ์ดํ•ด -Smelting.SubSkill.UnderstandingTheArt.Description=์•„๋งˆ๋„ ๋™๊ตด์—์„œ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ณ  ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.\n์ œ๋ จ์˜ ๋‹ค์–‘ํ•œ ์†์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. -Smelting.SubSkill.UnderstandingTheArt.Stat=๋ฐ”๋‹๋ผ XP ๋ฐฐ์œจ: &e{0}๋ฐฐ +#์ œ๋ จ +Smelting.SubSkill.UnderstandingTheArt.Name=Understanding The Art +Smelting.SubSkill.UnderstandingTheArt.Description=์•„๋งˆ๋„ ๋™๊ตด์—์„œ ์ œ๋ จํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.\n์ œ๋ จ์˜ ๋‹ค์–‘ํ•œ ์†์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. +Smelting.SubSkill.UnderstandingTheArt.Stat=๋ฐ”๋‹๋ผ ๊ฒฝํ—˜์น˜ ๋ฐฐ์œจ: &e{0}๋ฐฐ +Smelting.Ability.Locked.0={0}+ ์Šคํ‚ฌ๊นŒ์ง€ ์ž ๊น€ (๋ฐ”๋‹๋ผ XP ๋ถ€์ŠคํŠธ) +Smelting.Ability.Locked.1={0}+ ์Šคํ‚ฌ๊นŒ์ง€ ์ž ๊น€ (ํ”Œ๋Ÿญ์Šค ๊ด‘์‚ฐ) Smelting.SubSkill.FuelEfficiency.Name=์—ฐ๋ฃŒ ํšจ์œจ์„ฑ +Smelting.SubSkill.FuelEfficiency.Description=์ œ๋ จํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ™”๋กœ ์—ฐ๋ฃŒ์˜ ์—ฐ์†Œ ์‹œ๊ฐ„์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. Smelting.SubSkill.FuelEfficiency.Stat=์—ฐ๋ฃŒ ํšจ์œจ์„ฑ ๋ฐฐ์œจ: &e{0}๋ฐฐ -Smelting.SubSkill.FuelEfficiency.Description=ํ™”๋กœ์—์„œ ์žฌ๋ จ์‹œ ์—ฐ๋ฃŒ ์—ฐ์†Œ ์‹œ๊ฐ„ ์ฆ๊ฐ€ -Smelting.SubSkill.SecondSmelt.Name=๋‘ ๋ฒˆ์งธ ์ œ๋ จ -Smelting.SubSkill.SecondSmelt.Description=์ œ๋ จ์‹œ ์–ป๋Š” ์ž์› 2๋ฐฐ -Smelting.SubSkill.SecondSmelt.Stat=๋‘ ๋ฒˆ์งธ ์žฌ๋ จ ํ™•๋ฅ  +Smelting.SubSkill.SecondSmelt.Name=์ด์ค‘ ์ œ๋ จ +Smelting.SubSkill.SecondSmelt.Description=์ œ๋ จ์œผ๋กœ ์–ป์€ ์ž์›์„ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. +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.Effect.5=์ œ๋ จ ์‹œ ์–ป๋Š” ๋ฐ”๋‹๋ผ XP๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. +Smelting.SubSkill.FluxMining.Name=ํ”Œ๋Ÿญ์Šค ๊ด‘์‚ฐ +Smelting.SubSkill.FluxMining.Description=๊ด‘๋ฌผ์ด ์ฑ„๊ตด๋˜๋Š” ๋™์•ˆ ์ฆ‰์‹œ ์ œ๋ จ๋˜๋Š” ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. +Smelting.SubSkill.FluxMining.Stat=ํ”Œ๋Ÿญ์Šค ๊ด‘์‚ฐ ํ™•๋ฅ  +Smelting.Listener=์ œ๋ จ: Smelting.SkillName=์ œ๋ จ - - -#COMMAND DESCRIPTIONS -Commands.Description.addlevels=mcMMO ๋ ˆ๋ฒจ์„ ์œ ์ €์—๊ฒŒ ์ถ”๊ฐ€ -Commands.Description.adminchat=mcMMO ๊ด€๋ฆฌ์ž ์ฑ„ํŒ… ์ผœ๊ธฐ/๋„๊ธฐ๋‚˜ ๊ด€๋ฆฌ์ž ์ฑ„ํŒ… ๋ฉ”์„ธ์ง€ ๋ณด๋‚ด๊ธฐ -Commands.Description.addxp=mcMMO ๊ฒฝํ—˜์น˜๋ฅผ ์œ ์ €์—๊ฒŒ ์ถ”๊ฐ€ -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 ์ œ์ž‘์ž ์„ค๋ช… ๋ณด๊ธฐ -Commands.Description.mcnotify=mcMMO ๋Šฅ๋ ฅ ์ฑ„ํŒ… ์•Œ๋ฆผ ๋ณด๊ธฐ ์ผœ๊ธฐ/๋„๊ธฐ -Commands.Description.mcpurge={0} ๋‹ฌ ์ด์ƒ ์ ‘์†์•ˆํ•œ ์œ ์ €์˜ mcMMO ๋ ˆ๋ฒจ๊ณผ ์œ ์ €๋ฅผ mcMMO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ดˆ๊ธฐํ™”์‹œํ‚ด -Commands.Description.mcrank=ํ”Œ๋ ˆ์ด์–ด mcMMO ์ˆœ์œ„ ๋ณด๊ธฐ -Commands.Description.mcrefresh=๋ชจ๋“  mcMMO ์ฟจ๋‹ค์šด ์ดˆ๊ธฐํ™” -Commands.Description.mcremove=์œ ์ € mcMMO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ -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์™€ ํ•จ๊ป˜ ์“ฐ์ž…๋‹ˆ๋‹ค) -Commands.Description.party=๋‹ค์–‘ํ•œ mcMMO ํŒŒํ‹ฐ ์„ค์ • ๊ด€๋ฆฌ -Commands.Description.partychat=mcMMO ํŒŒํ‹ฐ ์ฑ„ํŒ… ์ผœ๊ธฐ/๋„๊ธฐ๋‚˜ ํŒŒํ‹ฐ ์ฑ„ํŒ… ๋ฉ”์„ธ์ง€ ๋ณด๋‚ด๊ธฐ -Commands.Description.ptp=mcMMO ํŒŒํ‹ฐ ๋งด๋ฒ„ ํ…”๋ ˆํฌํŠธ -Commands.Description.Skill=mcMMO ๊ธฐ์ˆ  {0}์˜ ์ž์„ธํ•œ ์ •๋ณด ๋ณด๊ธฐ -Commands.Description.skillreset=์œ ์ €์˜ 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=์‹  ๋ฒ„์ „์ด Spigot์— ์—…๋กœ๋“œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. - -#SCOREBOARD HEADERS -Scoreboard.Header.PlayerStats=mcMMO ์Šคํ…Ÿ -Scoreboard.Header.PlayerCooldowns=mcMMO ์žฌ ์‚ฌ์šฉ ๋Œ€๊ธฐ์‹œ๊ฐ„ -Scoreboard.Header.PlayerRank=mcMMO ์ˆœ์œ„ -Scoreboard.Header.PlayerInspect=mcMMO ์Šคํ…Ÿ: -Scoreboard.Header.PowerLevel=์ด ๋ ˆ๋ฒจ -Scoreboard.Misc.PowerLevel=&6์ด ๋ ˆ๋ฒจ +#๋ช…๋ น์–ด ์„ค๋ช… +Commands.Description.addlevels=์‚ฌ์šฉ์ž์—๊ฒŒ mcMMO ๋ ˆ๋ฒจ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.adminchat=mcMMO ๊ด€๋ฆฌ์ž ์ฑ„ํŒ…์„ ์ผœ๊ฑฐ๋‚˜ ๋•๋‹ˆ๋‹ค. ๋˜๋Š” ๊ด€๋ฆฌ์ž ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. +Commands.Description.addxp=์‚ฌ์šฉ์ž์—๊ฒŒ mcMMO XP๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +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์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcnotify=mcMMO ๋Šฅ๋ ฅ ์ฑ„ํŒ… ํ‘œ์‹œ ์•Œ๋ฆผ์„ ์ผœ๊ฑฐ๋‚˜ ๋•๋‹ˆ๋‹ค. +Commands.Description.mcpurge=mcMMO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ mcMMO ๋ ˆ๋ฒจ์ด ์—†๊ฑฐ๋‚˜ ์ง€์ •๋œ ๊ฐœ์›” ๋™์•ˆ ์ ‘์†ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcrank=ํ”Œ๋ ˆ์ด์–ด์˜ mcMMO ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcrefresh=mcMMO์˜ ๋ชจ๋“  ์ฟจ๋‹ค์šด์„ ์ƒˆ๋กœ ๊ณ ์นฉ๋‹ˆ๋‹ค. +Commands.Description.mcremove=์‚ฌ์šฉ์ž๋ฅผ mcMMO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcscoreboard=mcMMO ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcstats=์‚ฌ์šฉ์ž์˜ mcMMO ๋ ˆ๋ฒจ๊ณผ XP๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mctop=mcMMO ๋ฆฌ๋”๋ณด๋“œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mmoedit=์‚ฌ์šฉ์ž์˜ mcMMO ๋ ˆ๋ฒจ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mmodebug=๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋ฅผ ํ† ๊ธ€ํ•˜์—ฌ ๋ธ”๋ก์„ ํƒญํ•  ๋•Œ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mmoupdate=์ด์ „ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ mcMMO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mcconvert=๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์ด๋‚˜ ๊ฒฝํ—˜์น˜ ๊ณต์‹ ์œ ํ˜•์„ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.mmoshowdb=ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์˜ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (/mmoupdate์—์„œ ์‚ฌ์šฉ๋จ). +Commands.Description.party=๋‹ค์–‘ํ•œ mcMMO ํŒŒํ‹ฐ ์„ค์ •์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.partychat=mcMMO ํŒŒํ‹ฐ ์ฑ„ํŒ…์„ ์ผœ๊ฑฐ๋‚˜ ๋•๋‹ˆ๋‹ค. ๋˜๋Š” ํŒŒํ‹ฐ ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. +Commands.Description.ptp=mcMMO ํŒŒํ‹ฐ ๋ฉค๋ฒ„๋กœ ํ…”๋ ˆํฌํŠธํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.Skill={0}์— ๋Œ€ํ•œ ์ž์„ธํ•œ mcMMO ์Šคํ‚ฌ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.skillreset=์‚ฌ์šฉ์ž์˜ mcMMO ๋ ˆ๋ฒจ์„ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. +Commands.Description.vampirism=mcMMO ํกํ˜ˆ ๋ฐฑ๋ถ„์œจ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํกํ˜ˆ ๋ชจ๋“œ๋ฅผ ์ผœ๊ฑฐ๋‚˜ ๋•๋‹ˆ๋‹ค. +Commands.Description.xplock=mcMMO XP ๋ฐ”๋ฅผ ํŠน์ • mcMMO ์Šคํ‚ฌ์— ์ž ๊ธ‰๋‹ˆ๋‹ค. +Commands.Description.xprate=mcMMO XP ๋น„์œจ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ mcMMO XP ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. +#์—…๋ฐ์ดํŠธ ์ฒดํฌ +UpdateChecker.Outdated=์‚ฌ์šฉ ์ค‘์ธ mcMMO ๋ฒ„์ „์ด ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +UpdateChecker.NewAvailable=Spigot์—์„œ ์ƒˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +#์Šค์ฝ”์–ด๋ณด๋“œ ํ—ค๋” +Scoreboard.Header.PlayerStats=&emcMMO ํ†ต๊ณ„ +Scoreboard.Header.PlayerCooldowns=&emcMMO ์ฟจ๋‹ค์šด +Scoreboard.Header.PlayerRank=&emcMMO ์ˆœ์œ„ +Scoreboard.Header.PlayerInspect=&emcMMO ํ†ต๊ณ„: {0} +Scoreboard.Header.PowerLevel=&cํŒŒ์›Œ ๋ ˆ๋ฒจ +Scoreboard.Misc.PowerLevel=&6ํŒŒ์›Œ ๋ ˆ๋ฒจ Scoreboard.Misc.Level=&3๋ ˆ๋ฒจ Scoreboard.Misc.CurrentXP=&aํ˜„์žฌ XP -Scoreboard.Misc.RemainingXP=๋‚จ์€ XP -Scoreboard.Misc.Cooldown=&d์žฌ ์‚ฌ์šฉ ๋Œ€๊ธฐ์‹œ๊ฐ„ -Scoreboard.Misc.Overall=&6์ข…ํ•ฉ +Scoreboard.Misc.RemainingXP=&e๋‚จ์€ XP +Scoreboard.Misc.Cooldown=&d์ฟจ๋‹ค์šด +Scoreboard.Misc.Overall=&6์ „์ฒด Scoreboard.Misc.Ability=๋Šฅ๋ ฅ - -#DATABASE RECOVERY -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๋‹น์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜๋ฅผ ๊ฒ€์‚ฌํ•ด์ฃผ์„ธ์š”. -Profile.Loading.FailurePlayer=mcMMO๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๋“œ ์‹œ๋„ ํšŸ์ˆ˜: {0}ํšŒ. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์€ ๋™์•ˆ XP๋ฅผ ํš๋“ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -Profile.Loading.FailureNotice=&4[A]&c mcMMO๋Š” &e{0}&c ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. &d๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํ˜„์žฌ๊นŒ์ง€ ์‹œ๋„ํ•œ ํšŸ์ˆ˜: {1}. -Commands.XPBar.Usage=์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•: /mmoxpbar <์Šคํ‚ฌ๋ช… | reset> -Commands.Description.mmoxpbar=mcMMO XP ๋ฐ”์— ๋Œ€ํ•œ ํ”Œ๋ ˆ์ด์–ด ์„ค์ • -Commands.Description.mmocompat=mcMMO์˜ ํ˜ธํ™˜ ๋ชจ๋“œ ๋˜๋Š” ์™„์ „ํ•œ ๊ธฐ๋Šฅ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์ •๋ณด - +#๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ +Profile.PendingLoad=&c๋‹น์‹ ์˜ mcMMO ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ง๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +Profile.Loading.Success=&a๋‹น์‹ ์˜ mcMMO ํ”„๋กœํ•„์ด ๋กœ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +Profile.Loading.FailurePlayer=&cmcMMO๋Š” ๋ฐ์ดํ„ฐ๋กœ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” &a{0}๋ฒˆ&c ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. &c์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. mcMMO๋Š” ๋ฐ์ดํ„ฐ๊ฐ€๋กœ๋“œ๋˜์ง€ ์•Š์€ ๋™์•ˆ XP๋ฅผ ํš๋“ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Profile.Loading.FailureNotice=&4[A]&c mcMMO๊ฐ€ &e{0}&c์˜ ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฅผ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. &d๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ง€๊ธˆ๊นŒ์ง€ ์‹œ๋„ํ•œ ์‹œ๋„ {1}. #Holiday -Holiday.AprilFools.Levelup=&6{0}์€(๋Š”) ์ด์ œ &a{1}&6๋ ˆ๋ฒจ์ž…๋‹ˆ๋‹ค! -Holiday.Anniversary=&9{0}์ฃผ๋…„์„ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!\n&9nossr50์˜ ๋ชจ๋“  ์ž‘์—…๊ณผ ๊ฐœ๋ฐœ์ž๋“ค์„ ๊ธฐ๋ฆฌ๊ธฐ ์œ„ํ•ด ๋ถˆ๊ฝƒ์‡ผ๋ฅผ ์„ ๋ฌผํ•ฉ๋‹ˆ๋‹ค! - +Holiday.AprilFools.Levelup=&6{0}๋‹˜์ด ์ด์ œ ๋ ˆ๋ฒจ &a{1}&6์ž…๋‹ˆ๋‹ค! +Holiday.Anniversary=&9{0}์ฃผ๋…„์„ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!\n&9๋ชจ๋“  nossr50์˜ ์ž‘์—…๊ณผ ๊ฐœ๋ฐœ์ž๋“ค์„ ๊ธฐ๋…ํ•˜์—ฌ ๋ถˆ๊ฝƒ๋†€์ด๋ฅผ ์—ฌ๊ธฐ์— ์„ ์‚ฌํ•ฉ๋‹ˆ๋‹ค! #Reminder Messages -Reminder.Squelched=&7์•Œ๋ฆผ: ํ˜„์žฌ mcMMO๋กœ๋ถ€ํ„ฐ ์•Œ๋ฆผ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์‹œ /mcnotify ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ž๋™์œผ๋กœ ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค ์•Œ๋ฆผ์ด ์ „์†ก๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. - +Reminder.Squelched=&7๋ฆฌ๋งˆ์ธ๋”: ๋‹น์‹ ์€ ํ˜„์žฌ mcMMO๋กœ๋ถ€ํ„ฐ ์•Œ๋ฆผ์„๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์„ ๋ฐ›์œผ๋ ค๋ฉด ๋‹ค์‹œ /mcnotify ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ž๋™์œผ๋กœ ์‹œ๊ฐ„๋‹น ์•Œ๋ฆผ์ž…๋‹ˆ๋‹ค. #Locale -Locale.Reloaded=&a๋ฒˆ์—ญ์„ ๋ฆฌ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค! - +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> +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 <๊ธฐ์ˆ ๋ช… | ์žฌ์„ค์ •> <ํ‘œ์‹œ | ์ˆจ๊ธฐ๊ธฐ> ์ž…๋‹ˆ๋‹ค. 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์„ ์‚ฌ์šฉํ•˜์„ธ์š”. - +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 ์žฌ์„ค์ •์„ ์‚ฌ์šฉํ•˜์„ธ์š”. #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.Channel.On=&6(&amcMMO-์ฑ„ํŒ…&6) &e๋‹น์‹ ์˜ ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๋Š” ์ด์ œ &a{0}&e ์ฑ„๋„๋กœ ์ž๋™ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. +Chat.Channel.Off=&6(&amcMMO-์ฑ„ํŒ…&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 ์ ์ˆ˜ํŒ์ด ์•„์ง ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ๋„ํ•ด๋ณด์„ธ์š”. +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 ์Šค์ฝ”์–ด๋ณด๋“œ๊ฐ€ ์•„์ง ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. From 7da8c8c83a8832f2299ca6f341fcba8ab0b0de37 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sat, 9 Mar 2024 21:16:59 -0800 Subject: [PATCH 10/11] 2.1.231 --- Changelog.txt | 5 + pom.xml | 2 +- .../gmail/nossr50/party/PartyManagerTest.java | 98 +++++++++++++++++++ 3 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/gmail/nossr50/party/PartyManagerTest.java diff --git a/Changelog.txt b/Changelog.txt index 99528ae53..f64a0f576 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,8 @@ +Version 2.1.231 + Fixed a bug preventing parties from being made without passwords (Thanks Momshroom) + Updated korean locale (thanks mangchi57) + Added some unit tests for party creation + Version 2.1.230 Fixed an error that could happen when mcMMO was saving when parties were disabled by party.yml (thanks IAISI & L4BORG) Fixed several exceptions when checking PVP damage when parties were disabled by party.yml (thanks IAISI & L4BORG) diff --git a/pom.xml b/pom.xml index 02f35f1ba..61f6317bb 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.230 + 2.1.231 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java b/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java new file mode 100644 index 000000000..bd4e2d629 --- /dev/null +++ b/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java @@ -0,0 +1,98 @@ +package com.gmail.nossr50.party; + +import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; +import org.bukkit.Server; +import org.bukkit.entity.Player; +import org.bukkit.plugin.PluginManager; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.*; + +class PartyManagerTest { + + static mcMMO mockMcMMO; + + @BeforeAll + public static void setup() { + // create a static stub for LocaleLoader.class + mockStatic(LocaleLoader.class); + when(LocaleLoader.getString(anyString())).thenReturn(""); + + mockMcMMO = mock(mcMMO.class); + final Server mockServer = mock(Server.class); + when(mockMcMMO.getServer()).thenReturn(mockServer); + when(mockServer.getPluginManager()).thenReturn(mock(PluginManager.class)); + + // TODO: Add cleanup for static mock + } + + @Test + public void createPartyWithoutPasswordShouldSucceed() { + // Given + PartyManager partyManager = new PartyManager(mockMcMMO); + String partyName = "TestParty"; + + // TODO: Update this with utils from the other dev branches in the future + Player player = mock(Player.class); + McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); + when(mmoPlayer.getPlayer()).thenReturn(player); + when(player.getUniqueId()).thenReturn(new UUID(0, 0)); + + // When & Then + partyManager.createParty(mmoPlayer, partyName, null); + } + + @Test + public void createPartyWithPasswordShouldSucceed() { + // Given + PartyManager partyManager = new PartyManager(mockMcMMO); + String partyName = "TestParty"; + String partyPassword = "somePassword"; + + // TODO: Update this with utils from the other dev branches in the future + Player player = mock(Player.class); + McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); + when(mmoPlayer.getPlayer()).thenReturn(player); + when(player.getUniqueId()).thenReturn(new UUID(0, 0)); + + // When & Then + partyManager.createParty(mmoPlayer, partyName, partyPassword); + } + + @Test + public void createPartyWithoutNameShouldFail() { + // Given + PartyManager partyManager = new PartyManager(mockMcMMO); + String partyPassword = "somePassword"; + + // TODO: Update this with utils from the other dev branches in the future + Player player = mock(Player.class); + McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); + when(mmoPlayer.getPlayer()).thenReturn(player); + when(player.getUniqueId()).thenReturn(new UUID(0, 0)); + + // When & Then + assertThrows(NullPointerException.class, + () -> partyManager.createParty(mmoPlayer, null, partyPassword)); + } + + @Test + public void createPartyWithoutPlayerShouldFail() { + // Given + PartyManager partyManager = new PartyManager(mockMcMMO); + String partyName = "TestParty"; + String partyPassword = "somePassword"; + + // When & Then + assertThrows(NullPointerException.class, + () -> partyManager.createParty(null, partyName, partyPassword)); + } + +} \ No newline at end of file From 04ed2a47d40bd2a5674af5dfb8da4e338d70ef46 Mon Sep 17 00:00:00 2001 From: Lorenzo Cardinali Date: Mon, 11 Mar 2024 02:59:15 +0100 Subject: [PATCH 11/11] Fixed import errors related to Alchemy data in AdvancedConfig (#4983) --- src/main/java/com/gmail/nossr50/config/AdvancedConfig.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index 04cca138a..bf985453c 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -627,7 +627,11 @@ public class AdvancedConfig extends BukkitConfig { /* ALCHEMY */ public int getCatalysisMaxBonusLevel() { - return config.getInt("Skills.Alchemy.Catalysis.MaxBonusLevel", 1000); + if (mcMMO.isRetroModeEnabled()) { + return config.getInt("Skills.Alchemy.Catalysis.MaxBonusLevel.RetroMode", 1000); + } else { + return config.getInt("Skills.Alchemy.Catalysis.MaxBonusLevel.Standard", 100); + } } public double getCatalysisMinSpeed() {