mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 17:53:00 +01:00
Compare commits
110 Commits
1.4.06-bet
...
1.4.06-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b2f4b7bde | ||
|
|
24e5147a2a | ||
|
|
0423a7831d | ||
|
|
feea22b3a4 | ||
|
|
7f40a9f284 | ||
|
|
bc706109e0 | ||
|
|
a25bddba5e | ||
|
|
ab897724d3 | ||
|
|
a7861fc54b | ||
|
|
936bec8ff5 | ||
|
|
01d10971a1 | ||
|
|
12e388a392 | ||
|
|
fb450671d6 | ||
|
|
fca5f9ec98 | ||
|
|
c9ae6436bd | ||
|
|
b6c4d2b4ad | ||
|
|
27ab2f5b12 | ||
|
|
9b08062a58 | ||
|
|
401bdfa9ac | ||
|
|
68d8d6dd30 | ||
|
|
2a57d7007d | ||
|
|
fd675ac291 | ||
|
|
41f020bbb7 | ||
|
|
00dee500e0 | ||
|
|
36bdb8a63e | ||
|
|
aa9eb0868c | ||
|
|
48aafa9834 | ||
|
|
78f53f294a | ||
|
|
3158c7e3eb | ||
|
|
47d27ebf31 | ||
|
|
bc3773ae75 | ||
|
|
d8ddd27d71 | ||
|
|
8d5696507a | ||
|
|
9ec376a228 | ||
|
|
a05a0da9fb | ||
|
|
5029ad9d93 | ||
|
|
1444be665c | ||
|
|
3dedb94bdc | ||
|
|
c0f6c15a80 | ||
|
|
00626a4893 | ||
|
|
b416a59bb7 | ||
|
|
bf96fb2214 | ||
|
|
2e79c8d770 | ||
|
|
6c9d1c4953 | ||
|
|
df8df192d3 | ||
|
|
e5f43462c8 | ||
|
|
1867a3e040 | ||
|
|
6818f98de3 | ||
|
|
f910c76248 | ||
|
|
975cbf0bf8 | ||
|
|
f10b3cef01 | ||
|
|
ad39c94773 | ||
|
|
f189ab30e5 | ||
|
|
0ad18ee971 | ||
|
|
501f5de55a | ||
|
|
0b18ae8ff2 | ||
|
|
de12970486 | ||
|
|
7550b99aaa | ||
|
|
ed5a43966d | ||
|
|
95ea6703f1 | ||
|
|
55f9092aa6 | ||
|
|
5f50a46603 | ||
|
|
c5e6704530 | ||
|
|
8552192894 | ||
|
|
0261d16140 | ||
|
|
2b414526e5 | ||
|
|
c0b7eb526a | ||
|
|
7b7196a8c4 | ||
|
|
f648289035 | ||
|
|
8a0b1d548d | ||
|
|
1f17d5d11e | ||
|
|
18efd09421 | ||
|
|
18d3b30647 | ||
|
|
7f0243b2df | ||
|
|
33610c8997 | ||
|
|
8e0a1f4f70 | ||
|
|
b07cf6bdde | ||
|
|
7ed218ee7f | ||
|
|
3aedeea220 | ||
|
|
4f9b7b2609 | ||
|
|
09abab1b5d | ||
|
|
499713c8e7 | ||
|
|
cb953a1619 | ||
|
|
3ab4938f3d | ||
|
|
f6e9fd9f3a | ||
|
|
8dab75f3cb | ||
|
|
b36096e54d | ||
|
|
0574de4a29 | ||
|
|
6d6bc3de76 | ||
|
|
5c4c3cf59c | ||
|
|
0033c8864e | ||
|
|
e7c749ee3a | ||
|
|
5c026be0cd | ||
|
|
c465546871 | ||
|
|
3322677d32 | ||
|
|
76cf0ebb01 | ||
|
|
d34a0cca30 | ||
|
|
a77a916fcc | ||
|
|
e1ebb96545 | ||
|
|
d85a6bec43 | ||
|
|
78eb7787e9 | ||
|
|
b55ce30b2d | ||
|
|
14050cf096 | ||
|
|
5930128b7f | ||
|
|
08be78fa35 | ||
|
|
88f43d9a91 | ||
|
|
6cbf960dea | ||
|
|
374d34f76d | ||
|
|
cc486c2dc7 | ||
|
|
724dce07a9 |
@@ -6,8 +6,9 @@ Key:
|
||||
= Fix
|
||||
! Change
|
||||
- Removal
|
||||
|
||||
|
||||
Version 1.4.06-dev
|
||||
+ Added "Ice Fishing" ability to Fishing
|
||||
+ Added global scoreboards to track skill rankings (display using /mctop)
|
||||
+ Added per-player scoreboard displays for the /inspect, /mcrank, /mcstats, and /<skillname> commands
|
||||
+ Added tab-complete support for all commands
|
||||
@@ -18,6 +19,17 @@ Version 1.4.06-dev
|
||||
+ Added new permission node for /ptp; mcmmo.commands.ptp.send (enabled by default)
|
||||
+ Added configurable cooldown and warmup times when using /ptp
|
||||
+ Added a new Party item share category "Misc" which contains a list of configurable items. (By default all tools and armor)
|
||||
+ Added fishing exploit prevention
|
||||
+ Added permission node to bypass the fishing exploit prevention
|
||||
+ Added boosts to Fishing chance depending on conditions
|
||||
+ Added McMMOAbilityActivateEvent and McMMOAbilityDeactivateEvent
|
||||
+ Added config option to toggle the size of fireworks
|
||||
+ Added config option to multiply xp gains from mob spawner mobs
|
||||
+ Added multiplier to Archery XP based on bow force
|
||||
+ Added information about /party itemshare and /party expshare to the party help page
|
||||
+ Added option to use scoreboards for power level display instead of Spout.
|
||||
= Fixed bug where custom Spout titles were overwritten by mcMMO.
|
||||
= Fixed bug where Nether Quartz wasn't included in Smelting or item sharing
|
||||
= Fixed bug where players were able to join the same party multiple times
|
||||
= Fixed displaying partial names when trying to use /ptp
|
||||
= Fixed wolves from Call of the Wild only having 8 health
|
||||
@@ -28,6 +40,13 @@ Version 1.4.06-dev
|
||||
= Fixed Fishing treasures always having the same enchants
|
||||
= Fixed Smelting returning ink sacs instead of Lapis when double-dropping
|
||||
= Fixed bug where players could remain in party chat after leaving or being kicked from a party.
|
||||
= Fixed bug where non-player arrows couldn't be deflected.
|
||||
= Fixed experience being applied even when the permission for a skill was denied
|
||||
= Fixed possible item duplication bug with infinity bows
|
||||
= Fixed bug with removing players from mySQL database
|
||||
= Fixed bug with empty metadata lists and Smelting
|
||||
= Fixed bug where Blast Mining would drop wrong items
|
||||
! Changed Spout notification tiers to be stored in SpoutConfig instead of AdvancedConfig
|
||||
! Changed Berserk to add items to inventory rather than denying pickup
|
||||
! Changed Call of the Wild, newly summoned pet's will have a custom name. (added permission node to disable this)
|
||||
! Changed Chimaera Wing's recipe result to use the ingredient Material
|
||||
@@ -38,6 +57,7 @@ Version 1.4.06-dev
|
||||
! Changed the amount of info messages in the console when enabling/disabling, enable Verbose_Logging to enable them again
|
||||
! Items dropped by players are now being tracked and are not being shared with party members
|
||||
! Optimized tracking of tool & ability cooldowns.
|
||||
! Updated the localization files
|
||||
|
||||
Version 1.4.05
|
||||
+ Added option to allow refreshing of chunks after block-breaking abilities. (Disabled by default)
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>1.4.06-beta2</version>
|
||||
<version>1.4.06-beta4</version>
|
||||
<name>mcMMO</name>
|
||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||
<issueManagement>
|
||||
|
||||
@@ -175,6 +175,7 @@ public final class ExperienceAPI {
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getXP(Player player, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -183,6 +184,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return UserManager.getPlayer(player).getProfile().getSkillXpLevel(skill);
|
||||
}
|
||||
|
||||
@@ -197,6 +202,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getOfflineXP(String playerName, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -205,6 +211,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return getOfflineProfile(playerName).getSkillXpLevel(skill);
|
||||
}
|
||||
|
||||
@@ -218,6 +228,7 @@ public final class ExperienceAPI {
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getXPRaw(Player player, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -226,6 +237,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return UserManager.getPlayer(player).getProfile().getSkillXpLevelRaw(skill);
|
||||
}
|
||||
|
||||
@@ -240,6 +255,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRaw(String playerName, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -248,19 +264,24 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return getOfflineProfile(playerName).getSkillXpLevelRaw(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the amount of XP left before leveling up.
|
||||
* Get the total amount of XP needed to reach the next level.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param player The player to get the XP amount for
|
||||
* @param skillType The skill to get the XP amount for
|
||||
* @return the amount of XP left before leveling up a specifc skill
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getXPToNextLevel(Player player, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -269,9 +290,68 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return UserManager.getPlayer(player).getProfile().getXpToLevel(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the total amount of XP an offline player needs to reach the next level.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getOfflineXPToNextLevel(String playerName, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
|
||||
if (skill == null) {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
return getOfflineProfile(playerName).getXpToLevel(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the amount of XP remaining until the next level.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param player The player to get the XP amount for
|
||||
* @param skillType The skill to get the XP amount for
|
||||
* @return the amount of XP remaining until the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getXPRemaining(Player player, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
|
||||
if (skill == null) {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
PlayerProfile profile = UserManager.getPlayer(player).getProfile();
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the amount of XP an offline player has left before leveling up.
|
||||
* </br>
|
||||
@@ -279,19 +359,26 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
* @return the amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getOfflineXPToNextLevel(String playerName, String skillType) {
|
||||
public static int getOfflineXPRemaining(String playerName, String skillType) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
|
||||
if (skill == null) {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
return getOfflineProfile(playerName).getXpToLevel(skill);
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -514,6 +601,7 @@ public final class ExperienceAPI {
|
||||
* @param newValue The value to set the XP to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static void setXP(Player player, String skillType, int newValue) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -522,6 +610,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
UserManager.getPlayer(player).getProfile().setSkillXpLevel(skill, newValue);
|
||||
}
|
||||
|
||||
@@ -536,6 +628,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static void setXPOffline(String playerName, String skillType, int newValue) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -544,6 +637,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
getOfflineProfile(playerName).setSkillXpLevel(skill, newValue);
|
||||
}
|
||||
|
||||
@@ -557,6 +654,7 @@ public final class ExperienceAPI {
|
||||
* @param xp The amount of XP to remove
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static void removeXP(Player player, String skillType, int xp) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -565,6 +663,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
UserManager.getPlayer(player).getProfile().removeXp(skill, xp);
|
||||
}
|
||||
|
||||
@@ -579,6 +681,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static void removeXPOffline(String playerName, String skillType, int xp) {
|
||||
SkillType skill = SkillType.getSkill(skillType);
|
||||
@@ -587,6 +690,10 @@ public final class ExperienceAPI {
|
||||
throw new InvalidSkillException();
|
||||
}
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
}
|
||||
|
||||
getOfflineProfile(playerName).removeXp(skill, xp);
|
||||
}
|
||||
|
||||
|
||||
65
src/main/java/com/gmail/nossr50/commands/KrakenCommand.java
Normal file
65
src/main/java/com/gmail/nossr50/commands/KrakenCommand.java
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class KrakenCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Permissions.kraken(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
UserManager.getPlayer(sender.getName()).getFishingManager().unleashTheKraken();
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (!Permissions.krakenOthers(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||
|
||||
if (!CommandUtils.checkPlayerExistence(sender, args[0], mcMMOPlayer)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
mcMMOPlayer.getFishingManager().unleashTheKraken();
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
Set<String> playerNames = UserManager.getPlayers().keySet();
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public class McmmoCommand implements CommandExecutor {
|
||||
@Override
|
||||
@@ -28,13 +28,13 @@ public class McmmoCommand implements CommandExecutor {
|
||||
sender.sendMessage(mcSplit);
|
||||
|
||||
if (Config.getInstance().getDonateMessageEnabled()) {
|
||||
if (mcMMO.spoutEnabled && sender instanceof SpoutPlayer) {
|
||||
SpoutPlayer spoutPlayer = (SpoutPlayer) sender;
|
||||
spoutPlayer.sendNotification(LocaleLoader.getString("Spout.Donate"), ChatColor.GREEN + "gjmcferrin@gmail.com", Material.DIAMOND);
|
||||
if (mcMMO.isSpoutEnabled() && sender instanceof Player) {
|
||||
SpoutUtils.sendDonationNotification((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "gjmcferrin@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "gjmcferrin@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class McscoreboardCommand implements TabExecutor {
|
||||
private static final List<String> SCOREBOARD_TYPES = ImmutableList.of("clear", "rank", "stats", "top");
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
clearScoreboard(player);
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (args[0].equalsIgnoreCase("clear")) {
|
||||
clearScoreboard(player);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("rank")) {
|
||||
if (!Config.getInstance().getMcrankScoreboardEnabled()) {
|
||||
sender.sendMessage("This scoreboard is not enabled."); //TODO: Localize
|
||||
return true;
|
||||
}
|
||||
|
||||
ScoreboardManager.setupPlayerScoreboard(player.getName());
|
||||
ScoreboardManager.enablePlayerRankScoreboard(player);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("stats")) {
|
||||
if (!Config.getInstance().getMcstatsScoreboardsEnabled()) {
|
||||
sender.sendMessage("This scoreboard is not enabled."); //TODO: Localize
|
||||
return true;
|
||||
}
|
||||
|
||||
ScoreboardManager.setupPlayerScoreboard(player.getName());
|
||||
ScoreboardManager.enablePlayerStatsScoreboard(UserManager.getPlayer(player));
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("top")) {
|
||||
if (!Config.getInstance().getMctopScoreboardEnabled()) {
|
||||
sender.sendMessage("This scoreboard is not enabled."); //TODO: Localize
|
||||
return true;
|
||||
}
|
||||
|
||||
ScoreboardManager.enableGlobalStatsScoreboard(player, "all", 1);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (!args[0].equalsIgnoreCase("top")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Config.getInstance().getMctopScoreboardEnabled()) {
|
||||
sender.sendMessage("This scoreboard is not enabled."); //TODO: Localize
|
||||
return true;
|
||||
}
|
||||
|
||||
if (StringUtils.isInt(args[1])) {
|
||||
ScoreboardManager.enableGlobalStatsScoreboard(player, "all", Math.abs(Integer.parseInt(args[1])));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (CommandUtils.isInvalidSkill(sender, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
ScoreboardManager.enableGlobalStatsScoreboard(player, args[1], 1);
|
||||
return true;
|
||||
|
||||
case 3:
|
||||
if (!args[0].equalsIgnoreCase("top")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Config.getInstance().getMctopScoreboardEnabled()) {
|
||||
sender.sendMessage("This scoreboard is not enabled."); //TODO: Localize
|
||||
return true;
|
||||
}
|
||||
|
||||
if (CommandUtils.isInvalidSkill(sender, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (CommandUtils.isInvalidInteger(sender, args[2])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
ScoreboardManager.enableGlobalStatsScoreboard(player, args[1], Math.abs(Integer.parseInt(args[2])));
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], SCOREBOARD_TYPES, new ArrayList<String>(SCOREBOARD_TYPES.size()));
|
||||
case 2:
|
||||
if (args[0].equalsIgnoreCase("top")) {
|
||||
return StringUtil.copyPartialMatches(args[1], SkillType.SKILL_NAMES, new ArrayList<String>(SkillType.SKILL_NAMES.size()));
|
||||
}
|
||||
// Fallthrough
|
||||
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void clearScoreboard(Player player) {
|
||||
player.setScoreboard(mcMMO.p.getServer().getScoreboardManager().getMainScoreboard());
|
||||
player.sendMessage("Your scoreboard has been cleared!"); //TODO: Locale
|
||||
}
|
||||
}
|
||||
@@ -9,18 +9,12 @@ import org.bukkit.command.TabExecutor;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class McpurgeCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!Permissions.mcpurge(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
mcMMO.getDatabaseManager().purgePowerlessUsers();
|
||||
|
||||
@@ -12,7 +12,6 @@ import org.bukkit.util.StringUtil;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
|
||||
@@ -21,11 +20,6 @@ import com.google.common.collect.ImmutableList;
|
||||
public class McremoveCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!Permissions.mcremove(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (UserManager.getPlayer(args[0]) == null && CommandUtils.unloadedProfile(sender, new PlayerProfile(args[0], false))) {
|
||||
|
||||
@@ -11,7 +11,6 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.runnables.database.SQLConversionTask;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
@@ -19,11 +18,6 @@ import com.google.common.collect.ImmutableList;
|
||||
public class MmoupdateCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!Permissions.mmoupdate(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Config.getInstance().getUseMySQL()) {
|
||||
sender.sendMessage("SQL Mode is not enabled."); // TODO: Localize
|
||||
return true;
|
||||
|
||||
@@ -19,6 +19,8 @@ public class PartyHelpCommand implements CommandExecutor {
|
||||
sender.sendMessage(LocaleLoader.getString("Party.Help.6", "/party kick"));
|
||||
sender.sendMessage(LocaleLoader.getString("Party.Help.7", "/party leader"));
|
||||
sender.sendMessage(LocaleLoader.getString("Party.Help.8", "/party disband"));
|
||||
sender.sendMessage(LocaleLoader.getString("Party.Help.9", "/party itemshare"));
|
||||
sender.sendMessage(LocaleLoader.getString("Party.Help.10", "/party expshare"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
|
||||
@@ -4,7 +4,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -76,7 +75,7 @@ public class PtpCommand implements TabExecutor {
|
||||
long lastTeleport = mcMMOPlayer.getLastTeleport();
|
||||
|
||||
if (!SkillUtils.cooldownOver(lastTeleport * Misc.TIME_CONVERSION_FACTOR, ptpCooldown, player)) {
|
||||
player.sendMessage(ChatColor.RED + "You need to wait before you can use this again! " + ChatColor.YELLOW + "(" + SkillUtils.calculateTimeLeft(lastTeleport * Misc.TIME_CONVERSION_FACTOR, ptpCooldown, player) + ")"); //TODO Locale!
|
||||
player.sendMessage(LocaleLoader.getString("Item.Generic.Wait", SkillUtils.calculateTimeLeft(lastTeleport * Misc.TIME_CONVERSION_FACTOR, ptpCooldown, player)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -166,7 +165,7 @@ public class PtpCommand implements TabExecutor {
|
||||
mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer);
|
||||
|
||||
if (warmup > 0) {
|
||||
teleportingPlayer.sendMessage(ChatColor.GRAY + "Commencing teleport in " + ChatColor.GOLD + "(" + warmup + ")" + ChatColor.GRAY + " seconds, please stand still..."); //TODO Locale!
|
||||
teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
|
||||
new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
@@ -22,6 +25,7 @@ public class FishingCommand extends SkillCommand {
|
||||
private boolean canShake;
|
||||
private boolean canFishermansDiet;
|
||||
private boolean canMasterAngler;
|
||||
private boolean canIceFish;
|
||||
|
||||
public FishingCommand() {
|
||||
super(SkillType.FISHING);
|
||||
@@ -60,7 +64,18 @@ public class FishingCommand extends SkillCommand {
|
||||
|
||||
// MASTER ANGLER
|
||||
if (canMasterAngler) {
|
||||
biteChance = calculateAbilityDisplayValues(((Math.max((skillValue / 200.0), 1.0)) / (isStorming ? 300 : 500)) * 100.0)[0];
|
||||
double rawBiteChance = ((Math.max((skillValue / 200.0), 1.0)) / (isStorming ? 300 : 500));
|
||||
Biome biome = player.getLocation().getBlock().getBiome();
|
||||
|
||||
if (biome == Biome.RIVER || biome == Biome.OCEAN) {
|
||||
rawBiteChance = rawBiteChance * 2.0;
|
||||
}
|
||||
|
||||
if (player.isInsideVehicle() && player.getVehicle().getType() == EntityType.BOAT) {
|
||||
rawBiteChance = rawBiteChance * 2.0;
|
||||
}
|
||||
|
||||
biteChance = calculateAbilityDisplayValues(rawBiteChance * 100.0)[0];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,11 +86,12 @@ public class FishingCommand extends SkillCommand {
|
||||
canShake = Permissions.shake(player);
|
||||
canFishermansDiet = Permissions.fishermansDiet(player);
|
||||
canMasterAngler = Permissions.masterAngler(player);
|
||||
canIceFish = Permissions.iceFishing(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean effectsHeaderPermissions() {
|
||||
return canTreasureHunt || canMagicHunt || canShake || canMasterAngler || canFishermansDiet;
|
||||
return canTreasureHunt || canMagicHunt || canShake || canMasterAngler || canFishermansDiet || canIceFish;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,11 +117,15 @@ public class FishingCommand extends SkillCommand {
|
||||
if (canMasterAngler) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.8"), LocaleLoader.getString("Fishing.Effect.9")));
|
||||
}
|
||||
|
||||
if (canIceFish) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.10"), LocaleLoader.getString("Fishing.Effect.11")));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean statsHeaderPermissions() {
|
||||
return canTreasureHunt || canMagicHunt || canShake || canMasterAngler || canFishermansDiet;
|
||||
return canTreasureHunt || canMagicHunt || canShake || canMasterAngler || canFishermansDiet || canIceFish;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,5 +156,16 @@ public class FishingCommand extends SkillCommand {
|
||||
if (canFishermansDiet) {
|
||||
player.sendMessage(LocaleLoader.getString("Fishing.Ability.FD", fishermansDietRank));
|
||||
}
|
||||
|
||||
if (canIceFish) {
|
||||
int unlockLevel = AdvancedConfig.getInstance().getIceFishingUnlockLevel();
|
||||
|
||||
if (skillValue < unlockLevel) {
|
||||
player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Fishing.Ability.Locked.1", unlockLevel)));
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString("Fishing.Ability.IceFishing"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public abstract class SpoutCommand implements TabExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!mcMMO.spoutEnabled || !SpoutConfig.getInstance().getXPBarEnabled()) {
|
||||
if (!mcMMO.isSpoutEnabled() || !SpoutConfig.getInstance().getXPBarEnabled()) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
|
||||
public double getRetrieveChanceMax() { return config.getDouble("Skills.Archery.Retrieve_MaxBonus", 100.0D); }
|
||||
public int getRetrieveMaxBonusLevel() { return config.getInt("Skills.Archery.Retrieve_MaxBonusLevel", 1000); }
|
||||
|
||||
public double getForceMultiplier() { return config.getDouble("Skills.Archery.Force_Multiplier", 2.0D); }
|
||||
|
||||
/* AXES */
|
||||
public int getBonusDamageAxesBonusMax() { return config.getInt("Skills.Axes.DamageIncrease_MaxBonus", 4); }
|
||||
public int getBonusDamageAxesMaxBonusLevel() { return config.getInt("Skills.Axes.DamageIncrease_MaxBonusLevel", 200); }
|
||||
@@ -85,6 +87,8 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
|
||||
|
||||
public int getFishermanDietRankChange() { return config.getInt("Skills.Fishing.Fisherman_Diet_RankChange", 200); }
|
||||
|
||||
public int getIceFishingUnlockLevel() { return config.getInt("Skills.Fishing.Ice_Fishing_UnlockLevel", 50); }
|
||||
|
||||
/* Shake */
|
||||
public int getShakeUnlockLevel() { return config.getInt("Skills.Fishing.Shake_UnlockLevel", 150); }
|
||||
public int getShakeChanceRank1() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_1", 25); }
|
||||
@@ -273,9 +277,17 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
|
||||
public double getWoodcuttingDoubleDropChance() { return config.getDouble("Skills.Woodcutting.DoubleDrops_ChanceMax", 100.0D); }
|
||||
public int getWoodcuttingDoubleDropMaxLevel() { return config.getInt("Skills.Woodcutting.DoubleDrops_MaxBonusLevel", 1000); }
|
||||
|
||||
/* SPOUT STUFF*/
|
||||
public int getSpoutNotificationTier1() { return config.getInt("Spout.Notifications.Tier1", 200); }
|
||||
public int getSpoutNotificationTier2() { return config.getInt("Spout.Notifications.Tier2", 400); }
|
||||
public int getSpoutNotificationTier3() { return config.getInt("Spout.Notifications.Tier3", 600); }
|
||||
public int getSpoutNotificationTier4() { return config.getInt("Spout.Notifications.Tier4", 800); }
|
||||
/* KRAKEN STUFF */
|
||||
public boolean getKrakenEnabled() { return config.getBoolean("Kraken.Enabled", true); }
|
||||
public boolean getKrakenGlobalSoundsEnabled() { return config.getBoolean("Kraken.Global_Sounds", true); }
|
||||
public boolean getKrakenEscapeAllowed() { return config.getBoolean("Kraken.Allow_Escaping", false); }
|
||||
public int getKrakenTriesBeforeRelease() { return config.getInt("Kraken.Tries_Before_Release", 50); }
|
||||
public int getKrakenHealth() { return config.getInt("Kraken.Health", 50); }
|
||||
public String getKrakenName() { return config.getString("Kraken.Name", "The Kraken"); }
|
||||
public String getServerUnleashMessage() { return config.getString("Kraken.Unleashed_Message.Server", "(PLAYER) has unleashed the kraken!"); }
|
||||
public String getPlayerUnleashMessage() { return config.getString("Kraken.Unleashed_Message.Player", "THE KRAKEN HAS BEEN UNLEASHED!"); }
|
||||
public String getPlayerDefeatMessage() { return config.getString("Kraken.Defeated_Message.Killed", "You have slain the kraken!"); }
|
||||
public String getPlayerEscapeMessage() { return config.getString("Kraken.Defeated_Message.Escape", "You have escaped from the kraken!"); }
|
||||
public int getKrakenAttackInterval() { return config.getInt("Kraken.Attack_Interval_Seconds", 1); }
|
||||
public int getKrakenAttackDamage() { return config.getInt("Kraken.Attack_Damage", 1); }
|
||||
}
|
||||
|
||||
@@ -46,6 +46,9 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public boolean getVerboseLoggingEnabled() { return config.getBoolean("General.Verbose_Logging", false); }
|
||||
public boolean getConfigOverwriteEnabled() { return config.getBoolean("General.Config_Update_Overwrite", true); }
|
||||
|
||||
public boolean getPotatoEnabled() { return config.getBoolean("General.Potato_Explosion_Enabled", false); }
|
||||
public int getPotatoChance() { return config.getInt("General.Potato_Explosion_Chance", 1); }
|
||||
|
||||
public boolean getPartyDisplayNames() { return config.getBoolean("Commands.p.Use_Display_Names", true); }
|
||||
public boolean getAdminDisplayNames() { return config.getBoolean("Commands.a.Use_Display_Names", true); }
|
||||
|
||||
@@ -66,7 +69,7 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public int getMcrankScoreboardTime() { return config.getInt("Scoreboards.Mcrank.Display_Time", 10); }
|
||||
|
||||
public boolean getMcstatsScoreboardsEnabled() { return config.getBoolean("Scoreboards.Mcstats.Use", true); }
|
||||
public int getMcstatsScoreboardTime() { return config.getInt("Scoreboards.Mctop.Display_Time", 10); }
|
||||
public int getMcstatsScoreboardTime() { return config.getInt("Scoreboards.Mcstats.Display_Time", 10); }
|
||||
|
||||
public boolean getMctopScoreboardEnabled() { return config.getBoolean("Scoreboards.Mctop.Use", true); }
|
||||
public int getMctopScoreboardTime() { return config.getInt("Scoreboards.Mctop.Display_Time", 10); }
|
||||
@@ -77,6 +80,8 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public boolean getSkillScoreboardEnabled() { return config.getBoolean("Scoreboards.Skillname.Use", true); }
|
||||
public int getSkillScoreboardTime() { return config.getInt("Scoreboards.Skillname.Display_Time", 10); }
|
||||
|
||||
public boolean getPowerLevelsEnabled() { return config.getBoolean("Scoreboards.Power_Level.Use", true); }
|
||||
|
||||
/* Database Purging */
|
||||
public int getPurgeInterval() { return config.getInt("Database_Purging.Purge_Interval", -1); }
|
||||
public int getOldUsersCutoff() { return config.getInt("Database_Purging.Old_User_Cutoff", 6); }
|
||||
@@ -147,6 +152,7 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public boolean getGreaterImpactEffectEnabled() { return config.getBoolean("Particles.Greater_Impact", true); }
|
||||
public boolean getLevelUpEffectsEnabled() { return config.getBoolean("Particles.LevelUp_Enabled", true); }
|
||||
public int getLevelUpEffectsTier() { return config.getInt("Particles.LevelUp_Tier", 100); }
|
||||
public boolean getLargeFireworks() { return config.getBoolean("Particles.LargeFireworks", true); }
|
||||
|
||||
/* PARTY SETTINGS */
|
||||
public int getAutoPartyKickInterval() { return config.getInt("Party.AutoKick_Interval", 12); }
|
||||
@@ -272,7 +278,6 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
*/
|
||||
|
||||
/* General Settings */
|
||||
public boolean getExperienceGainsMobspawnersEnabled() { return config.getBoolean("Experience.Gains.Mobspawners.Enabled", false); }
|
||||
public boolean getExperienceGainsPlayerVersusPlayerEnabled() { return config.getBoolean("Experience.PVP.Rewards", true); }
|
||||
|
||||
public double getExperienceGainsGlobalMultiplier() { return config.getDouble("Experience.Gains.Multiplier.Global", 1.0); }
|
||||
@@ -285,6 +290,7 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public double getAnimalsXP() { return config.getDouble("Experience.Combat.Multiplier.Animals", 1.0); }
|
||||
public double getWitherSkeletonXP() { return config.getDouble("Experience.Combat.Multiplier.Wither_Skeleton", 4.0); }
|
||||
|
||||
public double getSpawnedMobXpMultiplier() { return config.getDouble("Experience.Gains.MobSpawners.Multiplier", 0.0); }
|
||||
|
||||
/* XP Formula Multiplier */
|
||||
public int getFormulaMultiplierCurve() { return config.getInt("Experience.Formula.Curve_Modifier", 20); }
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.gmail.nossr50.config.spout;
|
||||
|
||||
import org.getspout.spoutapi.keyboard.Keyboard;
|
||||
|
||||
import com.gmail.nossr50.config.ConfigLoader;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.datatypes.spout.huds.HudType;
|
||||
@@ -34,7 +36,14 @@ public class SpoutConfig extends ConfigLoader {
|
||||
}
|
||||
|
||||
public boolean getShowPowerLevel() { return config.getBoolean("HUD.Show_Power_Level", true); }
|
||||
public String getMenuKey() { return config.getString("Menu.Key", "KEY_M"); }
|
||||
public Keyboard getMenuKey() {
|
||||
try {
|
||||
return Keyboard.valueOf(config.getString("Menu.Key", "KEY_M").toUpperCase().trim());
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
return Keyboard.KEY_M;
|
||||
}
|
||||
}
|
||||
|
||||
/* XP Bar */
|
||||
public boolean getXPBarEnabled() { return config.getBoolean("XP.Bar.Enabled", true); }
|
||||
@@ -57,4 +66,10 @@ public class SpoutConfig extends ConfigLoader {
|
||||
public double getRetroHUDRed(SkillType skill) { return config.getDouble("HUD.Retro.Colors." + skill.toString().toLowerCase() +".RED", 0.3); }
|
||||
public double getRetroHUDGreen(SkillType skill) { return config.getDouble("HUD.Retro.Colors." + skill.toString().toLowerCase() +".RED", 0.3); }
|
||||
public double getRetroHUDBlue(SkillType skill) { return config.getDouble("HUD.Retro.Colors." + skill.toString().toLowerCase() +".RED", 0.3); }
|
||||
|
||||
/* Notification Tiers */
|
||||
public int getNotificationTier1() { return config.getInt("Notifications.Tier1", 200); }
|
||||
public int getNotificationTier2() { return config.getInt("Notifications.Tier2", 400); }
|
||||
public int getNotificationTier3() { return config.getInt("Notifications.Tier3", 600); }
|
||||
public int getNotificationTier4() { return config.getInt("Notifications.Tier4", 800); }
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public class TreasureConfig extends ConfigLoader {
|
||||
reason.add("Invalid amount: " + amount);
|
||||
}
|
||||
|
||||
if (data > 127 || data < -128) {
|
||||
if (id < 256 && (data > 127 || data < -128)) {
|
||||
reason.add("Invalid data: " + data);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,14 +92,13 @@ public final class SQLDatabaseManager {
|
||||
+ "`user` varchar(40) NOT NULL,"
|
||||
+ "`lastlogin` int(32) unsigned NOT NULL,"
|
||||
+ "PRIMARY KEY (`id`),"
|
||||
+ "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
|
||||
+ "UNIQUE KEY `user` (`user`)) DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
|
||||
write("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "huds` ("
|
||||
+ "`user_id` int(10) unsigned NOT NULL,"
|
||||
+ "`hudtype` varchar(50) NOT NULL DEFAULT 'STANDARD',"
|
||||
+ "`mobhealthbar` varchar(50) NOT NULL DEFAULT 'HEARTS',"
|
||||
+ "PRIMARY KEY (`user_id`),"
|
||||
+ "FOREIGN KEY (`user_id`) REFERENCES `" + tablePrefix + "users` (`id`) "
|
||||
+ "ON DELETE CASCADE) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||
+ "`mobhealthbar` varchar(50) NOT NULL DEFAULT '" + Config.getInstance().getMobHealthbarDefault() + "',"
|
||||
+ "PRIMARY KEY (`user_id`)) "
|
||||
+ "DEFAULT CHARSET=latin1;");
|
||||
write("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "cooldowns` ("
|
||||
+ "`user_id` int(10) unsigned NOT NULL,"
|
||||
+ "`taming` int(32) unsigned NOT NULL DEFAULT '0',"
|
||||
@@ -114,9 +113,8 @@ public final class SQLDatabaseManager {
|
||||
+ "`axes` int(32) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`blast_mining` int(32) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "PRIMARY KEY (`user_id`),"
|
||||
+ "FOREIGN KEY (`user_id`) REFERENCES `" + tablePrefix + "users` (`id`) "
|
||||
+ "ON DELETE CASCADE) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||
+ "PRIMARY KEY (`user_id`)) "
|
||||
+ "DEFAULT CHARSET=latin1;");
|
||||
write("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "skills` ("
|
||||
+ "`user_id` int(10) unsigned NOT NULL,"
|
||||
+ "`taming` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
@@ -130,9 +128,8 @@ public final class SQLDatabaseManager {
|
||||
+ "`swords` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`axes` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "PRIMARY KEY (`user_id`),"
|
||||
+ "FOREIGN KEY (`user_id`) REFERENCES `" + tablePrefix + "users` (`id`) "
|
||||
+ "ON DELETE CASCADE) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||
+ "PRIMARY KEY (`user_id`)) "
|
||||
+ "DEFAULT CHARSET=latin1;");
|
||||
write("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "experience` ("
|
||||
+ "`user_id` int(10) unsigned NOT NULL,"
|
||||
+ "`taming` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
@@ -146,15 +143,14 @@ public final class SQLDatabaseManager {
|
||||
+ "`swords` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`axes` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0',"
|
||||
+ "PRIMARY KEY (`user_id`),"
|
||||
+ "FOREIGN KEY (`user_id`) REFERENCES `" + tablePrefix + "users` (`id`) "
|
||||
+ "ON DELETE CASCADE) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||
+ "PRIMARY KEY (`user_id`)) "
|
||||
+ "DEFAULT CHARSET=latin1;");
|
||||
|
||||
checkDatabaseStructure(DatabaseUpdateType.FISHING);
|
||||
checkDatabaseStructure(DatabaseUpdateType.BLAST_MINING);
|
||||
checkDatabaseStructure(DatabaseUpdateType.CASCADE_DELETE);
|
||||
checkDatabaseStructure(DatabaseUpdateType.INDEX);
|
||||
checkDatabaseStructure(DatabaseUpdateType.MOB_HEALTHBARS);
|
||||
checkDatabaseStructure(DatabaseUpdateType.PARTY_NAMES);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -175,7 +171,9 @@ public final class SQLDatabaseManager {
|
||||
return true;
|
||||
}
|
||||
catch (SQLException ex) {
|
||||
printErrors(ex);
|
||||
if (!sql.equalsIgnoreCase("ALTER TABLE `" + tablePrefix + "users` DROP COLUMN `party` ;")) {
|
||||
printErrors(ex);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
@@ -191,7 +189,13 @@ public final class SQLDatabaseManager {
|
||||
}
|
||||
|
||||
public static boolean removeUserSQL(String playerName) {
|
||||
return SQLDatabaseManager.update("DELETE FROM " + tablePrefix + "users WHERE " + tablePrefix + "users.user = '" + playerName + "'") != 0;
|
||||
return SQLDatabaseManager.update("DELETE FROM u, e, h, s, c " +
|
||||
"USING " + tablePrefix + "users u " +
|
||||
"JOIN " + tablePrefix + "experience e ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) " +
|
||||
"JOIN " + tablePrefix + "skills s ON (u.id = s.user_id) " +
|
||||
"JOIN " + tablePrefix + "cooldowns c ON (u.id = c.user_id) " +
|
||||
"WHERE u.user = '" + playerName + "'") != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -489,8 +493,12 @@ public final class SQLDatabaseManager {
|
||||
|
||||
public static int purgePowerlessSQL() {
|
||||
HashMap<Integer, ArrayList<String>> usernames = read("SELECT u.user FROM " + tablePrefix + "skills AS s, " + tablePrefix + "users AS u WHERE s.user_id = u.id AND (s.taming+s.mining+s.woodcutting+s.repair+s.unarmed+s.herbalism+s.excavation+s.archery+s.swords+s.axes+s.acrobatics+s.fishing) = 0");
|
||||
write("DELETE FROM " + tablePrefix + "users WHERE " + tablePrefix + "users.id IN (SELECT * FROM (SELECT u.id FROM " + tablePrefix + "skills AS s, " + tablePrefix + "users AS u WHERE s.user_id = u.id AND (s.taming+s.mining+s.woodcutting+s.repair+s.unarmed+s.herbalism+s.excavation+s.archery+s.swords+s.axes+s.acrobatics+s.fishing) = 0) AS p)");
|
||||
|
||||
write("DELETE FROM u, e, h, s, c USING " + tablePrefix + "users u " +
|
||||
"JOIN " + tablePrefix + "experience e ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) " +
|
||||
"JOIN " + tablePrefix + "skills s ON (u.id = s.user_id) " +
|
||||
"JOIN " + tablePrefix + "cooldowns c ON (u.id = c.user_id) " +
|
||||
"WHERE (s.taming+s.mining+s.woodcutting+s.repair+s.unarmed+s.herbalism+s.excavation+s.archery+s.swords+s.axes+s.acrobatics+s.fishing) = 0");
|
||||
return processPurge(usernames.values());
|
||||
}
|
||||
|
||||
@@ -499,7 +507,12 @@ public final class SQLDatabaseManager {
|
||||
long purgeTime = ONE_MONTH * Config.getInstance().getOldUsersCutoff();
|
||||
|
||||
HashMap<Integer, ArrayList<String>> usernames = read("SELECT user FROM " + tablePrefix + "users WHERE ((" + currentTime + " - lastlogin*1000) > " + purgeTime + ")");
|
||||
write("DELETE FROM " + tablePrefix + "users WHERE " + tablePrefix + "users.id IN (SELECT * FROM (SELECT id FROM " + tablePrefix + "users WHERE ((" + currentTime + " - lastlogin*1000) > " + purgeTime + ")) AS p)");
|
||||
write("DELETE FROM u, e, h, s, c USING " + tablePrefix + "users u " +
|
||||
"JOIN " + tablePrefix + "experience e ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) " +
|
||||
"JOIN " + tablePrefix + "skills s ON (u.id = s.user_id) " +
|
||||
"JOIN " + tablePrefix + "cooldowns c ON (u.id = c.user_id) " +
|
||||
"WHERE ((" + currentTime + " - lastlogin*1000) > " + purgeTime + ")");
|
||||
|
||||
return processPurge(usernames.values());
|
||||
}
|
||||
@@ -530,13 +543,6 @@ public final class SQLDatabaseManager {
|
||||
sql = "SELECT * FROM `" + tablePrefix + "cooldowns` ORDER BY `" + tablePrefix + "cooldowns`.`blast_mining` ASC LIMIT 0 , 30";
|
||||
break;
|
||||
|
||||
case CASCADE_DELETE:
|
||||
write("ALTER TABLE `" + tablePrefix + "huds` ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE;");
|
||||
write("ALTER TABLE `" + tablePrefix + "experience` ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE;");
|
||||
write("ALTER TABLE `" + tablePrefix + "cooldowns` ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE;");
|
||||
write("ALTER TABLE `" + tablePrefix + "skills` ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE;");
|
||||
break;
|
||||
|
||||
case FISHING:
|
||||
sql = "SELECT * FROM `" + tablePrefix + "experience` ORDER BY `" + tablePrefix + "experience`.`fishing` ASC LIMIT 0 , 30";
|
||||
break;
|
||||
@@ -563,6 +569,10 @@ public final class SQLDatabaseManager {
|
||||
sql = "SELECT * FROM `" + tablePrefix + "huds` ORDER BY `" + tablePrefix + "huds`.`mobhealthbar` ASC LIMIT 0 , 30";
|
||||
break;
|
||||
|
||||
case PARTY_NAMES:
|
||||
write("ALTER TABLE `" + tablePrefix + "users` DROP COLUMN `party` ;");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -601,7 +611,7 @@ public final class SQLDatabaseManager {
|
||||
|
||||
case MOB_HEALTHBARS:
|
||||
mcMMO.p.getLogger().info("Updating mcMMO MySQL tables for mob healthbars...");
|
||||
write("ALTER TABLE `" + tablePrefix + "huds` ADD `mobhealthbar` varchar(50) NOT NULL DEFAULT 'HEARTS' ;");
|
||||
write("ALTER TABLE `" + tablePrefix + "huds` ADD `mobhealthbar` varchar(50) NOT NULL DEFAULT '" + Config.getInstance().getMobHealthbarDefault() + "' ;");
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gmail.nossr50.datatypes.database;
|
||||
public enum DatabaseUpdateType {
|
||||
FISHING,
|
||||
BLAST_MINING,
|
||||
CASCADE_DELETE,
|
||||
INDEX,
|
||||
MOB_HEALTHBARS;
|
||||
MOB_HEALTHBARS,
|
||||
PARTY_NAMES,
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.party.ShareHandler.ShareMode;
|
||||
|
||||
public class Party {
|
||||
@@ -62,25 +63,24 @@ public class Party {
|
||||
public List<String> getItemShareCategories() {
|
||||
List<String> shareCategories = new ArrayList<String>();
|
||||
|
||||
// TODO Locale the category names!
|
||||
if (shareLootDrops) {
|
||||
shareCategories.add("Loot");
|
||||
shareCategories.add(LocaleLoader.getString("Party.ItemShare.Category.Loot"));
|
||||
}
|
||||
|
||||
if (shareMiningDrops) {
|
||||
shareCategories.add("Mining");
|
||||
shareCategories.add(LocaleLoader.getString("Party.ItemShare.Category.Mining"));
|
||||
}
|
||||
|
||||
if (shareHerbalismDrops) {
|
||||
shareCategories.add("Herbalism");
|
||||
shareCategories.add(LocaleLoader.getString("Party.ItemShare.Category.Herbalism"));
|
||||
}
|
||||
|
||||
if (shareWoodcuttingDrops) {
|
||||
shareCategories.add("Woodcutting");
|
||||
shareCategories.add(LocaleLoader.getString("Party.ItemShare.Category.Woodcutting"));
|
||||
}
|
||||
|
||||
if (shareMiscDrops) {
|
||||
shareCategories.add("Misc");
|
||||
shareCategories.add(LocaleLoader.getString("Party.ItemShare.Category.Misc"));
|
||||
}
|
||||
|
||||
return shareCategories;
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.gmail.nossr50.datatypes.spout.huds.McMMOHud;
|
||||
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
|
||||
import com.gmail.nossr50.party.PartyManager;
|
||||
import com.gmail.nossr50.party.ShareHandler;
|
||||
import com.gmail.nossr50.runnables.skills.AbilityDisableTask;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
||||
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
||||
@@ -182,7 +183,8 @@ public class McMMOPlayer {
|
||||
*/
|
||||
public void resetAbilityMode() {
|
||||
for (AbilityType ability : AbilityType.values()) {
|
||||
setAbilityMode(ability, false);
|
||||
// Correctly disable and handle any special deactivate code
|
||||
new AbilityDisableTask(this, ability).run();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -506,14 +508,15 @@ public class McMMOPlayer {
|
||||
Set<SkillType> parentSkills = FamilyTree.getParents(skillType);
|
||||
|
||||
for (SkillType parentSkill : parentSkills) {
|
||||
if (Permissions.skillEnabled(player, parentSkill)) {
|
||||
applyXpGain(parentSkill, xp / parentSkills.size());
|
||||
}
|
||||
applyXpGain(parentSkill, xp / parentSkills.size());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!Permissions.skillEnabled(player, skillType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayerXpGainEvent event = new McMMOPlayerXpGainEvent(player, skillType, xp);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -42,7 +42,7 @@ public class PlayerProfile {
|
||||
public PlayerProfile(String playerName, boolean addNew) {
|
||||
this.playerName = playerName;
|
||||
|
||||
hudType = mcMMO.spoutEnabled ? SpoutConfig.getInstance().getDefaultHudType() : HudType.DISABLED;
|
||||
hudType = mcMMO.isSpoutEnabled() ? SpoutConfig.getInstance().getDefaultHudType() : HudType.DISABLED;
|
||||
mobHealthbarType = Config.getInstance().getMobHealthbarDefault();
|
||||
|
||||
for (AbilityType abilityType : AbilityType.values()) {
|
||||
@@ -287,81 +287,95 @@ public class PlayerProfile {
|
||||
private boolean loadMySQL() {
|
||||
String tablePrefix = Config.getInstance().getMySQLTablePrefix();
|
||||
|
||||
userId = SQLDatabaseManager.getInt("SELECT id FROM " + tablePrefix + "users WHERE user = '" + playerName + "'");
|
||||
ArrayList<String> playerData = SQLDatabaseManager.read(
|
||||
"SELECT " +
|
||||
"u.id, " +
|
||||
"s.taming, s.mining, s.repair, s.woodcutting, s.unarmed, s.herbalism, s.excavation, s.archery, s.swords, s.axes, s.acrobatics, s.fishing, " +
|
||||
"e.taming, e.mining, e.repair, e.woodcutting, e.unarmed, e.herbalism, e.excavation, e.archery, e.swords, e.axes, e.acrobatics, e.fishing, " +
|
||||
"c.taming, c.mining, c.repair, c.woodcutting, c.unarmed, c.herbalism, c.excavation, c.archery, c.swords, c.axes, c.acrobatics, c.blast_mining, " +
|
||||
"h.hudtype, h.mobhealthbar " +
|
||||
"FROM " + tablePrefix + "users u " +
|
||||
"JOIN " + tablePrefix + "skills s ON (u.id = s.user_id) " +
|
||||
"JOIN " + tablePrefix + "experience e ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "cooldowns c ON (u.id = c.user_id) " +
|
||||
"JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) " +
|
||||
"WHERE u.user = '" + playerName + "'"
|
||||
).get(1);
|
||||
|
||||
if (userId == 0) {
|
||||
return false;
|
||||
if (playerData == null || playerData.size() == 0) {
|
||||
userId = SQLDatabaseManager.getInt("SELECT id FROM " + tablePrefix + "users WHERE user = '" + playerName + "'");
|
||||
|
||||
// Check if user doesn't exist
|
||||
if (userId == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Write missing table rows
|
||||
SQLDatabaseManager.write("INSERT IGNORE INTO " + tablePrefix + "skills (user_id) VALUES (" + userId + ")");
|
||||
SQLDatabaseManager.write("INSERT IGNORE INTO " + tablePrefix + "experience (user_id) VALUES (" + userId + ")");
|
||||
SQLDatabaseManager.write("INSERT IGNORE INTO " + tablePrefix + "cooldowns (user_id) VALUES (" + userId + ")");
|
||||
SQLDatabaseManager.write("INSERT IGNORE INTO " + tablePrefix + "huds (user_id, mobhealthbar) VALUES (" + userId + ",'" + mobHealthbarType.name() + "')");
|
||||
|
||||
// Re-read data
|
||||
playerData = SQLDatabaseManager.read(
|
||||
"SELECT " +
|
||||
"u.id, " +
|
||||
"s.taming, s.mining, s.repair, s.woodcutting, s.unarmed, s.herbalism, s.excavation, s.archery, s.swords, s.axes, s.acrobatics, s.fishing, " +
|
||||
"e.taming, e.mining, e.repair, e.woodcutting, e.unarmed, e.herbalism, e.excavation, e.archery, e.swords, e.axes, e.acrobatics, e.fishing, " +
|
||||
"c.taming, c.mining, c.repair, c.woodcutting, c.unarmed, c.herbalism, c.excavation, c.archery, c.swords, c.axes, c.acrobatics, c.blast_mining, " +
|
||||
"h.hudtype, h.mobhealthbar " +
|
||||
"FROM " + tablePrefix + "users u " +
|
||||
"JOIN " + tablePrefix + "skills s ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "experience e ON (u.id = e.user_id) " +
|
||||
"JOIN " + tablePrefix + "cooldowns c ON (u.id = c.user_id) " +
|
||||
"JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) " +
|
||||
"WHERE u.user = '" + playerName + "'"
|
||||
).get(1);
|
||||
}
|
||||
|
||||
ArrayList<String> hudValues = SQLDatabaseManager.read("SELECT hudtype, mobhealthbar FROM " + tablePrefix + "huds WHERE user_id = " + userId).get(1);
|
||||
userId = Integer.valueOf(playerData.get(0));
|
||||
|
||||
if (hudValues == null) {
|
||||
SQLDatabaseManager.write("INSERT INTO " + tablePrefix + "huds (user_id, mobhealthbar) VALUES (" + userId + ",'" + mobHealthbarType.name() + "')");
|
||||
mcMMO.p.getLogger().warning(playerName + "does not exist in the HUD table. Their HUDs will be reset.");
|
||||
}
|
||||
else {
|
||||
hudType = HudType.valueOf(hudValues.get(0));
|
||||
mobHealthbarType = MobHealthbarType.valueOf(hudValues.get(1));
|
||||
}
|
||||
skills.put(SkillType.TAMING, Integer.valueOf(playerData.get(1)));
|
||||
skills.put(SkillType.MINING, Integer.valueOf(playerData.get(2)));
|
||||
skills.put(SkillType.REPAIR, Integer.valueOf(playerData.get(3)));
|
||||
skills.put(SkillType.WOODCUTTING, Integer.valueOf(playerData.get(4)));
|
||||
skills.put(SkillType.UNARMED, Integer.valueOf(playerData.get(5)));
|
||||
skills.put(SkillType.HERBALISM, Integer.valueOf(playerData.get(6)));
|
||||
skills.put(SkillType.EXCAVATION, Integer.valueOf(playerData.get(7)));
|
||||
skills.put(SkillType.ARCHERY, Integer.valueOf(playerData.get(8)));
|
||||
skills.put(SkillType.SWORDS, Integer.valueOf(playerData.get(9)));
|
||||
skills.put(SkillType.AXES, Integer.valueOf(playerData.get(10)));
|
||||
skills.put(SkillType.ACROBATICS, Integer.valueOf(playerData.get(11)));
|
||||
skills.put(SkillType.FISHING, Integer.valueOf(playerData.get(12)));
|
||||
|
||||
ArrayList<String> cooldownValues = SQLDatabaseManager.read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes, blast_mining FROM " + tablePrefix + "cooldowns WHERE user_id = " + userId).get(1);
|
||||
skillsXp.put(SkillType.TAMING, (float) Integer.valueOf(playerData.get(13)));
|
||||
skillsXp.put(SkillType.MINING, (float) Integer.valueOf(playerData.get(14)));
|
||||
skillsXp.put(SkillType.REPAIR, (float) Integer.valueOf(playerData.get(15)));
|
||||
skillsXp.put(SkillType.WOODCUTTING, (float) Integer.valueOf(playerData.get(16)));
|
||||
skillsXp.put(SkillType.UNARMED, (float) Integer.valueOf(playerData.get(17)));
|
||||
skillsXp.put(SkillType.HERBALISM, (float) Integer.valueOf(playerData.get(18)));
|
||||
skillsXp.put(SkillType.EXCAVATION, (float) Integer.valueOf(playerData.get(19)));
|
||||
skillsXp.put(SkillType.ARCHERY, (float) Integer.valueOf(playerData.get(20)));
|
||||
skillsXp.put(SkillType.SWORDS, (float) Integer.valueOf(playerData.get(21)));
|
||||
skillsXp.put(SkillType.AXES, (float) Integer.valueOf(playerData.get(22)));
|
||||
skillsXp.put(SkillType.ACROBATICS, (float) Integer.valueOf(playerData.get(23)));
|
||||
skillsXp.put(SkillType.FISHING, (float) Integer.valueOf(playerData.get(24)));
|
||||
|
||||
if (cooldownValues == null) {
|
||||
SQLDatabaseManager.write("INSERT INTO " + tablePrefix + "cooldowns (user_id) VALUES (" + userId + ")");
|
||||
mcMMO.p.getLogger().warning(playerName + "does not exist in the cooldown table. Their cooldowns will be reset.");
|
||||
}
|
||||
else {
|
||||
skillsDATS.put(AbilityType.SUPER_BREAKER, Integer.valueOf(cooldownValues.get(0)));
|
||||
skillsDATS.put(AbilityType.TREE_FELLER, Integer.valueOf(cooldownValues.get(1)));
|
||||
skillsDATS.put(AbilityType.BERSERK, Integer.valueOf(cooldownValues.get(2)));
|
||||
skillsDATS.put(AbilityType.GREEN_TERRA, Integer.valueOf(cooldownValues.get(3)));
|
||||
skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, Integer.valueOf(cooldownValues.get(4)));
|
||||
skillsDATS.put(AbilityType.SERRATED_STRIKES, Integer.valueOf(cooldownValues.get(5)));
|
||||
skillsDATS.put(AbilityType.SKULL_SPLITTER, Integer.valueOf(cooldownValues.get(6)));
|
||||
skillsDATS.put(AbilityType.BLAST_MINING, Integer.valueOf(cooldownValues.get(7)));
|
||||
}
|
||||
// Taming 25 - Unused
|
||||
skillsDATS.put(AbilityType.SUPER_BREAKER, Integer.valueOf(playerData.get(26)));
|
||||
// Repair 27 - Unused
|
||||
skillsDATS.put(AbilityType.TREE_FELLER, Integer.valueOf(playerData.get(28)));
|
||||
skillsDATS.put(AbilityType.BERSERK, Integer.valueOf(playerData.get(29)));
|
||||
skillsDATS.put(AbilityType.GREEN_TERRA, Integer.valueOf(playerData.get(30)));
|
||||
skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, Integer.valueOf(playerData.get(31)));
|
||||
// Archery 32 - Unused
|
||||
skillsDATS.put(AbilityType.SERRATED_STRIKES, Integer.valueOf(playerData.get(33)));
|
||||
skillsDATS.put(AbilityType.SKULL_SPLITTER, Integer.valueOf(playerData.get(34)));
|
||||
// Acrobatics 35 - Unused
|
||||
skillsDATS.put(AbilityType.BLAST_MINING, Integer.valueOf(playerData.get(36)));
|
||||
|
||||
ArrayList<String> statValues = SQLDatabaseManager.read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM " + tablePrefix + "skills WHERE user_id = " + userId).get(1);
|
||||
|
||||
if (statValues == null) {
|
||||
SQLDatabaseManager.write("INSERT INTO " + tablePrefix + "skills (user_id) VALUES (" + userId + ")");
|
||||
mcMMO.p.getLogger().warning(playerName + "does not exist in the skills table. Their stats will be reset.");
|
||||
}
|
||||
else {
|
||||
skills.put(SkillType.TAMING, Integer.valueOf(statValues.get(0)));
|
||||
skills.put(SkillType.MINING, Integer.valueOf(statValues.get(1)));
|
||||
skills.put(SkillType.REPAIR, Integer.valueOf(statValues.get(2)));
|
||||
skills.put(SkillType.WOODCUTTING, Integer.valueOf(statValues.get(3)));
|
||||
skills.put(SkillType.UNARMED, Integer.valueOf(statValues.get(4)));
|
||||
skills.put(SkillType.HERBALISM, Integer.valueOf(statValues.get(5)));
|
||||
skills.put(SkillType.EXCAVATION, Integer.valueOf(statValues.get(6)));
|
||||
skills.put(SkillType.ARCHERY, Integer.valueOf(statValues.get(7)));
|
||||
skills.put(SkillType.SWORDS, Integer.valueOf(statValues.get(8)));
|
||||
skills.put(SkillType.AXES, Integer.valueOf(statValues.get(9)));
|
||||
skills.put(SkillType.ACROBATICS, Integer.valueOf(statValues.get(10)));
|
||||
skills.put(SkillType.FISHING, Integer.valueOf(statValues.get(11)));
|
||||
}
|
||||
|
||||
ArrayList<String> experienceValues = SQLDatabaseManager.read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM " + tablePrefix + "experience WHERE user_id = " + userId).get(1);
|
||||
|
||||
if (experienceValues == null) {
|
||||
SQLDatabaseManager.write("INSERT INTO " + tablePrefix + "experience (user_id) VALUES (" + userId + ")");
|
||||
mcMMO.p.getLogger().warning(playerName + "does not exist in the experience table. Their experience will be reset.");
|
||||
}
|
||||
else {
|
||||
skillsXp.put(SkillType.TAMING, (float) Integer.valueOf(experienceValues.get(0)));
|
||||
skillsXp.put(SkillType.MINING, (float) Integer.valueOf(experienceValues.get(1)));
|
||||
skillsXp.put(SkillType.REPAIR, (float) Integer.valueOf(experienceValues.get(2)));
|
||||
skillsXp.put(SkillType.WOODCUTTING, (float) Integer.valueOf(experienceValues.get(3)));
|
||||
skillsXp.put(SkillType.UNARMED, (float) Integer.valueOf(experienceValues.get(4)));
|
||||
skillsXp.put(SkillType.HERBALISM, (float) Integer.valueOf(experienceValues.get(5)));
|
||||
skillsXp.put(SkillType.EXCAVATION, (float) Integer.valueOf(experienceValues.get(6)));
|
||||
skillsXp.put(SkillType.ARCHERY, (float) Integer.valueOf(experienceValues.get(7)));
|
||||
skillsXp.put(SkillType.SWORDS, (float) Integer.valueOf(experienceValues.get(8)));
|
||||
skillsXp.put(SkillType.AXES, (float) Integer.valueOf(experienceValues.get(9)));
|
||||
skillsXp.put(SkillType.ACROBATICS, (float) Integer.valueOf(experienceValues.get(10)));
|
||||
skillsXp.put(SkillType.FISHING, (float) Integer.valueOf(experienceValues.get(11)));
|
||||
}
|
||||
hudType = HudType.valueOf(playerData.get(37));
|
||||
mobHealthbarType = MobHealthbarType.valueOf(playerData.get(38));
|
||||
|
||||
loaded = true;
|
||||
return true;
|
||||
|
||||
@@ -144,4 +144,14 @@ public enum SkillType {
|
||||
public Color getRunescapeModeColor() {
|
||||
return runescapeColor;
|
||||
}
|
||||
|
||||
public static SkillType byAbility(AbilityType ability) {
|
||||
for (SkillType type : values()) {
|
||||
if (type.getAbility() == ability) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.gmail.nossr50.events.fake;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
|
||||
public class FakePlayerFishEvent extends PlayerFishEvent {
|
||||
public FakePlayerFishEvent(Player player, Entity entity, Fish hookEntity, State state) {
|
||||
super(player, entity, hookEntity, state);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.gmail.nossr50.events.skills.abilities;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
|
||||
|
||||
public class McMMOPlayerAbilityActivateEvent extends McMMOPlayerSkillEvent implements Cancellable {
|
||||
|
||||
private AbilityType abilityType;
|
||||
private boolean cancelled;
|
||||
|
||||
public McMMOPlayerAbilityActivateEvent(Player player, SkillType skill) {
|
||||
super(player, skill);
|
||||
abilityType = skill.getAbility();
|
||||
cancelled = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The ability type involved in this event
|
||||
*/
|
||||
public AbilityType getAbilityType() {
|
||||
return abilityType;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
public void setCancelled(boolean value) {
|
||||
this.cancelled = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.gmail.nossr50.events.skills.abilities;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
|
||||
|
||||
public class McMMOPlayerAbilityDeactivateEvent extends McMMOPlayerSkillEvent {
|
||||
|
||||
private AbilityType ability;
|
||||
|
||||
public McMMOPlayerAbilityDeactivateEvent(Player player, SkillType skill) {
|
||||
super(player, skill);
|
||||
this.ability = skill.getAbility();
|
||||
}
|
||||
|
||||
public AbilityType getAbility() {
|
||||
return ability;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,9 @@ package com.gmail.nossr50.listeners;
|
||||
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.AnimalTamer;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -15,19 +17,22 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.entity.EntityTameEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
|
||||
@@ -52,6 +57,24 @@ public class EntityListener implements Listener {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityShootBow(EntityShootBowEvent event) {
|
||||
ItemStack bow = event.getBow();
|
||||
|
||||
if (bow != null) {
|
||||
Entity projectile = event.getProjectile();
|
||||
|
||||
if (projectile instanceof Arrow) {
|
||||
if (bow.containsEnchantment(Enchantment.ARROW_INFINITE)) {
|
||||
projectile.setMetadata(mcMMO.infiniteArrowKey, mcMMO.metadataValue);
|
||||
}
|
||||
|
||||
projectile.setMetadata(mcMMO.bowForceKey, new FixedMetadataValue(plugin, Math.min(event.getForce() * AdvancedConfig.getInstance().getForceMultiplier(), 1.0)));
|
||||
projectile.setMetadata(mcMMO.arrowDistanceKey, new FixedMetadataValue(plugin, Archery.locationToString(projectile.getLocation())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor EntityChangeBlock events.
|
||||
*
|
||||
@@ -298,14 +321,21 @@ public class EntityListener implements Listener {
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
if (Misc.isSpawnerXPEnabled) {
|
||||
return;
|
||||
}
|
||||
switch (event.getSpawnReason()) {
|
||||
case SPAWNER:
|
||||
case SPAWNER_EGG:
|
||||
LivingEntity entity = event.getEntity();
|
||||
Entity passenger = entity.getPassenger();
|
||||
|
||||
SpawnReason reason = event.getSpawnReason();
|
||||
entity.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
|
||||
|
||||
if (reason == SpawnReason.SPAWNER || reason == SpawnReason.SPAWNER_EGG) {
|
||||
event.getEntity().setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
|
||||
if (passenger != null) {
|
||||
passenger.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Furnace;
|
||||
@@ -19,8 +22,10 @@ import org.bukkit.inventory.FurnaceInventory;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||
import com.gmail.nossr50.util.ItemUtils;
|
||||
@@ -96,10 +101,11 @@ public class InventoryListener implements Listener {
|
||||
|
||||
if (furnaceState instanceof Furnace) {
|
||||
ItemStack smelting = ((Furnace) furnaceState).getInventory().getSmelting();
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey);
|
||||
|
||||
if (furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && smelting != null && ItemUtils.isSmeltable(smelting)) {
|
||||
if (!metadata.isEmpty() && smelting != null && ItemUtils.isSmeltable(smelting)) {
|
||||
// We can make this assumption because we (should) be the only ones using this exact metadata
|
||||
Player player = plugin.getServer().getPlayer(furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).get(0).asString());
|
||||
Player player = plugin.getServer().getPlayer(metadata.get(0).asString());
|
||||
|
||||
if (Misc.isNPCEntity(player) || !Permissions.fuelEfficiency(player)) {
|
||||
return;
|
||||
@@ -117,10 +123,19 @@ public class InventoryListener implements Listener {
|
||||
|
||||
if (furnaceState instanceof Furnace) {
|
||||
ItemStack smelting = ((Furnace) furnaceState).getInventory().getSmelting();
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey);
|
||||
|
||||
if (furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && smelting != null && ItemUtils.isSmeltable(smelting)) {
|
||||
if (Config.getInstance().getPotatoEnabled() && smelting.getType() == Material.POTATO_ITEM) {
|
||||
if ((Config.getInstance().getPotatoChance() / 100.0) >= Misc.getRandom().nextDouble()) {
|
||||
event.setCancelled(true);
|
||||
furnaceState.getWorld().createExplosion(furnaceState.getLocation(), 4F, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!metadata.isEmpty() && smelting != null && ItemUtils.isSmeltable(smelting)) {
|
||||
// We can make this assumption because we (should) be the only ones using this exact metadata
|
||||
Player player = plugin.getServer().getPlayer(furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).get(0).asString());
|
||||
Player player = plugin.getServer().getPlayer(metadata.get(0).asString());
|
||||
|
||||
if (Misc.isNPCEntity(player) || !Permissions.skillEnabled(player, SkillType.SMELTING)) {
|
||||
return;
|
||||
@@ -138,10 +153,11 @@ public class InventoryListener implements Listener {
|
||||
|
||||
if (furnaceState instanceof Furnace) {
|
||||
ItemStack result = ((Furnace) furnaceState).getInventory().getResult();
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey);
|
||||
|
||||
if (furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && result != null && ItemUtils.isSmelted(result)) {
|
||||
if (!metadata.isEmpty() && result != null && ItemUtils.isSmelted(result)) {
|
||||
// We can make this assumption because we (should) be the only ones using this exact metadata
|
||||
Player player = plugin.getServer().getPlayer(furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).get(0).asString());
|
||||
Player player = plugin.getServer().getPlayer(metadata.get(0).asString());
|
||||
|
||||
if (Misc.isNPCEntity(player)) {
|
||||
return;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -54,6 +54,7 @@ import com.gmail.nossr50.util.MobHealthbarUtils;
|
||||
import com.gmail.nossr50.util.Motd;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
|
||||
public class PlayerListener implements Listener {
|
||||
@@ -144,6 +145,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
UserManager.addUser(player).actualizeRespawnATS();
|
||||
ScoreboardManager.enablePowerLevelDisplay(player);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,6 +178,14 @@ public class PlayerListener implements Listener {
|
||||
|
||||
switch (event.getState()) {
|
||||
case FISHING:
|
||||
if (!Permissions.krakenBypass(player)) {
|
||||
event.setCancelled(fishingManager.exploitPrevention());
|
||||
}
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (fishingManager.canMasterAngler()) {
|
||||
fishingManager.masterAngler(event.getHook());
|
||||
}
|
||||
@@ -191,11 +201,22 @@ public class PlayerListener implements Listener {
|
||||
|
||||
case CAUGHT_ENTITY:
|
||||
Entity entity = event.getCaught();
|
||||
|
||||
if (fishingManager.canShake(entity)) {
|
||||
fishingManager.shakeCheck((LivingEntity) entity);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case IN_GROUND:
|
||||
Fish hook = event.getHook();
|
||||
Block block = hook.getLocation().getBlock();
|
||||
|
||||
if (fishingManager.canIceFish(block)) {
|
||||
event.setCancelled(true);
|
||||
fishingManager.iceFishing(hook, block);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -303,13 +324,20 @@ public class PlayerListener implements Listener {
|
||||
public void onPlayerInteractLowest(PlayerInteractEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Block block = event.getClickedBlock();
|
||||
ItemStack heldItem = player.getItemInHand();
|
||||
|
||||
if (Misc.isNPCEntity(player) || player.getGameMode() == GameMode.CREATIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
MiningManager miningManager = UserManager.getPlayer(player).getMiningManager();
|
||||
ItemStack heldItem = player.getItemInHand();
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
// This shouldn't be possible - this is probably a band-aid for a larger issue somewhere else.
|
||||
if (mcMMOPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
MiningManager miningManager = mcMMOPlayer.getMiningManager();
|
||||
|
||||
switch (event.getAction()) {
|
||||
case RIGHT_CLICK_BLOCK:
|
||||
@@ -317,7 +345,7 @@ public class PlayerListener implements Listener {
|
||||
|
||||
/* REPAIR CHECKS */
|
||||
if (blockID == Repair.repairAnvilId && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
|
||||
RepairManager repairManager = UserManager.getPlayer(player).getRepairManager();
|
||||
RepairManager repairManager = mcMMOPlayer.getRepairManager();
|
||||
event.setCancelled(true);
|
||||
|
||||
// Make sure the player knows what he's doing when trying to repair an enchanted item
|
||||
@@ -328,7 +356,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
/* SALVAGE CHECKS */
|
||||
else if (blockID == Repair.salvageAnvilId && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
|
||||
RepairManager repairManager = UserManager.getPlayer(player).getRepairManager();
|
||||
RepairManager repairManager = mcMMOPlayer.getRepairManager();
|
||||
event.setCancelled(true);
|
||||
|
||||
// Make sure the player knows what he's doing when trying to salvage an enchanted item
|
||||
@@ -354,22 +382,22 @@ public class PlayerListener implements Listener {
|
||||
|
||||
/* REPAIR CHECKS */
|
||||
if (blockID == Repair.repairAnvilId && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
|
||||
RepairManager repairManager = UserManager.getPlayer(player).getRepairManager();
|
||||
RepairManager repairManager = mcMMOPlayer.getRepairManager();
|
||||
|
||||
// Cancel repairing an enchanted item
|
||||
if (repairManager.checkConfirmation(blockID, false) && Config.getInstance().getRepairConfirmRequired()) {
|
||||
UserManager.getPlayer(player).setLastAnvilUse(Repair.repairAnvilId, 0);
|
||||
player.sendMessage(ChatColor.RED + "Repair cancelled!"); //TODO Locale!
|
||||
mcMMOPlayer.setLastAnvilUse(Repair.repairAnvilId, 0);
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Cancelled", LocaleLoader.getString("Repair.Pretty.Name")));
|
||||
}
|
||||
}
|
||||
/* SALVAGE CHECKS */
|
||||
else if (blockID == Repair.salvageAnvilId && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
|
||||
RepairManager repairManager = UserManager.getPlayer(player).getRepairManager();
|
||||
RepairManager repairManager = mcMMOPlayer.getRepairManager();
|
||||
|
||||
// Cancel salvaging an enchanted item
|
||||
if (repairManager.checkConfirmation(blockID, false) && Config.getInstance().getRepairConfirmRequired()) {
|
||||
UserManager.getPlayer(player).setLastAnvilUse(Repair.salvageAnvilId, 0);
|
||||
player.sendMessage(ChatColor.RED + "Salvage cancelled!"); //TODO Locale!
|
||||
mcMMOPlayer.setLastAnvilUse(Repair.salvageAnvilId, 0);
|
||||
player.sendMessage(LocaleLoader.getString("Skills.Cancelled", LocaleLoader.getString("Salvage.Pretty.Name")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,6 +432,11 @@ public class PlayerListener implements Listener {
|
||||
ItemStack heldItem = player.getItemInHand();
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
// This shouldn't be possible - this is probably a band-aid for a larger issue somewhere else.
|
||||
if (mcMMOPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event.getAction()) {
|
||||
case RIGHT_CLICK_BLOCK:
|
||||
Block block = event.getClickedBlock();
|
||||
@@ -502,10 +535,16 @@ public class PlayerListener implements Listener {
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if (mcMMOPlayer == null) {
|
||||
mcMMO.p.debug(player.getName() + " is currently chatting, but has never logged on to the server.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (mcMMOPlayer.getPartyChatMode()) {
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party == null) {
|
||||
mcMMOPlayer.togglePartyChat();
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@ import org.getspout.spoutapi.gui.Button;
|
||||
import org.getspout.spoutapi.gui.ScreenType;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
|
||||
import com.gmail.nossr50.config.spout.SpoutConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.spout.buttons.McMMOButton;
|
||||
import com.gmail.nossr50.datatypes.spout.huds.McMMOHud;
|
||||
import com.gmail.nossr50.datatypes.spout.popups.McMMOMenu;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public class SpoutListener implements Listener {
|
||||
|
||||
@@ -32,8 +32,8 @@ public class SpoutListener implements Listener {
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(spoutPlayer);
|
||||
|
||||
// TODO: Add custom titles based on skills
|
||||
if (SpoutUtils.showPowerLevel) {
|
||||
spoutPlayer.setTitle(LocaleLoader.getString("Spout.Title", spoutPlayer.getName(), mcMMOPlayer.getPowerLevel()));
|
||||
if (SpoutConfig.getInstance().getShowPowerLevel()) {
|
||||
spoutPlayer.setTitle(LocaleLoader.getString("Spout.Title", spoutPlayer.getTitle(), mcMMOPlayer.getPowerLevel()));
|
||||
}
|
||||
|
||||
mcMMOPlayer.getProfile().setSpoutHud(new McMMOHud(mcMMOPlayer)); // Setup Party HUD stuff
|
||||
@@ -81,7 +81,7 @@ public class SpoutListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getKey() == SpoutUtils.menuKey) {
|
||||
if (event.getKey() == SpoutConfig.getInstance().getMenuKey()) {
|
||||
McMMOHud spoutHud = UserManager.getPlayer(spoutPlayer).getProfile().getSpoutHud();
|
||||
|
||||
if (!spoutHud.isMenuOpened()) {
|
||||
|
||||
@@ -23,13 +23,12 @@ import com.gmail.nossr50.config.mods.CustomToolConfig;
|
||||
import com.gmail.nossr50.config.spout.SpoutConfig;
|
||||
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||
import com.gmail.nossr50.database.DatabaseManager;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
import com.gmail.nossr50.listeners.BlockListener;
|
||||
import com.gmail.nossr50.listeners.EntityListener;
|
||||
import com.gmail.nossr50.listeners.InventoryListener;
|
||||
import com.gmail.nossr50.listeners.PlayerListener;
|
||||
import com.gmail.nossr50.listeners.SelfListener;
|
||||
import com.gmail.nossr50.listeners.SpoutListener;
|
||||
import com.gmail.nossr50.listeners.WorldListener;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.metrics.MetricsManager;
|
||||
@@ -54,18 +53,10 @@ import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public class mcMMO extends JavaPlugin {
|
||||
/* Listeners */
|
||||
private final PlayerListener playerListener = new PlayerListener(this);
|
||||
private final BlockListener blockListener = new BlockListener(this);
|
||||
private final EntityListener entityListener = new EntityListener(this);
|
||||
private final InventoryListener inventoryListener = new InventoryListener(this);
|
||||
private final WorldListener worldListener = new WorldListener(this);
|
||||
private final SelfListener selfListener = new SelfListener();
|
||||
|
||||
/* Managers */
|
||||
private static ChunkManager placeStore;
|
||||
private static ChunkManager placeStore;
|
||||
private static RepairableManager repairableManager;
|
||||
private static DatabaseManager databaseManager;
|
||||
private static DatabaseManager databaseManager;
|
||||
|
||||
/* File Paths */
|
||||
private static String mainDirectory;
|
||||
@@ -81,14 +72,14 @@ public class mcMMO extends JavaPlugin {
|
||||
// Update Check
|
||||
private boolean updateAvailable;
|
||||
|
||||
// Plugin Checks
|
||||
public static boolean spoutEnabled;
|
||||
public static boolean combatTagEnabled;
|
||||
/* Plugin Checks */
|
||||
private static boolean spoutEnabled;
|
||||
private static boolean combatTagEnabled;
|
||||
|
||||
// XP Event Check
|
||||
private boolean xpEventEnabled;
|
||||
|
||||
// Metadata Values
|
||||
/* Metadata Values */
|
||||
public final static String entityMetadataKey = "mcMMO: Spawned Entity";
|
||||
public final static String blockMetadataKey = "mcMMO: Piston Tracking";
|
||||
public final static String furnaceMetadataKey = "mcMMO: Tracked Furnace";
|
||||
@@ -96,6 +87,9 @@ public class mcMMO extends JavaPlugin {
|
||||
public final static String customNameKey = "mcMMO: Custom Name";
|
||||
public final static String customVisibleKey = "mcMMO: Name Visibility";
|
||||
public final static String droppedItemKey = "mcMMO: Tracked Item";
|
||||
public final static String infiniteArrowKey = "mcMMO: Infinite Arrow";
|
||||
public final static String bowForceKey = "mcMMO: Bow Force";
|
||||
public final static String arrowDistanceKey = "mcMMO: Arrow Distance";
|
||||
|
||||
public static FixedMetadataValue metadataValue;
|
||||
|
||||
@@ -113,7 +107,7 @@ public class mcMMO extends JavaPlugin {
|
||||
setupSpout();
|
||||
loadConfigFiles();
|
||||
|
||||
combatTagEnabled = getServer().getPluginManager().isPluginEnabled("CombatTag");
|
||||
combatTagEnabled = getServer().getPluginManager().getPlugin("CombatTag") != null;
|
||||
|
||||
databaseManager = new DatabaseManager(this, Config.getInstance().getUseMySQL());
|
||||
|
||||
@@ -129,7 +123,7 @@ public class mcMMO extends JavaPlugin {
|
||||
debug("Version " + getDescription().getVersion() + " is enabled!");
|
||||
|
||||
scheduleTasks();
|
||||
registerCommands();
|
||||
CommandRegistrationManager.registerCommands();
|
||||
|
||||
MetricsManager.setup();
|
||||
|
||||
@@ -161,7 +155,6 @@ public class mcMMO extends JavaPlugin {
|
||||
@Override
|
||||
public void onDisable() {
|
||||
try {
|
||||
reloadDisableHelper(); // Prevent Berserk from getting "stuck"
|
||||
UserManager.saveAll(); // Make sure to save player information if the server shuts down
|
||||
PartyManager.saveParties(); // Save our parties
|
||||
placeStore.saveAll(); // Save our metadata
|
||||
@@ -242,6 +235,14 @@ public class mcMMO extends JavaPlugin {
|
||||
return repairableManager;
|
||||
}
|
||||
|
||||
public static boolean isSpoutEnabled() {
|
||||
return spoutEnabled;
|
||||
}
|
||||
|
||||
public static boolean isCombatTagEnabled() {
|
||||
return combatTagEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup the various storage file paths
|
||||
*/
|
||||
@@ -313,8 +314,7 @@ public class mcMMO extends JavaPlugin {
|
||||
spoutEnabled = true;
|
||||
|
||||
SpoutConfig.getInstance();
|
||||
SpoutUtils.setupSpoutConfigs();
|
||||
SpoutUtils.registerCustomEvent();
|
||||
getServer().getPluginManager().registerEvents(new SpoutListener(), this);
|
||||
SpoutUtils.preCacheFiles();
|
||||
SpoutUtils.reloadSpoutPlayers(); // Handle spout players after a /reload
|
||||
}
|
||||
@@ -324,53 +324,12 @@ public class mcMMO extends JavaPlugin {
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
|
||||
// Register events
|
||||
pluginManager.registerEvents(playerListener, this);
|
||||
pluginManager.registerEvents(blockListener, this);
|
||||
pluginManager.registerEvents(entityListener, this);
|
||||
pluginManager.registerEvents(inventoryListener, this);
|
||||
pluginManager.registerEvents(selfListener, this);
|
||||
pluginManager.registerEvents(worldListener, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the commands.
|
||||
*/
|
||||
private void registerCommands() {
|
||||
CommandRegistrationManager.registerSkillCommands();
|
||||
|
||||
// mc* commands
|
||||
CommandRegistrationManager.registerMcpurgeCommand();
|
||||
CommandRegistrationManager.registerMcremoveCommand();
|
||||
CommandRegistrationManager.registerMcabilityCommand();
|
||||
CommandRegistrationManager.registerMcgodCommand();
|
||||
CommandRegistrationManager.registerMcmmoCommand();
|
||||
CommandRegistrationManager.registerMcrefreshCommand();
|
||||
CommandRegistrationManager.registerMctopCommand();
|
||||
CommandRegistrationManager.registerMcrankCommand();
|
||||
CommandRegistrationManager.registerMcstatsCommand();
|
||||
|
||||
// Party commands
|
||||
CommandRegistrationManager.registerAdminChatCommand();
|
||||
CommandRegistrationManager.registerPartyCommand();
|
||||
CommandRegistrationManager.registerPartyChatCommand();
|
||||
CommandRegistrationManager.registerPtpCommand();
|
||||
|
||||
// Other commands
|
||||
CommandRegistrationManager.registerAddxpCommand();
|
||||
CommandRegistrationManager.registerAddlevelsCommand();
|
||||
CommandRegistrationManager.registerMmoeditCommand();
|
||||
CommandRegistrationManager.registerInspectCommand();
|
||||
CommandRegistrationManager.registerXprateCommand();
|
||||
CommandRegistrationManager.registerMmoupdateCommand();
|
||||
CommandRegistrationManager.registerSkillresetCommand();
|
||||
CommandRegistrationManager.registerHardcoreCommand();
|
||||
CommandRegistrationManager.registerVampirismCommand();
|
||||
CommandRegistrationManager.registerMcnotifyCommand();
|
||||
CommandRegistrationManager.registerMobhealthCommand();
|
||||
|
||||
// Spout commands
|
||||
CommandRegistrationManager.registerXplockCommand();
|
||||
CommandRegistrationManager.registerMchudCommand();
|
||||
pluginManager.registerEvents(new PlayerListener(this), this);
|
||||
pluginManager.registerEvents(new BlockListener(this), this);
|
||||
pluginManager.registerEvents(new EntityListener(this), this);
|
||||
pluginManager.registerEvents(new InventoryListener(this), this);
|
||||
pluginManager.registerEvents(new SelfListener(), this);
|
||||
pluginManager.registerEvents(new WorldListener(this), this);
|
||||
}
|
||||
|
||||
private void registerCustomRecipes() {
|
||||
@@ -382,49 +341,29 @@ public class mcMMO extends JavaPlugin {
|
||||
private void scheduleTasks() {
|
||||
// Periodic save timer (Saves every 10 minutes by default)
|
||||
long saveIntervalTicks = Config.getInstance().getSaveInterval() * 1200;
|
||||
|
||||
new SaveTimerTask().runTaskTimer(this, saveIntervalTicks, saveIntervalTicks);
|
||||
|
||||
// Bleed timer (Runs every two seconds)
|
||||
new BleedTimerTask().runTaskTimer(this, 40, 40);
|
||||
|
||||
// Old & Powerless User remover
|
||||
int purgeInterval = Config.getInstance().getPurgeInterval();
|
||||
UserPurgeTask userPurgeTask = new UserPurgeTask();
|
||||
long purgeIntervalTicks = Config.getInstance().getPurgeInterval() * 60 * 60 * 20;
|
||||
|
||||
if (purgeInterval == 0) {
|
||||
userPurgeTask.runTaskLater(this, 40);
|
||||
if (purgeIntervalTicks == 0) {
|
||||
new UserPurgeTask().runTaskLater(this, 40); // Start 2 seconds after startup.
|
||||
}
|
||||
else if (purgeInterval > 0) {
|
||||
long purgeIntervalTicks = purgeInterval * 60 * 60 * 20;
|
||||
|
||||
userPurgeTask.runTaskTimer(this, purgeIntervalTicks, purgeIntervalTicks);
|
||||
else if (purgeIntervalTicks > 0) {
|
||||
new UserPurgeTask().runTaskTimer(this, purgeIntervalTicks, purgeIntervalTicks);
|
||||
}
|
||||
|
||||
// Automatically remove old members from parties
|
||||
long kickInterval = Config.getInstance().getAutoPartyKickInterval();
|
||||
PartyAutoKickTask partyAutoKickTask = new PartyAutoKickTask();
|
||||
long kickIntervalTicks = Config.getInstance().getAutoPartyKickInterval() * 60 * 60 * 20;
|
||||
|
||||
if (kickInterval == 0) {
|
||||
partyAutoKickTask.runTaskLater(this, 40); // Start 2 seconds after startup.
|
||||
if (kickIntervalTicks == 0) {
|
||||
new PartyAutoKickTask().runTaskLater(this, 40); // Start 2 seconds after startup.
|
||||
}
|
||||
else if (kickInterval > 0) {
|
||||
long kickIntervalTicks = kickInterval * 60 * 60 * 20;
|
||||
|
||||
partyAutoKickTask.runTaskTimer(this, kickIntervalTicks, kickIntervalTicks);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Because /reload is the biggest piece of garbage in existence,
|
||||
* we have to do some special checks to keep it from breaking everything.
|
||||
*/
|
||||
private void reloadDisableHelper() {
|
||||
for (McMMOPlayer mcMMOPlayer : UserManager.getPlayers().values()) {
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.BERSERK)) {
|
||||
mcMMOPlayer.setAbilityMode(AbilityType.BERSERK, false);
|
||||
mcMMOPlayer.getPlayer().setCanPickupItems(true);
|
||||
}
|
||||
else if (kickIntervalTicks > 0) {
|
||||
new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||
import com.gmail.nossr50.database.FlatfileDatabaseManager;
|
||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||
|
||||
public class McrankCommandAsyncTask extends BukkitRunnable {
|
||||
private final String playerName;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.runnables.items;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -29,19 +28,18 @@ public class ChimaeraWingWarmup extends BukkitRunnable {
|
||||
private void checkChimaeraWingTeleport() {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
|
||||
Location newLocation = mcMMOPlayer.getPlayer().getLocation();
|
||||
long recentlyHurt = mcMMOPlayer.getRecentlyHurt();
|
||||
ItemStack inHand = player.getItemInHand();
|
||||
|
||||
mcMMOPlayer.setTeleportCommenceLocation(null);
|
||||
|
||||
if (newLocation.distanceSquared(previousLocation) > 1.0 || !player.getInventory().containsAtLeast(ChimaeraWing.getChimaeraWing(0), 1)) {
|
||||
player.sendMessage(ChatColor.DARK_RED + "Teleportation canceled!"); //TODO Locale!
|
||||
if (player.getLocation().distanceSquared(previousLocation) > 1.0 || !player.getInventory().containsAtLeast(ChimaeraWing.getChimaeraWing(0), 1)) {
|
||||
player.sendMessage(LocaleLoader.getString("Teleport.Cancelled"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ItemUtils.isChimaeraWing(inHand) || inHand.getAmount() < Config.getInstance().getChimaeraUseCost()) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.NeedMore", "Chimaera Wings")); //TODO Locale!
|
||||
player.sendMessage(LocaleLoader.getString("Skills.NeedMore", LocaleLoader.getString("Item.ChimaeraWing.Name")));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.runnables.items;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
@@ -44,7 +43,7 @@ public class TeleportationWarmup extends BukkitRunnable {
|
||||
}
|
||||
|
||||
if (newLocation.distanceSquared(previousLocation) > 1.0) {
|
||||
teleportingPlayer.sendMessage(ChatColor.DARK_RED + "Teleportation canceled!"); //TODO Locale!
|
||||
teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Cancelled"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,11 @@ public class ScoreboardChangeTask extends BukkitRunnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
player.setScoreboard(oldScoreboard);
|
||||
if (player.isOnline()) {
|
||||
player.setScoreboard(oldScoreboard);
|
||||
ScoreboardManager.enablePowerLevelDisplay(player);
|
||||
}
|
||||
|
||||
ScoreboardManager.clearPendingTask(player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.HiddenConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityDeactivateEvent;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
@@ -44,6 +46,9 @@ public class AbilityDisableTask extends BukkitRunnable {
|
||||
break;
|
||||
}
|
||||
|
||||
McMMOPlayerAbilityDeactivateEvent event = new McMMOPlayerAbilityDeactivateEvent(player, SkillType.byAbility(ability));
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
mcMMOPlayer.setAbilityMode(ability, false);
|
||||
mcMMOPlayer.setAbilityInformed(ability, false);
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.gmail.nossr50.runnables.skills;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
|
||||
public class KrakenAttackTask extends BukkitRunnable {
|
||||
private Creature kraken;
|
||||
private Player player;
|
||||
private Location location;
|
||||
private final boolean GLOBAL_SOUNDS = AdvancedConfig.getInstance().getKrakenGlobalSoundsEnabled();
|
||||
|
||||
public KrakenAttackTask(Creature kraken, Player player) {
|
||||
this.kraken = kraken;
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public KrakenAttackTask(Creature kraken, Player player, Location location) {
|
||||
this.kraken = kraken;
|
||||
this.player = player;
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (location != null) {
|
||||
Location playerLocation = player.getLocation();
|
||||
|
||||
if (player.isValid() && playerLocation.getBlock().isLiquid()) {
|
||||
World world = player.getWorld();
|
||||
|
||||
player.damage(AdvancedConfig.getInstance().getKrakenAttackDamage(), kraken);
|
||||
|
||||
if (GLOBAL_SOUNDS) {
|
||||
world.playSound(playerLocation, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
else {
|
||||
player.playSound(playerLocation, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
|
||||
world.strikeLightningEffect(playerLocation);
|
||||
}
|
||||
else {
|
||||
player.sendMessage(AdvancedConfig.getInstance().getPlayerEscapeMessage());
|
||||
player.resetPlayerWeather();
|
||||
cancel();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!kraken.isValid()) {
|
||||
player.sendMessage(AdvancedConfig.getInstance().getPlayerDefeatMessage());
|
||||
player.resetPlayerWeather();
|
||||
cancel();
|
||||
}
|
||||
|
||||
if (player.isValid()) {
|
||||
Location location = player.getLocation();
|
||||
|
||||
if (!location.getBlock().isLiquid() && AdvancedConfig.getInstance().getKrakenEscapeAllowed()) {
|
||||
player.sendMessage(AdvancedConfig.getInstance().getPlayerEscapeMessage());
|
||||
kraken.remove();
|
||||
player.resetPlayerWeather();
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
World world = player.getWorld();
|
||||
|
||||
kraken.teleport(player);
|
||||
player.damage(AdvancedConfig.getInstance().getKrakenAttackDamage(), kraken);
|
||||
|
||||
if (GLOBAL_SOUNDS) {
|
||||
world.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
else {
|
||||
player.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
|
||||
world.strikeLightningEffect(location);
|
||||
}
|
||||
else {
|
||||
kraken.remove();
|
||||
cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,12 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
|
||||
@@ -65,4 +67,14 @@ public class Archery {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Location stringToLocation(String location) {
|
||||
String[] values = location.split(",");
|
||||
|
||||
return new Location(mcMMO.p.getServer().getWorld(values[0]), Double.parseDouble(values[1]), Double.parseDouble(values[2]), Double.parseDouble(values[3]), Float.parseFloat(values[4]), Float.parseFloat(values[5]));
|
||||
}
|
||||
|
||||
public static String locationToString(Location location) {
|
||||
return location.getWorld().getName() + "," + location.getX() + "," + location.getY() + "," + location.getZ() + "," + location.getYaw() + "," + location.getPitch();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.gmail.nossr50.skills.archery;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
@@ -30,9 +31,7 @@ public class ArcheryManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canTrackArrows() {
|
||||
Player player = getPlayer();
|
||||
|
||||
return !(player.getItemInHand().containsEnchantment(Enchantment.ARROW_INFINITE)) && Permissions.arrowRetrieval(player);
|
||||
return Permissions.arrowRetrieval(getPlayer());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -40,20 +39,15 @@ public class ArcheryManager extends SkillManager {
|
||||
*
|
||||
* @param target The {@link LivingEntity} damaged by the arrow
|
||||
*/
|
||||
public void distanceXpBonus(LivingEntity target) {
|
||||
Player player = getPlayer();
|
||||
Location shooterLocation = player.getLocation();
|
||||
public void distanceXpBonus(LivingEntity target, Entity damager) {
|
||||
Location firedLocation = Archery.stringToLocation(damager.getMetadata(mcMMO.arrowDistanceKey).get(0).asString());
|
||||
Location targetLocation = target.getLocation();
|
||||
|
||||
if (shooterLocation.getWorld() != targetLocation.getWorld()) {
|
||||
if (firedLocation.getWorld() != targetLocation.getWorld()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Cap distance at 100^2 to prevent teleport exploit.
|
||||
// TODO: Better way to handle this would be great...
|
||||
double squaredDistance = Math.min(shooterLocation.distanceSquared(targetLocation), 10000);
|
||||
|
||||
applyXpGain((int) (squaredDistance * Archery.DISTANCE_XP_MULTIPLIER));
|
||||
applyXpGain((int) (firedLocation.distanceSquared(targetLocation) * Archery.DISTANCE_XP_MULTIPLIER));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.gmail.nossr50.skills.fishing;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
@@ -49,6 +52,8 @@ public final class Fishing {
|
||||
abstract protected int getVanillaXPBoostModifier();
|
||||
}
|
||||
|
||||
protected static final HashMap<Material, List<Enchantment>> ENCHANTABLE_CACHE = new HashMap<Material, List<Enchantment>>();
|
||||
|
||||
public static int fishermansDietRankLevel1 = AdvancedConfig.getInstance().getFishermanDietRankChange();
|
||||
public static int fishermansDietRankLevel2 = fishermansDietRankLevel1 * 2;
|
||||
public static int fishermansDietMaxLevel = fishermansDietRankLevel1 * 5;
|
||||
|
||||
@@ -4,9 +4,19 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.WeatherType;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -14,8 +24,11 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Sheep;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Skeleton.SkeletonType;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||
@@ -23,7 +36,9 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
import com.gmail.nossr50.events.fake.FakePlayerFishEvent;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.runnables.skills.KrakenAttackTask;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
|
||||
import com.gmail.nossr50.util.ItemUtils;
|
||||
@@ -33,6 +48,11 @@ import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
|
||||
public class FishingManager extends SkillManager {
|
||||
private final long FISHING_COOLDOWN_SECONDS = 1000L;
|
||||
|
||||
private int fishingTries = 0;
|
||||
private long fishingTimestamp = 0L;
|
||||
|
||||
public FishingManager(McMMOPlayer mcMMOPlayer) {
|
||||
super(mcMMOPlayer, SkillType.FISHING);
|
||||
}
|
||||
@@ -45,6 +65,111 @@ public class FishingManager extends SkillManager {
|
||||
return Permissions.masterAngler(getPlayer());
|
||||
}
|
||||
|
||||
public boolean unleashTheKraken() {
|
||||
return unleashTheKraken(true);
|
||||
}
|
||||
|
||||
private boolean unleashTheKraken(boolean forceSpawn) {
|
||||
if (!forceSpawn && (fishingTries < AdvancedConfig.getInstance().getKrakenTriesBeforeRelease() || fishingTries <= Misc.getRandom().nextInt(200))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player player = getPlayer();
|
||||
World world = player.getWorld();
|
||||
|
||||
player.setPlayerWeather(WeatherType.DOWNFALL);
|
||||
|
||||
Entity vehicle = player.getVehicle();
|
||||
|
||||
if (vehicle != null && vehicle.getType() == EntityType.BOAT) {
|
||||
vehicle.eject();
|
||||
vehicle.remove();
|
||||
}
|
||||
|
||||
player.teleport(player.getTargetBlock(null, 100).getLocation(), TeleportCause.PLUGIN);
|
||||
|
||||
Location location = player.getLocation();
|
||||
|
||||
world.strikeLightningEffect(location);
|
||||
world.strikeLightningEffect(location);
|
||||
world.strikeLightningEffect(location);
|
||||
player.sendMessage(AdvancedConfig.getInstance().getPlayerUnleashMessage());
|
||||
|
||||
if (AdvancedConfig.getInstance().getKrakenGlobalSoundsEnabled()) {
|
||||
world.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
else {
|
||||
player.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
|
||||
}
|
||||
|
||||
String globalMessage = AdvancedConfig.getInstance().getServerUnleashMessage();
|
||||
|
||||
if (!globalMessage.isEmpty()) {
|
||||
mcMMO.p.getServer().broadcastMessage(ChatColor.RED + AdvancedConfig.getInstance().getServerUnleashMessage().replace("(PLAYER)", player.getDisplayName()));
|
||||
}
|
||||
|
||||
player.setItemInHand(null);
|
||||
|
||||
Creature kraken = (Creature) world.spawnEntity(player.getEyeLocation(), (Misc.getRandom().nextInt(100) == 0 ? EntityType.CHICKEN : EntityType.SQUID));
|
||||
kraken.setCustomName(AdvancedConfig.getInstance().getKrakenName());
|
||||
|
||||
if (!kraken.isValid()) {
|
||||
int attackInterval = AdvancedConfig.getInstance().getKrakenAttackInterval() * 20;
|
||||
new KrakenAttackTask(kraken, player, player.getLocation()).runTaskTimer(mcMMO.p, attackInterval, attackInterval);
|
||||
|
||||
if (!forceSpawn) {
|
||||
fishingTries = 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
kraken.setMaxHealth(AdvancedConfig.getInstance().getKrakenHealth());
|
||||
kraken.setHealth(kraken.getMaxHealth());
|
||||
|
||||
int attackInterval = AdvancedConfig.getInstance().getKrakenAttackInterval() * 20;
|
||||
new KrakenAttackTask(kraken, player).runTaskTimer(mcMMO.p, attackInterval, attackInterval);
|
||||
|
||||
if (!forceSpawn) {
|
||||
fishingTries = 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean exploitPrevention() {
|
||||
if (!AdvancedConfig.getInstance().getKrakenEnabled()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
long currentTime = System.currentTimeMillis();
|
||||
boolean hasFished = currentTime < fishingTimestamp + FISHING_COOLDOWN_SECONDS;
|
||||
|
||||
fishingTries = hasFished ? fishingTries + 1 : Math.max(fishingTries - 1, 0);
|
||||
fishingTimestamp = currentTime;
|
||||
return unleashTheKraken(false);
|
||||
}
|
||||
|
||||
public boolean canIceFish(Block block) {
|
||||
if (getSkillLevel() < AdvancedConfig.getInstance().getIceFishingUnlockLevel()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (block.getType() != Material.ICE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure this is a body of water, not just a block of ice.
|
||||
Biome biome = block.getBiome();
|
||||
boolean isFrozenBiome = (biome == Biome.FROZEN_OCEAN || biome == Biome.FROZEN_RIVER);
|
||||
|
||||
if (!isFrozenBiome && block.getRelative(BlockFace.DOWN, 3).getType() == (Material.STATIONARY_WATER)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Permissions.iceFishing(getPlayer());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the loot tier
|
||||
*
|
||||
@@ -90,8 +215,38 @@ public class FishingManager extends SkillManager {
|
||||
return SkillUtils.handleFoodSkills(getPlayer(), skill, eventFoodLevel, Fishing.fishermansDietRankLevel1, Fishing.fishermansDietMaxLevel, rankChange);
|
||||
}
|
||||
|
||||
public void iceFishing(Fish hook, Block block) {
|
||||
// Make a hole
|
||||
block.setType(Material.STATIONARY_WATER);
|
||||
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
Block relative = block.getRelative(x, 0, z);
|
||||
|
||||
if (relative.getType() == Material.ICE) {
|
||||
relative.setType(Material.STATIONARY_WATER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Recast in the new spot
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(new FakePlayerFishEvent(getPlayer(), null, hook, PlayerFishEvent.State.FISHING));
|
||||
}
|
||||
|
||||
public void masterAngler(Fish hook) {
|
||||
hook.setBiteChance(Math.min(hook.getBiteChance() * Math.max((getSkillLevel() / 200.0), 1.0), 1.0));
|
||||
Player player = getPlayer();
|
||||
Biome biome = player.getLocation().getBlock().getBiome();
|
||||
double biteChance = Math.min(hook.getBiteChance() * Math.max((getSkillLevel() / 200.0), 1.0), 1.0);
|
||||
|
||||
if (biome == Biome.RIVER || biome == Biome.OCEAN) {
|
||||
biteChance = biteChance * 2.0;
|
||||
}
|
||||
|
||||
if (player.isInsideVehicle() && player.getVehicle().getType() == EntityType.BOAT) {
|
||||
biteChance = biteChance * 2.0;
|
||||
}
|
||||
|
||||
hook.setBiteChance(biteChance);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,6 +297,8 @@ public class FishingManager extends SkillManager {
|
||||
* @param mob The {@link LivingEntity} affected by the ability
|
||||
*/
|
||||
public void shakeCheck(LivingEntity target) {
|
||||
fishingTries--; // Because autoclicking to shake is OK.
|
||||
|
||||
if (getShakeProbability() > Misc.getRandom().nextInt(getActivationChance())) {
|
||||
List<ShakeTreasure> possibleDrops = Fishing.findPossibleDrops(target);
|
||||
|
||||
@@ -254,13 +411,7 @@ public class FishingManager extends SkillManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
List<Enchantment> possibleEnchantments = new ArrayList<Enchantment>();
|
||||
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
if (enchantment.canEnchantItem(treasureDrop)) {
|
||||
possibleEnchantments.add(enchantment);
|
||||
}
|
||||
}
|
||||
List<Enchantment> possibleEnchantments = getPossibleEnchantments(treasureDrop);
|
||||
|
||||
// This make sure that the order isn't always the same, for example previously Unbreaking had a lot more chance to be used than any other enchant
|
||||
Collections.shuffle(possibleEnchantments, Misc.getRandom());
|
||||
@@ -269,17 +420,38 @@ public class FishingManager extends SkillManager {
|
||||
int specificChance = 1;
|
||||
|
||||
for (Enchantment possibleEnchantment : possibleEnchantments) {
|
||||
if (!treasureDrop.getItemMeta().hasConflictingEnchant(possibleEnchantment) && Misc.getRandom().nextInt(specificChance) == 0) {
|
||||
treasureDrop.addEnchantment(possibleEnchantment, Misc.getRandom().nextInt(possibleEnchantment.getMaxLevel()) + 1);
|
||||
|
||||
specificChance++;
|
||||
enchanted = true;
|
||||
if (treasureDrop.getItemMeta().hasConflictingEnchant(possibleEnchantment) || Misc.getRandom().nextInt(specificChance) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
treasureDrop.addEnchantment(possibleEnchantment, Math.max(Misc.getRandom().nextInt(possibleEnchantment.getMaxLevel()) + 1, possibleEnchantment.getStartLevel()));
|
||||
|
||||
specificChance++;
|
||||
enchanted = true;
|
||||
}
|
||||
|
||||
return enchanted;
|
||||
}
|
||||
|
||||
private List<Enchantment> getPossibleEnchantments(ItemStack treasureDrop) {
|
||||
Material dropType = treasureDrop.getType();
|
||||
|
||||
if (Fishing.ENCHANTABLE_CACHE.containsKey(dropType)) {
|
||||
return Fishing.ENCHANTABLE_CACHE.get(dropType);
|
||||
}
|
||||
|
||||
List<Enchantment> possibleEnchantments = new ArrayList<Enchantment>();
|
||||
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
if (enchantment.canEnchantItem(treasureDrop)) {
|
||||
possibleEnchantments.add(enchantment);
|
||||
}
|
||||
}
|
||||
|
||||
Fishing.ENCHANTABLE_CACHE.put(dropType, possibleEnchantments);
|
||||
return possibleEnchantments;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the vanilla XP multiplier
|
||||
*
|
||||
|
||||
@@ -158,7 +158,7 @@ public class MiningManager extends SkillManager{
|
||||
if (debrisYield > 0) {
|
||||
for (BlockState blockState : debris) {
|
||||
if (Misc.getRandom().nextFloat() < debrisYield) {
|
||||
Misc.dropItem(blockState.getLocation(), blockState.getData().toItemStack(1));
|
||||
Misc.dropItems(blockState.getLocation(), blockState.getBlock().getDrops());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,30 @@ public class Repair {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String getAnvilMessage(int blockId) {
|
||||
if (blockId == repairAnvilId) {
|
||||
return LocaleLoader.getString("Repair.Listener.Anvil");
|
||||
}
|
||||
|
||||
if (blockId == salvageAnvilId) {
|
||||
return LocaleLoader.getString("Repair.Listener.Anvil2");
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public static String[] getSpoutAnvilMessages(int blockId) {
|
||||
if (blockId == repairAnvilId) {
|
||||
return new String[] {LocaleLoader.getString("Repair.AnvilPlaced.Spout1"), LocaleLoader.getString("Repair.AnvilPlaced.Spout2")};
|
||||
}
|
||||
|
||||
if (blockId == salvageAnvilId) {
|
||||
return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"};
|
||||
}
|
||||
|
||||
return new String[] {"", ""};
|
||||
}
|
||||
|
||||
/**
|
||||
* Search the inventory for an item and return the index.
|
||||
*
|
||||
@@ -99,30 +123,6 @@ public class Repair {
|
||||
inventory.removeItem(item);
|
||||
}
|
||||
|
||||
protected static String[] getSpoutAnvilMessages(int blockId) {
|
||||
if (blockId == repairAnvilId) {
|
||||
return new String[] {LocaleLoader.getString("Repair.AnvilPlaced.Spout1"), LocaleLoader.getString("Repair.AnvilPlaced.Spout2")};
|
||||
}
|
||||
|
||||
if (blockId == salvageAnvilId) {
|
||||
return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"};
|
||||
}
|
||||
|
||||
return new String[] {"", ""};
|
||||
}
|
||||
|
||||
protected static String getAnvilMessage(int blockId) {
|
||||
if (blockId == repairAnvilId) {
|
||||
return LocaleLoader.getString("Repair.Listener.Anvil");
|
||||
}
|
||||
|
||||
if (blockId == salvageAnvilId) {
|
||||
return LocaleLoader.getString("Repair.Listener.Anvil2");
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
protected static Material getSalvagedItem(ItemStack inHand) {
|
||||
if (ItemUtils.isDiamondTool(inHand) || ItemUtils.isDiamondArmor(inHand)) {
|
||||
return Material.DIAMOND;
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.gmail.nossr50.skills.repair;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
@@ -11,8 +10,6 @@ import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.getspout.spoutapi.SpoutManager;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
@@ -27,6 +24,7 @@ import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public class RepairManager extends SkillManager {
|
||||
public RepairManager(McMMOPlayer mcMMOPlayer) {
|
||||
@@ -45,16 +43,8 @@ public class RepairManager extends SkillManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mcMMO.spoutEnabled) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer.isSpoutCraftEnabled()) {
|
||||
String[] spoutMessages = Repair.getSpoutAnvilMessages(anvilId);
|
||||
spoutPlayer.sendNotification(spoutMessages[0], spoutMessages[1], Material.getMaterial(anvilId));
|
||||
}
|
||||
else {
|
||||
player.sendMessage(Repair.getAnvilMessage(anvilId));
|
||||
}
|
||||
if (mcMMO.isSpoutEnabled()) {
|
||||
SpoutUtils.sendRepairNotifications(player, anvilId);
|
||||
}
|
||||
else {
|
||||
player.sendMessage(Repair.getAnvilMessage(anvilId));
|
||||
@@ -219,11 +209,11 @@ public class RepairManager extends SkillManager {
|
||||
mcMMOPlayer.actualizeLastAnvilUse(anvilId);
|
||||
|
||||
if (anvilId == Repair.repairAnvilId) {
|
||||
player.sendMessage(ChatColor.GREEN + "Right-click again to confirm " + ChatColor.GOLD + "Repair" + ChatColor.GREEN + ". Left-click to cancel."); //TODO Locale
|
||||
player.sendMessage(LocaleLoader.getString("Skills.ConfirmOrCancel", LocaleLoader.getString("Repair.Pretty.Name")));
|
||||
}
|
||||
|
||||
if (anvilId == Repair.salvageAnvilId) {
|
||||
player.sendMessage(ChatColor.GREEN + "Right-click again to confirm " + ChatColor.GOLD + "Salvage" + ChatColor.GREEN + ". Left-click to cancel."); //TODO Locale
|
||||
player.sendMessage(LocaleLoader.getString("Skills.ConfirmOrCancel", LocaleLoader.getString("Salvage.Pretty.Name")));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ public class TamingManager extends SkillManager {
|
||||
}
|
||||
|
||||
if (Permissions.renamePets(player)) {
|
||||
entity.setCustomName(player.getName() + "\'s " + StringUtils.getPrettyEntityTypeString(entity.getType())); //TODO Localize, perhaps in a different language it makes more sense to switch this around
|
||||
entity.setCustomName(LocaleLoader.getString("Taming.Summon.Name.Format", player.getName(), StringUtils.getPrettyEntityTypeString(entity.getType())));
|
||||
entity.setCustomNameVisible(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,59 +19,7 @@ public final class BlockUtils {
|
||||
* @return true if the block awards XP, false otherwise
|
||||
*/
|
||||
public static boolean shouldBeWatched(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case BROWN_MUSHROOM:
|
||||
case CACTUS:
|
||||
case CLAY:
|
||||
case COAL_ORE:
|
||||
case DIAMOND_ORE:
|
||||
case DIRT:
|
||||
case ENDER_STONE:
|
||||
case GLOWING_REDSTONE_ORE:
|
||||
case GLOWSTONE:
|
||||
case GOLD_ORE:
|
||||
case GRASS:
|
||||
case GRAVEL:
|
||||
case HUGE_MUSHROOM_1:
|
||||
case HUGE_MUSHROOM_2:
|
||||
case IRON_ORE:
|
||||
case LAPIS_ORE:
|
||||
case LOG:
|
||||
case MELON_BLOCK:
|
||||
case MOSSY_COBBLESTONE:
|
||||
case MYCEL:
|
||||
case NETHERRACK:
|
||||
case OBSIDIAN:
|
||||
case PUMPKIN:
|
||||
case QUARTZ_ORE:
|
||||
case RED_MUSHROOM:
|
||||
case RED_ROSE:
|
||||
case REDSTONE_ORE:
|
||||
case SAND:
|
||||
case SANDSTONE:
|
||||
case SOUL_SAND:
|
||||
case STONE:
|
||||
case SUGAR_CANE_BLOCK:
|
||||
case VINE:
|
||||
case WATER_LILY:
|
||||
case YELLOW_FLOWER:
|
||||
case EMERALD_ORE:
|
||||
return true;
|
||||
|
||||
case CARROT:
|
||||
case CROPS:
|
||||
case POTATO:
|
||||
return blockState.getRawData() == CropState.RIPE.getData();
|
||||
|
||||
case NETHER_WARTS:
|
||||
return ((NetherWarts) blockState.getData()).getState() == NetherWartsState.RIPE;
|
||||
|
||||
case COCOA:
|
||||
return ((CocoaPlant) blockState.getData()).getSize() == CocoaPlantSize.LARGE;
|
||||
|
||||
default:
|
||||
return ModUtils.getCustomBlock(blockState) != null;
|
||||
}
|
||||
return affectedByGigaDrillBreaker(blockState) || affectedByGreenTerra(blockState) || affectedBySuperBreaker(blockState) || isLog(blockState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -111,17 +59,7 @@ public final class BlockUtils {
|
||||
return false;
|
||||
|
||||
default:
|
||||
int blockId = blockState.getTypeId();
|
||||
|
||||
if (blockId == Config.getInstance().getRepairAnvilId() || blockId == Config.getInstance().getSalvageAnvilId()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ModUtils.isCustomAbilityBlock(blockState)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return !isMcMMOAnvil(blockState) && !ModUtils.isCustomAbilityBlock(blockState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,26 +152,17 @@ public final class BlockUtils {
|
||||
*/
|
||||
public static Boolean affectedBySuperBreaker(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case COAL_ORE:
|
||||
case DIAMOND_ORE:
|
||||
case ENDER_STONE:
|
||||
case GLOWING_REDSTONE_ORE:
|
||||
case GLOWSTONE:
|
||||
case GOLD_ORE:
|
||||
case IRON_ORE:
|
||||
case LAPIS_ORE:
|
||||
case MOSSY_COBBLESTONE:
|
||||
case NETHERRACK:
|
||||
case OBSIDIAN:
|
||||
case QUARTZ_ORE:
|
||||
case REDSTONE_ORE:
|
||||
case SANDSTONE:
|
||||
case STONE:
|
||||
case EMERALD_ORE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return ModUtils.isCustomMiningBlock(blockState);
|
||||
return isOre(blockState) || ModUtils.isCustomMiningBlock(blockState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,16 +195,7 @@ public final class BlockUtils {
|
||||
* @return true if the block should affected by Tree Feller, false otherwise
|
||||
*/
|
||||
public static boolean affectedByTreeFeller(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case LOG:
|
||||
case LEAVES:
|
||||
case HUGE_MUSHROOM_1:
|
||||
case HUGE_MUSHROOM_2:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return ModUtils.isCustomWoodcuttingBlock(blockState);
|
||||
}
|
||||
return isLog(blockState) || isLeaves(blockState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -379,4 +299,16 @@ public final class BlockUtils {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a given block is an mcMMO anvil
|
||||
*
|
||||
* @param blockState The {@link BlockState} of the block to check
|
||||
* @return true if the block is an mcMMO anvil, false otherwise
|
||||
*/
|
||||
private static boolean isMcMMOAnvil(BlockState blockState) {
|
||||
int blockId = blockState.getTypeId();
|
||||
|
||||
return blockId == Config.getInstance().getRepairAnvilId() || blockId == Config.getInstance().getSalvageAnvilId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public final class ChimaeraWing {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getChimaeraCooldown() > 0 && !SkillUtils.cooldownOver(lastTeleport * Misc.TIME_CONVERSION_FACTOR, Config.getInstance().getChimaeraCooldown(), player)) {
|
||||
player.sendMessage(ChatColor.RED + "You need to wait before you can use this again! " + ChatColor.YELLOW + "(" + SkillUtils.calculateTimeLeft(lastTeleport * Misc.TIME_CONVERSION_FACTOR, Config.getInstance().getChimaeraCooldown(), player) + ")"); //TODO Locale!
|
||||
player.sendMessage(LocaleLoader.getString("Item.Generic.Wait", SkillUtils.calculateTimeLeft(lastTeleport * Misc.TIME_CONVERSION_FACTOR, Config.getInstance().getChimaeraCooldown(), player)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ public final class ChimaeraWing {
|
||||
}
|
||||
|
||||
if (amount < Config.getInstance().getChimaeraUseCost()) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.NeedMore", "Chimaera Wings")); //TODO Locale!
|
||||
player.sendMessage(LocaleLoader.getString("Skills.NeedMore", LocaleLoader.getString("Item.ChimaeraWing.Name")));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public final class ChimaeraWing {
|
||||
long warmup = Config.getInstance().getChimaeraWarmup();
|
||||
|
||||
if (warmup > 0) {
|
||||
player.sendMessage(ChatColor.GRAY + "Commencing teleport in " + ChatColor.GOLD + "(" + warmup + ")" + ChatColor.GRAY + " seconds, please stand still..."); //TODO Locale!
|
||||
player.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
|
||||
new ChimaeraWingWarmup(mcMMOPlayer).runTaskLater(mcMMO.p, 20 * warmup);
|
||||
}
|
||||
else {
|
||||
@@ -128,11 +128,11 @@ public final class ChimaeraWing {
|
||||
ItemStack itemStack = new ItemStack(ingredient, amount);
|
||||
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.setDisplayName(ChatColor.GOLD + "Chimaera Wing"); //TODO Locale!
|
||||
itemMeta.setDisplayName(ChatColor.GOLD + LocaleLoader.getString("Item.ChimaeraWing.Name"));
|
||||
|
||||
List<String> itemLore = new ArrayList<String>();
|
||||
itemLore.add("mcMMO Item");
|
||||
itemLore.add(ChatColor.GRAY + "Teleports you to your bed."); //TODO Locale!
|
||||
itemLore.add(LocaleLoader.getString("Item.ChimaeraWing.Lore"));
|
||||
itemMeta.setLore(itemLore);
|
||||
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
@@ -14,20 +11,17 @@ import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.mods.CustomArmorConfig;
|
||||
import com.gmail.nossr50.config.mods.CustomToolConfig;
|
||||
import com.gmail.nossr50.config.party.ItemWeightConfig;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
|
||||
public class ItemUtils {
|
||||
private static Config configInstance = Config.getInstance();
|
||||
private static boolean customToolsEnabled = configInstance.getToolModsEnabled();
|
||||
private static boolean customArmorEnabled = configInstance.getArmorModsEnabled();
|
||||
|
||||
/**
|
||||
* Checks if the item is a sword.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a sword, false otherwise
|
||||
*/
|
||||
public static boolean isSword(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isSword(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_SWORD:
|
||||
case GOLD_SWORD:
|
||||
case IRON_SWORD:
|
||||
@@ -36,26 +30,18 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customToolsEnabled && CustomToolConfig.getInstance().customSwordIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
else if (mcMMO.spoutEnabled && SpoutToolsAPI.spoutSwords.contains(is)) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return (Config.getInstance().getToolModsEnabled() && CustomToolConfig.getInstance().customSwordIDs.contains(item.getTypeId())) || (mcMMO.isSpoutEnabled() && SpoutToolsAPI.spoutSwords.contains(item));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a hoe.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a hoe, false otherwise
|
||||
*/
|
||||
public static boolean isHoe(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isHoe(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_HOE:
|
||||
case GOLD_HOE:
|
||||
case IRON_HOE:
|
||||
@@ -64,26 +50,18 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customToolsEnabled && CustomToolConfig.getInstance().customHoeIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
else if (mcMMO.spoutEnabled && SpoutToolsAPI.spoutHoes.contains(is)) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return (Config.getInstance().getToolModsEnabled() && CustomToolConfig.getInstance().customHoeIDs.contains(item.getTypeId())) || (mcMMO.isSpoutEnabled() && SpoutToolsAPI.spoutHoes.contains(item));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a shovel.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a shovel, false otherwise
|
||||
*/
|
||||
public static boolean isShovel(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isShovel(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_SPADE:
|
||||
case GOLD_SPADE:
|
||||
case IRON_SPADE:
|
||||
@@ -92,26 +70,18 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customToolsEnabled && CustomToolConfig.getInstance().customShovelIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
else if (mcMMO.spoutEnabled && SpoutToolsAPI.spoutShovels.contains(is)) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return (Config.getInstance().getToolModsEnabled() && CustomToolConfig.getInstance().customShovelIDs.contains(item.getTypeId())) || (mcMMO.isSpoutEnabled() && SpoutToolsAPI.spoutShovels.contains(item));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is an axe.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is an axe, false otherwise
|
||||
*/
|
||||
public static boolean isAxe(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isAxe(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_AXE:
|
||||
case GOLD_AXE:
|
||||
case IRON_AXE:
|
||||
@@ -120,26 +90,18 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customToolsEnabled && CustomToolConfig.getInstance().customAxeIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
else if (mcMMO.spoutEnabled && SpoutToolsAPI.spoutAxes.contains(is)) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return (Config.getInstance().getToolModsEnabled() && CustomToolConfig.getInstance().customAxeIDs.contains(item.getTypeId())) || (mcMMO.isSpoutEnabled() && SpoutToolsAPI.spoutAxes.contains(item));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a pickaxe.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a pickaxe, false otherwise
|
||||
*/
|
||||
public static boolean isPickaxe(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isPickaxe(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_PICKAXE:
|
||||
case GOLD_PICKAXE:
|
||||
case IRON_PICKAXE:
|
||||
@@ -148,138 +110,118 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customToolsEnabled && CustomToolConfig.getInstance().customPickaxeIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
else if (mcMMO.spoutEnabled && SpoutToolsAPI.spoutPickaxes.contains(is)) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return (Config.getInstance().getToolModsEnabled() && CustomToolConfig.getInstance().customPickaxeIDs.contains(item.getTypeId())) || (mcMMO.isSpoutEnabled() && SpoutToolsAPI.spoutPickaxes.contains(item));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a helmet.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a helmet, false otherwise
|
||||
*/
|
||||
public static boolean isHelmet(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isHelmet(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_HELMET:
|
||||
case GOLD_HELMET:
|
||||
case IRON_HELMET:
|
||||
case CHAINMAIL_HELMET:
|
||||
case LEATHER_HELMET:
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customArmorEnabled && CustomArmorConfig.getInstance().customHelmetIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customHelmetIDs.contains(item.getTypeId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a chestplate.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a chestplate, false otherwise
|
||||
*/
|
||||
public static boolean isChestplate(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isChestplate(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_CHESTPLATE:
|
||||
case GOLD_CHESTPLATE:
|
||||
case IRON_CHESTPLATE:
|
||||
case CHAINMAIL_CHESTPLATE:
|
||||
case LEATHER_CHESTPLATE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customArmorEnabled && CustomArmorConfig.getInstance().customChestplateIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customChestplateIDs.contains(item.getTypeId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a pair of pants.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a pair of pants, false otherwise
|
||||
*/
|
||||
public static boolean isLeggings(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isLeggings(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_LEGGINGS:
|
||||
case GOLD_LEGGINGS:
|
||||
case IRON_LEGGINGS:
|
||||
case CHAINMAIL_LEGGINGS:
|
||||
case LEATHER_LEGGINGS:
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customArmorEnabled && CustomArmorConfig.getInstance().customLeggingIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customLeggingIDs.contains(item.getTypeId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the item is a pair of boots.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a pair of boots, false otherwise
|
||||
*/
|
||||
public static boolean isBoots(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isBoots(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_BOOTS:
|
||||
case GOLD_BOOTS:
|
||||
case IRON_BOOTS:
|
||||
case CHAINMAIL_BOOTS:
|
||||
case LEATHER_BOOTS:
|
||||
return true;
|
||||
|
||||
default:
|
||||
if (customArmorEnabled && CustomArmorConfig.getInstance().customBootIDs.contains(is.getTypeId())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customBootIDs.contains(item.getTypeId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a wearable armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is armor, false otherwise
|
||||
*/
|
||||
public static boolean isArmor(ItemStack is) {
|
||||
return isHelmet(is) || isChestplate(is) || isLeggings(is) || isBoots(is);
|
||||
public static boolean isArmor(ItemStack item) {
|
||||
return isHelmet(item) || isChestplate(item) || isLeggings(item) || isBoots(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a wearable armor piece.
|
||||
* Checks to see if an item is a wearable *vanilla* armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is armor, false otherwise
|
||||
*/
|
||||
public static boolean isMinecraftArmor(ItemStack is) {
|
||||
return isLeatherArmor(is) || isGoldArmor(is) || isIronArmor(is) || isDiamondArmor(is);
|
||||
public static boolean isMinecraftArmor(ItemStack item) {
|
||||
return isLeatherArmor(item) || isGoldArmor(item) || isIronArmor(item) || isDiamondArmor(item) || isChainmailArmor(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a leather armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is leather armor, false otherwise
|
||||
*/
|
||||
public static boolean isLeatherArmor(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isLeatherArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case LEATHER_BOOTS:
|
||||
case LEATHER_CHESTPLATE:
|
||||
case LEATHER_HELMET:
|
||||
@@ -294,11 +236,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a gold armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is gold armor, false otherwise
|
||||
*/
|
||||
public static boolean isGoldArmor(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isGoldArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case GOLD_BOOTS:
|
||||
case GOLD_CHESTPLATE:
|
||||
case GOLD_HELMET:
|
||||
@@ -313,11 +255,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is an iron armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is iron armor, false otherwise
|
||||
*/
|
||||
public static boolean isIronArmor(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isIronArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case IRON_BOOTS:
|
||||
case IRON_CHESTPLATE:
|
||||
case IRON_HELMET:
|
||||
@@ -332,11 +274,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a diamond armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is diamond armor, false otherwise
|
||||
*/
|
||||
public static boolean isDiamondArmor(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isDiamondArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_BOOTS:
|
||||
case DIAMOND_CHESTPLATE:
|
||||
case DIAMOND_HELMET:
|
||||
@@ -349,23 +291,42 @@ public class ItemUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a tool.
|
||||
* Checks to see if an item is a chainmail armor piece.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is chainmail armor, false otherwise
|
||||
*/
|
||||
public static boolean isChainmailArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case CHAINMAIL_BOOTS:
|
||||
case CHAINMAIL_CHESTPLATE:
|
||||
case CHAINMAIL_HELMET:
|
||||
case CHAINMAIL_LEGGINGS:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a *vanilla* tool.
|
||||
*
|
||||
* @param item Item to check
|
||||
* @return true if the item is a tool, false otherwise
|
||||
*/
|
||||
public static boolean isMinecraftTool(ItemStack is) {
|
||||
return isStoneTool(is) || isWoodTool(is) || isGoldTool(is) || isIronTool(is) || isDiamondTool(is) || isStringTool(is);
|
||||
public static boolean isMinecraftTool(ItemStack item) {
|
||||
return isStoneTool(item) || isWoodTool(item) || isGoldTool(item) || isIronTool(item) || isDiamondTool(item) || isStringTool(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a stone tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a stone tool, false otherwise
|
||||
*/
|
||||
public static boolean isStoneTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isStoneTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case STONE_AXE:
|
||||
case STONE_HOE:
|
||||
case STONE_PICKAXE:
|
||||
@@ -381,11 +342,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a wooden tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a wooden tool, false otherwise
|
||||
*/
|
||||
public static boolean isWoodTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isWoodTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case WOOD_AXE:
|
||||
case WOOD_HOE:
|
||||
case WOOD_PICKAXE:
|
||||
@@ -401,11 +362,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a string tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a string tool, false otherwise
|
||||
*/
|
||||
public static boolean isStringTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isStringTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case BOW:
|
||||
case CARROT_STICK:
|
||||
case FISHING_ROD:
|
||||
@@ -419,11 +380,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a gold tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a stone tool, false otherwise
|
||||
*/
|
||||
public static boolean isGoldTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isGoldTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case GOLD_AXE:
|
||||
case GOLD_HOE:
|
||||
case GOLD_PICKAXE:
|
||||
@@ -439,11 +400,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is an iron tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is an iron tool, false otherwise
|
||||
*/
|
||||
public static boolean isIronTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isIronTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case BUCKET:
|
||||
case FLINT_AND_STEEL:
|
||||
case IRON_AXE:
|
||||
@@ -462,11 +423,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a diamond tool.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a diamond tool, false otherwise
|
||||
*/
|
||||
public static boolean isDiamondTool(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isDiamondTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case DIAMOND_AXE:
|
||||
case DIAMOND_HOE:
|
||||
case DIAMOND_PICKAXE:
|
||||
@@ -482,16 +443,25 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is enchantable.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is enchantable, false otherwise
|
||||
*/
|
||||
public static boolean isEnchantable(ItemStack is) {
|
||||
Material type = is.getType();
|
||||
return isArmor(is) || isSword(is) || isAxe(is) || isShovel(is) || isPickaxe(is) || type == Material.SHEARS || type == Material.FISHING_ROD || type == Material.CARROT_STICK || type == Material.FLINT_AND_STEEL || type == Material.BOW;
|
||||
public static boolean isEnchantable(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case SHEARS:
|
||||
case FISHING_ROD:
|
||||
case CARROT_STICK:
|
||||
case BOW:
|
||||
case FLINT_AND_STEEL:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return isArmor(item) || isSword(item) || isAxe(item) || isShovel(item) || isPickaxe(item);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSmeltable(ItemStack itemStack) {
|
||||
switch (itemStack.getType()) {
|
||||
public static boolean isSmeltable(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case COAL_ORE:
|
||||
case DIAMOND_ORE:
|
||||
case GLOWING_REDSTONE_ORE:
|
||||
@@ -500,6 +470,7 @@ public class ItemUtils {
|
||||
case LAPIS_ORE:
|
||||
case REDSTONE_ORE:
|
||||
case EMERALD_ORE:
|
||||
case QUARTZ_ORE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@@ -507,22 +478,19 @@ public class ItemUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSmelted(ItemStack itemStack) {
|
||||
switch (itemStack.getType()) {
|
||||
public static boolean isSmelted(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case COAL:
|
||||
case DIAMOND:
|
||||
case REDSTONE:
|
||||
case GOLD_INGOT:
|
||||
case IRON_INGOT:
|
||||
case EMERALD:
|
||||
case QUARTZ:
|
||||
return true;
|
||||
|
||||
case INK_SACK:
|
||||
if (itemStack.getData().getData() == DyeColor.BLUE.getDyeData()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return item.getData().getData() == DyeColor.BLUE.getDyeData();
|
||||
|
||||
default:
|
||||
return false;
|
||||
@@ -535,18 +503,18 @@ public class ItemUtils {
|
||||
* @param item Item that will get shared
|
||||
* @return True if the item can be shared.
|
||||
*/
|
||||
public static boolean isShareable(ItemStack is) {
|
||||
return isMiningDrop(is) || isWoodcuttingDrop(is) || isMobDrop(is) || isHerbalismDrop(is) || isMiscDrop(is);
|
||||
public static boolean isShareable(ItemStack item) {
|
||||
return isMiningDrop(item) || isWoodcuttingDrop(item) || isMobDrop(item) || isHerbalismDrop(item) || isMiscDrop(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if an item is a mining drop.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a mining drop, false otherwise
|
||||
*/
|
||||
public static boolean isMiningDrop(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isMiningDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case COAL:
|
||||
case COAL_ORE:
|
||||
case DIAMOND:
|
||||
@@ -556,17 +524,15 @@ public class ItemUtils {
|
||||
case GOLD_ORE:
|
||||
case IRON_ORE:
|
||||
case LAPIS_ORE:
|
||||
case REDSTONE_ORE:
|
||||
case REDSTONE_ORE: // Should we also have Glowing Redstone Ore here?
|
||||
case REDSTONE:
|
||||
case GLOWSTONE_DUST:
|
||||
case GLOWSTONE_DUST: // Should we also have Glowstone here?
|
||||
case QUARTZ:
|
||||
case QUARTZ_ORE:
|
||||
return true;
|
||||
|
||||
case INK_SACK:
|
||||
if (is.getData().getData() == DyeColor.BLUE.getDyeData()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return item.getData().getData() == DyeColor.BLUE.getDyeData();
|
||||
|
||||
default:
|
||||
return false;
|
||||
@@ -576,11 +542,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a herbalism drop.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a herbalism drop, false otherwise
|
||||
*/
|
||||
public static boolean isHerbalismDrop(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isHerbalismDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case WHEAT:
|
||||
case SEEDS:
|
||||
case CARROT_ITEM:
|
||||
@@ -601,7 +567,7 @@ public class ItemUtils {
|
||||
return true;
|
||||
|
||||
case INK_SACK:
|
||||
return is.getData().getData() == DyeColor.BROWN.getDyeData();
|
||||
return item.getData().getData() == DyeColor.BROWN.getDyeData();
|
||||
|
||||
default:
|
||||
return false;
|
||||
@@ -611,11 +577,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a mob drop.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a mob drop, false otherwise
|
||||
*/
|
||||
public static boolean isMobDrop(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isMobDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case STRING:
|
||||
case FEATHER:
|
||||
case RAW_CHICKEN:
|
||||
@@ -626,7 +592,7 @@ public class ItemUtils {
|
||||
case PORK:
|
||||
case GRILLED_PORK:
|
||||
case WOOL:
|
||||
case RED_ROSE:
|
||||
case RED_ROSE: // Not sure we should include this, as it will also trigger from herbalism
|
||||
case IRON_INGOT:
|
||||
case SNOW_BALL:
|
||||
case BLAZE_ROD:
|
||||
@@ -639,7 +605,7 @@ public class ItemUtils {
|
||||
case ARROW:
|
||||
case SLIME_BALL:
|
||||
case NETHER_STAR:
|
||||
case COAL:
|
||||
case COAL: // Not sure we should include this, as it will also trigger when mining
|
||||
case ROTTEN_FLESH:
|
||||
case GOLD_NUGGET:
|
||||
case EGG:
|
||||
@@ -653,11 +619,11 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a woodcutting drop.
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a woodcutting drop, false otherwise
|
||||
*/
|
||||
public static boolean isWoodcuttingDrop(ItemStack is) {
|
||||
switch (is.getType()) {
|
||||
public static boolean isWoodcuttingDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case LOG:
|
||||
case LEAVES:
|
||||
case SAPLING:
|
||||
@@ -672,38 +638,28 @@ public class ItemUtils {
|
||||
/**
|
||||
* Checks to see if an item is a miscellaneous drop. These items are read from the config file
|
||||
*
|
||||
* @param is Item to check
|
||||
* @param item Item to check
|
||||
* @return true if the item is a miscellaneous drop, false otherwise
|
||||
*/
|
||||
public static boolean isMiscDrop(ItemStack is) {
|
||||
return ItemWeightConfig.getInstance().getMiscItems().contains(is.getType());
|
||||
public static boolean isMiscDrop(ItemStack item) {
|
||||
return ItemWeightConfig.getInstance().getMiscItems().contains(item.getType());
|
||||
}
|
||||
|
||||
public static boolean isMcMMOItem(ItemStack is) {
|
||||
if (!is.hasItemMeta()) {
|
||||
public static boolean isMcMMOItem(ItemStack item) {
|
||||
if (!item.hasItemMeta()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemMeta itemMeta = is.getItemMeta();
|
||||
if (itemMeta.hasLore()) {
|
||||
List<String> itemLore = itemMeta.getLore();
|
||||
if (itemLore.contains("mcMMO Item")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
return itemMeta.hasLore() && itemMeta.getLore().contains("mcMMO Item");
|
||||
}
|
||||
|
||||
public static boolean isChimaeraWing(ItemStack is) {
|
||||
if (!isMcMMOItem(is)) {
|
||||
public static boolean isChimaeraWing(ItemStack item) {
|
||||
if (!isMcMMOItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemMeta itemMeta = is.getItemMeta();
|
||||
if (itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals(ChatColor.GOLD + "Chimaera Wing")) { //TODO Get localized name
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
return itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals(ChatColor.GOLD + LocaleLoader.getString("Item.ChimaeraWing.Name"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.spout.huds.McMMOHud;
|
||||
import com.gmail.nossr50.events.items.McMMOItemSpawnEvent;
|
||||
@@ -20,7 +20,6 @@ import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public final class Misc {
|
||||
private static Random random = new Random();
|
||||
public static boolean isSpawnerXPEnabled = Config.getInstance().getExperienceGainsMobspawnersEnabled();
|
||||
public static final int PLAYER_RESPAWN_COOLDOWN_SECONDS = 5;
|
||||
public static final int TIME_CONVERSION_FACTOR = 1000;
|
||||
public static final double SKILL_MESSAGE_MAX_SENDING_DISTANCE = 10.0;
|
||||
@@ -32,6 +31,7 @@ public final class Misc {
|
||||
public static final float POP_VOLUME = 0.2F;
|
||||
public static final float BAT_VOLUME = 1.0F;
|
||||
public static final float BAT_PITCH = 0.6F;
|
||||
public static final float GHAST_VOLUME = 1.0F;
|
||||
|
||||
private Misc() {};
|
||||
|
||||
@@ -43,8 +43,12 @@ public final class Misc {
|
||||
return ((getRandom().nextFloat() - getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F;
|
||||
}
|
||||
|
||||
public static float getGhastPitch() {
|
||||
return (getRandom().nextFloat() - getRandom().nextFloat()) * 0.2F + 1.0F;
|
||||
}
|
||||
|
||||
public static boolean isNPCEntity(Entity entity) {
|
||||
return (entity == null || entity.hasMetadata("NPC") || (mcMMO.combatTagEnabled && entity instanceof HumanEntity && ((HumanEntity) entity).getName().contains("PvpLogger")));
|
||||
return (entity == null || entity.hasMetadata("NPC") || (mcMMO.isCombatTagEnabled() && entity instanceof HumanEntity && ((HumanEntity) entity).getName().contains("PvpLogger")));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,11 +95,13 @@ public final class Misc {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (first.distanceSquared(second) < (maxDistance * maxDistance)) {
|
||||
return true;
|
||||
}
|
||||
return first.distanceSquared(second) < (maxDistance * maxDistance);
|
||||
}
|
||||
|
||||
return false;
|
||||
public static void dropItems(Location location, Collection<ItemStack> drops) {
|
||||
for (ItemStack drop : drops) {
|
||||
dropItem(location, drop);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,7 +154,6 @@ public final class Misc {
|
||||
* @param itemStack The item to drop
|
||||
*/
|
||||
public static void dropItem(Location location, ItemStack itemStack) {
|
||||
|
||||
if (itemStack.getType() == Material.AIR) {
|
||||
return;
|
||||
}
|
||||
@@ -161,12 +166,7 @@ public final class Misc {
|
||||
return;
|
||||
}
|
||||
|
||||
Item newItem = location.getWorld().dropItemNaturally(location, itemStack);
|
||||
|
||||
ItemStack cloned = itemStack.clone();
|
||||
cloned.setAmount(newItem.getItemStack().getAmount());
|
||||
|
||||
newItem.setItemStack(cloned);
|
||||
location.getWorld().dropItemNaturally(location, itemStack);
|
||||
}
|
||||
|
||||
public static void profileCleanup(String playerName) {
|
||||
@@ -185,7 +185,7 @@ public final class Misc {
|
||||
if (player.isOnline()) {
|
||||
UserManager.addUser(player);
|
||||
|
||||
if (mcMMO.spoutEnabled) {
|
||||
if (mcMMO.isSpoutEnabled()) {
|
||||
SpoutUtils.reloadSpoutPlayer(player);
|
||||
}
|
||||
}
|
||||
@@ -193,8 +193,12 @@ public final class Misc {
|
||||
}
|
||||
|
||||
public static void resendChunkRadiusAt(Player player, int radius) {
|
||||
for (int x = player.getLocation().getChunk().getX() - radius; x < player.getLocation().getChunk().getX() + radius; x++) {
|
||||
for (int z = player.getLocation().getChunk().getZ() - radius; z < player.getLocation().getChunk().getZ() + radius; z++) {
|
||||
Chunk chunk = player.getLocation().getChunk();
|
||||
int chunkX = chunk.getX();
|
||||
int chunkZ = chunk.getZ();
|
||||
|
||||
for (int x = chunkX - radius; x < chunkX + radius; x++) {
|
||||
for (int z = chunkZ - radius; z < chunkZ + radius; z++) {
|
||||
player.getWorld().refreshChunk(x, z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
@@ -45,11 +46,23 @@ public final class MobHealthbarUtils {
|
||||
|
||||
PlayerProfile profile = UserManager.getPlayer(player).getProfile();
|
||||
|
||||
if (profile.getMobHealthbarType() == null) {
|
||||
profile.setMobHealthbarType(Config.getInstance().getMobHealthbarDefault());
|
||||
}
|
||||
|
||||
if (profile.getMobHealthbarType() == MobHealthbarType.DISABLED) {
|
||||
return;
|
||||
}
|
||||
|
||||
String oldName = target.getCustomName();
|
||||
|
||||
if (oldName == null) {
|
||||
oldName = "";
|
||||
}
|
||||
else if (oldName.equalsIgnoreCase(AdvancedConfig.getInstance().getKrakenName())) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean oldNameVisible = target.isCustomNameVisible();
|
||||
String newName = createHealthDisplay(profile, target, damage);
|
||||
|
||||
@@ -59,10 +72,6 @@ public final class MobHealthbarUtils {
|
||||
int displayTime = Config.getInstance().getMobHealthbarTime();
|
||||
|
||||
if (displayTime != -1) {
|
||||
if (oldName == null) {
|
||||
oldName = "";
|
||||
}
|
||||
|
||||
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
||||
|
||||
if (updateName) {
|
||||
@@ -140,5 +149,4 @@ public final class MobHealthbarUtils {
|
||||
|
||||
return healthbar;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ public final class Permissions {
|
||||
/* BYPASS */
|
||||
public static boolean hardcoreBypass(Permissible permissible) { return permissible.hasPermission("mcmmo.bypass.hardcoremode"); }
|
||||
public static boolean arcaneBypass(Permissible permissible) { return permissible.hasPermission("mcmmo.bypass.arcanebypass"); }
|
||||
public static boolean krakenBypass(Permissible permissible) { return permissible.hasPermission("mcmmo.bypass.kraken"); }
|
||||
|
||||
/* CHAT */
|
||||
public static boolean partyChat(Permissible permissible) { return permissible.hasPermission("mcmmo.chat.partychat"); }
|
||||
@@ -49,6 +50,9 @@ public final class Permissions {
|
||||
public static boolean inspectFar(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.inspect.far")); }
|
||||
public static boolean inspectOffline(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.inspect.offline")); }
|
||||
|
||||
public static boolean kraken(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.kraken"); }
|
||||
public static boolean krakenOthers(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.kraken.others"); }
|
||||
|
||||
public static boolean mcability(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.mcability")); }
|
||||
public static boolean mcabilityOthers(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.mcability.others")); }
|
||||
|
||||
@@ -142,6 +146,7 @@ public final class Permissions {
|
||||
/* FISHING */
|
||||
public static boolean fishermansDiet(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.fishermansdiet"); }
|
||||
public static boolean fishingTreasureHunter(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.treasures"); }
|
||||
public static boolean iceFishing(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.icefishing"); }
|
||||
public static boolean magicHunter(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.magic"); }
|
||||
public static boolean masterAngler(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.masterangler"); }
|
||||
public static boolean shake(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.fishing.shakemob"); }
|
||||
|
||||
@@ -6,11 +6,13 @@ import java.util.List;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.commands.KrakenCommand;
|
||||
import com.gmail.nossr50.commands.McabilityCommand;
|
||||
import com.gmail.nossr50.commands.McgodCommand;
|
||||
import com.gmail.nossr50.commands.McmmoCommand;
|
||||
import com.gmail.nossr50.commands.McnotifyCommand;
|
||||
import com.gmail.nossr50.commands.McrefreshCommand;
|
||||
import com.gmail.nossr50.commands.McscoreboardCommand;
|
||||
import com.gmail.nossr50.commands.MobhealthCommand;
|
||||
import com.gmail.nossr50.commands.XprateCommand;
|
||||
import com.gmail.nossr50.commands.chat.AdminChatCommand;
|
||||
@@ -56,7 +58,7 @@ public final class CommandRegistrationManager {
|
||||
|
||||
private static String permissionsMessage = LocaleLoader.getString("mcMMO.NoPermission");
|
||||
|
||||
public static void registerSkillCommands() {
|
||||
private static void registerSkillCommands() {
|
||||
for (SkillType skill : SkillType.values()) {
|
||||
String commandName = skill.toString().toLowerCase();
|
||||
String localizedName = SkillUtils.getSkillName(skill).toLowerCase();
|
||||
@@ -129,7 +131,7 @@ public final class CommandRegistrationManager {
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerAddlevelsCommand() {
|
||||
private static void registerAddlevelsCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("addlevels");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.addlevels"));
|
||||
command.setPermission("mcmmo.commands.addlevels;mcmmo.commands.addlevels.others");
|
||||
@@ -138,7 +140,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new AddlevelsCommand());
|
||||
}
|
||||
|
||||
public static void registerAddxpCommand() {
|
||||
private static void registerAddxpCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("addxp");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.addxp"));
|
||||
command.setPermission("mcmmo.commands.addxp;mcmmo.commands.addxp.others");
|
||||
@@ -147,7 +149,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new AddxpCommand());
|
||||
}
|
||||
|
||||
public static void registerMcgodCommand() {
|
||||
private static void registerMcgodCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcgod");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcgod"));
|
||||
command.setPermission("mcmmo.commands.mcgod;mcmmo.commands.mcgod.others");
|
||||
@@ -156,7 +158,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McgodCommand());
|
||||
}
|
||||
|
||||
public static void registerMcrefreshCommand() {
|
||||
private static void registerMcrefreshCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcrefresh");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcrefresh"));
|
||||
command.setPermission("mcmmo.commands.mcrefresh;mcmmo.commands.mcrefresh.others");
|
||||
@@ -165,7 +167,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McrefreshCommand());
|
||||
}
|
||||
|
||||
public static void registerMmoeditCommand() {
|
||||
private static void registerMmoeditCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mmoedit");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mmoedit"));
|
||||
command.setPermission("mcmmo.commands.mmoedit;mcmmo.commands.mmoedit.others");
|
||||
@@ -174,7 +176,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new MmoeditCommand());
|
||||
}
|
||||
|
||||
public static void registerSkillresetCommand() {
|
||||
private static void registerSkillresetCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("skillreset");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.skillreset"));
|
||||
command.setPermission("mcmmo.commands.skillreset;mcmmo.commands.skillreset.others"); // Only need the main ones, not the individual skill ones
|
||||
@@ -183,7 +185,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new SkillresetCommand());
|
||||
}
|
||||
|
||||
public static void registerXprateCommand() {
|
||||
private static void registerXprateCommand() {
|
||||
List<String> aliasList = new ArrayList<String>();
|
||||
aliasList.add("mcxprate");
|
||||
|
||||
@@ -197,7 +199,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new XprateCommand());
|
||||
}
|
||||
|
||||
public static void registerInspectCommand() {
|
||||
private static void registerInspectCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("inspect");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.inspect"));
|
||||
command.setPermission("mcmmo.commands.inspect;mcmmo.commands.inspect.far;mcmmo.commands.inspect.offline");
|
||||
@@ -206,7 +208,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new InspectCommand());
|
||||
}
|
||||
|
||||
public static void registerMcabilityCommand() {
|
||||
private static void registerMcabilityCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcability");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcability"));
|
||||
command.setPermission("mcmmo.commands.mcability;mcmmo.commands.mcability.others");
|
||||
@@ -215,7 +217,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McabilityCommand());
|
||||
}
|
||||
|
||||
public static void registerMcmmoCommand() {
|
||||
private static void registerMcmmoCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcmmo");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcmmo"));
|
||||
command.setPermission("mcmmo.commands.mcmmo.description;mcmmo.commands.mcmmo.help");
|
||||
@@ -225,7 +227,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McmmoCommand());
|
||||
}
|
||||
|
||||
public static void registerMcrankCommand() {
|
||||
private static void registerMcrankCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcrank");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcrank"));
|
||||
command.setPermission("mcmmo.commands.mcrank;mcmmo.commands.mcrank.others;mcmmo.commands.mcrank.others.far;mcmmo.commands.mcrank.others.offline");
|
||||
@@ -234,7 +236,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McrankCommand());
|
||||
}
|
||||
|
||||
public static void registerMcstatsCommand() {
|
||||
private static void registerMcstatsCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcstats");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcstats"));
|
||||
command.setPermission("mcmmo.commands.mcstats");
|
||||
@@ -243,7 +245,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McstatsCommand());
|
||||
}
|
||||
|
||||
public static void registerMctopCommand() {
|
||||
private static void registerMctopCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mctop");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mctop"));
|
||||
command.setPermission("mcmmo.commands.mctop"); // Only need the main one, not the individual skill ones
|
||||
@@ -252,31 +254,34 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new MctopCommand());
|
||||
}
|
||||
|
||||
public static void registerMcpurgeCommand() {
|
||||
private static void registerMcpurgeCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcpurge");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcpurge", Config.getInstance().getOldUsersCutoff()));
|
||||
command.setPermission("mcmmo.commands.mcpurge");
|
||||
command.setPermissionMessage(permissionsMessage);
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mcpurge"));
|
||||
command.setExecutor(new McpurgeCommand());
|
||||
}
|
||||
|
||||
public static void registerMcremoveCommand() {
|
||||
private static void registerMcremoveCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcremove");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcremove"));
|
||||
command.setPermission("mcmmo.commands.mcremove");
|
||||
command.setPermissionMessage(permissionsMessage);
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcremove", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">"));
|
||||
command.setExecutor(new McremoveCommand());
|
||||
}
|
||||
|
||||
public static void registerMmoupdateCommand() {
|
||||
private static void registerMmoupdateCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mmoupdate");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mmoupdate"));
|
||||
command.setPermission("mcmmo.commands.mmoupdate");
|
||||
command.setPermissionMessage(permissionsMessage);
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mmoupdate"));
|
||||
command.setExecutor(new MmoupdateCommand());
|
||||
}
|
||||
|
||||
public static void registerAdminChatCommand() {
|
||||
private static void registerAdminChatCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("adminchat");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.adminchat"));
|
||||
command.setPermission("mcmmo.chat.adminchat");
|
||||
@@ -287,7 +292,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new AdminChatCommand());
|
||||
}
|
||||
|
||||
public static void registerPartyChatCommand() {
|
||||
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");
|
||||
@@ -298,7 +303,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new PartyChatCommand());
|
||||
}
|
||||
|
||||
public static void registerMchudCommand() {
|
||||
private static void registerMchudCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mchud");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mchud"));
|
||||
command.setPermission("mcmmo.commands.mchud");
|
||||
@@ -307,7 +312,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new MchudCommand());
|
||||
}
|
||||
|
||||
public static void registerXplockCommand() {
|
||||
private static void registerXplockCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("xplock");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.xplock"));
|
||||
command.setPermission("mcmmo.commands.xplock");
|
||||
@@ -318,7 +323,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new XplockCommand());
|
||||
}
|
||||
|
||||
public static void registerPartyCommand() {
|
||||
private static void registerPartyCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("party");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.party"));
|
||||
command.setPermission("mcmmo.commands.party;mcmmo.commands.party.accept;mcmmo.commands.party.create;mcmmo.commands.party.disband;" +
|
||||
@@ -329,7 +334,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new PartyCommand());
|
||||
}
|
||||
|
||||
public static void registerPtpCommand() {
|
||||
private static void registerPtpCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("ptp");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.ptp"));
|
||||
command.setPermission("mcmmo.commands.ptp"); // Only need the main one, not the individual ones for toggle/accept/acceptall
|
||||
@@ -339,7 +344,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new PtpCommand());
|
||||
}
|
||||
|
||||
public static void registerHardcoreCommand() {
|
||||
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");
|
||||
@@ -349,7 +354,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new HardcoreCommand());
|
||||
}
|
||||
|
||||
public static void registerVampirismCommand() {
|
||||
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");
|
||||
@@ -359,7 +364,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new VampirismCommand());
|
||||
}
|
||||
|
||||
public static void registerMcnotifyCommand() {
|
||||
private static void registerMcnotifyCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcnotify");
|
||||
command.setDescription(LocaleLoader.getString("Commands.Description.mcnotify"));
|
||||
command.setPermission("mcmmo.commands.mcnotify");
|
||||
@@ -368,7 +373,7 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new McnotifyCommand());
|
||||
}
|
||||
|
||||
public static void registerMobhealthCommand() {
|
||||
private static void registerMobhealthCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mobhealth");
|
||||
command.setDescription("Change the style of the mob healthbar"); //TODO: Localize
|
||||
command.setPermission("mcmmo.commands.mobhealth");
|
||||
@@ -376,4 +381,72 @@ public final class CommandRegistrationManager {
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mobhealth", "<DISABLED | HEARTS | BAR>"));
|
||||
command.setExecutor(new MobhealthCommand());
|
||||
}
|
||||
|
||||
private static void registerMcscoreboardCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("mcscoreboard");
|
||||
command.setDescription("Change the current mcMMO scoreboard being displayed"); //TODO: Localize
|
||||
command.setPermission("mcmmo.commands.mcscoreboard");
|
||||
command.setPermissionMessage(permissionsMessage);
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcscoreboard", "<CLEAR | RANK | STATS | TOP>"));
|
||||
command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.3", "mcscoreboard", "top", "[" + LocaleLoader.getString("Commands.Usage.Skill") + "]", "[" + LocaleLoader.getString("Commands.Usage.Page") + "]"));
|
||||
command.setExecutor(new McscoreboardCommand());
|
||||
}
|
||||
|
||||
private static void registerKrakenCommand() {
|
||||
PluginCommand command = mcMMO.p.getCommand("kraken");
|
||||
command.setDescription("Unleash the kraken!"); //TODO: Localize
|
||||
command.setPermission("mcmmo.commands.kraken;mcmmo.commands.kraken.others");
|
||||
command.setPermissionMessage(permissionsMessage);
|
||||
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "kraken", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
|
||||
command.setExecutor(new KrakenCommand());
|
||||
}
|
||||
|
||||
public static void registerCommands() {
|
||||
// Generic Commands
|
||||
registerKrakenCommand();
|
||||
registerMcabilityCommand();
|
||||
registerMcgodCommand();
|
||||
registerMcmmoCommand();
|
||||
registerMcnotifyCommand();
|
||||
registerMcrefreshCommand();
|
||||
registerMcscoreboardCommand();
|
||||
registerMobhealthCommand();
|
||||
registerXprateCommand();
|
||||
|
||||
// Chat Commands
|
||||
registerPartyChatCommand();
|
||||
registerAdminChatCommand();
|
||||
|
||||
// Database Commands
|
||||
registerMcpurgeCommand();
|
||||
registerMcremoveCommand();
|
||||
registerMmoupdateCommand();
|
||||
|
||||
// Experience Commands
|
||||
registerAddlevelsCommand();
|
||||
registerAddxpCommand();
|
||||
registerMmoeditCommand();
|
||||
registerSkillresetCommand();
|
||||
|
||||
// Hardcore Commands
|
||||
registerHardcoreCommand();
|
||||
registerVampirismCommand();
|
||||
|
||||
// Party Commands
|
||||
registerPartyCommand();
|
||||
registerPtpCommand();
|
||||
|
||||
// Player Commands
|
||||
registerInspectCommand();
|
||||
registerMcrankCommand();
|
||||
registerMcstatsCommand();
|
||||
registerMctopCommand();
|
||||
|
||||
// Skill Commands
|
||||
registerSkillCommands();
|
||||
|
||||
// Spout Commands
|
||||
registerXplockCommand();
|
||||
registerMchudCommand();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,15 +14,16 @@ import org.bukkit.scoreboard.Objective;
|
||||
import org.bukkit.scoreboard.Scoreboard;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.database.FlatfileDatabaseManager;
|
||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.datatypes.database.PlayerStat;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.runnables.scoreboards.ScoreboardChangeTask;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
|
||||
public class ScoreboardManager {
|
||||
@@ -32,6 +33,7 @@ public class ScoreboardManager {
|
||||
private final static String PLAYER_STATS_HEADER = "mcMMO Stats";
|
||||
private final static String PLAYER_RANK_HEADER = "mcMMO Rankings";
|
||||
private final static String PLAYER_INSPECT_HEADER = "mcMMO Stats: ";
|
||||
private final static String POWER_LEVEL_HEADER = "Power Level";
|
||||
|
||||
private final static List<String> SCOREBOARD_TASKS = new ArrayList<String>();
|
||||
|
||||
@@ -43,6 +45,32 @@ public class ScoreboardManager {
|
||||
PLAYER_SCOREBOARDS.put(playerName, mcMMO.p.getServer().getScoreboardManager().getNewScoreboard());
|
||||
}
|
||||
|
||||
public static void enablePowerLevelDisplay(Player player) {
|
||||
if (!Config.getInstance().getPowerLevelsEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Scoreboard scoreboard = player.getScoreboard();
|
||||
Objective objective;
|
||||
|
||||
if (scoreboard.getObjective(DisplaySlot.BELOW_NAME) == null) {
|
||||
objective = scoreboard.registerNewObjective(POWER_LEVEL_HEADER, "dummy");
|
||||
|
||||
objective.getScore(player).setScore(UserManager.getPlayer(player).getPowerLevel());
|
||||
objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
|
||||
}
|
||||
else {
|
||||
objective = scoreboard.getObjective(POWER_LEVEL_HEADER);
|
||||
|
||||
if (scoreboard.getObjective(POWER_LEVEL_HEADER) != null) {
|
||||
objective.getScore(player).setScore(UserManager.getPlayer(player).getPowerLevel());
|
||||
}
|
||||
else {
|
||||
mcMMO.p.debug("Another plugin is using this scoreboard slot, so power levels cannot be enabled."); //TODO: Locale
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void enablePlayerSkillScoreboard(McMMOPlayer mcMMOPlayer, SkillType skill) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Scoreboard oldScoreboard = player.getScoreboard();
|
||||
@@ -140,10 +168,11 @@ public class ScoreboardManager {
|
||||
|
||||
private static void updatePlayerSkillScores(PlayerProfile profile, SkillType skill, Objective objective) {
|
||||
Server server = mcMMO.p.getServer();
|
||||
int currentXP = profile.getSkillXpLevel(skill);
|
||||
|
||||
objective.getScore(server.getOfflinePlayer("Level")).setScore(profile.getSkillLevel(skill));
|
||||
objective.getScore(server.getOfflinePlayer("Current XP")).setScore(profile.getSkillXpLevel(skill));
|
||||
objective.getScore(server.getOfflinePlayer("Remaining XP")).setScore(profile.getXpToLevel(skill));
|
||||
objective.getScore(server.getOfflinePlayer("Current XP")).setScore(currentXP);
|
||||
objective.getScore(server.getOfflinePlayer("Remaining XP")).setScore(profile.getXpToLevel(skill) - currentXP);
|
||||
|
||||
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||
}
|
||||
@@ -277,6 +306,10 @@ public class ScoreboardManager {
|
||||
String playerName = stat.get(1);
|
||||
playerName = (playerName.equals(player.getName()) ? ChatColor.GOLD : "") + playerName;
|
||||
|
||||
if (playerName.length() > 16) {
|
||||
playerName = playerName.substring(0, 16);
|
||||
}
|
||||
|
||||
objective.getScore(server.getOfflinePlayer(playerName)).setScore(Integer.valueOf(stat.get(0)));
|
||||
}
|
||||
}
|
||||
@@ -285,6 +318,10 @@ public class ScoreboardManager {
|
||||
String playerName = stat.name;
|
||||
playerName = (playerName.equals(player.getName()) ? ChatColor.GOLD : "") + playerName;
|
||||
|
||||
if (playerName.length() > 16) {
|
||||
playerName = playerName.substring(0, 16);
|
||||
}
|
||||
|
||||
objective.getScore(server.getOfflinePlayer(playerName)).setScore(stat.statVal);
|
||||
}
|
||||
}
|
||||
@@ -298,6 +335,7 @@ public class ScoreboardManager {
|
||||
String playerName = player.getName();
|
||||
|
||||
player.setScoreboard(newScoreboard);
|
||||
enablePowerLevelDisplay(player);
|
||||
|
||||
if (displayTime != -1 && !SCOREBOARD_TASKS.contains(playerName)) {
|
||||
new ScoreboardChangeTask(player, oldScoreboard).runTaskLater(mcMMO.p, displayTime * 20);
|
||||
|
||||
@@ -245,12 +245,13 @@ public final class CombatUtils {
|
||||
event.setDamage(archeryManager.dazeCheck((Player) target, event.getDamage()));
|
||||
}
|
||||
|
||||
if (archeryManager.canTrackArrows()) {
|
||||
if (!damager.hasMetadata(mcMMO.infiniteArrowKey) && archeryManager.canTrackArrows()) {
|
||||
archeryManager.trackArrows(target);
|
||||
}
|
||||
|
||||
archeryManager.distanceXpBonus(target);
|
||||
startGainXp(mcMMOPlayer, target, SkillType.ARCHERY);
|
||||
archeryManager.distanceXpBonus(target, damager);
|
||||
|
||||
startGainXp(mcMMOPlayer, target, SkillType.ARCHERY, damager.getMetadata(mcMMO.bowForceKey).get(0).asDouble());
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -284,6 +285,24 @@ public final class CombatUtils {
|
||||
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
||||
}
|
||||
}
|
||||
|
||||
if (damager.getType() == EntityType.ARROW) {
|
||||
LivingEntity shooter = ((Arrow) damager).getShooter();
|
||||
|
||||
if (shooter instanceof Player || !SkillType.UNARMED.getPVEEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
||||
|
||||
if (unarmedManager.canDeflect()) {
|
||||
event.setCancelled(unarmedManager.deflectCheck());
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (attacker instanceof Player) {
|
||||
Player player = (Player) attacker;
|
||||
@@ -406,6 +425,10 @@ public final class CombatUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, SkillType skillType) {
|
||||
startGainXp(mcMMOPlayer, target, skillType, 1.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the task that gives combat XP.
|
||||
*
|
||||
@@ -413,7 +436,7 @@ public final class CombatUtils {
|
||||
* @param target The defending entity
|
||||
* @param skillType The skill being used
|
||||
*/
|
||||
public static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, SkillType skillType) {
|
||||
public static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, SkillType skillType, double multiplier) {
|
||||
double baseXP = 0;
|
||||
|
||||
if (target instanceof Player) {
|
||||
@@ -427,7 +450,7 @@ public final class CombatUtils {
|
||||
baseXP = 20 * Config.getInstance().getPlayerVersusPlayerXP();
|
||||
}
|
||||
}
|
||||
else if (!target.hasMetadata(mcMMO.entityMetadataKey)) {
|
||||
else {
|
||||
if (target instanceof Animals) {
|
||||
if (ModUtils.isCustomEntity(target)) {
|
||||
baseXP = ModUtils.getCustomEntity(target).getXpMultiplier();
|
||||
@@ -487,11 +510,17 @@ public final class CombatUtils {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (target.hasMetadata(mcMMO.entityMetadataKey)) {
|
||||
baseXP *= Config.getInstance().getSpawnedMobXpMultiplier();
|
||||
}
|
||||
}
|
||||
|
||||
baseXP *= 10;
|
||||
}
|
||||
|
||||
baseXP *= multiplier;
|
||||
|
||||
if (baseXP != 0) {
|
||||
new AwardCombatXpTask(mcMMOPlayer, skillType, baseXP, target).runTaskLater(mcMMO.p, 0);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.bukkit.FireworkEffect.Type;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Firework;
|
||||
@@ -63,7 +64,9 @@ public final class ParticleEffectUtils {
|
||||
return;
|
||||
}
|
||||
|
||||
fireworkParticleShower(player, Color.GREEN);
|
||||
if (hasHeadRoom(player)) {
|
||||
fireworkParticleShower(player, Color.GREEN);
|
||||
}
|
||||
}
|
||||
|
||||
public static void playAbilityDisabledEffect(Player player) {
|
||||
@@ -71,7 +74,9 @@ public final class ParticleEffectUtils {
|
||||
return;
|
||||
}
|
||||
|
||||
fireworkParticleShower(player, Color.RED);
|
||||
if (hasHeadRoom(player)) {
|
||||
fireworkParticleShower(player, Color.RED);
|
||||
}
|
||||
}
|
||||
|
||||
public static void runescapeModeCelebration(Player player, SkillType skill) {
|
||||
@@ -85,10 +90,24 @@ public final class ParticleEffectUtils {
|
||||
|
||||
Firework firework = (Firework) player.getWorld().spawnEntity(location, EntityType.FIREWORK);
|
||||
FireworkMeta fireworkMeta = firework.getFireworkMeta();
|
||||
FireworkEffect effect = FireworkEffect.builder().flicker(false).withColor(color).with(Type.BALL_LARGE).trail(true).build();
|
||||
FireworkEffect effect = FireworkEffect.builder().flicker(false).withColor(color).with((Config.getInstance().getLargeFireworks() ? Type.BALL_LARGE : Type.BALL)).trail(true).build();
|
||||
fireworkMeta.addEffect(effect);
|
||||
fireworkMeta.addEffect(effect);
|
||||
fireworkMeta.setPower(0);
|
||||
firework.setFireworkMeta(fireworkMeta);
|
||||
}
|
||||
|
||||
private static boolean hasHeadRoom(Player player) {
|
||||
boolean hasHeadRoom = true;
|
||||
Block headBlock = player.getEyeLocation().getBlock();
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (!headBlock.getRelative(BlockFace.UP, i).isEmpty()) {
|
||||
hasHeadRoom = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return hasHeadRoom;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,10 @@ public final class PerksUtils {
|
||||
}
|
||||
|
||||
public static int handleActivationPerks(Player player, int ticks, int maxTicks) {
|
||||
if (maxTicks != 0) {
|
||||
ticks = Math.min(ticks, maxTicks);
|
||||
}
|
||||
|
||||
if (Permissions.twelveSecondActivationBoost(player)) {
|
||||
ticks += 12;
|
||||
}
|
||||
@@ -36,10 +40,6 @@ public final class PerksUtils {
|
||||
ticks += 4;
|
||||
}
|
||||
|
||||
if (maxTicks != 0) {
|
||||
ticks = Math.min(ticks, maxTicks);
|
||||
}
|
||||
|
||||
return ticks;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,14 +13,11 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.getspout.spoutapi.SpoutManager;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.HiddenConfig;
|
||||
import com.gmail.nossr50.config.spout.SpoutConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
@@ -30,6 +27,7 @@ import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeBlockDamageEvent;
|
||||
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
|
||||
import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.runnables.skills.AbilityDisableTask;
|
||||
import com.gmail.nossr50.runnables.skills.ToolLowerTask;
|
||||
@@ -42,8 +40,6 @@ import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
public class SkillUtils {
|
||||
private static int enchantBuff = AdvancedConfig.getInstance().getEnchantBuff();
|
||||
|
||||
public static int handleFoodSkills(Player player, SkillType skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
|
||||
int skillLevel = UserManager.getPlayer(player).getProfile().getSkillLevel(skill);
|
||||
|
||||
@@ -151,7 +147,7 @@ public class SkillUtils {
|
||||
* @param profile The profile of the player whose skill to check
|
||||
*/
|
||||
public static void xpCheckSkill(SkillType skillType, Player player, PlayerProfile profile) {
|
||||
int skillups = 0;
|
||||
int levelsGained = 0;
|
||||
float xpRemoved = 0;
|
||||
|
||||
if (profile.getSkillXpLevelRaw(skillType) >= profile.getXpToLevel(skillType)) {
|
||||
@@ -163,7 +159,7 @@ public class SkillUtils {
|
||||
xpRemoved += xp;
|
||||
|
||||
profile.removeXp(skillType, xp);
|
||||
skillups++;
|
||||
levelsGained++;
|
||||
profile.skillUp(skillType, 1);
|
||||
}
|
||||
else {
|
||||
@@ -171,46 +167,27 @@ public class SkillUtils {
|
||||
}
|
||||
}
|
||||
|
||||
McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType, skillups);
|
||||
McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType, levelsGained);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(eventToFire);
|
||||
|
||||
if (eventToFire.isCancelled()) {
|
||||
profile.modifySkill(skillType, profile.getSkillLevel(skillType) - skillups);
|
||||
profile.modifySkill(skillType, profile.getSkillLevel(skillType) - levelsGained);
|
||||
profile.setSkillXpLevel(skillType, profile.getSkillXpLevelRaw(skillType) + xpRemoved);
|
||||
return;
|
||||
}
|
||||
|
||||
String capitalized = StringUtils.getCapitalized(skillType.toString());
|
||||
|
||||
/* Spout Stuff */
|
||||
if (mcMMO.spoutEnabled) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer != null && spoutPlayer.isSpoutCraftEnabled()) {
|
||||
SpoutUtils.levelUpNotification(skillType, spoutPlayer);
|
||||
|
||||
/* Update custom titles */
|
||||
if (SpoutConfig.getInstance().getShowPowerLevel()) {
|
||||
spoutPlayer.setTitle(LocaleLoader.getString("Spout.Title", spoutPlayer.getName(), UserManager.getPlayer(player).getPowerLevel()));
|
||||
}
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString(capitalized + ".Skillup", skillups, profile.getSkillLevel(skillType)));
|
||||
}
|
||||
if (mcMMO.isSpoutEnabled()) {
|
||||
SpoutUtils.processLevelup(mcMMOPlayer, skillType, levelsGained);
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString(capitalized + ".Skillup", skillups, profile.getSkillLevel(skillType)));
|
||||
player.sendMessage(LocaleLoader.getString(capitalized + ".Skillup", levelsGained, profile.getSkillLevel(skillType)));
|
||||
}
|
||||
}
|
||||
|
||||
if (mcMMO.spoutEnabled) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer != null && spoutPlayer.isSpoutCraftEnabled()) {
|
||||
if (SpoutConfig.getInstance().getXPBarEnabled()) {
|
||||
profile.getSpoutHud().updateXpBar();
|
||||
}
|
||||
}
|
||||
if (mcMMO.isSpoutEnabled()) {
|
||||
SpoutUtils.processXpGain(player, profile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,6 +306,13 @@ public class SkillUtils {
|
||||
}
|
||||
|
||||
if (!mcMMOPlayer.getAbilityMode(ability) && cooldownOver(playerProfile.getSkillDATS(ability), ability.getCooldown(), player)) {
|
||||
McMMOPlayerAbilityActivateEvent event = new McMMOPlayerAbilityActivateEvent(player, type);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int ticks = PerksUtils.handleActivationPerks(player, 2 + (playerProfile.getSkillLevel(type) / AdvancedConfig.getInstance().getAbilityLength()), ability.getMaxTicks());
|
||||
|
||||
ParticleEffectUtils.playAbilityEnabledEffect(player);
|
||||
@@ -417,7 +401,7 @@ public class SkillUtils {
|
||||
}
|
||||
|
||||
itemLore.add("mcMMO Ability Tool");
|
||||
itemMeta.addEnchant(Enchantment.DIG_SPEED, efficiencyLevel + enchantBuff, true);
|
||||
itemMeta.addEnchant(Enchantment.DIG_SPEED, efficiencyLevel + AdvancedConfig.getInstance().getEnchantBuff(), true);
|
||||
|
||||
itemMeta.setLore(itemLore);
|
||||
heldItem.setItemMeta(itemMeta);
|
||||
@@ -483,11 +467,11 @@ public class SkillUtils {
|
||||
if (itemLore.remove("mcMMO Ability Tool")) {
|
||||
int efficiencyLevel = item.getEnchantmentLevel(Enchantment.DIG_SPEED);
|
||||
|
||||
if (efficiencyLevel <= enchantBuff) {
|
||||
if (efficiencyLevel <= AdvancedConfig.getInstance().getEnchantBuff()) {
|
||||
itemMeta.removeEnchant(Enchantment.DIG_SPEED);
|
||||
}
|
||||
else {
|
||||
itemMeta.addEnchant(Enchantment.DIG_SPEED, efficiencyLevel - enchantBuff, true);
|
||||
itemMeta.addEnchant(Enchantment.DIG_SPEED, efficiencyLevel - AdvancedConfig.getInstance().getEnchantBuff(), true);
|
||||
}
|
||||
|
||||
itemMeta.setLore(itemLore);
|
||||
|
||||
@@ -9,61 +9,132 @@ import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.getspout.spoutapi.SpoutManager;
|
||||
import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
|
||||
import org.getspout.spoutapi.keyboard.Keyboard;
|
||||
import org.getspout.spoutapi.player.FileManager;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.spout.SpoutConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.listeners.SpoutListener;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.skills.repair.Repair;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
|
||||
public class SpoutUtils {
|
||||
private static mcMMO plugin = mcMMO.p;
|
||||
// The order of the values is extremely important, a few methods depend on it to work properly
|
||||
protected enum Tier {
|
||||
FOUR(4) {
|
||||
@Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier4(); }
|
||||
@Override protected Material getAcrobaticsNotificationItem() { return Material.DIAMOND_BOOTS; }
|
||||
@Override protected Material getArcheryNotificationItem() { return Material.BOW; }
|
||||
@Override protected Material getAxesNotificationItem() { return Material.DIAMOND_AXE; }
|
||||
@Override protected Material getExcavationNotificationItem() { return Material.CLAY; }
|
||||
@Override protected Material getFishingNotificationItem() { return Material.FISHING_ROD; }
|
||||
@Override protected Material getHerbalismNotificationItem() { return Material.WATER_LILY; }
|
||||
@Override protected Material getMiningNotificationItem() { return Material.EMERALD_ORE; }
|
||||
@Override protected Material getSwordsNotificationItem() { return Material.DIAMOND_SWORD; }
|
||||
@Override protected Material getTamingNotificationItem() { return Material.BONE; }
|
||||
@Override protected Material getUnarmedNotificationItem() { return Material.DIAMOND_HELMET; }
|
||||
@Override protected Material getWoodcuttingNotificationItem() { return Material.LOG; }},
|
||||
THREE(3) {
|
||||
@Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier3(); }
|
||||
@Override protected Material getAcrobaticsNotificationItem() { return Material.GOLD_BOOTS; }
|
||||
@Override protected Material getArcheryNotificationItem() { return Material.ARROW; }
|
||||
@Override protected Material getAxesNotificationItem() { return Material.GOLD_AXE; }
|
||||
@Override protected Material getExcavationNotificationItem() { return Material.SAND; }
|
||||
@Override protected Material getFishingNotificationItem() { return Material.COOKED_FISH; }
|
||||
@Override protected Material getHerbalismNotificationItem() { return Material.RED_ROSE; }
|
||||
@Override protected Material getMiningNotificationItem() { return Material.DIAMOND_ORE; }
|
||||
@Override protected Material getSwordsNotificationItem() { return Material.GOLD_SWORD; }
|
||||
@Override protected Material getTamingNotificationItem() { return Material.GRILLED_PORK; }
|
||||
@Override protected Material getUnarmedNotificationItem() { return Material.GOLD_HELMET; }
|
||||
@Override protected Material getWoodcuttingNotificationItem() { return Material.WOOD; }},
|
||||
TWO(2) {
|
||||
@Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier2(); }
|
||||
@Override protected Material getAcrobaticsNotificationItem() { return Material.IRON_BOOTS; }
|
||||
@Override protected Material getArcheryNotificationItem() { return Material.ARROW; }
|
||||
@Override protected Material getAxesNotificationItem() { return Material.IRON_AXE; }
|
||||
@Override protected Material getExcavationNotificationItem() { return Material.GRAVEL; }
|
||||
@Override protected Material getFishingNotificationItem() { return Material.COOKED_FISH; }
|
||||
@Override protected Material getHerbalismNotificationItem() { return Material.YELLOW_FLOWER; }
|
||||
@Override protected Material getMiningNotificationItem() { return Material.GOLD_ORE; }
|
||||
@Override protected Material getSwordsNotificationItem() { return Material.IRON_SWORD; }
|
||||
@Override protected Material getTamingNotificationItem() { return Material.GRILLED_PORK; }
|
||||
@Override protected Material getUnarmedNotificationItem() { return Material.IRON_HELMET; }
|
||||
@Override protected Material getWoodcuttingNotificationItem() { return Material.LEAVES; }},
|
||||
ONE(1) {
|
||||
@Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier1(); }
|
||||
@Override protected Material getAcrobaticsNotificationItem() { return Material.CHAINMAIL_BOOTS; }
|
||||
@Override protected Material getArcheryNotificationItem() { return Material.FLINT; }
|
||||
@Override protected Material getAxesNotificationItem() { return Material.STONE_AXE; }
|
||||
@Override protected Material getExcavationNotificationItem() { return Material.GRASS; }
|
||||
@Override protected Material getFishingNotificationItem() { return Material.RAW_FISH; }
|
||||
@Override protected Material getHerbalismNotificationItem() { return Material.CACTUS; }
|
||||
@Override protected Material getMiningNotificationItem() { return Material.IRON_ORE; }
|
||||
@Override protected Material getSwordsNotificationItem() { return Material.STONE_SWORD; }
|
||||
@Override protected Material getTamingNotificationItem() { return Material.PORK; }
|
||||
@Override protected Material getUnarmedNotificationItem() { return Material.CHAINMAIL_HELMET; }
|
||||
@Override protected Material getWoodcuttingNotificationItem() { return Material.SAPLING; }};
|
||||
|
||||
public final static String spoutDirectory = mcMMO.getMainDirectory() + "Resources" + File.separator;
|
||||
public final static String hudDirectory = spoutDirectory + "HUD" + File.separator;
|
||||
public final static String hudStandardDirectory = hudDirectory + "Standard" + File.separator;
|
||||
public final static String hudRetroDirectory = hudDirectory + "Retro" + File.separator;
|
||||
public final static String soundDirectory = spoutDirectory + "Sound" + File.separator;
|
||||
int numerical;
|
||||
|
||||
public static boolean showPowerLevel;
|
||||
private Tier(int numerical) {
|
||||
this.numerical = numerical;
|
||||
}
|
||||
|
||||
private final static SpoutListener spoutListener = new SpoutListener();
|
||||
public static Keyboard menuKey;
|
||||
public int toNumerical() {
|
||||
return numerical;
|
||||
}
|
||||
|
||||
abstract protected int getLevel();
|
||||
abstract protected Material getAcrobaticsNotificationItem();
|
||||
abstract protected Material getArcheryNotificationItem();
|
||||
abstract protected Material getAxesNotificationItem();
|
||||
abstract protected Material getExcavationNotificationItem();
|
||||
abstract protected Material getFishingNotificationItem();
|
||||
abstract protected Material getHerbalismNotificationItem();
|
||||
abstract protected Material getMiningNotificationItem();
|
||||
abstract protected Material getSwordsNotificationItem();
|
||||
abstract protected Material getTamingNotificationItem();
|
||||
abstract protected Material getUnarmedNotificationItem();
|
||||
abstract protected Material getWoodcuttingNotificationItem();
|
||||
}
|
||||
|
||||
private final static String spoutDirectory = mcMMO.getMainDirectory() + "Resources" + File.separator;
|
||||
private final static String hudDirectory = spoutDirectory + "HUD" + File.separator;
|
||||
private final static String hudStandardDirectory = hudDirectory + "Standard" + File.separator;
|
||||
private final static String hudRetroDirectory = hudDirectory + "Retro" + File.separator;
|
||||
private final static String soundDirectory = spoutDirectory + "Sound" + File.separator;
|
||||
|
||||
/**
|
||||
* Write file to disk.
|
||||
*
|
||||
* @param theFileName The name of the file
|
||||
* @param theFilePath The name of the file path
|
||||
* @param fileName The name of the file
|
||||
* @param filePath The name of the file path
|
||||
*/
|
||||
private static void writeFile(String theFileName, String theFilePath) {
|
||||
private static File writeFile(String fileName, String filePath) {
|
||||
File currentFile = new File(filePath + fileName);
|
||||
BufferedOutputStream os = null;
|
||||
JarFile jar = null;
|
||||
|
||||
// No point in writing the file again if it already exists.
|
||||
if (currentFile.exists()) {
|
||||
return currentFile;
|
||||
}
|
||||
|
||||
try {
|
||||
File currentFile = new File(theFilePath + theFileName);
|
||||
|
||||
// No point in writing the file again if it already exists.
|
||||
if (currentFile.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
jar = new JarFile(mcMMO.mcmmo);
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
InputStream is = jar.getInputStream(jar.getJarEntry("resources/" + theFileName));
|
||||
InputStream is = jar.getInputStream(jar.getJarEntry("resources/" + fileName));
|
||||
|
||||
byte[] buf = new byte[2048];
|
||||
int nbRead;
|
||||
@@ -98,12 +169,16 @@ public class SpoutUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return currentFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Spout files to the Resources directory.
|
||||
*/
|
||||
public static void extractFiles() {
|
||||
public static ArrayList<File> extractFiles() {
|
||||
ArrayList<File> files = new ArrayList<File>();
|
||||
|
||||
// Setup directories
|
||||
new File(spoutDirectory).mkdir();
|
||||
new File(hudDirectory).mkdir();
|
||||
@@ -113,19 +188,19 @@ public class SpoutUtils {
|
||||
|
||||
// XP Bar images
|
||||
for (int x = 0; x < 255; x++) {
|
||||
String theFileName;
|
||||
String fileName;
|
||||
|
||||
if (x < 10) {
|
||||
theFileName = "xpbar_inc00" + x + ".png";
|
||||
fileName = "xpbar_inc00" + x + ".png";
|
||||
}
|
||||
else if (x < 100) {
|
||||
theFileName = "xpbar_inc0" + x + ".png";
|
||||
fileName = "xpbar_inc0" + x + ".png";
|
||||
}
|
||||
else {
|
||||
theFileName = "xpbar_inc" + x + ".png";
|
||||
fileName = "xpbar_inc" + x + ".png";
|
||||
}
|
||||
|
||||
writeFile(theFileName, hudStandardDirectory);
|
||||
files.add(writeFile(fileName, hudStandardDirectory));
|
||||
}
|
||||
|
||||
// Standard XP Icons
|
||||
@@ -134,89 +209,22 @@ public class SpoutUtils {
|
||||
continue;
|
||||
}
|
||||
|
||||
String skillTypeString = StringUtils.getCapitalized(skillType.toString());
|
||||
String skillName = StringUtils.getCapitalized(skillType.toString());
|
||||
|
||||
writeFile(skillTypeString + ".png", hudStandardDirectory);
|
||||
writeFile(skillTypeString + "_r.png", hudRetroDirectory);
|
||||
files.add(writeFile(skillName + ".png", hudStandardDirectory));
|
||||
files.add(writeFile(skillName + "_r.png", hudRetroDirectory));
|
||||
}
|
||||
|
||||
// Blank icons
|
||||
writeFile("Icon.png", hudStandardDirectory);
|
||||
writeFile("Icon_r.png", hudRetroDirectory);
|
||||
files.add(writeFile("Icon.png", hudStandardDirectory));
|
||||
files.add(writeFile("Icon_r.png", hudRetroDirectory));
|
||||
|
||||
// Sound FX
|
||||
writeFile("level.wav", soundDirectory);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup Spout config options
|
||||
*/
|
||||
public static void setupSpoutConfigs() {
|
||||
showPowerLevel = SpoutConfig.getInstance().getShowPowerLevel();
|
||||
String temp = SpoutConfig.getInstance().getMenuKey();
|
||||
|
||||
for (Keyboard x : Keyboard.values()) {
|
||||
if (x.toString().equalsIgnoreCase(temp)) {
|
||||
menuKey = x;
|
||||
}
|
||||
}
|
||||
|
||||
if (menuKey == null) {
|
||||
mcMMO.p.getLogger().warning("Invalid KEY for Menu.Key, using KEY_M");
|
||||
menuKey = Keyboard.KEY_M;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the Spout files in the Resources folder.
|
||||
*
|
||||
* @return a list of all files is the Resources folder
|
||||
*/
|
||||
public static ArrayList<File> getFiles() {
|
||||
ArrayList<File> files = new ArrayList<File>();
|
||||
|
||||
// XP BAR
|
||||
for (int x = 0; x < 255; x++) {
|
||||
if (x < 10) {
|
||||
files.add(new File(hudStandardDirectory + "xpbar_inc00" + x + ".png"));
|
||||
}
|
||||
else if (x < 100) {
|
||||
files.add(new File(hudStandardDirectory + "xpbar_inc0" + x + ".png"));
|
||||
}
|
||||
else {
|
||||
files.add(new File(hudStandardDirectory + "xpbar_inc" + x + ".png"));
|
||||
}
|
||||
}
|
||||
|
||||
// Standard XP Icons
|
||||
for (SkillType skillType : SkillType.values()) {
|
||||
if (skillType.isChildSkill()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String skillTypeString = StringUtils.getCapitalized(skillType.toString());
|
||||
|
||||
files.add(new File(hudStandardDirectory + skillTypeString + ".png"));
|
||||
files.add(new File(hudRetroDirectory + skillTypeString + "_r.png"));
|
||||
}
|
||||
|
||||
// Blank icons
|
||||
files.add(new File(hudStandardDirectory + "Icon.png"));
|
||||
files.add(new File(hudRetroDirectory + "Icon_r.png"));
|
||||
|
||||
// Level SFX
|
||||
files.add(new File(soundDirectory + "level.wav"));
|
||||
files.add(writeFile("level.wav", soundDirectory));
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register custom Spout events.
|
||||
*/
|
||||
public static void registerCustomEvent() {
|
||||
plugin.getServer().getPluginManager().registerEvents(spoutListener, plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle level-up notifications through Spout.
|
||||
*
|
||||
@@ -225,334 +233,185 @@ public class SpoutUtils {
|
||||
*/
|
||||
public static void levelUpNotification(SkillType skillType, SpoutPlayer spoutPlayer) {
|
||||
PlayerProfile profile = UserManager.getPlayer(spoutPlayer).getProfile();
|
||||
int notificationTier = getNotificationTier(profile.getSkillLevel(skillType));
|
||||
Material mat = null;
|
||||
int skillLevel = profile.getSkillLevel(skillType);
|
||||
Material notificationItem;
|
||||
|
||||
switch (skillType) {
|
||||
case TAMING:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
case 2:
|
||||
mat = Material.PORK;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
mat = Material.GRILLED_PORK;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.BONE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case MINING:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.COAL_ORE;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.IRON_ORE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.GOLD_ORE;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.DIAMOND_ORE;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.EMERALD_ORE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case WOODCUTTING:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.STICK;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 3:
|
||||
mat = Material.WOOD;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case 5:
|
||||
mat = Material.LOG;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case REPAIR:
|
||||
mat = Material.ANVIL;
|
||||
break;
|
||||
|
||||
case HERBALISM:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.YELLOW_FLOWER;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.RED_ROSE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.BROWN_MUSHROOM;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.RED_MUSHROOM;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.PUMPKIN;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ACROBATICS:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.LEATHER_BOOTS;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.CHAINMAIL_BOOTS;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.IRON_BOOTS;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.GOLD_BOOTS;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.DIAMOND_BOOTS;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case SWORDS:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.WOOD_SWORD;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.STONE_SWORD;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.IRON_SWORD;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.GOLD_SWORD;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.DIAMOND_SWORD;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
notificationItem = getAcrobaticsNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case ARCHERY:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
mat = Material.ARROW;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case 5:
|
||||
mat = Material.BOW;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case UNARMED:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.LEATHER_HELMET;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.CHAINMAIL_HELMET;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.IRON_HELMET;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.GOLD_HELMET;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.DIAMOND_HELMET;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case EXCAVATION:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.WOOD_SPADE;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.STONE_SPADE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.IRON_SPADE;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.GOLD_SPADE;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.DIAMOND_SPADE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
notificationItem = getArcheryNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case AXES:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
mat = Material.WOOD_AXE;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mat = Material.STONE_AXE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mat = Material.IRON_AXE;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mat = Material.GOLD_AXE;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.DIAMOND_AXE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
notificationItem = getAxesNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case EXCAVATION:
|
||||
notificationItem = getExcavationNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case FISHING:
|
||||
switch (notificationTier) {
|
||||
case 1:
|
||||
case 2:
|
||||
mat = Material.RAW_FISH;
|
||||
break;
|
||||
notificationItem = getFishingNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
mat = Material.COOKED_FISH;
|
||||
break;
|
||||
case HERBALISM:
|
||||
notificationItem = getHerbalismNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mat = Material.FISHING_ROD;
|
||||
break;
|
||||
case MINING:
|
||||
notificationItem = getMiningNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
case REPAIR:
|
||||
notificationItem = Material.ANVIL;
|
||||
break;
|
||||
|
||||
case SWORDS:
|
||||
notificationItem = getSwordsNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case TAMING:
|
||||
notificationItem = getTamingNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case UNARMED:
|
||||
notificationItem = getUnarmedNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
case WOODCUTTING:
|
||||
notificationItem = getWoodcuttingNotificationItem(skillLevel);
|
||||
break;
|
||||
|
||||
default:
|
||||
mat = Material.WATCH;
|
||||
notificationItem = Material.MAP;
|
||||
break;
|
||||
}
|
||||
|
||||
spoutPlayer.sendNotification(LocaleLoader.getString("Spout.LevelUp.1"), LocaleLoader.getString("Spout.LevelUp.2", SkillUtils.getSkillName(skillType), profile.getSkillLevel(skillType)), mat);
|
||||
SpoutManager.getSoundManager().playCustomSoundEffect(plugin, spoutPlayer, "level.wav", false);
|
||||
spoutPlayer.sendNotification(LocaleLoader.getString("Spout.LevelUp.1"), LocaleLoader.getString("Spout.LevelUp.2", SkillUtils.getSkillName(skillType), skillLevel), notificationItem);
|
||||
SpoutManager.getSoundManager().playCustomSoundEffect(mcMMO.p, spoutPlayer, "level.wav", false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the notification tier of a skill.
|
||||
*
|
||||
* @param level The level of the skill
|
||||
* @return the notification tier of the skill
|
||||
*/
|
||||
private static int getNotificationTier(int level) {
|
||||
if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier4()) {
|
||||
return 5;
|
||||
private static Material getAcrobaticsNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getAcrobaticsNotificationItem();
|
||||
}
|
||||
}
|
||||
else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier3()) {
|
||||
return 4;
|
||||
|
||||
return Material.LEATHER_BOOTS;
|
||||
}
|
||||
|
||||
private static Material getArcheryNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getArcheryNotificationItem();
|
||||
}
|
||||
}
|
||||
else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier2()) {
|
||||
return 3;
|
||||
|
||||
return Material.FEATHER;
|
||||
}
|
||||
|
||||
private static Material getAxesNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getAxesNotificationItem();
|
||||
}
|
||||
}
|
||||
else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier1()) {
|
||||
return 2;
|
||||
|
||||
return Material.WOOD_AXE;
|
||||
}
|
||||
|
||||
private static Material getExcavationNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getExcavationNotificationItem();
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
|
||||
return Material.DIRT;
|
||||
}
|
||||
|
||||
private static Material getFishingNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getFishingNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.RAW_FISH;
|
||||
}
|
||||
|
||||
private static Material getHerbalismNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getHerbalismNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.VINE;
|
||||
}
|
||||
|
||||
private static Material getMiningNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getMiningNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.COAL_ORE;
|
||||
}
|
||||
|
||||
private static Material getSwordsNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getSwordsNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.WOOD_SWORD;
|
||||
}
|
||||
|
||||
private static Material getTamingNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getTamingNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.PORK;
|
||||
}
|
||||
|
||||
private static Material getUnarmedNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getUnarmedNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.LEATHER_HELMET;
|
||||
}
|
||||
|
||||
private static Material getWoodcuttingNotificationItem(int skillLevel) {
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getWoodcuttingNotificationItem();
|
||||
}
|
||||
}
|
||||
|
||||
return Material.STICK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-enable SpoutCraft for players after a /reload
|
||||
*/
|
||||
public static void reloadSpoutPlayers() {
|
||||
PluginManager pluginManager = mcMMO.p.getServer().getPluginManager();
|
||||
|
||||
for (SpoutPlayer spoutPlayer : SpoutManager.getPlayerChunkMap().getOnlinePlayers()) {
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(new SpoutCraftEnableEvent(spoutPlayer));
|
||||
pluginManager.callEvent(new SpoutCraftEnableEvent(spoutPlayer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -565,9 +424,55 @@ public class SpoutUtils {
|
||||
}
|
||||
|
||||
public static void preCacheFiles() {
|
||||
extractFiles(); // Extract source materials
|
||||
SpoutManager.getFileManager().addToPreLoginCache(mcMMO.p, extractFiles());
|
||||
}
|
||||
|
||||
FileManager FM = SpoutManager.getFileManager();
|
||||
FM.addToPreLoginCache(plugin, getFiles());
|
||||
public static void processLevelup(McMMOPlayer mcMMOPlayer, SkillType skillType, int levelsGained) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer.isSpoutCraftEnabled()) {
|
||||
levelUpNotification(skillType, spoutPlayer);
|
||||
|
||||
/* Update custom titles */
|
||||
if (SpoutConfig.getInstance().getShowPowerLevel()) {
|
||||
spoutPlayer.setTitle(LocaleLoader.getString("Spout.Title", spoutPlayer.getName(), mcMMOPlayer.getPowerLevel()));
|
||||
}
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString(StringUtils.getCapitalized(skillType.toString()) + ".Skillup", levelsGained, mcMMOPlayer.getProfile().getSkillLevel(skillType)));
|
||||
}
|
||||
}
|
||||
|
||||
public static void processXpGain(Player player, PlayerProfile profile) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer.isSpoutCraftEnabled() && SpoutConfig.getInstance().getXPBarEnabled()) {
|
||||
profile.getSpoutHud().updateXpBar();
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendRepairNotifications(Player player, int anvilId) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer.isSpoutCraftEnabled()) {
|
||||
String[] spoutMessages = Repair.getSpoutAnvilMessages(anvilId);
|
||||
spoutPlayer.sendNotification(spoutMessages[0], spoutMessages[1], Material.getMaterial(anvilId));
|
||||
}
|
||||
else {
|
||||
player.sendMessage(Repair.getAnvilMessage(anvilId));
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendDonationNotification(Player player) {
|
||||
SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
|
||||
|
||||
if (spoutPlayer.isSpoutCraftEnabled()) {
|
||||
spoutPlayer.sendNotification(LocaleLoader.getString("Spout.Donate"), ChatColor.GREEN + "gjmcferrin@gmail.com", Material.DIAMOND);
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||
player.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "gjmcferrin@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#
|
||||
# Advanced configuration
|
||||
#
|
||||
# For advanced users only! There is no need to change anything here.
|
||||
#
|
||||
# You can customize almost every aspect of every skill here.
|
||||
# For advanced users only! There is no need to change anything here.
|
||||
#
|
||||
# You can customize almost every aspect of every skill here.
|
||||
# Its mainly here if you've changed "Experience.Formula.Curve_Modifier"
|
||||
# Configure at what level you get better with certain abilities.
|
||||
#
|
||||
@@ -71,6 +71,9 @@ Skills:
|
||||
# Retrieve_MaxBonusLevel: Maximum bonus level for Arrow retrieval, at this level the chance of retrieving arrows from mobs is Retrieve_MaxBonus
|
||||
Retrieve_MaxChance: 100.0
|
||||
Retrieve_MaxBonusLevel: 1000
|
||||
|
||||
#Force_Multiplier: Multiply the force of the bow by this for an XP boost.
|
||||
Force_Multiplier: 2.0
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
@@ -139,6 +142,9 @@ Skills:
|
||||
|
||||
# This determines when Fisherman's Diet adds extra hunger recovery to food
|
||||
Fisherman_Diet_RankChange: 200
|
||||
|
||||
# Ice_Fishing_UnlockLevel: Fishing level when the Ice Fishing ability unlocks
|
||||
Ice_Fishing_UnlockLevel: 50
|
||||
#
|
||||
# Settings for Herbalism
|
||||
###
|
||||
@@ -400,12 +406,21 @@ Skills:
|
||||
# DoubleDrops_MaxBonusLevel: Level when the maximum chance of receiving double drops is reached
|
||||
DoubleDrops_ChanceMax: 100.0
|
||||
DoubleDrops_MaxBonusLevel: 1000
|
||||
Spout:
|
||||
#
|
||||
# Settings for the Spout notifications, when a player reaches a higher tier, the image of the notification will change.
|
||||
###
|
||||
Notifications:
|
||||
Tier1: 200
|
||||
Tier2: 400
|
||||
Tier3: 600
|
||||
Tier4: 800
|
||||
#
|
||||
# Customize the kraken!
|
||||
###
|
||||
Kraken:
|
||||
Enabled: true
|
||||
Tries_Before_Release: 50
|
||||
Health: 50
|
||||
Name: The Kraken
|
||||
Attack_Interval_Seconds: 1
|
||||
Attack_Damage: 1
|
||||
Global_Sounds: true
|
||||
Allow_Escaping: false
|
||||
Unleashed_Message:
|
||||
Server: (PLAYER) has unleashed the kraken!
|
||||
Player: THE KRAKEN HAS BEEN UNLEASHED!
|
||||
Defeated_Message:
|
||||
Escape: You have escaped from the kraken!
|
||||
Killed: You have slain the kraken!
|
||||
@@ -26,34 +26,39 @@ General:
|
||||
Verbose_Logging: false
|
||||
# Should mcMMO over-write configs to update, or make new ones ending in .new?
|
||||
Config_Update_Overwrite: true
|
||||
# Enable potato easter egg?
|
||||
Potato_Explosion_Enabled: false
|
||||
Potato_Explosion_Chance: 1
|
||||
|
||||
Scoreboards:
|
||||
# Should mcMMO use scoreboards for /inspect?
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Inspect:
|
||||
# Should mcMMO use scoreboards for /inspect?
|
||||
Use: true
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Display_Time: 10
|
||||
# Should mcMMO use scoreboards for /mcrank?
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Mcrank:
|
||||
# Should mcMMO use scoreboards for /mcrank?
|
||||
Use: true
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Display_Time: 10
|
||||
# Should mcMMO use scoreboards for /mcstats?
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Mcstats:
|
||||
# Should mcMMO use scoreboards for /mcstats?
|
||||
Use: true
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Display_Time: 10
|
||||
# Should mcMMO use scoreboards for /mctop?
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Mctop:
|
||||
# Should mcMMO use scoreboards for /mctop?
|
||||
Use: true
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Display_Time: 10
|
||||
# Should mcMMO use scoreboards for /skillname (/mining, /fishing, etc.)?
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Skillname:
|
||||
# Should mcMMO use scoreboards for /skillname (/mining, /fishing, etc.)?
|
||||
Use: true
|
||||
# Amount of time (in seconds) to display. To display permanently, set to -1
|
||||
Display_Time: 10
|
||||
|
||||
# Should mcMMO display power levels on scoreboards?
|
||||
Power_Level:
|
||||
Use: true
|
||||
|
||||
Mob_Healthbar:
|
||||
# Default display for mob health bars - HEARTS, BAR, or DISABLED
|
||||
@@ -69,6 +74,7 @@ Database_Purging:
|
||||
# Any user who hasn't connected in this many months will be purged from the database
|
||||
# To never purge old users, set to -1
|
||||
Old_User_Cutoff: 6
|
||||
|
||||
#
|
||||
# Settings for using a mySQL database
|
||||
###
|
||||
@@ -82,6 +88,7 @@ MySQL:
|
||||
Server:
|
||||
Port: 3306
|
||||
Address: localhost
|
||||
|
||||
#
|
||||
# Settings for Hardcore mode
|
||||
###
|
||||
@@ -273,8 +280,9 @@ Double_Drops:
|
||||
###
|
||||
Experience:
|
||||
Gains:
|
||||
# Experience gained from mobs not naturally spawned will get multiplied by this value. 0 by default.
|
||||
Mobspawners:
|
||||
Enabled: false
|
||||
Multiplier: 0
|
||||
|
||||
# Experience gained in every skill will get multiplied by this value. 1.0 by default, 2.0 means two times as much
|
||||
Multiplier:
|
||||
@@ -379,6 +387,7 @@ Experience:
|
||||
Magma_Cube: 2.0
|
||||
Iron_Golem: 2.0
|
||||
Wither_Skeleton: 4.0
|
||||
|
||||
#
|
||||
# Settings for commands
|
||||
###
|
||||
@@ -400,6 +409,7 @@ Commands:
|
||||
a:
|
||||
# Allow mcMMO to use player display names in chat instead of their usernames
|
||||
Use_Display_Names: true
|
||||
|
||||
#
|
||||
# Settings for particles
|
||||
###
|
||||
@@ -408,6 +418,9 @@ Particles:
|
||||
Ability_Activation: true
|
||||
Ability_Deactivation: true
|
||||
|
||||
# Determines if the fireworks should be a large ball or a small one
|
||||
LargeFireworks: true
|
||||
|
||||
# Use particle effect when these abilities trigger
|
||||
Dodge: true
|
||||
Bleed: true
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
#####
|
||||
Item_Weights:
|
||||
Default: 5
|
||||
Quartz: 200
|
||||
Quartz_Ore: 200
|
||||
Emerald: 150
|
||||
Emerald_Ore: 150
|
||||
Diamond: 100
|
||||
@@ -25,6 +27,32 @@ Item_Weights:
|
||||
Coal: 10
|
||||
Coal_Ore: 10
|
||||
|
||||
# Item weights for armor and tools
|
||||
Diamond_Sword: 150
|
||||
Diamond_Spade: 150
|
||||
Diamond_Pickaxe: 150
|
||||
Diamond_Axe: 150
|
||||
Diamond_Helmet: 150
|
||||
Diamond_Chestplate: 150
|
||||
Diamond_Leggings: 150
|
||||
Diamond_Boots: 150
|
||||
Gold_Sword: 75
|
||||
Gold_Spade: 75
|
||||
Gold_Pickaxe: 75
|
||||
Gold_Axe: 75
|
||||
Gold_Helmet: 75
|
||||
Gold_Chestplate: 75
|
||||
Gold_Leggings: 75
|
||||
Gold_Boots: 75
|
||||
Iron_Sword: 60
|
||||
Iron_Spade: 60
|
||||
Iron_Pickaxe: 60
|
||||
Iron_Axe: 60
|
||||
Iron_Helmet: 60
|
||||
Iron_Chestplate: 60
|
||||
Iron_Leggings: 60
|
||||
Iron_Boots: 60
|
||||
|
||||
# Items in this section will get added to the Misc share category.
|
||||
# Case insensitive, though the name must be exactly the same as set in the Bukkit Material enum.
|
||||
Party_Shareables:
|
||||
|
||||
@@ -82,6 +82,7 @@ Fishing.Effect.3=Na\u0161el si o\u010darovanou v\u011bc
|
||||
Fishing.Effect.4=Shake (vs. Entities)
|
||||
Fishing.Effect.5=Vyklepni p\u0159edm\u011bty z p\u0159\u00ed\u0161er s prutem
|
||||
Fishing.Effect.6=Ryb\u00e1\u0159\u016fv apetit
|
||||
Fishing.Effect.8=Mistr Ryb\u00e1\u0159
|
||||
Fishing.Enchant.Chance=[[RED]]\u0160ance na magick\u00e9ho lovce: [[YELLOW]]{0}
|
||||
Fishing.ItemFound=[[GRAY]]Nasel si poklad!
|
||||
Fishing.Listener=Rybareni:
|
||||
@@ -98,6 +99,8 @@ Herbalism.Ability.GTh=[[GREEN]]**ZAHRADNIK**
|
||||
Herbalism.Ability.HylianLuck=[[RED]]Hylian Luck zm\u011bn\u011bn: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**SKLONIL JSI SVOJI MOTYKU**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**PRIPRAVIL JSI SVOU MOTYKU**
|
||||
Herbalism.Ability.ShroomThumb.Chance=[[RED]]\u0160ance na dovednost Houba\u0159: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=[[RED]]**HOUBA\u0158 SELHAL**
|
||||
Herbalism.Effect.0=Green Terra (SCHOPNOST)
|
||||
Herbalism.Effect.1=\u0160\u00ed\u0159en\u00ed planety, 3x v\u00edce drop\u016f
|
||||
Herbalism.Effect.2=Zahradnik (Wheat)
|
||||
@@ -109,6 +112,7 @@ Herbalism.Effect.7=Zvysuje obnovu hladu ze sklizenych jidel
|
||||
Herbalism.Effect.8=Dvojnasobny zisk (vsechny byliny)
|
||||
Herbalism.Effect.9=Zdvojnasobi normalni zisk
|
||||
Herbalism.Effect.11=D\u00e1v\u00e1 malou \u0161anci naj\u00edt vz\u00e1cn\u00e9 p\u0159edm\u011bty
|
||||
Herbalism.Effect.12=Houba\u0159
|
||||
Herbalism.HylianLuck=[[GREEN]]The luck of Hyrule t\u011b doprov\u00e1z\u00ed!
|
||||
Herbalism.Listener=Bylinarstvi:
|
||||
Herbalism.SkillName=Bylinkarstvi
|
||||
@@ -221,6 +225,8 @@ Taming.Ability.Bonus.4=Otresuvzdorny
|
||||
Taming.Ability.Bonus.6=Nabrousene drapy
|
||||
Taming.Ability.Bonus.8=Rychl\u00e9 Ob\u010derstven\u00ed
|
||||
Taming.Ability.Bonus.9={0} \u0161ance na vyl\u00e9\u010den\u00ed p\u0159i \u00fatoku
|
||||
Taming.Ability.Bonus.10=Svat\u00fd Chrt
|
||||
Taming.Ability.Bonus.11=Obnovuje zdrav\u00ed p\u0159i zran\u011bn\u00ed magi\u00ed nebo lektvarem
|
||||
Taming.Combat.Chance.Gore=[[RED]]\u0160ance na nabodnut\u00ed: [[YELLOW]]{0}
|
||||
Taming.Effect.0=Tradice \u0161elem
|
||||
Taming.Effect.1=Na\u0159\u00edznut\u00ed kost\u00ed kontroluje vlky & oceloty
|
||||
@@ -232,6 +238,8 @@ Taming.Effect.14=[[GRAY]]COTW (Ocelot): Skrc se a levym-klikem s {0} rybami v ru
|
||||
Taming.Effect.15=[[GRAY]]COTW (Ocelot): Skrc se a levym-klikem s {0} kostmi v ruce
|
||||
Taming.Effect.16=Rychl\u00e9 Ob\u010derstven\u00ed
|
||||
Taming.Effect.17=\u0160ance na vyl\u00e9\u010den\u00ed vlka p\u0159i \u00fatoku
|
||||
Taming.Effect.18=Svat\u00fd Chrt
|
||||
Taming.Effect.19=Uzdraven Magi\u00ed & Lektvarem
|
||||
Taming.Effect.2=Krveprolit\u00ed
|
||||
Taming.Effect.3=Kritick\u00fd \u00fader, kter\u00fd aplikuje krv\u00e1cen\u00ed
|
||||
Taming.Effect.4=Nabrousene drapy
|
||||
@@ -302,6 +310,7 @@ Combat.Gore=[[GREEN]]**PRUNIK**
|
||||
Combat.StruckByGore=[[RED]]**BYL JSI PROBODNUT**
|
||||
Combat.TargetDazed=C\u00edl byl [[DARK_RED]]Omr\u00e1\u010den
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Nejasne dotcen. Mas zavrat.
|
||||
mcMMO.Description=[[DARK_AQUA]]O [[YELLOW]]mcMMO[[DARK_AQUA]] Projekt:,[[GOLD]]mcMMO je [[RED]]open source[[GOLD]] RPG m\u00f3d vytvo\u0159en\u00fd v \u00fanoru 2011,[[GOLD]]autorem [[BLUE]]nossr50[[GOLD]]. C\u00edl projektu je poskytnout kvalitu RPG.,[[DARK_AQUA]]Tipy:,[[GOLD]] - [[GREEN]]Pou\u017eij [[RED]]/mcmmo help[[GREEN]] pro zobrazen\u00ed dostupn\u00fdch p\u0159\u00edkaz\u016f,[[GOLD]] - [[GREEN]]Type [[RED]]/SKILLNAME[[GREEN]] pro zobrazen\u00ed detailn\u00edch informac\u00ed o skillu,[[DARK_AQUA]]V\u00fdvoj\u00e1\u0159i:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](Majitel),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Vedouc\u00ed projektu),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](V\u00fdvoj\u00e1\u0159),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](V\u00fdvoj\u00e1\u0159),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](V\u00fdvoj\u00e1\u0159),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](V\u00fdvoj\u00e1\u0159),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](V\u00fdvoj\u00e1\u0159),[[DARK_AQUA]]U\u017eite\u010dn\u00e9 odkazy:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] Nahla\u0161ov\u00e1n\u00ed Chyb,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,
|
||||
Commands.addlevels.AwardAll.2=[[RED]]V\u0161echny schopnosti byly zm\u011bn\u011bny na {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Tvoje dovednost {1} je nyn\u00ed {0}!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Z\u00edskal si {0} zku\u0161enost\u00ed v {1}!
|
||||
@@ -327,10 +336,18 @@ Commands.mcrank.Heading=[[GOLD]]-=OSOBN\u00cd HODNOCEN\u00cd=-
|
||||
Commands.mcremove.Success=[[GREEN]]{0} byl \u00fasp\u011b\u0161n\u011b vymaz\u00e1n z datab\u00e1ze!
|
||||
Commands.mctop.Tip=[[GOLD]]Tip: Pro osobn\u00ed statistiky pou\u017eij [[RED]]/mcrank[[GOLD]]!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - Modify target
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]Tv\u00e1 \u00farove\u0148 ve v\u0161ech skillech byla nastavena na {0}!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Tv\u016fj skill v {0} byl pozm\u011bn\u011bn na {1}!
|
||||
Commands.ModDescription=[[RED]]- Precti si strucny popis pluginu
|
||||
Commands.NoConsole=Tento prikaz nepodporuje pouziti z konzole.
|
||||
Commands.Notifications.Off=Oznamov\u00e1n\u00ed schopnost\u00ed [[RED]]vypnuto
|
||||
Commands.Notifications.On=Oznamov\u00e1n\u00ed schopnost\u00ed [[GREEN]]zapnuto
|
||||
Commands.Offline=[[RED]]Tento p\u0159\u00edkaz nefunguje pro offline hr\u00e1\u010de.
|
||||
Commands.Other=[[GREEN]]--OSTATNI PRIKAZY--
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]M\u00d3D SD\u00cdLEN\u00cd:
|
||||
Commands.Party.ItemShare=[[GRAY]]P\u0158EDM\u011aT [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]EXP [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]Sd\u00edl\u00edm p\u0159edm\u011bty: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.Accept=[[RED]]- Potvrdit pozvanku do party
|
||||
Commands.Party.Chat.Off=Chat jenom pro partu [[RED]]Vypnuty
|
||||
Commands.Party.Chat.On=Party chat [[RED]]Off
|
||||
@@ -338,12 +355,14 @@ Commands.Party.Chat.Prefix=[[GREEN]]([[WHITE]]{0}[[GREEN]])
|
||||
Commands.Party.Commands=[[GREEN]]--P\u0158\u00cdKAZY PARTY--
|
||||
Commands.Party.Invite.0=[[RED]]VAROVANI: [[GREEN]]Obdrzel jsi pozvanku do party {0} od {1}
|
||||
Commands.Party.Rename=[[GRAY]]Jm\u00e9no party zm\u011bn\u011bno na: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]Parta {0} sd\u00edl\u00ed nastaven\u00ed na: [[DARK_AQUA]]{1}
|
||||
Commands.Party.Kick=[[RED]]Byl jsi vyhozen z party {0}!
|
||||
Commands.Party.Leave=[[RED]]Opustil jsi party
|
||||
Commands.Party.None=[RED]]Nejsi v zadne party.
|
||||
Commands.Party.Quit=[[RED]]- Opustil jsi svoji aktualni partu
|
||||
Commands.Party.Teleport=<hrac> [[RED]]- Teleport ke clenovi party
|
||||
Commands.Party.Toggle=[[RED]]- Zapnout party chat
|
||||
Commands.ptp.NoWorldPermissions=[[RED]][mcMMO] Nem\u00e1\u0161 opr\u00e1vn\u011bn\u00ed pro teleportaci do sv\u011bta {0}.
|
||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Rebricek [[YELLOW]]Celkovych levelu--
|
||||
Commands.PowerLevel=[[DARK_RED]]CELKOVY LEVEL: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]] Vsechny vase dovednosti byli byli uspesne resetov\u00e1ny.
|
||||
@@ -355,15 +374,28 @@ Commands.SkillInfo=/<skill> [[RED]]- Zjist\u00ed\u0161 bliz\u0161\u00ed informac
|
||||
Commands.Stats.Self=Tvoje statistiky
|
||||
Commands.Stats=[[RED]]- Shl\u00e9dnout svoje mcMMO statistiky
|
||||
Commands.ToggleAbility=[[RED]]- Aktivace schopnosti prav\u00fdm tla\u010d\u00edtkem.
|
||||
Commands.Usage.0=[[RED]]Spr\u00e1vn\u00e9 pou\u017eit\u00ed je /{0}
|
||||
Commands.Usage.Message=zprava
|
||||
Commands.Usage.Page=stranka
|
||||
Commands.Usage.PartyName=jm\u00e9no
|
||||
Commands.Usage.Password=heslo
|
||||
Commands.Usage.Player=hrac
|
||||
Commands.Usage.Rate=hodnota
|
||||
mcMMO.NoInvites=[[RED]]Momentalne nemas zadne pozvanky
|
||||
mcMMO.NoPermission=[[DARK_RED]]Nedostatecna prava
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Pokud nemas pristup k schopnosti, nebude zobrazena.
|
||||
Party.Forbidden=[mcMMO] Party nejsou povoleny (pod\u00edvej se do Povolen\u00ed)
|
||||
Party.Help.0=[[RED]]Spr\u00e1vn\u00e9 pou\u017eit\u00ed je [[DARK_AQUA]]{0} <player> [password].
|
||||
Party.Help.1=[[RED]]Pro vytvo\u0159en\u00ed party, pou\u017eij [[DARK_AQUA]]{0} <name> [password].
|
||||
Party.Help.2=[[RED]]Pora\u010f se s [[DARK_AQUA]]{0} [[RED]]pro v\u00edce informac\u00ed
|
||||
Party.Help.3=[[RED]]Pou\u017eij [[DARK_AQUA]]{0} <player> [password] [[RED]]pro vstup nebo [[DARK_AQUA]]{1} [[RED]]pro opu\u0161t\u011bn\u00ed
|
||||
Party.Help.4=[[RED]]Pro uzam\u010den\u00ed nebo odem\u010den\u00ed tv\u00e9 party, pou\u017eij [[DARK_AQUA]]{0}
|
||||
Party.Help.5=[[RED]]Pro ochr\u00e1n\u011bn\u00ed va\u0161\u00ed party heslem, pou\u017eij [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=[[RED]]Pro vykopnut\u00ed hr\u00e1\u010de z tv\u00e9 party, pou\u017eij [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=[[RED]]Pro p\u0159esunut\u00ed v\u016fdcovstv\u00ed tv\u00e9 party, pou\u017eij [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=[[RED]]Pro zru\u0161en\u00ed va\u0161\u00ed party pou\u017eij [[DARK_AQUA]]{0}
|
||||
Party.InvalidName=[[DARK_RED]]Toto nen\u00ed mo\u017en\u00e9 jm\u00e9no pro partu.
|
||||
Party.Invite.Self=[[RED]]Nem\u016f\u017ee\u0161 pozvat s\u00e1m sebe!
|
||||
Party.IsLocked=[[RED]]Tahla parta je ji\u017e uzamknuta!
|
||||
Party.IsntLocked=[[RED]]Tato parta je zamknuta!
|
||||
Party.Locked=[[RED]]Parta je zamnuta, pouze velitel party t\u011b m\u016f\u017ee p\u0159izvat.
|
||||
@@ -371,17 +403,29 @@ Party.NotInYourParty=[[DARK_RED]]{0} nen\u00ed ve tv\u00e9 part\u011b.
|
||||
Party.Owner.New=[[GREEN]]{0} se stal v\u016fdce party.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]U\u017e nejsi v\u016fdce party.
|
||||
Party.Owner.Player=[[GREEN]]Nyn\u00ed jsi v\u016fdce party.
|
||||
Party.Password.None=[[RED]]Tato parta je zaheslov\u00e1na. Pros\u00edm napi\u0161te heslo pro vstup.
|
||||
Party.Password.Incorrect=[[RED]]Heslo k part\u011b je \u0161patn\u011b!
|
||||
Party.Password.Set=[[GREEN]]Heslo do party nastaveno na {0}
|
||||
Party.Player.Invalid=[[RED]]Tohle neni platny hrac.
|
||||
Party.NotOnline=[[DARK_RED]]{0} nen\u00ed online!
|
||||
Party.Player.InSameParty=[[RED]]{0} u\u017e je na va\u0161\u00ed party!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} nen\u00ed na party
|
||||
Party.Specify=[[RED]]Mus\u00ed\u0161 specifikovat partu.
|
||||
Party.Teleport.Dead=[[RED]]Nemuzes se teleportovat k mrtvemu hraci.
|
||||
Party.Teleport.Hurt=[[RED]]Byl jsi zran\u011bn v posledn\u00edch {0} sekund\u00e1ch a nem\u016f\u017ee\u0161 se teleportovat.
|
||||
Party.Teleport.Player=[[GREEN]]Byl jsi teleportovan k {0}.
|
||||
Party.Teleport.Self=[[RED]]Nem\u016f\u017ee\u0161 se teleportovat s\u00e1m na sebe!
|
||||
Party.Teleport.Target=[[GREEN]]{0} se k tobe teleportoval.
|
||||
Party.Rename.Same=[[RED]]Toto u\u017e je jm\u00e9no va\u0161\u00ed party!
|
||||
Party.Join.Self=[[RED]]Nem\u016f\u017ee\u0161 nabrat sebe!
|
||||
Party.Unlocked=[[GRAY]]Party je odemknuta
|
||||
Party.ShareType.Exp=EXP
|
||||
Party.ShareType.Item=P\u0158EDM\u011aT
|
||||
Party.ShareMode.None=\u017d\u00c1DN\u00dd
|
||||
Party.ShareMode.Equal=STEJN\u00dd
|
||||
Party.ShareMode.Random=N\u00c1HODN\u00dd
|
||||
Party.ExpShare.Disabled=[[RED]]Sd\u00edlen\u00ed party zku\u0161enost\u00ed je vypnuto.
|
||||
Party.ItemShare.Disabled=[[RED]]Sd\u00edlen\u00ed item\u016f v part\u011b je zak\u00e1zan\u00e9.
|
||||
Commands.XPGain.Acrobatics=Padani
|
||||
Commands.XPGain.Archery=Zabijen\u00ed monster.
|
||||
Commands.XPGain.Axes=Utoceni na monstra
|
||||
@@ -405,7 +449,9 @@ Commands.xprate.started.0=[[GOLD]]XP EVENT PRO mcMMO ZA\u010cAL!
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO XP N\u00c1SOBEK JE NYN\u00cd {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO je nyni v modu zmeneneho pomeru ziskavani dovednosti! Nasobek pomeru dovednosti je {0}x!
|
||||
Effects.Effects=EFEKTY
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Acrobatics=[[DARK_AQUA]]O akrobacii:\n[[YELLOW]]Akrobacie je um \u00fa\u017easn\u00e9ho pohybu v mcMMO.\n[[YELLOW]]D\u00e1v\u00e1 ti bonusy v boji a bonusy po\u0161kozen\u00ed v prost\u0159ed\u00ed.\n[[DARK_AQUA]]Zisk XP:\n[[YELLOW]]K z\u00edsk\u00e1n\u00ed XP v t\u00e9to dovednosti mus\u00ed\u0161 uhybat\n[[YELLOW]]p\u0159ed ranami nep\u0159\u00edtele, nebo p\u0159e\u017e\u00edvat p\u00e1dy.\n[[DARK_AQUA]]Jak fungujou kotrmelce?\n[[YELLOW]]M\u00e1\u0161 \u0161anci kdy\u017e pad\u00e1\u0161 zmen\u0161it \u0161kody, kter\u00e9\n[[YELLOW]]by ti zp\u016fsobily p\u00e1dy. Dr\u017e kl\u00e1vesu na skr\u010den\u00ed\n[[YELLOW]]p\u0159i p\u00e1du k v\u00fd\u0161en\u00ed \u0161ance na kotrmelec.\n[[YELLOW]]T\u00edm vznik\u00e1 P\u016fvabn\u00fd kotrmelec m\u00edsto standartn\u00edho.\n[[YELLOW]]P\u016fvabn\u00e9 kotrmelce jsou jako norm\u00e1ln\u00ed, ale m\u00e1\u0161 2x v\u011bt\u0161\u00ed \u0161anci\n[[YELLOW]]p\u0159e\u017e\u00edt p\u00e1d a jsou bezpe\u010dn\u011bj\u0161\u00ed ne\u017e norm\u00e1ln\u00ed\n[[YELLOW]]\u0160ance na kotrmelec jsou ovlivn\u011bny tv\u00fdmi dovednostmi\n[[DARK_AQUA]]Jak funguje \u00faskok?\n[[YELLOW]]\u00daskok je \u0161ance na rozp\u016flen\u00ed \u0161kod\n[[YELLOW]]kter\u00e9 by jsi z\u00edskal v boji.\n[[YELLOW]]Je ovlivn\u011bn tv\u00fdmi dovednostmi
|
||||
Guides.Axes=Pruvodce jiz brzy...
|
||||
@@ -425,6 +471,7 @@ Item.Injured.Wait=Predchvili jsi byl zranen a musis pockat az budes moci pouzit
|
||||
Skills.Disarmed=[[DARK_RED]]Byl jsi odzbrojen!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Potrebujes vic
|
||||
Skills.Parents=RODI\u010cE
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]Si moc unaveny na pouziti teto schopnosti znovu.
|
||||
Stats.Header.Combat=[[GOLD]]-=BOJOVE DOVEDNOSTI=-
|
||||
@@ -439,10 +486,43 @@ Perks.activationtime.name=Vytrvalost
|
||||
Perks.activationtime.desc=Prodlu\u017euje pou\u017eit\u00ed schopnosti na {0} sekund.
|
||||
Hardcore.Player.Loss=[GOLD]][mcMMO] [[DARK_RED]]Ztratil jsi [[BLUE]]{0}[[DARK_RED]] za smrt.
|
||||
Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]Z\u00edskal jsi [[BLUE]]{0}[[DARK_AQUA]] level\u016f od [[YELLOW]]{1}.
|
||||
Hardcore.Disabled=[[GOLD]][mcMMO] Hardcore m\u00f3d vypnut.
|
||||
Hardcore.Enabled=[[GOLD]][mcMMO] Hardcore m\u00f3d zapnut.
|
||||
Hardcore.PercentageChanged=[[GOLD]][mcMMO] Procentu\u00e1lnost ztr\u00e1cen\u00ed stat\u016f byla zm\u011bn\u011bna na {0}.
|
||||
Vampirism.Disabled=[[GOLD]][mcMMO] Up\u00edrsk\u00fd m\u00f3d vypnut.
|
||||
Vampirism.Enabled=[[GOLD]][mcMMO] Up\u00edrsk\u00fd m\u00f3d zapnut.
|
||||
Vampirism.PercentageChanged=[[GOLD]][mcMMO] Procentu\u00e1lnost odcizen\u00ed stat\u016f byla zm\u011bn\u011bna na {0}.
|
||||
Spout.Donate=[[YELLOW]][mcMMO] P\u0159isp\u011bjte!
|
||||
Spout.Menu.ExitButton=V\u00fdchod
|
||||
Spout.Menu.HudButton.1=Typ HUD: {0}
|
||||
Spout.Menu.HudButton.2=Zm\u011b\u0148te si styl HUD!
|
||||
MOTD.Version=[[GOLD]][mcMMO] - verze [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - Web mcMMO
|
||||
Commands.Description.addlevels=P\u0159id\u00e1v\u00e1 u\u017eivatelsk\u00e9 mcMMO \u00farovn\u011b
|
||||
Commands.Description.adminchat=Zap\u00edn\u00e1/vyp\u00edn\u00e1 mcMMO administr\u00e1torsk\u00fd chat nebo odes\u00edl\u00e1 administr\u00e1torsk\u00e9 chatov\u00e9 zpr\u00e1vy
|
||||
Commands.Description.addxp=P\u0159id\u00e1 u\u017eivateli mcMMO XP
|
||||
Commands.Description.hardcore=Upravuje mcMMO hardcore procentu\u00e1lnost nebo zap\u00edn\u00e1/vyp\u00edn\u00e1 hardcore m\u00f3d
|
||||
Commands.Description.inspect=Zobraz\u00ed detailn\u00ed mcMMO info jin\u00e9ho hr\u00e1\u010de
|
||||
Commands.Description.mcability=Zap\u00edn\u00e1/vyp\u00edna p\u0159ipraven\u00ed mcMMO schopnost\u00ed kliknut\u00edm prav\u00e9ho tla\u010d\u00edtka my\u0161i
|
||||
Commands.Description.mcgod=Zap\u00edn\u00e1/vyp\u00edn\u00e1 mcMMO nesmrteln\u00fd m\u00f3d
|
||||
Commands.Description.mchud=Zm\u011bn\u00ed tv\u016fj mcMMO HUD styl
|
||||
Commands.Description.mcmmo=Zobraz\u00ed stru\u010dn\u00fd popis mcMMO
|
||||
Commands.Description.mcnotify=P\u0159ep\u00edn\u00e1 zobrazov\u00e1n\u00ed upozor\u0148ov\u00e1n\u00ed mcMMO schopnost\u00ed v chatu na zapnuto/vypnuto
|
||||
Commands.Description.mcpurge=Pro\u010dist\u00ed u\u017eivatele bez mcMMO \u00farovn\u00ed a u\u017eivatele kter\u00e9 se nep\u0159ipojili za posledn\u00edch {0} m\u011bs\u00edc\u016f z mcMMO datab\u00e1ze.
|
||||
Commands.Description.mcrank=Zobraz\u00ed hr\u00e1\u010dsk\u00e9 mcMMO \u017eeb\u0159\u00ed\u010dky
|
||||
Commands.Description.mcrefresh=Obnovuje v\u0161echny mcMMO cooldowny
|
||||
Commands.Description.mcremove=Odstranit u\u017eivatele z datab\u00e1ze mcMMO
|
||||
Commands.Description.mcstats=Zobraz\u00ed tv\u00e9 mcMMO \u00farovn\u011b a XP
|
||||
Commands.Description.mctop=Zobraz\u00ed mcMMO \u017eeb\u0159\u00ed\u010dky
|
||||
Commands.Description.mmoedit=Upravuje u\u017eivatelsk\u00e9 mcMMO \u00farovn\u011b
|
||||
Commands.Description.mmoupdate=Zkonvertuje mcMMO datab\u00e1zi z Flatfile do MySQL
|
||||
Commands.Description.party=Nastavuje r\u016fzn\u00e9 mcMMO nastaven\u00ed party
|
||||
Commands.Description.partychat=Zap\u00edn\u00e1/vyp\u00edn\u00e1 mcMMO chat party nebo odes\u00edl\u00e1 chatov\u00e9 zpr\u00e1vy
|
||||
Commands.Description.ptp=Teleport k mcMMO clenovi party
|
||||
Commands.Description.Skill=Zobraz\u00ed detailn\u00ed mcMMO informace o skillu {0}
|
||||
Commands.Description.skillreset=Resetuje u\u017eivatelsk\u00e9 mcMMO \u00farovn\u011b
|
||||
Commands.Description.vampirism=Upravuje mcMMO procenta up\u00edrstv\u00ed nebo zap\u00edn\u00e1/vyp\u00edna up\u00edrsk\u00fd m\u00f3d
|
||||
Commands.Description.xplock=Nastav\u00ed tv\u016fj mcMMO XP bar na konkr\u00e9tn\u00ed mcMMO skill
|
||||
Commands.Description.xprate=Upravuje mcMMO XP n\u00e1sobek nebo spou\u0161t\u00ed mcMMO XP ud\u00e1lost
|
||||
UpdateChecker.outdated=Pou\u017e\u00edv\u00e1\u0161 zastaralou verzi mcMMO!
|
||||
UpdateChecker.newavailable=Nov\u00e1 verze dostupn\u00e1 na BukkitDevu.
|
||||
|
||||
@@ -114,6 +114,7 @@ Herbalism.Effect.8=Doppel Drops (Alle Pflanzen)
|
||||
Herbalism.Effect.9=Verdoppelt die normale Ausbeute (Loot)
|
||||
Herbalism.Effect.10=Hylian Gl\u00fcck
|
||||
Herbalism.Effect.11=Gibt eine kleine M\u00f6glichkeit, seltene Gegenst\u00e4nde zu finden
|
||||
Herbalism.Effect.12=Pilz Daumen
|
||||
Herbalism.HylianLuck=[[GREEN]]Heute ist das Gl\u00fcck von Hyrule mit dir!
|
||||
Herbalism.Listener=Pflanzenkunde:
|
||||
Herbalism.SkillName=PFLANZENKUNDE
|
||||
@@ -395,6 +396,8 @@ Commands.Usage.3=[[RED]]Proper usage is /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=level
|
||||
Commands.Usage.Message=message
|
||||
Commands.Usage.Page=page
|
||||
Commands.Usage.PartyName=Gruppenname
|
||||
Commands.Usage.Password=Passwort
|
||||
Commands.Usage.Player=player
|
||||
Commands.Usage.Skill=skill
|
||||
Commands.Usage.XP=xp
|
||||
@@ -419,6 +422,11 @@ Party.Teleport.Player=[[GREEN]]Du wurdest zu {0} teleportiert.
|
||||
Party.Teleport.Self=[[RED]]You can\'t teleport to yourself!
|
||||
Party.Teleport.Target=[[GREEN]]{0} hat sich zu dir teleportiert.
|
||||
Party.Unlocked=[[AQUA]]Gruppe entsperrt
|
||||
Party.Disband=[[GRAY]]Deine Gruppe wurde aufgel\u00f6st
|
||||
Party.ShareType.Exp=Exp
|
||||
Party.ShareType.Item=Item
|
||||
Party.ShareMode.None=Nicht
|
||||
Party.ShareMode.Random=Zuf\u00e4llig
|
||||
Commands.XPGain.Acrobatics=Fallen
|
||||
Commands.XPGain.Archery=Monster angreifen
|
||||
Commands.XPGain.Axes=Monster angreifen
|
||||
@@ -444,15 +452,18 @@ Commands.xprate.started.1=[[GOLD]]Die mcMMO XP RATE liegt nun bei {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO hat gerade ein XP-RATE Event. Derzeitige XP Rate: {0}x!
|
||||
Effects.Effects=EFFEKTE
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Acrobatics=[[DARK_AQUA]]\u00dcber Akrobatik:\n[[YELLOW]]Akrobatik ist die Kunst, sich in mcMMO anmutig zu bewegen.\n[[YELLOW]]Es bietet Kampf- und Umgebungsschaden-Boni.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Um XP in diesem Skill zu bekommen, musst du im Kapf Ausweichen\n[[YELLOW]]oder St\u00fcrze aus grosser H\u00f6he \u00fcberlebe.\n\n[[DARK_AQUA]]Wie funktioniert Abrollen?\n[[YELLOW]]Du hast eine passive Chance Fallschaden zu negieren.\n[[YELLOW]]W\u00e4hrend du f\u00e4llst, kannst du dich b\u00fccken um\n[[YELLOW]]um die Chancen zu verdoppeln!\n[[YELLOW]]Dies l\u00f6st eine grazi\u00f6se Rolle aus anstatt einer Normalen.\n[[YELLOW]]Grazi\u00f6se Rollen sind wie Normale, haben aber die doppelte Chance\n[[YELLOW]]ausgel\u00f6st zu werden und bieten mehr Sicherheit gegen Schaden.\n[[YELLOW]]Die Chance auf Abrollen ist an dein Skill-Level gebunden.\n[[DARK_AQUA]]Wie funktionier Ausweichen?\n[[YELLOW]]Ausweichen bietet eine passive Chance auf halben Schaden\n[[YELLOW]]falls du im Kampf verletzt wirst.\n[[YELLOW]]Ausweichen ist an dein Skill-Level gebunden.
|
||||
Guides.Axes=[[DARK_AQUA]]About Axes:\n[[YELLOW]]With the Axes skill you can use your axe for much more then\n[[YELLOW]]just deforesting! You can hack and chop away at mobs\n[[YELLOW]]and players to gain XP, hitting mobs with the effect of\n[[YELLOW]]knockback and inflicting DEADLY criticals on mobs and players.\n[[YELLOW]]Your axe also becomes a hand-held woodchipper,\n[[YELLOW]]breaking down the enemy\'s armor with ease as your level\n[[YELLOW]]increases.\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need hit other mobs or players\n[[YELLOW]]with an Axe.\n\n[[DARK_AQUA]]How does Skull Splitter work?\n[[YELLOW]]This ability allows you to deal an AoE (Area of Effect) hit.\n[[YELLOW]]This AoE hit will deal half as much damage as you did to the\n[[YELLOW]]main target, so it\'s great for clearing out large piles of mobs.\n[[DARK_AQUA]]How does Critical Strikes work?\n[[YELLOW]]Critical Strikes is a passive ability which gives players a\n[[YELLOW]]chance to deal additional damage.\n[[YELLOW]]With the default settings, every 2 skill levels in Axes awards a\n[[YELLOW]]0.1% chance to deal a Critical Strike, causing 2.0 times damage\n[[YELLOW]]to mobs or 1.5 times damage against other players.\n\n\n[[DARK_AQUA]]How does Axe Mastery work?\n[[YELLOW]]Axe Mastery is a passive ability that will add additional damage\n[[YELLOW]]to your hits when using Axes.\n[[YELLOW]]By default, the bonus damage increases by 1 every 50 levels,\n[[YELLOW]]up to a cap of 4 extra damage at level 200.\n\n\n\n[[DARK_AQUA]]How does Armor Impact work?\n[[YELLOW]]Strike with enough force to shatter armor!\n[[YELLOW]]Armor Impact has a passive chance to damage your\n[[YELLOW]]opponent\'s armor. This damage increases as you level in Axes.\n\n\n\n\n[[DARK_AQUA]]How does Greater Impact work?\n[[YELLOW]]You have a passive chance to achieve a greater impact when\n[[YELLOW]]hitting mobs or players with your axe.\n[[YELLOW]]By default this chance is 25%. This passive ability has an\n[[YELLOW]]extreme knockback effect, similar to the Knockback II\n[[YELLOW]]enchantment. In addition, it deals bonus damage to the target.
|
||||
Guides.Available=[[DARK_AQUA]]Guide for {0} available - type /{1} ? [page]
|
||||
Guides.Excavation=[[DARK_AQUA]]\u00dcber Graben:\n[[YELLOW]]Graben ist die Kunst, beim Graben im Dreck Sch\u00e4tze zu finden.\n[[YELLOW]]Beim Ausgraben kannst du Sch\u00e4tze finden.\n[[YELLOW]]Um so mehr du gr\u00e4bst, um so mehr Sch\u00e4tze findest du.\n\n[[DARK_AQUA]]XP Zuwachs:\n[[YELLOW]]Um XP in diesem Skill zu bekommen, musst du mit einer Schaufel in der Hand buddeln.\n[[YELLOW]]Nur das Ausgraben von bestimmten Materialen bietet Sch\u00e4tze und XP.\n[[DARK_AQUA]]Materialien:\n[[YELLOW]]Grass, Dreck, Sand, Lehm, Kies, Myzel & Seelensand\n\n[[DARK_AQUA]]Nutzung des Giga-Bohrer:\n[[YELLOW]]Rechtsklicke mit einer Schaufel in deiner Hand um dich zu vorzubereiten.\n[[YELLOW]]Bist zu vorbereitet, hast du 4 Sekunden um\n[[YELLOW]]um im geeigneten Material mit dem Graben zu beginnen, dies\n[[YELLOW]]aktiviert den Gigabohrer.\n[[DARK_AQUA]]Was macht der Giga-Bohrer?\n[[YELLOW]]Der Giga-Bohrer ist eine F\u00e4higkeit mit Abklingzeit,\n[[YELLOW]]welche an den Graben Skill gebunden ist. Sie verdreifacht die Chance\n[[YELLOW]]Sch\u00e4tze zu finden und aktiviert Instant-Abbau\n[[YELLOW]]von ausgrabbaren Materialien.\n\n[[DARK_AQUA]]Wie funktioniert Schatz-J\u00e4ger?\n[[YELLOW]]Jeder verf\u00fcgbare Schatz beim Graben hat seine eigene\n[[YELLOW]]Skill Level Anferderungen um zu droppen, wo diese jeweils liegen\n[[YELLOW]]w\u00e4re zu schwierig um sie hier zu nennen.\n[[YELLOW]]Behalte dir einfach, dass je h\u00f6her dein Skill im Graben,\n[[YELLOW]]desto mehr Sch\u00e4tze kannst du finden.\n[[YELLOW]]Zudem hat jedes Material seine eigene, einzigartige \n[[YELLOW]]Liste an findbaren Sch\u00e4tzen.\n[[YELLOW]]In anderen Worten, du wirst in Erde andere Sch\u00e4tze als in Kies finden.\n[[DARK_AQUA]]Infos \u00fcber Graben:\n[[YELLOW]]Graben ist komplett anpassbar, somit sind die Sch\u00e4tze\n[[YELLOW]]und XP von Server zu Server unterschiedlich!
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Guide[[GOLD]]=-
|
||||
Guides.Herbalism=[[DARK_AQUA]]Pflanzenkunde:\n[[YELLOW]]Herbalism is about collecting herbs and plants.\n\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Collect plants and herbs.\n\n\n[[DARK_AQUA]]Compatible Blocks\n[[YELLOW]]Wheat, Potatoes, Carrots, Melons,\n[[YELLOW]]Pumpkins, Sugar Canes, Cocoa Beans, Flowers, Cacti, Mushrooms,\n[[YELLOW]]Nether Wart, Lily Pads, and Vines.\n\n\n\n\n[[DARK_AQUA]]How does Green Terra work?\n[[YELLOW]]Green Terra is an active ability, you can right-click\n[[YELLOW]]while holding a hoe to activate Green Terra.\n[[YELLOW]]Green Terra grants players a chance to get 3x drops from\n[[YELLOW]]harvesting plants. It also gives players the ability to\n[[YELLOW]]spread life into blocks and transform them using seeds\n[[YELLOW]]from your inventory.\n\n[[DARK_AQUA]]How does Green Thumb (Crops) work?\n[[YELLOW]]This passive ability will automatically replant crops when\n[[YELLOW]]harvesting.\n[[YELLOW]]Your chance of success depends on your Herbalism skill.\n[[DARK_AQUA]]How does Green Thumb (Cobble/Stone Brick/Dirt) work?\n[[YELLOW]]This active ability allows you to turn blocks into their\n[[YELLOW]]\"plant-related\" counterparts. You can do this by right-clicking\n[[YELLOW]]a block, while holding seeds. This will consume 1 seed.\n[[DARK_AQUA]]How does Farmer\'s Diet work?\n[[YELLOW]]This passive skill increases the amount of hunger restored\n[[YELLOW]]when eating Bread, Cookies, Melons, Mushroom Soup, Carrots,\n[[YELLOW]]and Potatoes.\n[[DARK_AQUA]]How does Hylian Luck work?\n[[YELLOW]]This passive ability gives you a chance to find rare items\n[[YELLOW]]when certain blocks are broken with a sword.\n[[DARK_AQUA]]How do Double Drops work?\n[[YELLOW]]This passive ability gives players more yield from their\n[[YELLOW]]harvests.
|
||||
Guides.Mining=[[DARK_AQUA]]\u00dcber Bergbau:\n[[YELLOW]]Bergbau beinhaltet das Abbauen von Steinen und Erzen. Es bietet Boni\n[[YELLOW]]auf die Anzahl der Drops beim Abbau.\n\n[[DARK_AQUA]]XP Zuwachs:\n[[YELLOW]]Um XP in diesem Skill zu bekommen XP, musst du mit einer Spitzhacke in der Hand abbauen.\n[[YELLOW]]Nur bestimmte Materialien gew\u00e4hren XP.\n\n[[DARK_AQUA]]Kompatible Materialien:\n[[YELLOW]]Stein, Kogleerz, Eisenerz, Gilderz, Diemanterz, Redstoneerz,\n[[YELLOW]]Lapiserz, Obsidian, Moosiger Pflasterstein, Endstein,\n[[YELLOW]]Glowstone und Netherstein.\n\n[[DARK_AQUA]]Super-Brecher benutzen:\n[[YELLOW]]Rechtsklicke mit einer Spitzhacke in deiner Hand um dich zu vorzubereiten.\n[[YELLOW]]Bist zu vorbereitet, hast du 4 Sekunden um\n[[YELLOW]]um im geeigneten Material mit dem Abbau zu beginnen, dies\n[[YELLOW]]aktiviert den Super-Brecher.\n\n[[DARK_AQUA]]Was ist der Super-Brecher?\n[[YELLOW]]Der Super-Brecher ist eine F\u00e4higkeit mit Abklingzeit, welche an\n[[YELLOW]]den Bergbau Skill gebunden ist. Sie bitet die Chance\n[[YELLOW]]auf dreifach Drops und aktiviert Instant-Abbau von abbaubaren Materialien.\n\n[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.\n\n[[DARK_AQUA]]Funktion von Z\u00fcndstoff?\n[[YELLOW]]Z\u00fcndstoff ist eine F\u00e4higkeit mit Abklingzeit, welche an den Bergbauskill gebunden ist.\n[[YELLOW]]Sie vergibt Boni, falls mit TNT Abgebaut wird und erlaubt\n[[YELLOW]]TNT aus Entfernung zu z\u00fcnden. Z\u00fcndstoff besteht aus 3 Teilen.\n[[YELLOW]]Teil 1 ist Sprengmeister, welcher den Sprengradius erh\u00f6ht.\n[[YELLOW]]Teil 2 ist Explosions-Experte, welcher den Schaden von\n[[YELLOW]]TNT Explosionen minimiert. Teil 3 erh\u00f6ht einfach\n[[YELLOW]]die Anzahl von gefundenen Erzen und minimiert dabei den Schutt.
|
||||
Guides.Page.Invalid=Not a valid page number!
|
||||
Guides.Page.OutOfRange=Diese Seite existiert nicht, es gibt insgesamt nur {0} Seiten.
|
||||
Guides.Smelting=Kommt d\u00e4mn\u00e4chst
|
||||
Guides.Usage=[[RED]] Usage is /{0} ? [page]
|
||||
Inspect.Offline=[[RED]]Du hast keine Rechte um ausgeloggte Spieler zu inspizieren!
|
||||
Inspect.OfflineStats=mcMMO Werte f\u00fcr ausgeloggte Spieler [[YELLOW]]{0}
|
||||
@@ -464,6 +475,7 @@ Item.Injured.Wait=[[WHITE]]Du wurdest k\u00fcrzlich verletzt und musst [[YELLOW]
|
||||
Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Du ben\u00f6tigst mehr [[GRAY]]{0}
|
||||
Skills.Parents=Eltern
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]Du bist zu ausgelaugt, um diese F\u00e4higkeit wieder nutzen zu k\u00f6nnen. [[YELLOW]]({0}s)
|
||||
Stats.Header.Combat=[[GOLD]]-=KAMPF SKILLS=-
|
||||
@@ -503,3 +515,7 @@ MOTD.PerksPrefix=[[RED]][mcMMO Perks]
|
||||
MOTD.Vampire.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Vampirism Stat Leech: [[DARK_RED]]{0}%
|
||||
MOTD.Version=[[GOLD]][mcMMO] Running version [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO Website
|
||||
Smelting.Effect.0=Brennstoff Effektivit\u00e4t
|
||||
Smelting.Effect.2=Doppelte Schmelzchance
|
||||
Smelting.Listener=Schmelzen:
|
||||
Smelting.SkillName=Schmelzen
|
||||
|
||||
@@ -101,8 +101,10 @@ Excavation.Skillup=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
|
||||
Fishing.Ability.Chance=[[RED]]Bite Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank**
|
||||
Fishing.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (SHAKE)
|
||||
Fishing.Ability.Locked.1=LOCKED UNTIL {0}+ SKILL (ICE FISHING)
|
||||
Fishing.Ability.Rank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.Shake=[[RED]]Shake Chance: [[YELLOW]]{0}
|
||||
Fishing.Ability.IceFishing=[[RED]]Ice Fishing: Go fishing in ice
|
||||
Fishing.Ability.FD=[[RED]]Fisherman''s Diet: [[YELLOW]]Rank {0}
|
||||
Fishing.Effect.0=Treasure Hunter (Passive)
|
||||
Fishing.Effect.1=Fish up misc. objects
|
||||
@@ -114,6 +116,8 @@ Fishing.Effect.6=Fisherman's Diet
|
||||
Fishing.Effect.7=Improves hunger restored from fished foods
|
||||
Fishing.Effect.8=Master Angler
|
||||
Fishing.Effect.9=Improves chance of getting a bite while fishing
|
||||
Fishing.Effect.10=Ice Fishing
|
||||
Fishing.Effect.11=Allows you to fish in icy biomes
|
||||
Fishing.Enchant.Chance=[[RED]]Magic Hunter Chance: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] Rain Bonus
|
||||
Fishing.ItemFound=[[GRAY]]Treasure found!
|
||||
@@ -236,6 +240,8 @@ Repair.Skills.Mastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0} durability rest
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]You can't repair stacked items.
|
||||
Repair.Skills.Super.Chance=[[RED]]Super Repair Chance: [[YELLOW]]{0}
|
||||
Repair.Skillup=[[YELLOW]]Repair skill increased by {0}. Total ({1})
|
||||
Repair.Pretty.Name=Repair
|
||||
Salvage.Pretty.Name=Salvage
|
||||
|
||||
#Arcane Forging
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}%
|
||||
@@ -324,6 +330,7 @@ Taming.Skillup=[[YELLOW]]Taming skill increased by {0}. Total ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Summoning complete
|
||||
Taming.Summon.Fail.Ocelot=[[RED]]You have too many ocelots nearby to summon any more.
|
||||
Taming.Summon.Fail.Wolf=[[RED]]You have too many wolves nearby to summon any more.
|
||||
Taming.Summon.Name.Format={0}s {1}
|
||||
|
||||
#UNARMED
|
||||
Unarmed.Ability.Berserk.Length=[[RED]]Berserk Length: [[YELLOW]]{0}s
|
||||
@@ -522,6 +529,8 @@ Party.Help.5=[[RED]]To password protect your party, use [[DARK_AQUA]]{0} <passwo
|
||||
Party.Help.6=[[RED]]To kick a player from your party, use [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=[[RED]]To transfer ownership of your party, use [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=[[RED]]To disband your party, use [[DARK_AQUA]]{0}
|
||||
Party.Help.9=[[RED]]Use [[DARK_AQUA]]{0} [[RED]]to share items with party members
|
||||
Party.Help.10=[[RED]]Use [[DARK_AQUA]]{0} [[RED]]to enable XP sharing with party members
|
||||
Party.InformedOnJoin={0} [[GREEN]]has joined your party
|
||||
Party.InformedOnQuit={0} [[GREEN]]has left your party
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]has set the party name to [[WHITE]]{1}
|
||||
@@ -563,6 +572,11 @@ Party.ShareMode.Equal=EQUAL
|
||||
Party.ShareMode.Random=RANDOM
|
||||
Party.ExpShare.Disabled=[[RED]]Party experience sharing is disabled.
|
||||
Party.ItemShare.Disabled=[[RED]]Party item sharing is disabled.
|
||||
Party.ItemShare.Category.Loot=Loot
|
||||
Party.ItemShare.Category.Mining=Mining
|
||||
Party.ItemShare.Category.Herbalism=Herbalism
|
||||
Party.ItemShare.Category.Woodcutting=Woodcutting
|
||||
Party.ItemShare.Category.Misc=Misc
|
||||
|
||||
##xp
|
||||
Commands.XPGain.Acrobatics=Falling
|
||||
@@ -627,8 +641,15 @@ Inspect.TooFar=[[RED]]You are too far away to inspect that player!
|
||||
#ITEMS
|
||||
Item.ChimaeraWing.Fail=**CHIMAERA WING FAILED!**
|
||||
Item.ChimaeraWing.Pass=**CHIMAERA WING**
|
||||
Item.ChimaeraWing.Name=Chimaera Wing
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Teleports you to your bed.
|
||||
Item.Generic.Wait=[[RED]]You need to wait before you can use this again! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=You were injured recently and must wait to use this. [[YELLOW]]({0}s)
|
||||
|
||||
#TELEPORTATION
|
||||
Teleport.Commencing=[[GRAY]]Commencing teleport in [[GOLD]]({0}) [[GRAY]]seconds, please stand still...
|
||||
Teleport.Cancelled=[[DARK_RED]]Teleportation canceled!
|
||||
|
||||
#SKILLS
|
||||
Skills.Child=[[GOLD]](CHILD SKILL)
|
||||
Skills.Disarmed=[[DARK_RED]]You have been disarmed!
|
||||
@@ -637,6 +658,8 @@ Skills.NeedMore=[[DARK_RED]]You need more [[GRAY]]{0}
|
||||
Skills.Parents = PARENTS
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]You are too tired to use that ability again. [[YELLOW]]({0}s)
|
||||
Skills.Cancelled=[[RED]]{0} cancelled!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Right-click again to confirm [[GOLD]]{0} [[GREEN]]. Left-click to cancel.
|
||||
|
||||
#STATISTICS
|
||||
Stats.Header.Combat=[[GOLD]]-=COMBAT SKILLS=-
|
||||
|
||||
@@ -72,10 +72,12 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]La tua capacit\u00e0 [[YELLO
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]Giga-Trivella Demolitrice[[GREEN]] si \u00e8 esaurita per [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Giga-Trivella Demolitrice!
|
||||
Excavation.Skillup=[[YELLOW]]L\'abilit\u00e0 Escavazione \u00e8 aumentata di {0}. Totale ({1})
|
||||
Fishing.Ability.Chance=[[RED]]Possibilit\u00e0 di Morso: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=[[RED]]Cacciatore di Magia: [[GRAY]] **Migliora insieme al Grado di Cacciatore di Tesori**
|
||||
Fishing.Ability.Locked.0=BLOCCATO FINO AD ABILIT\u00c0 {0}+ (SCUOTERE)
|
||||
Fishing.Ability.Rank=[[RED]]Grado di Cacciatore di Tesori: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.Shake=[[RED]]Probabilit\u00e0 di Scuotere: [[YELLOW]]{0}%
|
||||
Fishing.Ability.IceFishing=[[RED]]Pesca sul Ghiaccio: Vai a pescare sul ghiaccio
|
||||
Fishing.Ability.FD=[[RED]]Dieta del Pescatore: [[YELLOW]]Grado {0}
|
||||
Fishing.Effect.0=Cacciatore di Tesori (Passivo)
|
||||
Fishing.Effect.1=Ripesca oggetti vari
|
||||
@@ -85,6 +87,10 @@ Fishing.Effect.4=Scuotere (contro Entit\u00e0)
|
||||
Fishing.Effect.5=Scrolla oggetti di dosso ai mob con una canna da pesca
|
||||
Fishing.Effect.6=Dieta del Pescatore
|
||||
Fishing.Effect.7=Aumenta la fame recuperata tramite cibi pescati
|
||||
Fishing.Effect.8=Pescatore Provetto
|
||||
Fishing.Effect.9=Migliore le possibilit\u00e0 di ricevere un morso mentre si pesca
|
||||
Fishing.Effect.10=Pesca sul Ghiaccio
|
||||
Fishing.Effect.11=Ti permette di pescare nei biomi ghiacciati
|
||||
Fishing.Enchant.Chance=[[RED]]Possibilit\u00e0 di Cacciatore di Magia: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] Bonus Pioggia
|
||||
Fishing.ItemFound=[[GRAY]]Hai trovato un tesoro!
|
||||
@@ -155,6 +161,7 @@ Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]S
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]La tua capacit\u00e0 [[YELLOW]]Super Demolitore [[GREEN]]si \u00e8 rigenerata!
|
||||
Mining.Skillup=[[YELLOW]]L\'abilit\u00e0 Estrazione \u00e8 aumentata di {0}. Totale ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Effect=+{0} minerale raccolto, -{1} macerie prodotte, drop x{2}
|
||||
Mining.Blast.Radius.Increase=[[RED]]Incremento del Raggio di Esplosione: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=[[RED]]Estrazione Esplosiva: [[YELLOW]] Grado {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] ha usato [[RED]]Estrazione Esplosiva!
|
||||
@@ -198,6 +205,8 @@ Repair.Skills.Mastery=[[RED]]Maestria nella Riparazione: [[YELLOW]]{0} di durata
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Non puoi riparare oggetti ammucchiati.
|
||||
Repair.Skills.Super.Chance=[[RED]]Possibilit\u00e0 Super Riparazione: [[YELLOW]]{0}
|
||||
Repair.Skillup=[[YELLOW]]L\'abilit\u00e0 Riparazione \u00e8 aumentata di {0}. Totale ({1})
|
||||
Repair.Pretty.Name=Riparazione
|
||||
Salvage.Pretty.Name=Rottamazione
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]Probabilit\u00e0 di Degradazione di FA: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]Tasso di Successo di FA: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=[[RED]]Il potere arcano di questo oggetto \u00e8 diminuito.
|
||||
@@ -459,6 +468,8 @@ Party.Help.5=[[RED]]Per proteggere la tua compagnia con una parola d\'ordine, us
|
||||
Party.Help.6=[[RED]]Per espellere un giocatore dalla tua compagnia, usa [[DARK_AQUA]]{0} <giocatore>
|
||||
Party.Help.7=[[RED]]Per trasferire la propriet\u00e0 della tua compagnia, usa [[DARK_AQUA]]{0} <giocatore>
|
||||
Party.Help.8=[[RED]]Per sciogliere la tua compagnia, usa [[DARK_AQUA]]{0}
|
||||
Party.Help.9=[[RED]]Usa [[DARK_AQUA]]{0} [[RED]]per condividere oggetti con i membri della tua compagnia
|
||||
Party.Help.10=[[RED]]Usa [[DARK_AQUA]]{0} [[RED]]per abilitare la condivisione di XP con i membri della tua compagnia
|
||||
Party.InformedOnJoin={0} [[GREEN]]si \u00e8 unito alla tua compagnia
|
||||
Party.InformedOnQuit={0} [[GREEN]]ha abbandonato la tua compagnia
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]ha impostato il nome della compagnia come [[WHITE]]{1}
|
||||
@@ -499,9 +510,12 @@ Party.ShareMode.Equal=EQUA
|
||||
Party.ShareMode.Random=CASUALE
|
||||
Party.ExpShare.Disabled=[[RED]]La condivisione di esperienza di compagnia \u00e8 disabilitata.
|
||||
Party.ItemShare.Disabled=[[RED]]La condivisione di oggetti di compagnia \u00e8 disabilitata.
|
||||
Party.ItemShare.Category.Loot=Bottino
|
||||
Party.ItemShare.Category.Herbalism=Erboristeria
|
||||
Commands.XPGain.Acrobatics=Cadere
|
||||
Commands.XPGain.Archery=Attaccare Mostri
|
||||
Commands.XPGain.Axes=Attaccare Mostri
|
||||
Commands.XPGain.Child=Ottiene livelli dall\'Abilit\u00e0 Madre
|
||||
Commands.XPGain.Excavation=Scavare e trovare tesori
|
||||
Commands.XPGain.Fishing=Pescare (ma va\'?!)
|
||||
Commands.XPGain.Herbalism=Raccogliere Piante
|
||||
@@ -523,7 +537,9 @@ Commands.xprate.started.0=[[GOLD]]E\' INIZIATO UN EVENTO XP PER mcMMO!
|
||||
Commands.xprate.started.1=[[GOLD]]IL TASSO DI XP DI mcMMO ORA E\' {0}x!
|
||||
XPRate.Event=[[GOLD]]E\' in corso un evento mcMMO sul tasso XP! Il tasso XP \u00e8 {0}x!
|
||||
Effects.Effects=EFFETTI
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Acrobatics=[[DARK_AQUA]]Riguardo Acrobatica:\n[[YELLOW]]Acrobatica \u00e8 l\'arte di muoversi agilmente in mcMMO.\n[[YELLOW]]Fornisce bonus in combattimento e contro i danni ambientali.\n\n[[DARK_AQUA]]GUADAGNARE XP:\n[[YELLOW]]Per guadagnare XP in questa capacit\u00e0 devi eseguire una\n[[YELLOW]]schivata in combattimento o sopravvivere a una caduta da\n[[YELLOW]]altezze che ti farebbero danni.\n\n[[DARK_AQUA]]Come funziona Capriola?\n[[YELLOW]]Hai una possibilit\u00e0 passiva quando subisci danno da caduta\n[[YELLOW]]di annullare il danno fatto. Puoi tenere premuto il tasto furtivo\n[[YELLOW]]durante la caduta per raddoppiare le possibilit\u00e0.\n[[YELLOW]]Questo attiva una Capriola Aggraziata invece di una normale.\n[[YELLOW]]Le Capriole Aggraziate sono come le capriole normali ma hanno\n[[YELLOW]]il doppio di possibilit\u00e0 di avvenire e forniscono pi\u00f9 incolumit\u00e0 dai\n[[YELLOW]]danni rispetto alle capriole normali. Le possibilit\u00e0 di fare una\n[[YELLOW]]capriola sono legate al tuo livello di abilit\u00e0.\n\n[[DARK_AQUA]]Come funziona Schivata?\n[[YELLOW]]La Schivata \u00e8 una possibilit\u00e0 passiva di dimezzare il danno\n[[YELLOW]]quando vieni ferito in combattimento.\n[[YELLOW]]\u00c8 legata al tuo livello di abilit\u00e0.
|
||||
Guides.Archery=[[DARK_AQUA]]Riguardo Tiro con l\'Arco:\n[[YELLOW]]Tiro con \'Arco riguarda scoccare frecce col tuo arco.\n[[YELLOW]]Fornisce vari bonus di combattimento, per esempio pi\u00f9 danni\n[[YELLOW]]in proporzione al tuo livello e la capacit\u00e0 di confondere i tuoi\n[[YELLOW]]avversari in PVP. Oltre a questo, puoi recuperare\n[[YELLOW]]dai cadaveri dei tuoi nemici alcune delle frecce usate.\n\n[[DARK_AQUA]]GUADAGNARE XP:\n[[YELLOW]]Per guadagnare XP in questa abilit\u00e0 devi colpire a distanza\n[[YELLOW]]mob o altri giocatori.\n\n[[DARK_AQUA]]Come funziona Tiro da Maestro?\n[[YELLOW]]Tiro da Maestro fornisce danno addizionale ai tuoi tiri.\n[[YELLOW]]Il bonus al danno da TIro da Maestro aumenta man mano che\n[[YELLOW]]sali di livello in Tiro con l\'Arco.\n[[YELLOW]]Con le impostazioni di base, il tuo danno con l\'arco aumenta del\n[[YELLOW]]10% ogni 50 livelli, fino a un massimo del 200% di danno bonus.\n\n[[DARK_AQUA]]Come funziona Stordire?\n[[YELLOW]]Hai una probabilit\u00e0 passiva di stordire altri giocatori quando\n[[YELLOW]]li colpisci. Quando Stordire si attiva, forza i tuoi avversari\n[[YELLOW]]a guardare dritto in alto per un breve periodo.\n[[YELLOW]]Un colpo Stordente infligge anche 4 danni addizionali (2 cuori).\n\n[[DARK_AQUA]]Come funziona Recupero Frecce?\n[[YELLOW]]Hai una probabilit\u00e0 passiva di di recuperare alcune\n[[YELLOW]]delle tue frecce quando uccidi un mob con l\'arco.\n[[YELLOW]]Questa probabilit\u00e0 aumenta man mano che sali di livello\n[[YELLOW]]in Tiro con l\'Arco.\n[[YELLOW]]Di base, questa abilit\u00e0 aumenta dello 0,1% per livello, fino al 100%\n[[YELLOW]]a livello 1.000.
|
||||
@@ -546,14 +562,23 @@ Inspect.Offline=[[RED]]Non hai il permesso di esaminare giocatori disconnessi!
|
||||
Inspect.OfflineStats=Statistiche mcMMO del Giocatore Disconnesso [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]Statistiche mcMMO di [[YELLOW]]{0}
|
||||
Inspect.TooFar=[[RED]]Sei troppo lontano da quel giocatore per esaminarlo!
|
||||
Item.ChimaeraWing.Fail=**ALA CHIMERA FALLITA!**
|
||||
Item.ChimaeraWing.Pass=**ALA CHIMERA**
|
||||
Item.ChimaeraWing.Fail=**ALA CHIMERICA FALLITA!**
|
||||
Item.ChimaeraWing.Pass=**ALA CHIMERICA**
|
||||
Item.ChimaeraWing.Name=Ala Chimerica
|
||||
Item.ChimaeraWing.Lore=[[GRAY]]Ti teletrasporta verso il tuo letto.
|
||||
Item.Generic.Wait=[[RED]]Bisogna che aspetti prima di poter usarlo di nuovo! [[YELLOW]]({0}s)
|
||||
Item.Injured.Wait=Sei stato ferito di recente e devi aspettare per usarla. [[YELLOW]]({0}s)
|
||||
Teleport.Commencing=[[GRAY]]Il teletrasporto avr\u00e0 inizio fra [[GOLD]]({0}) [[GRAY]]second, resta fermo per favore...
|
||||
Teleport.Cancelled=[[DARK_RED]]Teletrasporto annullato!
|
||||
Skills.Child=[[GOLD]](ABILIT\u00c0 FIGLIA)
|
||||
Skills.Disarmed=[[DARK_RED]]Sei stato disarmato!!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Hai bisogno di piu
|
||||
Skills.Parents=ABILIT\u00c0 MADRI
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]Sei troppo stanco per poter riutilizzare questa abilita attendi.
|
||||
Skills.Cancelled=[[RED]]{0} annullata!
|
||||
Skills.ConfirmOrCancel=[[GREEN]]Clic destro per confermare [[GOLD]]{0} [[GREEN]]. Clic sinistro per annullare.
|
||||
Stats.Header.Combat=[[GOLD]]-=ABILITA\' DI COMBATTIMENTO=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=ABILITA\' DI RACCOLTA=-
|
||||
Stats.Header.Misc=[[GOLD]]-=ABILITA\' VARIE=-
|
||||
@@ -597,6 +622,10 @@ MOTD.PerksPrefix=[[RED]][Vantaggi mcMMO]
|
||||
MOTD.Vampire.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Salasso di Statistiche da Vampirismo: [[DARK_RED]]{0}%
|
||||
MOTD.Version=[[GOLD]][mcMMO] versione [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - Sito di mcMMO
|
||||
Smelting.Ability.FuelEfficiency=[[RED]]Moltiplicatore di Efficienza Combustibile: [[YELLOW]]x{0}
|
||||
Smelting.Effect.0=Efficienza Combustibile
|
||||
Smelting.Effect.5=Aumenta i normali XP ottenuti fondendo
|
||||
Smelting.Effect.7=Probabilit\u00e0 che i minerali siano fusi istantaneamente mentre li si estrae
|
||||
Commands.Description.addlevels=Aggiungi XP di mcMMO a un utente
|
||||
Commands.Description.adminchat=Attiva o disattiva la chat amministratori di mcMMO o invia messaggi in chat amministratori
|
||||
Commands.Description.addxp=Aggiunge XP mcMMO a un utente
|
||||
|
||||
58
src/main/resources/locale/locale_ja_JP.properties
Normal file
58
src/main/resources/locale/locale_ja_JP.properties
Normal file
@@ -0,0 +1,58 @@
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**\u907f\u3051\u3089\u308c\u307e\u3059**
|
||||
Acrobatics.SkillName=\u30a2\u30af\u30ed\u30d0\u30c3\u30c8
|
||||
Acrobatics.Skillup=[[YELLOW]\u30de\u30a4\u30cb\u30f3\u30b0\u304c{0}\u4e0a\u6607\u3057\u305f\u3002\u5408\u8a08\uff08{1}\uff09
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u306f [[RED]]\u30b9\u30ab\u30eb\u30b9\u30d7\u30ea\u30c3\u30bf\u30fc[[DARK_GREEN]]\u3092\u4f7f\u7528\u3057\u305f\uff01
|
||||
Excavation.SkillName=\u767a\u6398
|
||||
Herbalism.Listener=\u85ac\u8349\u5b66\uff1a
|
||||
Mining.Ability.Length=[[RED]]\u30b9\u30fc\u30d1\u30fc\u30d6\u30ec\u30a4\u30ab\u30fc\u306e\u767a\u52d5\u6642\u9593: [[YELLOW]]{0}\u79d2
|
||||
Mining.Ability.Ready=[[GREEN]]**\u3042\u306a\u305f\u306f\u3001\u30d4\u30c3\u30b1\u30eb\u3092\u7528\u610f**
|
||||
Mining.Listener=\u30de\u30a4\u30cb\u30f3\u30b0:
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\u3042\u306a\u305f\u306e[[YELLOW]]\u30b9\u30fc\u30d1\u30fc\u30d6\u30ec\u30a4\u30ab\u30fc[[GREEN]]\u30a2\u30d3\u30ea\u30c6\u30a3\u304c\u518d\u4f7f\u7528\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f\uff01
|
||||
Mining.Skillup=[[YELLOW]\u30de\u30a4\u30cb\u30f3\u30b0\u30b9\u30ad\u30eb{0}\u306f\u5897\u3048\u305f\u3002\u5408\u8a08\uff08{1}\uff09
|
||||
Mining.Blast.Refresh=[[GREEN]]\u3042\u306a\u305f\u306e[[YELLOW]]\u30d6\u30e9\u30b9\u30c8\u30de\u30a4\u30cb\u30f3\u30b0[[GREEN]]\u30a2\u30d3\u30ea\u30c6\u30a3\u306f\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u3055\u308c\u307e\u3057\u305f\uff01
|
||||
Repair.Effect.4=\u30b9\u30fc\u30d1\u30fc\u30ea\u30da\u30a2
|
||||
Repair.Effect.7=\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9\u306e\u30c4\u30fc\u30eb & \u9632\u5177\u3092\u4fee\u7e55
|
||||
Repair.Effect.9=\u9b54\u6cd5\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u4fee\u5fa9
|
||||
Repair.Listener=\u4fee\u7e55:
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9\u30c4\u30fc\u30eb\u3092\u4fee\u5fa9\u3059\u308b\u70ba\u306e\u5341\u5206\u306a\u30b9\u30ad\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\uff01
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]\u3042\u306a\u305f\u306f\u91d1\u3092\u4fee\u5fa9\u3059\u308b\u305f\u3081\u306b\u5341\u5206\u306a\u30b9\u30ad\u30eb\u3092\u6301\u3063\u3066\u3044\u306a\u3044\u3002
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]\u77f3\u30c4\u30fc\u30eb\u3092\u4fee\u5fa9\u3059\u308b\u70ba\u306e\u5341\u5206\u306a\u30b9\u30ad\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\uff01
|
||||
Repair.Skillup=[[YELLOW]]\u30ea\u30da\u30a2\u304c{0}\u4e0a\u6607\u3057\u305f\u3002\u5408\u8a08({1})
|
||||
Repair.Arcane.Fail=[[RED]]\u79d8\u5100\u30d1\u30ef\u30fc\u304c\u6c38\u4e45\u30a2\u30a4\u30c6\u30e0\u3092\u6b8b\u3057\u3066\u3044\u308b\u3002
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]\u51fa\u8840\u306f [[GREEN]]\u6b62\u307e\u308a\u307e\u3057\u305f[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**\u6575\u304c\u51fa\u8840**
|
||||
Swords.Combat.Countered=[[GREEN]]**\u30ab\u30a6\u30f3\u30bf\u30fc\u30a2\u30bf\u30c3\u30af\uff01**
|
||||
Swords.Skills.SS.On=[[GREEN]]**\u8d77\u52d5\u3059\u308b\u30ae\u30b6\u30ae\u30b6\u306e\u30b9\u30c8\u30e9\u30a4\u30ad**
|
||||
Taming.Ability.Bonus.2=\u539a\u3044\u6bdb\u76ae
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]\u3042\u306a\u305f\u306e\u72fc\u306f\u3042\u306a\u305f\u306b\u3064\u3044\u3066\u3044\u304d\u307e\u3059
|
||||
Unarmed.Listener=\u7d20\u624b:
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**\u30d0\u30fc\u30b5\u30fc\u30af\u304c\u30aa\u30d5\u306b\u306a\u308a\u307e\u3057\u305f**
|
||||
Woodcutting.Ability.0=\u30ea\u30fc\u30d5\u30d6\u30ed\u30ef\u30fc
|
||||
Woodcutting.Ability.1=\u8449\u3063\u3071\u3092\u5439\u304d\u98db\u3070\u3059
|
||||
Woodcutting.SkillName=\u304d\u3053\u308a
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=[[RED]]\u304d\u3053\u308a[[GREEN]]\u30b9\u30ad\u30eb\u306f\u3042\u3068[[YELLOW]]{0}\u79d2\u9593[[GREEN]]\u4f7f\u3048\u307e\u305b\u3093\u3002
|
||||
Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1}
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]\u3042\u3044\u307e\u3044\u306a\u611f\u3058\u304c\u3057\u307e\u3057\u305f\u3002\u30d5\u30a7\u30eb\u30c8\u30fb\u30c7\u30a3\u30b8\u30fc\u3002
|
||||
Commands.AdminChat.Off=\u7ba1\u7406\u8005\u5c02\u7528\u30c1\u30e3\u30c3\u30c8\u306f[[RED]]off[[WHITE]]\u3067\u3059\u3002
|
||||
Commands.DoesNotExist=[[RED]]\u305d\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - \u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u5909\u66f4\u3057\u307e\u3059
|
||||
Commands.Party.Kick=[[RED]]\u3042\u306a\u305f\u306f\u3001\u30d1\u30fc\u30c6\u30a3\u30fc{0}\u304b\u3089\u8ffd\u3044\u51fa\u3055\u308c\u307e\u3057\u305f
|
||||
Commands.PowerLevel=[[DARK_RED]]\u30d1\u30ef\u30fc\u30ec\u30d9\u30eb:[[GREEN]]{0}
|
||||
Commands.Usage.PartyName=\u540d\u524d
|
||||
Party.Player.Invalid=[[RED]]\u6709\u52b9\u306a\u30d7\u30ec\u30fc\u30e4\u30fc\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
|
||||
Party.Unlocked=[[GRAY]]\u30d1\u30fc\u30c6\u30a3\u30fc\u306e\u30ed\u30c3\u30af\u304c\u89e3\u9664\u3055\u308c\u305f
|
||||
Commands.XPGain.Excavation=\u6398\u524a\u3057\u3066\u5b9d\u7269\u3092\u898b\u3064\u3051\u3088\u3046
|
||||
Commands.XPGain.Herbalism=\u85ac\u8349\u306e\u53ce\u7a6b
|
||||
Commands.XPGain.Mining=\u9271\u696d\u77f3\u3068\u9271\u77f3
|
||||
Commands.XPGain.Taming=\u52d5\u7269\u3092\u98fc\u3044\u6163\u3089\u3059\u3001\u307e\u305f\u306f\u6226\u95d8\u3092\u3059\u308b/\u3042\u306a\u305f\u306e\u72fc
|
||||
Commands.XPGain=[[DARK_GRAY]]\u7d4c\u9a13\u5024\u3092\u624b\u306b\u5165\u308c\u305f: [[WHITE]]{0}
|
||||
Effects.Effects=\u52b9\u679c
|
||||
Guides.Excavation=[[DARK_AQUA]]\u63a1\u6398\u306b\u3064\u3044\u3066:\n[[YELLOW]]\u767a\u6398\u306f\u3001\u5b9d\u7269\u3092\u898b\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u884c\u70ba\u3067\u3042\u308b\u3002\n[[YELLOW]]\u3042\u306a\u305f\u306f\u571f\u5730\u3092\u6398\u308b\u3053\u3068\u306b\u3088\u308a\u5b9d\u7269\u3092\u898b\u3064\u3051\u3089\u308c\u308b\u3002\n[[YELLOW]]\u3088\u308a\u591a\u304f\u5b9d\u7269\u3092\u898b\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002\n\n[[DARK_AQUA]]\u7d4c\u9a13\u5024\u3092\u7372\u5f97:\n[[YELLOW]]\u3042\u306a\u305f\u304c\u30b7\u30e3\u30d9\u30eb\u3092\u6301\u3061\u3001\u6398\u308b\u3053\u3068\u3067\u3053\u306e\u30b9\u30ad\u30eb\u306e\u7d4c\u9a13\u5024\u3092\u7372\u5f97\u3059\u308b\u3002\n[[YELLOW]]\u7279\u5b9a\u306e\u7269\u3092\u6398\u308b\u3053\u3068\u3067\u5b9d\u7269\u304a\u3088\u3073\u7d4c\u9a13\u5024\u3092\u7372\u5f97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002\n[[DARK_AQUA]]\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u7269:\n[[YELLOW]]\u8349\u30d6\u30ed\u30c3\u30af\u3001\u571f\u3001\u7802\u3001\u7c98\u571f\u3001\u7802\u5229\u3001\u83cc\u7cf8\u3001\u30bd\u30a6\u30eb\u30b5\u30f3\u30c9\n\n[[DARK_AQUA]]\u30ae\u30ac\u30c9\u30ea\u30eb\u30d6\u30ec\u30a4\u30ab\u30fc\u306e\u4f7f\u3044\u65b9:\n[[YELLOW]]\u30b7\u30e3\u30d9\u30eb\u3092\u6301\u3061\u3001\u53f3\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u3067\u6e96\u5099\u3067\u304d\u308b\u3002\n[[YELLOW]]\u3053\u306e\u72b6\u614b\u306f\u30014\u79d2\u9593\u30ad\u30fc\u30d7\u3055\u308c\u308b\u3002\n[[YELLOW]]\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u7269\u3092\u6398\u308d\u3046\u3068\u3059\u308b\u3068\n[[YELLOW]]\u30ae\u30ac\u30c9\u30ea\u30eb\u30d6\u30ec\u30a4\u30ab\u30fc\u304c\u767a\u52d5\u3057\u307e\u3059\u3002\n[[DARK_AQUA]]\u30ae\u30ac\u30c9\u30ea\u30eb\u30d6\u30ec\u30a4\u30ab\u30fc\u3068\u306f\u306a\u3093\u3067\u3059\u304b?\n[[YELLOW]]\u30ae\u30ac\u30c9\u30ea\u30eb\u30d6\u30ec\u30a4\u30ab\u30fc\u3068\u306f\u80fd\u529b\u3067\u3042\u308b\u3002\n[[YELLOW]]\u63a1\u6398\u30b9\u30ad\u30eb\u3002\u4e09\u56de\u306e\u30c1\u30e3\u30f3\u30b9\u304c\u3042\u308b\n[[YELLOW]]\u5b9d\u7269\u3092\u898b\u3064\u3051\u308b\u3068\u30a4\u30f3\u30b9\u30bf\u30f3\u30c8\u30d6\u30ec\u30fc\u30af\u304c\u53ef\u80fd\n[[YELLOW]]\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u7269\u306b\u9650\u308b\u3002\n\n[[DARK_AQUA]]\u30c8\u30ec\u30b8\u30e3\u30fc\u30cf\u30f3\u30bf\u30fc\u306f\u3069\u306e\u3088\u3046\u306b\u52d5\u4f5c\u3057\u307e\u3059\u304b?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it\'s\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]\u3042\u306a\u305f\u306e\u63a1\u6398\u30b9\u30ad\u30eb\u304c\u9ad8\u3051\u308c\u3070\u9ad8\u3044\u307b\u3069\n[[YELLOW]]\u3088\u308a\u591a\u304f\u306e\u5b9d\u3092\u898b\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.\n[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
Item.ChimaeraWing.Pass=**\u30ad\u30de\u30a4\u30e9\u306e\u7ffc**
|
||||
Skills.Disarmed=[[DARK_RED]]\u3042\u306a\u305f\u306f\u65e2\u306b\u6b66\u88c5\u89e3\u9664\u3057\u3066\u3044\u307e\u3059!
|
||||
Stats.Header.Combat=[[GOLD]]\u6226\u95d8\u306e\u6280\u8853
|
||||
Stats.Header.Gathering=[[GOLD]]-=\u53ce\u96c6\u30b9\u30ad\u30eb=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] \u7d71\u8a08\u60c5\u5831
|
||||
Commands.Description.mcremove=mcMMO\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u30e6\u30fc\u30b6\u3092\u524a\u9664\u3057\u307e\u3059\u3002
|
||||
UpdateChecker.outdated=\u53e4\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306emcMMO\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059!
|
||||
UpdateChecker.newavailable=BukkitDev\u306b\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
@@ -1,19 +1,57 @@
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**TRIKS**
|
||||
Acrobatics.SkillName=AKROB\u0100TIKA
|
||||
Axes.Ability.Bonus.1=Bonus {0} boj\u0101jumi
|
||||
Axes.Combat.CritChance=[[RED]]Iesp\u0113ja kritiskajam uzbrukumam: [[YELLOW]]{0}%
|
||||
Axes.Skills.SS.On=[[GREEN]]**Galvaskausu \u0161\u0137\u0113l\u0113js AKTIVIZ\u0112TS**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Tava [[YELLOW]]Galvaskausu \u0160\u0137\u0113l\u0101ja [[GREEN]]sp\u0113ja ir atjaunota!
|
||||
Axes.Skillup=[[YELLOW]]Cirt\u0113ja prasme palielin\u0101j\u0101s par {0}. Kopum\u0101 ({1})
|
||||
Excavation.SkillName=EKSKAV\u0100CIJA
|
||||
Fishing.Listener=Zvejo\u0161ana:
|
||||
Herbalism.Listener=D\u0101rzniec\u012bba:
|
||||
Mining.Ability.Ready=[[GREEN]]**TU SAGATAVOJI SAVU CIRTNI**
|
||||
Mining.Listener=Rak\u0161anas:
|
||||
Mining.Skillup=[[TELLOW]]Rak\u0161anas prasme palielin\u0101j\u0101s par {0}. Kopum\u0101 ({1})
|
||||
Repair.Effect.0=Salabot
|
||||
Repair.Effect.9=Salabot ma\u0123iskos priek\u0161metus
|
||||
Repair.Listener=Salabot:
|
||||
Repair.SkillName=SALABOT
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Tas lik\u0101s viegli.
|
||||
Repair.Arcane.Fail=[[RED]]Mistisk\u0101 ener\u0123ija pameta lietu
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Tu [[GREEN]]beidzi[[GRAY]] asi\u0146ot!
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Skarts no SERRATED STRIKES!
|
||||
Swords.Effect.0=Pretsitiens
|
||||
Swords.Skills.SS.Other.Off=[[RED]]Serrated Stikes[[GREEN]]sp\u0113ja beidz\u0101s sp\u0113l\u0113t\u0101jam [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] izmantoja [[RED]]Serrated Strikes
|
||||
Taming.Ability.Bonus.8=\u0100tro \u0112dienu Pakalpojumi
|
||||
Taming.Effect.16=\u0100tro \u0112dienu Pakalpojumi
|
||||
Unarmed.Effect.2=Atbru\u0146ot(Sp\u0113l\u0113t\u0101ju)
|
||||
Unarmed.Listener=Atbru\u0146ots:
|
||||
Unarmed.SkillName=NEAPBRU\u0145OTS
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Tavas[[YELLOW]]Koka G\u0101z\u0113ja [[GREEN]]prasmes atjaunotas!
|
||||
Woodcutting.Skills.TreeFellerThreshold=[[RED]]Tas koks ir par lielu!
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]DZ\u012aV\u012aBA ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Piek\u0101ries pl\u016bdu\u0161am. Apdulli.
|
||||
Commands.AdminChat.Off=Tikai Adminu \u010dats [[RED]]Izsl\u0113gt
|
||||
Commands.AdminToggle=[[RED]]- Tikai administratoru \u010dats
|
||||
Commands.Disabled=[[RED]]\u0160\u012b komanda ir atsl\u0113gta
|
||||
Commands.Invite.Accepted=[[GREEN]]Iel\u016bgums Apstiprin\u0101ts. Tu pievienojies PARTY\'am {0}
|
||||
Commands.NoConsole=\u0160\u012b komanda neatbalsta konsules izmanto\u0161anu.
|
||||
Commands.Party.Invite.0=[[RED]]BR\u012aDIN\u0100JUMS: [[GREEN]]Tu sa\u0146\u0113mi PARTY uzaicin\u0101jumu uz {0} no {1}
|
||||
Commands.Party.Kick=[[RED]]Tu tiki izmests no PARTY {0}!
|
||||
Commands.Party.Leave=[[RED]]Tu pameti PARTY
|
||||
Commands.Stats.Self=TAVI STATI
|
||||
mcMMO.NoPermission=[[DARK_RED]]Nepietiekama at\u013cauja.
|
||||
Party.Teleport.Target=[[GREEN]]{0} teleport\u0113j\u0101s pie tevis.
|
||||
Party.Unlocked=[[GRAY]] Party tika atv\u0113rts
|
||||
Commands.XPGain.Fishing=Mak\u0161\u0137er\u0113\u0161ana (Ej izdom\u0101!)
|
||||
Commands.XPGain.Mining=Rokot Akmeni & R\u016bdu
|
||||
Commands.XPGain.Swords=Uzbr\u016bkot briesmo\u0146iem
|
||||
Commands.XPGain.Taming=Dz\u012bvnieku pieradin\u0101\u0161ana vai prasme w/ tavi su\u0146i
|
||||
Commands.XPGain=[[DARK_GRAY]]XP GUVUMS: [[WHITE]]{0}
|
||||
Effects.Effects=EFEKTI
|
||||
Guides.Excavation=[[DARK_AQUA]]Par RAK\u0160ANU:\n[[YELLOW]]Rak\u0161ana ir da\u013ca no centieniem, rokot zemi, atrast d\u0101rgumus\n[[YELLOW]]Rokot zemi tu atrad\u012bs d\u0101rgumus\n[[YELLOW]]Jo vair\u0101k tu to dari, jo vair\u0101k d\u0101rgumus tu atrodi\n\n[[DARK_AQUA]]XP GUVUMS:\n[[YELLOW]]Lai ieg\u016btu XP, tev ir j\u0101rok ar l\u0101pstu, nevis roku.\n[[YELLOW]]Tikai da\u017eu materi\u0101lu rak\u0161ana tev dos d\u0101rgumus un XP.\n[[DARK_AQUA]]Materi\u0101li, kas dod pieredzi.\n[[YELLOW]]Z\u0101le, Dub\u013ci, Smilts, M\u0101ls, Grants, Mic\u0113lijs, Soul Sand\'s\n\n[[DARK_AQUA]]K\u0101 izmantot Giga Drill Breaker:\n[[YELLOW]]Ar l\u0101pstu rok\u0101s uzspied labo-klik\u0161\u0137i, lai sagatavotu instrumentu\n[[YELLOW]]Kad esi uzspiedis labo klik\u0161\u0137i, tev ir 4 sekundes, lai\n[[YELLOW]]g\u016btu kontaktu ar at\u013cautajiem materi\u0101liem, lai\n[[YELLOW]]izmantotu Giga Drill Breaker.\n[[DARK_AQUA]]Kas ir Giga Drill Breaker?\n[[YELLOW]]Giga Drill Breaker ir sp\u0113ja ar ierobe\u017eojumu\n[[YELLOW]]lai piesaist\u012btu Rak\u0161anas Pieredzi. Tas tr\u012bsk\u0101r\u0161o\n[[YELLOW]]iesp\u0113ju atrast d\u0101rgumus un uzreiz izn\u012bcina\n[[YELLOW]]at\u013cauto materi\u0101lu blokus.\n\n[[DARK_AQUA]]K\u0101 str\u0101d\u0101 D\u0101rgumu Mekl\u0113t\u0101js?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it\'s\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]Just keep in mind that the higher your Excavation skill\n[[YELLOW]]is, the more treasures that can be found.\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.\n[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
Item.ChimaeraWing.Pass=**CHIMAERA SP\u0100RNI**
|
||||
Skills.Disarmed=[[DARK_RED]]Tevi ir atbru\u0146oju\u0161i!
|
||||
Stats.Header.Combat=[[GOLD]]-=KARA PRASMES=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Statistika
|
||||
|
||||
@@ -7,6 +7,7 @@ Acrobatics.Skillup=[[YELLOW]]Acrobatiek toegenomen met {0}. Totaal ({1})
|
||||
Archery.Effect.0=Ervaringsschot
|
||||
Archery.Effect.1=Neemt de schade van bogen toe
|
||||
Archery.Effect.2=Verdoven (Spelers)
|
||||
Archery.Effect.3=Verward tegenstanders en doet {0} schade
|
||||
Archery.Effect.5=Kans om pijlen te krijgen van lijken
|
||||
Archery.Listener=Boogschieten:
|
||||
Archery.SkillName=BOOGSCHIETEN
|
||||
@@ -27,11 +28,14 @@ Excavation.Listener=Uitgraving:
|
||||
Excavation.SkillName=Uitgraving
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA DRILL BREKER GEACTIVEERD**
|
||||
Excavation.Skillup=[[YELLOW]]Uitgravings ervaring toegenomen met {0}. Totaal ({1})
|
||||
Fishing.Effect.8=Meester Hengelaar
|
||||
Fishing.Chance.Raining=[[BLUE]] Regen Bonus
|
||||
Fishing.ItemFound=[[GRAY]]Schat gevonden!
|
||||
Fishing.Listener=Vissen:
|
||||
Fishing.MagicFound=[[GRAY]]Jij voelt een vleugje magie met deze vangst...
|
||||
Herbalism.Ability.GTh=[[GREEN]]**GROEN DUIMPJE**
|
||||
Herbalism.Effect.10=Hylian Geluk
|
||||
Herbalism.Effect.11=Geeft een kleine kans om zeldzame voorwerpen te vinden
|
||||
Herbalism.Listener=Kruidenkunde:
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]Jou [[YELLOW]]groene Vingers [[GREEN]]kracht is hersteld!
|
||||
Herbalism.Skills.GTe.Other.Off=[[RED]]Groene vingers[[GREEN]] is uitgewerkt voor [[YELLOW]]{0}
|
||||
@@ -65,13 +69,17 @@ Repair.Arcane.Chance.Success=[[GRAY]] Mystiek Smeden Succes Percentage: [[YELLOW
|
||||
Repair.Arcane.Fail=[[RED]]Mysterieuze kracht heeft het voorwerp voorgoed verlaten.
|
||||
Repair.Arcane.Lost=[[RED]]Je hebt niet genoeg ervaring om de betoveringen te behouden
|
||||
Swords.Ability.Ready=[[GREEN]]**JIJ HOUD JOU WAPEN GEREED**
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Jij bloedt!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Het bloeden is [[GREEN]]Gestopt[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**VIJAND BLOED**
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Geraakt door een tegenaanval
|
||||
Swords.Combat.Countered=[[GREEN]]**TEGEN-AANVAL**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Geraakt door GEKARTELDE SLAG!
|
||||
Swords.Effect.1=Reflecteer {0} van de opgelopen schade
|
||||
Swords.Effect.2=Gekartelde Slag (Vermogen)
|
||||
Swords.Effect.3={0} DMG AoE, Bloeden+ AoE
|
||||
Swords.Effect.4=Gekartelde Slag Bloed+
|
||||
Swords.Effect.5={0} Tick Bloeden
|
||||
Swords.Effect.6=Bloeden
|
||||
Swords.Listener=Zwaarden:
|
||||
Swords.SkillName=ZWAARDEN
|
||||
@@ -90,11 +98,15 @@ Taming.Effect.15=[[GRAY]]COTW (Wolf): Buk en linkermuisknop met {0} Botten in je
|
||||
Taming.Effect.16=Fast Food Service
|
||||
Taming.Effect.17=Kans voor wolven na een aanval te regeneren
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Jouw wolf dribbelt terug naar je...
|
||||
Taming.Listener=Temming:
|
||||
Taming.Listener=Temmen:
|
||||
Taming.Skillup=[[YELLOW]]Temmings ervaring toegenomen met {0}. Totaal ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Oproepen voltooid
|
||||
Unarmed.Ability.Berserk.Length=[[RED]]Razernij Lengte: [[YELLOW]]{0}s
|
||||
Unarmed.Effect.0=Razernij (KRACHT)
|
||||
Unarmed.Effect.6=Pijlen afweren
|
||||
Unarmed.Effect.7=Pijlen afweren
|
||||
Unarmed.Effect.8=Ijzeren Grip
|
||||
Unarmed.Effect.9=Voorkomt dat je ontwapend wordt
|
||||
Unarmed.Listener=Ongewapend:
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**Razernij is uitgewerkt**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**RAZERNIJ GEACTIVEERD**
|
||||
@@ -129,6 +141,8 @@ Commands.Invite.Accepted=[[GREEN]]Uitnodiging geacepteerd. Jij hebt de groep {0
|
||||
Commands.mcgod=[[RED]]- GodModus Schakelen
|
||||
Commands.mcrank.Player=[[RED]]DOELWIT: [[WHITE]]{0}
|
||||
Commands.mmoedit=[player] <Kracht> <Nieuwe waarde> [[RED]] - Pas doel aan
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Uw level in {0} is veranderd naar {1}
|
||||
Commands.mmoedit.Modified.2=[[RED]]{0} is aangepast voor {1}.
|
||||
Commands.mmoupdate.Start=[[GRAY]]Beginnen met converteren...
|
||||
Commands.ModDescription=[[RED]]- Lees instructie mod beschrijving
|
||||
Commands.NoConsole=Deze commando wordt niet ondersteund vanuit de console.
|
||||
@@ -141,6 +155,7 @@ Commands.Party.Invite.0=[[RED]]ALERT: [[GREEN]]Jij hebt een groep uitnodiging on
|
||||
Commands.Party.Invite=[[RED]]- Verstuur groepsuitnodiging
|
||||
Commands.Party.Create=[[GRAY]]Groep aangemaakt: {0}
|
||||
Commands.Party.Rename=[[GRAY]]Groep\'s naan veranderd naar: [[WHITE]]{0}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]Groep item delen in [[GOLD]]{0} [[GRAY]]is nu [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]Groep {0} bestaat al!
|
||||
Commands.Party.Kick=[[RED]]Je bent verwijderd uit de groep {0}!
|
||||
Commands.Party.Leave=[[RED]]Je hebt de groep verlaten
|
||||
@@ -159,7 +174,7 @@ Commands.Usage.PartyName=naam
|
||||
Commands.Usage.Password=wachtwoord
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]als je geen toegang hebt tot een vermogen, wordt die hier niet getoont
|
||||
Party.Forbidden=[mcMMO] Groepen niet toegestaan op deze wereld (zie Machtigingen)
|
||||
Party.Forbidden=[mcMMO] Groepen zijn niet toegestaan in deze wereld (zie Machtigingen)
|
||||
Party.InformedOnQuit={0} [[GREEN]]heeft de groep verlaten
|
||||
Party.InvalidName=[[DARK_RED]]Dat is geen geldige groep\'s naam.
|
||||
Party.IsLocked=[[RED]]Deze groep is al gesloten!
|
||||
@@ -180,8 +195,10 @@ Party.Player.InSameParty=[[RED]]{0} zit al in uw groep!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} zit niet in een groep
|
||||
Party.Specify=[[RED]]Je moet een groep invullen.
|
||||
Party.Teleport.Dead=[RED]Je kan niet naar een dode speler teleporteren.
|
||||
Party.Teleport.Hurt=[[RED]]Je hebt schade opgelopen in de afgelopen {0} seconden en je kan niet teleporten.
|
||||
Party.Teleport.Target=[[GREEN]]{0} is naar jou toe gedeporteerd.
|
||||
Party.Teleport.Disabled=[[RED]]{0} staat groeps-teleportaties niet toe.
|
||||
Party.Rename.Same=[[RED]]Dat is al de naam van uw groep!
|
||||
Party.Join.Self=[[RED]]Je kan niet meedoen met jezelf!
|
||||
Party.Unlocked=[[GRAY]]Groep is ontgrendeld
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](OPEN)
|
||||
@@ -199,6 +216,8 @@ Commands.XPGain.Mining=Het Mijnen van Steen & Erts
|
||||
Commands.XPGain.Repair=Repareren
|
||||
Commands.XPGain.Swords=Monsters aanvallen
|
||||
Commands.XPGain.Taming=Dieren Temmen, of vechten met je wolven
|
||||
Commands.XPGain.Unarmed=Monsters aanvallen
|
||||
Commands.XPGain.Woodcutting=Bomen omhakken
|
||||
Commands.XPGain=[[DARK_GRAY]]XP GEWONNEN: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Jou XP BALK is nu bevroren op {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Jou XP BALK is nu[[GREEN]]ONTGRENDELD[[GOLD]]!
|
||||
@@ -206,9 +225,13 @@ Commands.xprate.over=[[RED]]mcMMO XP Verdubbeling Evenement is VOORBIJ!!
|
||||
Commands.xprate.proper.0=[[RED]]Juiste gebruiking om de XP snelheid te veranderen is /xprate <integer> <true/false>
|
||||
XPRate.Event=[[GOLD]]mcMMO is momenteel in een XP verdubbeling evenement! XP verdubbeling is {0}x!
|
||||
Effects.Effects=EFFECTEN
|
||||
Effects.Child=[[DARK_GRAY]]LVL: [[GREEN]]{0}
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Guides.Axes=Guide coming soon...
|
||||
Guides.Excavation=[[DARK_AQUA]]About Excavation:\n[[YELLOW]]Excavation is the act of digging up dirt to find treasures.\n[[YELLOW]]By excavating the land you will find treasures.\n[[YELLOW]]The more you do this the more treasures you can find.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you must dig with a shovel in hand.\n[[YELLOW]]Only certain materials can be dug up for treasures and XP.\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Grass, Dirt, Sand, Clay, Gravel, Mycelium, Soul Sand\n\n[[DARK_AQUA]]How to use Giga Drill Breaker:\n[[YELLOW]]With a shovel in hand right click to ready your tool.\n[[YELLOW]]Once in this state you have about 4 seconds to make\n[[YELLOW]]contact with Excavation compatible materials this will\n[[YELLOW]]activate Giga Drill Breaker.\n[[DARK_AQUA]]What is Giga Drill Breaker?\n[[YELLOW]]Giga Drill Breaker is an ability with a cooldown\n[[YELLOW]]tied to Excavation skill. It triples your chance\n[[YELLOW]]of finding treasures and enables instant break\n[[YELLOW]]on Excavation materials.\n\n[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it\'s\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]Just keep in mind that the higher your Excavation skill\n[[YELLOW]]is, the more treasures that can be found.\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.\n[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Handleiding[[GOLD]]=-
|
||||
Guides.Mining=[[DARK_AQUA]]About Mining:\n[[YELLOW]]Mining consists of mining stone and ores. It provides bonuses\n[[YELLOW]]to the amount of materials dropped while mining.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you must mine with a pickaxe in hand.\n[[YELLOW]]Only certain blocks award XP.\n\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Stone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n[[YELLOW]]Lapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n[[YELLOW]]Glowstone, and Netherrack.\n\n[[DARK_AQUA]]How to use Super Breaker:\n[[YELLOW]]With a pickaxe in your hand, right click to ready your tool.\n[[YELLOW]]Once in this state, you have about 4 seconds to make contact\n[[YELLOW]]with Mining compatible materials, which will activate Super\n[[YELLOW]]Breaker.\n\n[[DARK_AQUA]]What is Super Breaker?\n[[YELLOW]]Super Breaker is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It triples your chance of extra items dropping and\n[[YELLOW]]enables instant break on Mining materials.\n\n[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.\n\n[[DARK_AQUA]]How does Blast Mining work?\n[[YELLOW]]Blast Mining is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It gives bonuses when mining with TNT and allows you\n[[YELLOW]]to remote detonate TNT. There are three parts to Blast Mining.\n[[YELLOW]]The first part is Bigger Bombs, which increases blast radius.\n[[YELLOW]]The second is Demolitions Expert, which decreases damage\n[[YELLOW]]from TNT explosions. The third part simply increases the\n[[YELLOW]]amount of ores dropped from TNT and decreases the\n[[YELLOW]]debris dropped.
|
||||
Guides.Page.OutOfRange=Deze pagina bestaat niet, er zijn in totaal {0} pagina\'s.
|
||||
Inspect.OfflineStats=mcMMO statistieken voor offline-speler [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Statistieken voor [[YELLOW]]{0}
|
||||
Inspect.TooFar=[[RED]]Jij bent te ver weg om deze speler te inspecteren!
|
||||
@@ -221,3 +244,10 @@ Stats.Header.Combat=[[GOLD]]-=Strijd Ervaring=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=VERZAMELAAR VAARDIGHEDEN=-
|
||||
Stats.Header.Misc=[[GOLD]]-=MISC ERVARING=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Stats
|
||||
Perks.lucky.name=Geluk
|
||||
Perks.lucky.bonus=[[GOLD]] ({0} met Geluks Perk)
|
||||
Perks.activationtime.name=Uithoudingsvermogen
|
||||
Smelting.Listener=Smelten:
|
||||
Commands.Description.ptp=Teleport naar een groepslid
|
||||
UpdateChecker.outdated=U gebruikt een verouderde versie van mcMMO!
|
||||
UpdateChecker.newavailable=Er is een nieuwe versie beschikbaar op BukkitDev.
|
||||
|
||||
@@ -1,116 +1,419 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**Mi\u0119kkie L\u0105dowanie**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Unikni\u0119to**
|
||||
Acrobatics.DodgeChance=[[RED]]Szansa na Unik: [[YELLOW]]{0}
|
||||
Acrobatics.Effect.0=Przewr\u00f3t
|
||||
Acrobatics.Effect.1=Redukuje lub te\u017c ca\u0142kowicie usuwa obra\u017cenia od upadku
|
||||
Acrobatics.Effect.2=\u0141agodny Przewr\u00f3t
|
||||
Acrobatics.Effect.3=Dwukrotnie bardziej efektywne niz zwykly Przewrot
|
||||
Acrobatics.Effect.4=Unik
|
||||
Acrobatics.Effect.5=Redukuje obrazenia od upadku o polowe
|
||||
Acrobatics.Effect.5=Redukuje obra\u017cenia o po\u0142owe
|
||||
Acrobatics.Listener=Akrobatyka:
|
||||
Acrobatics.Roll.Chance=[[RED]]Szansa na Przewr\u00f3t: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.GraceChance=[[RED]]Szansa na \u0141agodny Przewr\u00f3t: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**Przewr\u00f3t**
|
||||
Acrobatics.SkillName=AKROBATYKA
|
||||
Acrobatics.Skillup=[[YELLOW]]Umiejetnosc akrobatyka wzrosla o {0}. Razem ({1})
|
||||
Archery.Combat.DazeChance=[[RED]]Szansa na Oszolomienie: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=[[RED]]Szansa na Odzyskanie Strza\u0142: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=[[RED]]Dodatkowe Obra\u017cenia dla Umiej\u0119tno\u015bci: [[YELLOW]]{0}
|
||||
Archery.Effect.0=Umiej\u0119tno\u015b\u0107 Aktywna
|
||||
Archery.Effect.1=Zwi\u0119ksza obra\u017cenia zadane z \u0142uku
|
||||
Archery.Effect.2=Oszo\u0142omienie
|
||||
Archery.Effect.4=Odzyskiwanie Strza\u0142
|
||||
Archery.Effect.5=Szansa na wyci\u0105gni\u0119cie strza\u0142 z martwego cia\u0142a
|
||||
Archery.Listener=Lucznictwo
|
||||
Archery.SkillName=LUCZNICTWO
|
||||
Archery.Skillup=[[YELLOW]]Umiejetnosc lucznictwo wzrosla o {0}. Razem ({1})
|
||||
Axes.Ability.Bonus.0=Mistrzostwo pos\u0142ugiwania si\u0119 siekier\u0105
|
||||
Axes.Ability.Bonus.1={0} Bonusowych obra\u017ce\u0144
|
||||
Axes.Ability.Bonus.2=Wstrz\u0105s od Zbroi
|
||||
Axes.Ability.Bonus.3=Zadaje {0} dodatkowych obra\u017ce\u0144 dla opancerzonych cel\u00f3w
|
||||
Axes.Ability.Bonus.4=Trafienie Krytyczne
|
||||
Axes.Ability.Bonus.5=Zadaje {0} dodatkowych obra\u017ce\u0144 dla nieopancerzonych cel\u00f3w
|
||||
Axes.Ability.Lower=[[GRAY]]**CHOWASZ SIEKIERE**
|
||||
Axes.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJ\u0104 SIEKIERE**
|
||||
Axes.Combat.CritStruck=[[DARK_RED]]Trafiono cie krytycznie!
|
||||
Axes.Combat.CritChance=[[RED]]Szansa na Trafienie Krytyczne: [[YELLOW]]{0}
|
||||
Axes.Combat.CriticalHit=[[RED]]TRAFIENIE KRYTYCZNE!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**UDERZONO Z WIELK\u0104 MOC\u0104**
|
||||
Axes.Combat.GI.Struck=[[RED]]TRAFIENIE KRYTYCZNE!
|
||||
Axes.Combat.SS.Length=[[RED]]D\u0142ugo\u015bc \u0141amacza Czaszki: [[YELLOW]]{0}s
|
||||
Axes.Effect.0=\u0141amacz Czaszek
|
||||
Axes.Effect.1=Zadaje obra\u017cenia obszarowe
|
||||
Axes.Effect.2=Krytyczne Uderzenia
|
||||
Axes.Effect.3=Podwojne obrazania
|
||||
Axes.Effect.4=Mistrzostwo pos\u0142ugiwania si\u0119 siekier\u0105
|
||||
Axes.Effect.5=Dodaje bonus do obrazen
|
||||
Axes.Effect.6=Wstrz\u0105s od Zbroi
|
||||
Axes.Effect.7=Uderz z odpowiedni\u0105 si\u0142a aby przebi\u0107 zbroj\u0119
|
||||
Axes.Effect.8=Trafienie Krytyczne
|
||||
Axes.Effect.9=Zadaje dodatkowe obra\u017cenia nieopancerzonym celom
|
||||
Axes.Listener=Siekiery:
|
||||
Axes.SkillName=TOPORY
|
||||
Axes.Skillup=[[YELLOW]]Umiejetnosc scinanie wzrosla o {0}. Razem ({1})
|
||||
Axes.Skills.SS.Off=[[RED]]**\u0141amacz Czaszek si\u0119 sko\u0144czy\u0142**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\u0141amacz Czaszek AKTYWOWANY**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]\u0141amacz Czaszek [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Axes.Skills.SS.Other.Off=[[RED]]\u0141amacz Czaszek[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]\u0141amacza Czaszki!
|
||||
Axes.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 \u015bcinania wzros\u0142a o {0}. Razem ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**CHOWASZ \u0141OPAT\u0118**
|
||||
Excavation.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJ\u0104 \u0141OPAT\u0118**
|
||||
Excavation.Effect.0=Mia\u017cdz\u0105ce Wiert\u0142o
|
||||
Excavation.Effect.1=3x Szansa na znalezienie przedmiotu, 3x mno\u017cnik zdobywania do\u015bwiadczenia, +pr\u0119dko\u015b\u0107
|
||||
Excavation.Effect.2=Lowca Skarbow
|
||||
Excavation.Listener=Kopanie
|
||||
Excavation.Effect.3=Umiej\u0119tno\u015b\u0107 wykopywania skarb\u00f3w.
|
||||
Excavation.Effect.Length=[[RED]]D\u0142ugo\u015bc Mia\u017cdz\u0105cego Wiert\u0142a: [[YELLOW]]{0}s
|
||||
Excavation.Listener=Wykopaliska:
|
||||
Excavation.SkillName=KOPANIE
|
||||
Excavation.Skillup=[[YELLOW]]Umiejetnosc kopania wzrosla o {0}. Razem({1})
|
||||
Excavation.Skills.GigaDrillBreaker.Off=[[RED]]**Mia\u017cdz\u0105ce Wiert\u0142o si\u0119 sko\u0144czy\u0142o**
|
||||
Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**MIA\u017bDZ\u0104CE WIERT\u0141O AKTYWOWANE**
|
||||
Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Mia\u017cdz\u0105ce Wiert\u0142o [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]Mia\u017cdz\u0105ce Wiert\u0142o[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Mia\u017cdz\u0105ce Wiert\u0142o!
|
||||
Excavation.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 wykopalisk wzros\u0142a o {0}. Razem({1})
|
||||
Fishing.Ability.Info=[[RED]]Magiczny \u0141owca: [[GRAY]] **Ulepsza si\u0119 wraz z rang\u0105 Poszukiwacza Skarb\u00f3w**
|
||||
Fishing.Ability.Locked.0=ZABLOKOWANY DO POZIOMU {0}+ SKILL
|
||||
Fishing.Ability.Rank=[[RED]]Ranga lowienia skarbow: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.Shake=[[RED]]Szansa na Wstrz\u0105s: [[YELLOW]]{0}
|
||||
Fishing.Ability.FD=[[RED]]Dieta Rybaka: [[YELLOW]]Ranga {0}
|
||||
Fishing.Effect.0=Lowca Skarbow (Pasywna)
|
||||
Fishing.Effect.1=\u0141owi\u0107 r\u00f3\u017cne obiekty
|
||||
Fishing.Effect.2=Magiczny Lowca
|
||||
Fishing.Effect.3=Znajdowanie Zakletych Przedmiotow
|
||||
Fishing.ItemFound=[[GRAY]]Treasure found!
|
||||
Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
|
||||
Fishing.SkillName=LOWIENIE RYB
|
||||
Fishing.Effect.4=Potrz\u0105\u015bni\u0119cie (przeciwko jednostkom)
|
||||
Fishing.Effect.5=Okradaj potwory z przedmiot\u00f3w u\u017cywaj\u0105c w\u0119dki.
|
||||
Fishing.Effect.6=Dieta Rybaka
|
||||
Fishing.Effect.7=Zwi\u0119ksza nasycenie posi\u0142k\u00f3w (ryby)
|
||||
Fishing.Enchant.Chance=[[RED]]Szanse na Magicznego \u0141owc\u0119: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] Bonus od Deszczu
|
||||
Fishing.ItemFound=[[GRAY]]Znaleziono skarb!
|
||||
Fishing.Listener=Rybactwo
|
||||
Fishing.MagicFound=[[GRAY]]Wyczuwasz w pobli\u017cu \u017ar\u00f3d\u0142o magii...
|
||||
Fishing.SkillName=RYBACTWO
|
||||
Fishing.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 \u0142owienia wzros\u0142a o {0}. Razem ({1})
|
||||
Herbalism.Ability.DoubleDropChance=[[RED]]Szansa na Podw\u00f3jny Drop: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTe.Length=[[RED]]D\u0142ugo\u015b\u0107 ?Green Terra?: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=[[RED]]Potrzebujesz wi\u0119cej nasion aby u\u017cy\u0107 Zielonego \u017bycia.
|
||||
Herbalism.Ability.GTh.Chance=[[RED]]Szansa na Zielony Palec: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=[[GREEN]]**ZIELONY PALEC SI\u0118 NIE UDA\u0141**
|
||||
Herbalism.Ability.GTh.Stage=[[RED]]Etap Zielonego Dotyku: [[YELLOW]] Ro\u015bliny rosn\u0105 w etapie {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**ZIELONY PALEC**
|
||||
Herbalism.Ability.Lower=[[GRAY]]**CHOWASZ SWOJ\u0104 MOTYKE**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ MOTYKE**
|
||||
Herbalism.Effect.0=Zielone \u017bycie (ZDOLNO\u015a\u0106)
|
||||
Herbalism.Effect.1=Rozprzestrzenia \u017cycie na powierzchni, 3x wi\u0119ksza szansa na zdobycie przedmiot\u00f3w
|
||||
Herbalism.Effect.2=Zielony palec (Pszenica)
|
||||
Herbalism.Effect.3=Automatycznie zasadza ro\u015bliny podczas ich zbierania
|
||||
Herbalism.Effect.4=Zielony Dotyk (Brukowiec/Kamienna Ceg\u0142a/Ziemia)
|
||||
Herbalism.Effect.5=Oplata ceg\u0142y zieleni\u0105, lub te\u017c wspomaga rozw\u00f3j trawy.
|
||||
Herbalism.Effect.6=Dieta Farmerska
|
||||
Herbalism.Effect.7=Zwi\u0119ksza nasycenie posi\u0142k\u00f3w
|
||||
Herbalism.Effect.8=Podw\u00f3jny Drop (Wszystkie Zielska)
|
||||
Herbalism.Effect.9=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Herbalism.Listener=Zielarstwo
|
||||
Herbalism.SkillName=ZIELARSTWO
|
||||
Herbalism.Skills.GTe.Off=[[RED]]**?Green Terra? si\u0119 sko\u0144czy\u0142**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**?GREEN TERRA? AKTYWOWANA**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]?Green Terra?[[GREEN]]jest ju\u017c gotowa!
|
||||
Herbalism.Skills.GTe.Other.Off=[[RED]]?Green Terra?[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]?Green Terra?!
|
||||
Herbalism.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 zielarstwa wzros\u0142a o {0}. Ca\u0142kowicie ({1})
|
||||
Mining.Ability.Length=[[RED]]D\u0142ugo\u015bc Super Kopacza: [[YELLOW]]{0}s
|
||||
Mining.Ability.Locked.0=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Locked.1=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Locked.2=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Mining.Ability.Lower=[[GRAY]]**CHOWASZ SW\u00d3J KILOF**
|
||||
Mining.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJA SIEKIERE**
|
||||
Mining.Effect.0=Super \u0141amacz (ZDOLNO\u015a\u0106)
|
||||
Mining.Effect.1=Szybko\u015b\u0107+, Szansa potr\u00f3jnego dropa
|
||||
Mining.Effect.2=Podwojny Drop
|
||||
Mining.Effect.3=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Mining.Effect.4=Szybki Kopacz
|
||||
Mining.Effect.5=Bonus do wydobycia z TNT
|
||||
Mining.Effect.6=Wieksze bomby
|
||||
Mining.Effect.7=Zwieksza zasieg wybuchu TNT
|
||||
Mining.Effect.8=Mistrzostwo w pos\u0142ugiwaniu si\u0119 materia\u0142ami wybuchowymi
|
||||
Mining.Effect.9=Zmniejsza obrazenia od explozji TNT
|
||||
Mining.Effect.Decrease=[[RED]]Redukcja Obra\u017ce\u0144 od Materia\u0142\u00f3w Wybuchowych: [[YELLOW]]{0}
|
||||
Mining.Effect.DropChance=[[RED]]Szansa na Podw\u00f3jny Drop: [[YELLOW]]{0}
|
||||
Mining.Listener=G\u00f3rnictwo
|
||||
Mining.SkillName=GORNICTWO
|
||||
Mining.Skills.SuperBreaker.Off=[[RED]]**Super \u0141amacz si\u0119 sko\u0144czy\u0142**
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER \u0141AMACZ AKTYWOWANY**
|
||||
Mining.Skills.SuperBreaker.Other.Off=[[RED]]Super Kopacz[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Super Kopacza!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Super \u0141amacz [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Mining.Skillup=[[YELLOW]]Umiejetnosc Gornictwa wzrosla o {0}. Calkowicie ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Radius.Increase=[[RED]]Zasi\u0119g zwi\u0119kszony o: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=[[RED]]Szybki Kopacz: [[YELLOW]] Ranga {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Szybkiego Kopacza!
|
||||
Mining.Blast.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]B\u0142yskawiczny Kopacz [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Repair.AnvilPlaced.Spout1=[mcMMO] Kowad\u0142o Postawione
|
||||
Repair.AnvilPlaced.Spout2=Kliknij PPM aby naprawi\u0107!
|
||||
Repair.Effect.0=Naprawa
|
||||
Repair.Effect.1=Naprawa Narz\u0119dzi i Pancerza
|
||||
Repair.Effect.10=Naprawa Z\u0142ota ({0}+ SKILL)
|
||||
Repair.Effect.11=Naprawa Z\u0142otych Narz\u0119dzi i Pancerza
|
||||
Repair.Effect.12=Naprawa \u017belaza ({0}+ SKILL)
|
||||
Repair.Effect.13=Naprawa \u017belaznych Narz\u0119dzi i Pancerza
|
||||
Repair.Effect.14=Naprawa Kamienia ({0}+ SKILL)
|
||||
Repair.Effect.15=Naprawa Kamiennych Narz\u0119dzi
|
||||
Repair.Effect.2=Mistrzostwo napraw
|
||||
Repair.Effect.3=Zwi\u0119kszono ilo\u015b\u0107 napraw
|
||||
Repair.Effect.4=Super Naprawa
|
||||
Repair.Effect.5=Podw\u00f3jnie efektywne
|
||||
Repair.Effect.5=Podw\u00f3jnia efektywno\u015b\u0107
|
||||
Repair.Effect.6=Naprawa Diamentu ({0}+ SKILL)
|
||||
Repair.Effect.7=Naprawa diamentowych narzedzi i pancerza
|
||||
Repair.Effect.8=Kowalstwo Ezoteryczne
|
||||
Repair.Effect.9=Naprawa rzeczy magicznych
|
||||
Repair.Effect.16=Odzyskiwanie ({0}+ SKILL)
|
||||
Repair.Effect.17=Odzyskiwanie Narz\u0119dzi i Pancerza
|
||||
Repair.Error=[[DARK_RED]]mcMMO napotka\u0142 problem pr\u00f3buj\u0105c naprawi\u0107 ten przedmiot!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]Postawi\u0142e\u015b kowad\u0142o - kowad\u0142a s\u0142u\u017c\u0105 do naprawiania narz\u0119dzi i zbroi.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]Postawi\u0142e\u015b kowad\u0142o Odzysku, u\u017cyj go aby Odzyska\u0107 narz\u0119dzia oraz zbroj\u0119.
|
||||
Repair.Listener=Naprawa:
|
||||
Repair.SkillName=Naprawa
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Masz za niski poziom aby naprawiac zloto.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Masz za niski poziom aby naprawic kamien.
|
||||
Repair.Skills.Super.Chance=[[RED]]Szansa na Super Naprawe: [[YELLOW]]{0}
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]]Nie masz odpowiedniego poziomu aby Odzyskiwa\u0107 przedmioty.
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 diament.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 z\u0142oto.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]Masz za niski poziom aby naprawia\u0107 \u017celazo.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Masz za niski poziom aby naprawi\u0107 kamie\u0144.
|
||||
Repair.Skills.Adept=[[RED]]Musisz mie\u0107 [[YELLOW]]{0}[[RED]] poziom \u017ceby naprawi\u0107 [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Bu\u0142ka z mas\u0142em.
|
||||
Repair.Skills.FullDurability=[[GRAY]]Ten przedmiot jest ju\u017c w pe\u0142ni sprawny.
|
||||
Repair.Skills.SalvageSuccess=[[GRAY]]Przedmiot Odzyskany!
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]Nie mo\u017cesz odzyska\u0107 uszkodzonych przedmiot\u00f3w.
|
||||
Repair.Skills.Mastery=[[RED]]Mistrzostwo Napraw: [[YELLOW]] {0} dodatkowej wytrzyma\u0142o\u015bci dla przedmiot\u00f3w
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]Nie mo\u017cesz naprawia\u0107 zestackowanych przedmiot\u00f3w.
|
||||
Repair.Skills.Super.Chance=[[RED]]Szansa Super Naprawy: [[YELLOW]]{0}
|
||||
Repair.Skillup=[[YELLOW]]Umiejetnosc naprawiania wzrosla o {0}. Razem ({1})
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Szansa na zdegradowanie: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]AF Szanse na sukces: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=[[RED]]Energia magiczna tego przedmiotu spad\u0142a.
|
||||
Repair.Arcane.Fail=[[RED]]Moc Arcane na zawsze opuscila przedmiot !
|
||||
Repair.Arcane.Lost=[[RED]]Nie posiada\u0142e\u015b wystarczaj\u0105co du\u017co do\u015bwiadczenia aby zatrzyma\u0107 ulepszenia.
|
||||
Repair.Arcane.Perfect=[[GREEN]]Nasyci\u0142e\u015b ten przedmiot magiczn\u0105 moc\u0105.
|
||||
Repair.Arcane.Rank=[[RED]]Kowalstwo Ezoteryczne: [[YELLOW]]Ranga {0}/4
|
||||
Swords.Ability.Lower=[[GRAY]]**CHOWASZ SW\u00d3J MIECZ**
|
||||
Swords.Ability.Ready=[[GREEN]] **PODNIOSLES SWOJ MIECZ**
|
||||
Swords.Combat.Bleed.Chance=[[RED]]Szansa na Krwawienie: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=[[RED]]D\u0142ugo\u015bc Krwotoku: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]NOTE: [[YELLOW]]1 tykni\u0119cie zdarza si\u0119 co 2 sekundy
|
||||
Swords.Combat.Bleeding.Started=[[DARK_RED]] Krwawisz!
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]Krwawienie [[GREEN]]usta\u0142o[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**PRZECIWNIK KRAWI**
|
||||
Swords.Combat.Counter.Chance=[[RED]]Szansa na Kontratak: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]Kontratak!
|
||||
Swords.Combat.Countered=[[GREEN]]**KONTR-ATAK**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]Zosta\u0142e\u015b powalony przez Z\u0104BKOWANY ATAK!
|
||||
Swords.Effect.0=Kontratak
|
||||
Swords.Effect.2=Z\u0105bkowany Atak (ZDOLNO\u015a\u0106)
|
||||
Swords.Effect.4=Z\u0105bkowany Atak spowodowa\u0142 krwawienie
|
||||
Swords.Effect.6=Krwawienie
|
||||
Swords.Effect.7=Spowodowano krwawienie
|
||||
Swords.Listener=Miecze
|
||||
Swords.SkillName=MIECZE
|
||||
Swords.Skills.SS.Off=[[RED]]**Z\u0105bkowany Atak si\u0119 sko\u0144czy\u0142**
|
||||
Swords.Skills.SS.On=[[GREEN]]**?Z\u0104BKOWANY? ATAK AKTYWOWANY**
|
||||
Swords.Skills.SS.Refresh=[[GREEN]]Tw\u00f3j [[YELLOW]]Z\u0105bkowany Atak [[GREEN]]jest ju\u017c dost\u0119pny!
|
||||
Swords.Skills.SS.Other.Off=[[RED]]Z\u0105bkowany Atak[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Z\u0105bkowanego Ciosu!
|
||||
Swords.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 Pos\u0142ugiwania si\u0119 Mieczem wzros\u0142a o {0}. Ca\u0142kowicie ({1})
|
||||
Swords.SS.Length=[[RED]]D\u0142ugo\u015b\u0107 Z\u0105bkowanego Ataku: [[YELLOW]]{0}s
|
||||
Taming.Ability.Bonus.0=Przyjazne dla \u015brodowiska
|
||||
Taming.Ability.Bonus.1=Wilki unikn\u0119\u0142y zagro\u017cenia
|
||||
Taming.Ability.Bonus.2=Grube Futro
|
||||
Taming.Ability.Bonus.4=Odporno\u015b\u0107 na wstrz\u0105sy
|
||||
Taming.Ability.Bonus.6=Zaostrzone Pazury
|
||||
Taming.Ability.Bonus.7=+{0} Obrazen
|
||||
Taming.Ability.Bonus.8=Serwis FastFood\'u
|
||||
Taming.Ability.Bonus.9={0} Szansa przy ataku na odnowienie \u017cycia
|
||||
Taming.Ability.Locked.0=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.1=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.2=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.3=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Ability.Locked.4=ZABLOKOWANE DO POZIOMU {0}+ SKILL
|
||||
Taming.Combat.Chance.Gore=[[RED]]Szansa na Brutalno\u015b\u0107: [[YELLOW]]{0}
|
||||
Taming.Effect.0=Wiedza o zwierz\u0119tach
|
||||
Taming.Effect.1=Ko\u015b\u0107 - przyci\u0105ga uwag\u0119 wilk\u00f3w i ocelot\u00f3w
|
||||
Taming.Effect.10=Odporno\u015b\u0107 na wstrz\u0105sy
|
||||
Taming.Effect.11=Redukcja obra\u017ce\u0144 wybuchowych
|
||||
Taming.Effect.12=Wezwanie Dzikich
|
||||
Taming.Effect.13=Przywo\u0142uje zwierze po twojej stronie
|
||||
Taming.Effect.14=[[GRAY]]COTW (Ocelot): Kucnij i kliknij LPM {0} z ryb\u0105 w r\u0119ce
|
||||
Taming.Effect.15=[[GRAY]]COTW (Wolf): Kucnij i kliknij LPM {0} z ko\u015bci\u0105 w d\u0142oni
|
||||
Taming.Effect.16=Serwis FastFood\'u
|
||||
Taming.Effect.17=Szansa dla wilk\u00f3w na odnowienie \u017cycia przy ataku
|
||||
Taming.Effect.2=Brutalno\u015b\u0107
|
||||
Taming.Effect.3=Cios krytyczny kt\u00f3ry wywo\u0142uje krwawienie
|
||||
Taming.Effect.4=Zaostrzone Pazury
|
||||
Taming.Effect.5=Dodatkowe Obra\u017cenia
|
||||
Taming.Effect.6=Przyjazne dla \u015brodowiska
|
||||
Taming.Effect.7=Strach przed Kaktusami/Law\u0105, Odporno\u015b\u0107 obra\u017cenia ze spadania
|
||||
Taming.Effect.8=Grube Futro
|
||||
Taming.Effect.9=Redukcja Obra\u017ce\u0144, Odporno\u015b\u0107 na ogie\u0144
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]Tw\u00f3j wilk biegnie do ciebie...
|
||||
Taming.Listener=Oswajanie:
|
||||
Taming.Skillup=[[YELLOW]]Umiejetnosc oswajania wzrosla o {0}. Razem ({1})
|
||||
Taming.SkillName=OSWAJANIE
|
||||
Taming.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 oswajania wzros\u0142a o {0}. Razem ({1})
|
||||
Taming.Summon.Complete=[[GREEN]]Przywo\u0142ywanie uko\u0144czone
|
||||
Taming.Summon.Fail.Ocelot=[[RED]]Obecnie masz przy sobie zbyt du\u017co ocelot\u00f3w aby przywo\u0142a\u0107 kolejnego.
|
||||
Taming.Summon.Fail.Wolf=[[RED]]Obecnie masz przy sobie zbyt du\u017co wilk\u00f3w aby przywo\u0142a\u0107 kolejnego.
|
||||
Unarmed.Ability.Berserk.Length=[[RED]]D\u0142ugo\u015b\u0107 Berserka: [[YELLOW]]{0}s
|
||||
Unarmed.Ability.Bonus.0=Styl \u017belaznej D\u0142oni
|
||||
Unarmed.Ability.Bonus.1=Ulepszenie obra\u017ce\u0144 +{0}
|
||||
Unarmed.Ability.Chance.ArrowDeflect=[[RED]]Szansa na Odbicie Strza\u0142y: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=[[RED]]Szansa na Rozbrojenie: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=[[RED]]Tw\u00f3j przeciwnik ma \u017celazny u\u015bcisk!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]Tw\u00f3j \u017belazny Uchwyt uchroni\u0142 ci\u0119 przed Rozbrojeniem!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**OPUSZCZASZ SWOJE PI\u0118\u015aCI**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**PRZYGOTOWUJESZ SWOJE PIESCI**
|
||||
Unarmed.Effect.0=Berserk (Zdolnosc)
|
||||
Unarmed.Effect.1=+50% DMG, Niszczy slabe materialy
|
||||
Unarmed.Effect.2=Rozbrojenie
|
||||
Unarmed.Effect.3=Rozbraja przeciwnika z przedmiotu trzymanego przez niego w r\u0119ku
|
||||
Unarmed.Effect.4=Styl zelaznego ramienia
|
||||
Unarmed.Effect.5=Wzmacnia twoj\u0105 d\u0142o\u0144 w czasie
|
||||
Unarmed.Effect.6=Odbicie strzaly
|
||||
Unarmed.Effect.7=Odbijanie strzal
|
||||
Unarmed.Listener=Bezbronny:
|
||||
Unarmed.Listener=NIEUZBROJONY
|
||||
Unarmed.SkillName=NIEUZBROJONY
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**Berserk si\u0119 sko\u0144czy\u0142**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERK AKTYWOWANY**
|
||||
Unarmed.Skills.Berserk.Other.Off=[[RED]]Berserk[[GREEN]] si\u0119 sko\u0144czy\u0142 [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Berserka!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Berserka [[GREEN]]jest ju\u017c dost\u0119pna!
|
||||
Unarmed.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 boksowania zwi\u0119kszona o {0}. Ca\u0142kowicie ({1})
|
||||
Woodcutting.Ability.0=Dmucharka do li\u015bci
|
||||
Woodcutting.Ability.1=Zdmuchuje li\u015bcie
|
||||
Woodcutting.Ability.Chance.DDrop=[[RED]]Szansa na Dwukrotny Drop: [[YELLOW]]{0}
|
||||
Woodcutting.Ability.Length=[[RED]]D\u0142ugo\u015bc Powalacza Drzew: [[YELLOW]]{0}s
|
||||
Woodcutting.Ability.Locked.0=ZABLOKOWANY DO POZIOMU {0}+ SKILL
|
||||
Woodcutting.Effect.0=Powalacz Drzew
|
||||
Woodcutting.Effect.1=Sprawia, i\u017c drzewa eksploduj\u0105
|
||||
Woodcutting.Effect.2=Dmucharka do li\u015bci
|
||||
Woodcutting.Effect.3=Zdmuchuje li\u015bcie
|
||||
Woodcutting.Effect.4=Podwojny Drop
|
||||
Woodcutting.Effect.5=Podwaja ilo\u015b\u0107 zdobywanych przedmiot\u00f3w
|
||||
Woodcutting.Listener=\u015aCINANIE DRZEW
|
||||
Woodcutting.SkillName=\u015aCINANIE DRZEW
|
||||
Woodcutting.Skills.TreeFeller.Off=[[RED]]**Powalacz Drzew si\u0119 sko\u0144czy\u0142**
|
||||
Woodcutting.Skills.TreeFeller.On=[[GREEN]]**POWALACZ DRZEW AKTYWOWANY**
|
||||
Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Twoja zdolno\u015b\u0107 [[YELLOW]]Powalacz Drzew [[GREEN]] jest ju\u017c dost\u0119pna!
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=[[RED]]Powalenie Drzewa[[GREEN]] si\u0119 sko\u0144czy\u0142o [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] u\u017cy\u0142 [[RED]]Powalacza Drzew!
|
||||
Woodcutting.Skills.TreeFeller.Splinter=[[RED]]TWOJA SIEKIERA ROZPAD\u0141A SI\u0118 NA DRZAZGI!
|
||||
Woodcutting.Skills.TreeFellerThreshold=[[RED]]To drzewo jest zbyt du\u017ce!
|
||||
Woodcutting.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 \u015bcinania wzros\u0142a o {0}. Razem ({1})
|
||||
Ability.Generic.Refresh=[[GREEN]]**UMIEJ\u0118TNO\u015aCI DOST\u0118PNE!**
|
||||
Ability.Generic.Template.Lock=[[GRAY]]{0}
|
||||
Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY**
|
||||
Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH**
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]\u017bycie ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]**KRWOTOK**
|
||||
Combat.StruckByGore=[[RED]]**WYKRWAWIENIE**
|
||||
Combat.StruckByGore=[[RED]]**WYKRWAWIASZ SI\u0118**
|
||||
Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony.
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony.
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]Otrzyma\u0142e\u015b {0} poziom\u00f3w we wszystkich dziedzinach!
|
||||
Commands.addlevels.AwardAll.2=[[RED]]Wszystkie dziedziny zosta\u0142y zmienione na poziom {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]Zdoby\u0142e\u015b {0} poziom\u00f3w w dziedzinie {1}!
|
||||
Commands.addlevels.AwardSkill.2=[[RED]]{0} zosta\u0142 zmieniony dla {1}.
|
||||
Commands.addxp.AwardAll=[[GREEN]]Otrzyma\u0142e\u015b {0} XP\'a we wszystkich dziedzinach!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]Otrzyma\u0142e\u015b {0} XP\'a we dziedzinie {1}!
|
||||
Commands.Ability.Off=Umiej\u0119tno\u015b\u0107 wy\u0142\u0105czona [[RED]]
|
||||
Commands.Ability.On=Umiej\u0119tno\u015b\u0107 w\u0142\u0105czona [[GREEN]]
|
||||
Commands.AdminChat.Off=Czat tylko dla adminow [[RED]] Wylaczony
|
||||
Commands.AdminChat.On=Czat tylko dla adminow [[RED]] W\u0142\u0105czony
|
||||
Commands.AdminToggle=[[RED]]- Wlacza/wylacza czat adminow
|
||||
Commands.Chat.Console=\"Konsola\"
|
||||
Commands.Disabled=[[RED]]Komenda ta jest wylaczona.
|
||||
Commands.DoesNotExist=[[RED]]Player does not exist in the database!
|
||||
Commands.Invite.Accepted=[[GREEN]]Zaproszenie zaakceptowane. Dolaczyles do grupy {0}
|
||||
Commands.DoesNotExist=[[RED]]Nie ma takiego gracza!
|
||||
Commands.GodMode.Disabled=[[YELLOW]]Nie\u015bmiertelno\u015b\u0107 wy\u0142\u0105czona
|
||||
Commands.GodMode.Enabled=[[YELLOW]]Nie\u015bmiertelno\u015b\u0107 w\u0142\u0105czona
|
||||
Commands.GodMode.Forbidden=[mcMMO] Nie\u015bmiertelno\u015b\u0107 nie jest dozwolona na tym \u015bwiecie.
|
||||
Commands.Inspect=<player> [[RED]]- Pokazuje informacje o graczu
|
||||
Commands.Invite.Accepted=[[GREEN]]Zaproszenie zaakceptowane. Do\u0142\u0105czy\u0142e\u015b do dru\u017cyny {0}
|
||||
Commands.Invite.Success=[[GREEN]]Pomyslnie wyslano zaproszenie
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- Rankingi
|
||||
Commands.mcgod=[[RED]]- Przelacz Niesmiertelnosc
|
||||
Commands.NoConsole=This command does not support console usage.
|
||||
Commands.mcc.Header=[[RED]]---[][[YELLOW]]mcMMO Komendy[[RED]][]---
|
||||
Commands.mcgod=[[RED]]- W\u0142\u0105cza/Wy\u0142\u0105cza Nie\u015bmiertelno\u015b\u0107
|
||||
Commands.mchud.Invalid=[[RED]]Nie ma takiego Typu Interfejsu.
|
||||
Commands.mcpurge.Success=[[GREEN]]Baza danych zosta\u0142a wyczyszczona!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=OSOBISTE RANKINGI=-
|
||||
Commands.mcrank.Overall=[[YELLOW]]Og\u00f3lne Statystyki[[GREEN]] - [[GOLD]]Ranga [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=[[RED]]CEL: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill=[[YELLOW]]{0}[[GREEN]] - [[GOLD]]Ranga [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Bez Rangi
|
||||
Commands.mcremove.Success=[[GREEN]]{0} zosta\u0142 usuni\u0119ty z bazy danych!
|
||||
Commands.mctop.Tip=[[GOLD]]Porada: Wpisz [[RED]]/mcrank[[GOLD]] aby zobaczy\u0107 swoje rankingi!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - Modyfikuje cel
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]Tw\u00f3j poziom w {0} zosta\u0142 zmieniony na {1}!
|
||||
Commands.mmoedit.Modified.2=[[RED]]{0} zosta\u0142 zmieniony na {1}.
|
||||
Commands.mmoupdate.Start=[[GRAY]]Zaczynam konwersje...
|
||||
Commands.mmoupdate.Finish=[[GREEN]]Konwersja uko\u0144czona!
|
||||
Commands.ModDescription=[[RED]]- Przeczytaj opis
|
||||
Commands.NoConsole=Konsola nie obs\u0142uguje tej komendy.
|
||||
Commands.Other=[[GREEN]]--POZOSTA\u0141E KOMENDY--
|
||||
Commands.Party.Accept=[[RED]]- Akceptuje zaproszenie grupy
|
||||
Commands.Party.Chat.Off=Czat wy\u0142acznie dla dru\u017cyny [[RED]]Off
|
||||
Commands.Party.Chat.On=Czat wy\u0142acznie dla dru\u017cyny w\u0142\u0105czony [[RED]]
|
||||
Commands.Party.Chat.Prefix=[[GREEN]]([[WHITE]]{0}[[GREEN]])
|
||||
Commands.Party.Commands=[[GREEN]]--KOMENDY DLA DRU\u017bYN--
|
||||
Commands.Party.Invite.0=[[RED]]ALERT: [[GREEN]]Otrzyma\u0142e\u015b zaproszenie do dru\u017cyny {0} od {1}
|
||||
Commands.Party.Kick=[[RED]]Zosta\u0142e\u015b wyrzucony z dru\u017cyny {0}!
|
||||
Commands.Party.Leave=[[RED]]Opusciles grupe
|
||||
Commands.Party.Leave=[[RED]]Opu\u015bci\u0142e\u015b dru\u017cyn\u0119.
|
||||
Commands.Party.None=[[RED]]Nie jestes w druzynie.
|
||||
Commands.Party.Quit=[[RED]]- Opuszcza obecn\u0105 dru\u017cyne
|
||||
Commands.Party.Teleport=<player> [[RED]]- Teleportacja do czlonka grupy.
|
||||
Commands.Party.Toggle=[[RED]]- W\u0142\u0105cza/Wy\u0142\u0105cza czat dla dru\u017cyn
|
||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Poziom Mocy [[YELLOW]]Ranking--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]POZIOM MOCY: [[GREEN]]{0} [[DARK_RED]]MAKSYMALNY POZIOM: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]POZIOM MOCY: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]Wszystkie twoje umiej\u0119tno\u015bci zosta\u0142y zresetowane.
|
||||
Commands.Reset.Single=[[GREEN]]Tw\u00f3j poziom w {0} zosta\u0142 zresetowany.
|
||||
Commands.Reset=[[RED]]Resetuje poziom umiej\u0119tno\u015bci do 0
|
||||
Commands.Skill.Invalid=[[RED]]Nie ma takiej umiej\u0119tno\u015bci!
|
||||
Commands.Skill.Leaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking--
|
||||
Commands.SkillInfo=/<skill> [[RED]]- Pokazuje szczegolowe informacje na temat umiejetnosci
|
||||
Commands.Stats.Self=TWOJE STATYSTYKI
|
||||
Commands.Stats=[[RED]]- Zobacz swoje statystyki
|
||||
Commands.ToggleAbility=[[RED]]- W\u0142\u0105cza/Wy\u0142\u0105cza zdolno\u015b\u0107 PPM
|
||||
Commands.Usage.1=[[RED]]W\u0142a\u015bciwa komenda to /{0} {1}
|
||||
Commands.Usage.2=[[RED]]W\u0142a\u015bciwa komenda to /{0} {1} {2}
|
||||
Commands.Usage.3=[[RED]]W\u0142a\u015bciwa komenda to /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=poziom
|
||||
Commands.Usage.Message=wiadomo\u015b\u0107
|
||||
Commands.Usage.Page=strona
|
||||
Commands.Usage.Player=gracz
|
||||
Commands.Usage.Skill=zdolno\u015b\u0107
|
||||
Commands.Usage.XP=xp
|
||||
mcMMO.NoInvites=[[RED]]Nie masz zadnych zaproszen
|
||||
Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
|
||||
mcMMO.NoPermission=[[DARK_RED]]Nie wystarczaj\u0105ce uprawnienia.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]Je\u015bli nie posiadasz dost\u0119pu do zdolno\u015bci, nie b\u0119dzie ona tu ukazana.
|
||||
Party.Forbidden=[mcMMO] Dru\u017cyny nie s\u0105 dozwolone na tym \u015bwiecie
|
||||
Party.InvalidName=[[DARK_RED]]Nie istnieje dru\u017cyna o takiej nazwie!
|
||||
Party.IsLocked=[[RED]]Ta grupa jest juz zamknieta!
|
||||
Party.IsntLocked=[[RED]]Ta grupa nie jest zamkni\u0119ta!
|
||||
Party.Locked=[[RED]]Grupa jest zamknieta, tylko wlasciciel moze dodac graczy.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} nie jest czlonkiem twojej grupy.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} nie jest cz\u0142onkiem twojej dru\u017cyny.
|
||||
Party.NotOwner=[[DARK_RED]]Nie jeste\u015b liderem grupy.
|
||||
Party.Owner.New=[[GREEN]]{0} jest nowym liderem grupy.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]Nie jeste\u015b ju\u017c liderem grupy.
|
||||
Party.Owner.Player=[[GREEN]]Jeste\u015b teraz liderem grupy.
|
||||
Party.Password.Incorrect=[[RED]]Has\u0142o grupy nieprawid\u0142owe.
|
||||
Party.Password.Set=[[GREEN]]Haslo grupy zmienione na: {0}
|
||||
Party.Player.Invalid=[[RED]]Nie ma takiego gracza.
|
||||
Party.Teleport.Dead=[[RED]]Nie mo\u017cesz si\u0119 teleportowa\u0107 do zmar\u0142ego gracza.
|
||||
Party.Teleport.Target=[[GREEN]]{0} zostal teleportowany do Ciebie.
|
||||
Party.Teleport.Player=[[GREEN]]Teleportowa\u0142e\u015b si\u0119 do {0}.
|
||||
Party.Teleport.Self=[[RED]]Nie mo\u017cesz teleportowa\u0107 si\u0119 do samego siebie!
|
||||
Party.Teleport.Target=[[GREEN]]{0} teleportowa\u0142 si\u0119 do Ciebie.
|
||||
Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
|
||||
Commands.XPGain.Acrobatics=Upadanie
|
||||
Commands.XPGain.Archery=Atak potworow
|
||||
Commands.XPGain.Axes=Atak potworow
|
||||
Commands.XPGain.Excavation=Kopanie i odnajdywanie skarb\u00f3w
|
||||
Commands.XPGain.Fishing=Rybactwo
|
||||
Commands.XPGain.Herbalism=Zbieranie Zi\u00f3\u0142
|
||||
@@ -118,25 +421,77 @@ Commands.XPGain.Mining=Wydobywa Kamie\u0144 i Surowce
|
||||
Commands.XPGain.Repair=Naprawianie
|
||||
Commands.XPGain.Swords=Atak potworow
|
||||
Commands.XPGain.Taming=Oswoj zwierze, lub walcz ze swoimi wilkami.
|
||||
Commands.XPGain.Unarmed=Atak potworow
|
||||
Commands.XPGain.Woodcutting=\u015acina drzewa
|
||||
Commands.XPGain=[[DARK_GRAY]Zdobyte do\u015bwiadczenie: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
|
||||
Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
|
||||
Commands.xplock.locked=[[GOLD]]Tw\u00f3j pasek XP\'a jest zablokowany {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Tw\u00f3j pasek XP\'a jest odblokowany {0}!
|
||||
Commands.xprate.modified=[[RED]]Modyfikator zdobywania do\u015bwiadczenia zosta\u0142 zmieniony na {0}
|
||||
Commands.xprate.over=[[GOLD]]Event[[RED]] zwi\u0119kszonego zdobywania XP\'a jest zako\u0144czony!
|
||||
Commands.xprate.proper.0=[[RED]]Aby zmieni\u0107 mno\u017cnik XP - /xprate <mno\u017cnik> <true/false>
|
||||
Commands.xprate.proper.1=[[RED]]Aby przywr\u00f3ci\u0107 normalny mno\u017cnik zdobywania XP\'a - /xprate reset
|
||||
Commands.xprate.proper.2=[[RED]]Wpisz true/false aby okre\u015bli\u0107 czy jest to EVENT czy te\u017c nie
|
||||
Commands.xprate.started.0=[[GOLD]]EVENT zwi\u0119kszonego zdobywania XP\'a w\u0142a\u015bnie si\u0119 zacz\u0105\u0142!
|
||||
Commands.xprate.started.1=[[GOLD]]Mno\u017cnik zdobywania XP\'a wynosi {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO is currently in an XP rate event! XP rate is {0}x!
|
||||
Effects.Effects=EFEKTY
|
||||
Effects.Level=[[DARK_GRAY]]Poziom: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenie[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Acrobatics=[[DARK_AQUA]]Akrobatyka:\n[[YELLOW]]Akrobatyka to sztuka poruszania si\u0119.\n[[YELLOW]]Zapewnia ona bonusy w trakcie walki a tak\u017ce w trakcie poruszania si\u0119..\n\n[[DARK_AQUA]]Zdobywanie XP\'a:\n[[YELLOW]]Aby zdoby\u0107 XP\'a w tej dziedzinie musisz wykona\u0107 unik\n[[YELLOW]]w trakcie walki lub te\u017c przetrwa\u0107 upadek z du\u017cej wysoko\u015bci.\n\n[[DARK_AQUA]]Jak dzia\u0142aj\u0105 przewroty?\n[[YELLOW]]Masz szans\u0119 podczas spadania aby znegowa\u0107 obra\u017cenia od\n[[YELLOW]]upadku. Mo\u017cesz tak\u017ce w\u0142\u0105czy\u0107 skradanie w trakcie spadania\n[[YELLOW]]aby podwoi\u0107 twoj\u0105 szans\u0119 na przewr\u00f3t.\n[[YELLOW]]W\u0142\u0105czenie skradania w trakcie spadania mo\u017ce wywo\u0142ac \u0141agodny Przewr\u00f3t.\n[[YELLOW]]\u0141agodne przewroty s\u0105 podobne do zwyczajnych przewrot\u00f3w, jednak\u017ce\n[[YELLOW]]zdarzaj\u0105 si\u0119 dwukrotnie cz\u0119\u015bciej oraz redukuj\u0105 wi\u0119cej obra\u017ce\u0144.\n[[YELLOW]]Szansa na przewr\u00f3t zale\u017cy od twojego poziomu w akrobatyce.\n\n[[DARK_AQUA]]Jak dzia\u0142a unik?\n[[YELLOW]]Unik to pasywna mo\u017cliwo\u015b\u0107 zredukowania\n[[YELLOW]]w po\u0142owie obra\u017ce\u0144 wywo\u0142anych w walce.\n[[YELLOW]]Szansa na unik zale\u017cy od twojego poziomu w akrobatyce.
|
||||
Guides.Archery=[[DARK_AQUA]]O \u0141ucznictwie:\n[[YELLOW]]\u0141ucznictwo polega na strzelaniu z \u0142uku.\n[[YELLOW]]Zapewnia ono wiele bonus\u00f3w w trakcie gry, tak jak\n[[YELLOW]]zwi\u0119kszenie obra\u017ce\u0144, kt\u00f3re wzrasta wraz z twoim\n[[YELLOW]]poziomem oraz umiej\u0119tno\u015bciami. Na dodatek mo\u017cesz\n[[YELLOW]]odzyska\u0107 cz\u0119\u015b\u0107 swych strza\u0142 z zw\u0142ok przeciwnik\u00f3w.\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need to shoot mobs or\n[[YELLOW]]other players.\n[[DARK_AQUA]]How does Skill Shot work?\n[[YELLOW]]Skill Shot provides additional damage to your shots.\n[[YELLOW]]The bonus damage from Skill Shot increases as you\n[[YELLOW]]level in Archery.\n[[YELLOW]]With the default settings, your archery damage increases 10%\n[[YELLOW]]every 50 levels, to a maximum of 200% bonus damage.\n[[DARK_AQUA]]How does Daze work?\n[[YELLOW]]You have a passive chance to daze other players when\n[[YELLOW]]you shoot them. When Daze triggers it forces your opponents\n[[YELLOW]]to look straight up for a short duration.\n[[YELLOW]]A Daze shot also deals an additional 4 damage (2 hearts).\n[[DARK_AQUA]]How does Arrow Retrieval work?\n[[YELLOW]]You have a passive chance to retrieve some of your arrows\n[[YELLOW]]when you kill a mob with your bow.\n[[YELLOW]]This chance increases as you level in Archery.\n[[YELLOW]]By default, this ability increases by 0.1% per level, up to 100%\n[[YELLOW]]at level 1000.
|
||||
Guides.Axes=Guide coming soon...
|
||||
Guides.Excavation=[[DARK_AQUA]]About Excavation:\n[[YELLOW]]Excavation is the act of digging up dirt to find treasures.\n[[YELLOW]]By excavating the land you will find treasures.\n[[YELLOW]]The more you do this the more treasures you can find.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you must dig with a shovel in hand.\n[[YELLOW]]Only certain materials can be dug up for treasures and XP.\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Grass, Dirt, Sand, Clay, Gravel, Mycelium, Soul Sand\n\n[[DARK_AQUA]]How to use Giga Drill Breaker:\n[[YELLOW]]With a shovel in hand right click to ready your tool.\n[[YELLOW]]Once in this state you have about 4 seconds to make\n[[YELLOW]]contact with Excavation compatible materials this will\n[[YELLOW]]activate Giga Drill Breaker.\n[[DARK_AQUA]]What is Giga Drill Breaker?\n[[YELLOW]]Giga Drill Breaker is an ability with a cooldown\n[[YELLOW]]tied to Excavation skill. It triples your chance\n[[YELLOW]]of finding treasures and enables instant break\n[[YELLOW]]on Excavation materials.\n\n[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it\'s\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]Just keep in mind that the higher your Excavation skill\n[[YELLOW]]is, the more treasures that can be found.\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.\n[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
Guides.Available=[[DARK_AQUA]]Przewodnik dla {0} jest dost\u0119pny - wpisz /{1} ? [strona]
|
||||
Guides.Excavation=[[DARK_AQUA]]Wykopaliska:\n[[YELLOW]]Wykopaliska umo\u017cliwiaj\u0105 znalezienie skarb\u00f3w.\n[[YELLOW]]Przekopywuj\u0105c ziemie mo\u017cesz znale\u017a\u0107 przer\u00f3\u017cne skarby.\n[[YELLOW]]Im wi\u0119cej przekopiesz ziemi tym wi\u0119cej znajdziesz skarb\u00f3w.\n\n[[DARK_AQUA]]Zdobywanie XP\'a:\n[[YELLOW]]Aby zdoby\u0107 XP\'a w tej dziedzinie musisz kopa\u0107 \u0142opat\u0105.\n[[YELLOW]]Lecz tylko kompatybilne materia\u0142y dadz\u0105 ci XP\'a oraz skarby.\n\n[[DARK_AQUA]]Kompatybilne materia\u0142y:\n[[YELLOW]]Trawa, Ziemia, Piasek, Glina, \u017bwir, Grzybnia, Piasek Dusz\n\n[[DARK_AQUA]]Jak u\u017cywa\u0107 Ogromnej Wiertarki:\n[[YELLOW]]Trzymaj\u0105c \u0142opat\u0119 przyci\u015bnij PPM aby przygotowa\u0107 zdolno\u015b\u0107.\n[[YELLOW]]Od tej chwili masz 4 sekundy na u\u017cycie zdolno\u015bci \n[[YELLOW]]poprzez kopanie w ziemi.\n\n[[DARK_AQUA]]Czym\u017ce jest Ogromna Wiertarka?\n[[YELLOW]]Ogromna Wiertarka to zdolno\u015b\u0107 aktywowana\n[[YELLOW]]przydatna podczas wykopalisk. Potraja ona twoj\u0105 szanse\n[[YELLOW]]na znalezienie skarb\u00f3w a tak\u017ce natychmiastowo\n[[YELLOW]]prze\u0142amuje wi\u0119kszo\u015b\u0107 blok\u00f3w.\n\n[[DARK_AQUA]]Jak dzia\u0142a zdobywanie skarb\u00f3w?\n[[YELLOW]]Ka\u017cdy skarb kt\u00f3ry mo\u017cna znale\u017a\u0107\n[[YELLOW]]wymaga danego poziomu w danej umiej\u0119tno\u015bci, \n[[YELLOW]]kt\u00f3ry jednak nie jest jasno okre\u015blony dla graczy.\n[[YELLOW]]Dlatego te\u017c warto wiedzie\u0107 , i\u017c\n[[YELLOW]]im wi\u0119kszy masz poziom w owej umiej\u0119tno\u015bci,\n[[YELLOW]]tym wi\u0119cej rodzaj\u00f3w skarb\u00f3w mo\u017cesz znale\u017a\u0107.\n[[YELLOW]]Jednak\u017ce warto te\u017c pami\u0119ta\u0107, \u017ce\n[[YELLOW]]w ka\u017cdym materiale mo\u017cesz znale\u017a\u0107 inny skarb.\n[[YELLOW]]M\u00f3wi\u0105c pro\u015bciej - mo\u017cesz znale\u017a\u0107 co\u015b innego kopi\u0105c\n[[YELLOW]]w piasku ni\u017c kopi\u0105c w ziemi.\n\n[[DARK_AQUA]]Dodatkowe informacje:\n[[YELLOW]]Lista skarb\u00f3w jakie mo\u017cesz znale\u017a\u0107\n[[YELLOW]]jest w pe\u0142ni konfigurowalna, a zatem\n[[YELLOW]]to jaki skarb mo\u017cesz zdoby\u0107,\n[[YELLOW]]zale\u017cy wy\u0142\u0105cznie od serwera.
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Przewodnik[[GOLD]]=-
|
||||
Guides.Mining=[[DARK_AQUA]]About Mining:\n[[YELLOW]]Mining consists of mining stone and ores. It provides bonuses\n[[YELLOW]]to the amount of materials dropped while mining.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you must mine with a pickaxe in hand.\n[[YELLOW]]Only certain blocks award XP.\n\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Stone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n[[YELLOW]]Lapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n[[YELLOW]]Glowstone, and Netherrack.\n\n[[DARK_AQUA]]How to use Super Breaker:\n[[YELLOW]]With a pickaxe in your hand, right click to ready your tool.\n[[YELLOW]]Once in this state, you have about 4 seconds to make contact\n[[YELLOW]]with Mining compatible materials, which will activate Super\n[[YELLOW]]Breaker.\n\n[[DARK_AQUA]]What is Super Breaker?\n[[YELLOW]]Super Breaker is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It triples your chance of extra items dropping and\n[[YELLOW]]enables instant break on Mining materials.\n\n[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.\n\n[[DARK_AQUA]]How does Blast Mining work?\n[[YELLOW]]Blast Mining is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It gives bonuses when mining with TNT and allows you\n[[YELLOW]]to remote detonate TNT. There are three parts to Blast Mining.\n[[YELLOW]]The first part is Bigger Bombs, which increases blast radius.\n[[YELLOW]]The second is Demolitions Expert, which decreases damage\n[[YELLOW]]from TNT explosions. The third part simply increases the\n[[YELLOW]]amount of ores dropped from TNT and decreases the\n[[YELLOW]]debris dropped.
|
||||
Guides.Page.Invalid=Niew\u0142a\u015bciwa strona!
|
||||
Guides.Swords=[[DARK_AQUA]]O mieczach:\n[[YELLOW]]Ta umiej\u0119tno\u015b\u0107 dodaje bonusy do walki mieczem ka\u017cdemu\n[[YELLOW]]walcz\u0105cemu mieczem.\n\n[[DARK_AQUA]]UZYSKIWANIE DO\u015aWIADCZENIA:\n[[YELLOW]]Uzyskiwanie do\u015bwiadczenia jest bazowane na ilo\u015bci obra\u017ce\u0144\n[[YELLOW]]zadanych potworom lub innym graczom dzier\u017c\u0105c miecz.\n\n[[DARK_AQUA]]Jak dzia\u0142aj\u0105 Ostre Ci\u0119cia\n[[YELLOW]]Ostre Ci\u0119cia s\u0105 aktywn\u0105 zdolno\u015bci\u0105, kt\u00f3r\u0105 mo\u017cesz aktywowa\u0107\n[[YELLOW]]klikaj\u0105c prawym przyciskiem myszy maj\u0105c miecz w r\u0119ku. Ta\n[[YELLOW]]zdolno\u015b\u0107 pozwala zadawa\u0107 uderzenia o zwi\u0119szonym zasi\u0119gu.\n[[YELLOW]]Zada to 25% wi\u0119cej obra\u017ce\u0144 i spowoduje krwawienie na 5 tick\u00f3w.
|
||||
Guides.Smelting=Wkrotce...
|
||||
Inspect.OfflineStats=mcMMO Stats for Offline Player [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0}
|
||||
Inspect.TooFar=[[RED]]You are too far away to inspect that player!
|
||||
Guides.Usage=[[RED]] W\u0142a\u015bciwa Komenda to /{0} ? [strona]
|
||||
Inspect.Offline=[[RED]]Nie masz odpowiednich uprawnie\u0144 aby przygl\u0105da\u0107 si\u0119 graczom offline!
|
||||
Inspect.OfflineStats=Statystyki Gracza Offline [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]Statystyki Gracza [[YELLOW]]{0}
|
||||
Inspect.TooFar=[[RED]]Jeste\u015b zbyt daleko aby przyjrze\u0107 si\u0119 temu graczowi!
|
||||
Item.ChimaeraWing.Fail=**U\u017bYCIE SKRZYD\u0141A CHIMERY NIE POWIOD\u0141O SI\u0118**
|
||||
Item.ChimaeraWing.Pass=**SKRZYD\u0141O CHIMERY**
|
||||
Item.Injured.Wait=Zosta\u0142e\u015b ostatnio ranny i musisz poczeka\u0107 aby tego u\u017cy\u0107. [[YELLOW]]({0}s)
|
||||
Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci.
|
||||
Stats.Header.Combat=[[GOLD]]-=UMIEJ\u0118TNO\u015aCI BOJOWE=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=Umiejetnosci zbierania=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=UMIEJ\u0118TNO\u015aCI ZBIERANIA=-
|
||||
Stats.Header.Misc=[[GOLD]]-=ROZNE UMIEJETNOSCI=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] Statystyki
|
||||
Perks.xp.name=Do\u015bwiadczenie
|
||||
Perks.xp.desc=Otrzymuje {0}x XP\'a.
|
||||
Perks.lucky.name=Szcz\u0119\u015bcie
|
||||
Perks.lucky.desc=Daje {0} i umiej\u0119tno\u015bciom o 33.3% lepsz\u0105 szanse na aktywacj\u0119.
|
||||
Perks.lucky.desc.login=Daje wybranym skillom i umiej\u0119tno\u015bciom o 33.3% lepsz\u0105 szanse na aktywacj\u0119.
|
||||
Perks.lucky.bonus=[[GOLD]] ({0} ze zdolno\u015bci\u0105 Szcz\u0119\u015bcia)
|
||||
Perks.cooldowns.name=Szybka Regeneracja
|
||||
Perks.cooldowns.desc=Zmniejsza czas odnowienia zdolno\u015bci o {0}.
|
||||
Perks.activationtime.name=Wytrzyma\u0142o\u015b\u0107
|
||||
Perks.activationtime.desc=Zwi\u0119ksza czas na u\u017cycie zdolno\u015bci o {0} sekund.
|
||||
Perks.activationtime.bonus=[[GOLD]] ({0}s ze zdolno\u015bci\u0105 Wytrzyma\u0142o\u015bci)
|
||||
Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] by\u0142 zbyt ma\u0142o do\u015bwiadczony aby czegokolwiek Ciebie nauczy\u0107.
|
||||
Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]Ukrad\u0142e\u015b [[BLUE]]{0}[[DARK_AQUA]] poziom\u00f3w od [[YELLOW]]{1}.
|
||||
Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] pr\u00f3bowa\u0142 ukra\u015b\u0107 od ciebie zdolno\u015bci!
|
||||
Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] ukrad\u0142 [[BLUE]]{1}[[DARK_RED]] poziom\u00f3w od ciebie!
|
||||
Spout.Donate=[[YELLOW]][mcMMO] Dotacja!
|
||||
Spout.LevelUp.2=[[YELLOW]]{0}[[DARK_AQUA]] ([[GREEN]]{1}[[DARK_AQUA]])
|
||||
Spout.Menu.Exit=[[GRAY]]Wci\u015bnij ESCAPE aby wyj\u015b\u0107!
|
||||
Spout.Menu.ExitButton=WYJ\u015aCIE
|
||||
Spout.Menu.HudButton.1=Typ Interfejsu: {0}
|
||||
Spout.Menu.HudButton.2=Zmie\u0144 Styl Interfejsu!
|
||||
Spout.Menu.Title=[[GOLD]]~mcMMO Menu~
|
||||
Spout.Title={0}\n[[YELLOW]]P[[GOLD]]lvl[[WHITE]].[[GREEN]]{1}
|
||||
MOTD.Donate=[[DARK_AQUA]]Informacje o Dotacji:
|
||||
MOTD.Hardcore.VampireOff=[[GOLD]][mcMMO] [[DARK_RED]]Tryb Hardcore & Wampiryzm aktywowany.
|
||||
MOTD.Hardcore.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Kara za \u015amier\u0107: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.VampireOn=[[GOLD]][mcMMO] [[DARK_RED]]Tryb Hardcore aktywowany.
|
||||
MOTD.PerksPrefix=[[RED]][mcMMO Zdolno\u015bci]
|
||||
MOTD.Vampire.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Statystyki Wampirycznych Pijawek: [[DARK_RED]]{0}%
|
||||
MOTD.Version=[[GOLD]][mcMMO] Obecna Wersja [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - Strona mcMMO
|
||||
|
||||
@@ -1,70 +1,165 @@
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Esquivou**
|
||||
Acrobatics.Effect.0=Rolar
|
||||
Acrobatics.Effect.4=Esquivou
|
||||
Acrobatics.Listener=Acrobacias:
|
||||
Acrobatics.Roll.Text=**Rolou**
|
||||
Acrobatics.SkillName=ACROBACIA
|
||||
Acrobatics.SkillName=Acrobacia
|
||||
Acrobatics.Skillup=[[AMARELO]]Habilidade Acrobacia aumentada em {0}. Total ({1})
|
||||
Archery.Effect.0=Tiro Habilidoso
|
||||
Archery.Effect.1=Aumenta o dano feito com arcos
|
||||
Archery.Effect.5=Chance de recuperar flechas dos corpos
|
||||
Archery.Listener=Arqueiro
|
||||
Archery.SkillName=ARQUEIRO
|
||||
Archery.Skillup=[[AMARELO]]Habilidade Arqueiro aumentada em {0}. Total ({1})
|
||||
Axes.Ability.Bonus.0=Machado
|
||||
Axes.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SEU MACHADO**
|
||||
Axes.Ability.Ready=[[GREEN]]**VOC\u00ca PREPARA SEU MACHADO**
|
||||
Axes.Combat.GI.Struck=[[RED]]**GOLPEADO POR UM GRANDE IMPACTO**
|
||||
Axes.Effect.3=Dano Duplo
|
||||
Axes.Effect.5=Adiciona dano extra
|
||||
Axes.Listener=Machados:
|
||||
Axes.SkillName=Machado
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Racha Cranios!
|
||||
Axes.Skillup=[[AMARELO]]Habilidade Machado aumentada em {0}. Total ({1})
|
||||
Excavation.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SUA P\u00c1**
|
||||
Excavation.Ability.Ready=[[GREEN]]**VOC\u00ca PREPARA SUA P\u00c1**
|
||||
Excavation.Effect.3=Habilidade de cavar tesouros
|
||||
Excavation.Listener=Escava\u00e7\u00e3o:
|
||||
Excavation.SkillName=Escava\u00e7\u00e3o
|
||||
Excavation.Skillup=[[AMARELO]]Habilidade Escava\u00e7\u00e3o aumentada em {0}. Total ({1})
|
||||
Fishing.ItemFound=[[GRAY]]Tesouro encontrado!
|
||||
Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
|
||||
Fishing.SkillName=PESCARIA
|
||||
Herbalism.Ability.GTh=[[GREEN]]**DED\u00c3O VERDE**
|
||||
Herbalism.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SUA ENXADA**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**VOC\u00ca PREPARA SUA ENXADA**
|
||||
Herbalism.Listener=Herbalismo
|
||||
Herbalism.SkillName=HERBALISMO
|
||||
Mining.Ability.Ready=[[VERDE]]**VOC\u00ca PREPARA A SUA PICARETA**
|
||||
Herbalism.Skills.GTe.Other.Off=[[RED]]Terra Verde[[GREEN]] acabou para o [[YELLOW]]{0}
|
||||
Mining.Ability.Length=[[RED]]Super Partir Duracao: [[YELLOW]]{0}s
|
||||
Mining.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SUA PICARETA**
|
||||
Mining.Ability.Ready=[[GREEN]]**VOC\u00ca PREPARA SUA PICARETA**
|
||||
Mining.Listener=Minera\u00e7\u00e3o:
|
||||
Mining.SkillName=MINERAR
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]A tua [[YELLOW]]abilidade Super Partir [[GREEN]]esta pronta!
|
||||
Mining.Skillup=[[YELLOW]]Habilidade Minerar aumentada em {0}. Total ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM**
|
||||
Mining.Blast.Refresh=[[GREEN]]A tua [[YELLOW]]abilidade de explosao [[GREEN]]esta pronta!
|
||||
Repair.Effect.0=Reparar
|
||||
Repair.Effect.4=Super Reparo
|
||||
Repair.Effect.6=Reparar Diamante ({0}+ SKILL)
|
||||
Repair.Effect.7=Reparar ferramentas e armadura de Diamante
|
||||
Repair.Effect.9=Reparar itens m\u00e1gicos
|
||||
Repair.Listener=Reparar:
|
||||
Repair.SkillName=REPARAR
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]Voc\u00ea n\u00e3o tem nivel suficiente pra reparar Diamante.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]Voc\u00ea n\u00e3o tem nivel suficiente pra reparar Ouro.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]Voc\u00ea n\u00e3o tem nivel suficiente pra reparar Pedra.
|
||||
Repair.Skills.FeltEasy=[[GRAY]]Isso pareceu f\u00e1cil.
|
||||
Repair.Skillup=[[YELLOW]]Habilidade Reparar aumentada em {0}. Total ({1})
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]AF Percentagem de Sucesso: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Fail=[[VERMELHO]]Poder misterioso saiu permanentemente do item.
|
||||
Repair.Arcane.Lost=[[RED]]Voc\u00ea n\u00e3o foi habilidoso o suficiente para manter os encantamentos.
|
||||
Swords.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SUA ESPADA**
|
||||
Swords.Ability.Ready=[[GREEN]]**VOC\u00ca PREPARA SUA ESPADA**
|
||||
Swords.Combat.Bleeding.Stopped=[[GRAY]]O sangramento[[GREEN]]parou[[GRAY]]!
|
||||
Swords.Combat.Bleeding=[[GREEN]]**INIMIGO A SANGRAR**
|
||||
Swords.Combat.Countered=[[GREEN]]**CONTRA-ATACADO**
|
||||
Swords.Effect.0=Contra-ataque
|
||||
Swords.Effect.6=Sangrou
|
||||
Swords.Listener=Espadas:
|
||||
Swords.SkillName=Espada
|
||||
Swords.Skills.SS.On=[[GREEN]]**ATAQUE DE SERRA ACTIVADO**
|
||||
Taming.Ability.Bonus.1=Lobos evitam o perigo
|
||||
Taming.Ability.Bonus.6=Garras Afiadas
|
||||
Taming.Effect.11=Redu\u00e7\u00e3o de dano explosivo
|
||||
Taming.Effect.12=Chamado da Selva
|
||||
Taming.Effect.13=Invoca um animal ao seu lado
|
||||
Taming.Effect.17=Chance dos lobos se curarem ao atacarem
|
||||
Taming.Effect.4=Garras Afiadas
|
||||
Taming.Effect.5=Dano B\u00f4nus
|
||||
Taming.Listener.Wolf=[[DARK_GRAY]]O seu lobo correu de volta \u00e0 voc\u00ea...
|
||||
Taming.Listener=Domar
|
||||
Taming.SkillName=DOMAR
|
||||
Taming.Skillup=[[YELLOW]]Habilidade Domesticar aumentada em {0}. Total ({1})
|
||||
Unarmed.Listener=Desarmado:
|
||||
Unarmed.SkillName=DESARMAR
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**Berserk acabou**
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Berserk!
|
||||
Woodcutting.Ability.0=Soprador de Folhas
|
||||
Woodcutting.Ability.1=Soprar Folhas
|
||||
Woodcutting.Effect.1=Faz \u00e1rvores explodirem.
|
||||
Woodcutting.Effect.4=Drops duplos
|
||||
Woodcutting.Listener=Lenhador
|
||||
Woodcutting.SkillName=Lenhador
|
||||
Woodcutting.Skills.TreeFeller.Other.Off=[[RED]]Corta Arvores[[GREEN]] acabou para o [[YELLOW]]{0}
|
||||
Woodcutting.Skills.TreeFeller.Splinter=[[RED]]SEU MACHADO QUEBRA EM DEZENAS DE PEDA\u00c7OS!
|
||||
Woodcutting.Skills.TreeFellerThreshold=[[RED]]Essa \u00e1rvore \u00e9 muito grande!
|
||||
Ability.Generic.Template=[[VERMELHO]]{0}:[[AMARELO]]{1}
|
||||
Combat.ArrowDeflect=[[WHITE]]*DESVIOU A FLECHA*
|
||||
Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE FERAS*
|
||||
Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE ANIMAIS*
|
||||
Combat.BeastLoreHealth=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/{1})
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Dono ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.Gore=[[GREEN]]*MORDIDA*
|
||||
Combat.StruckByGore=[[RED]]*ATINGIDO POR MORDIDA*
|
||||
Combat.TargetDazed=Alvo foi [[DARK_RED]]Atordoado
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Visao turva. Sente Tonturas.
|
||||
Commands.AdminChat.Off=Chat Admin [[RED]]Desligado
|
||||
Commands.AdminChat.On=Chat de Admin [[GREEN]]Ligado
|
||||
Commands.Disabled=[[RED]]Este comando est\u00e1 desabilitado.
|
||||
Commands.DoesNotExist=[[RED]]Player n\u00e3o existe na database!
|
||||
Commands.GodMode.Disabled=[[YELLOW]]mcMMO Modo God desabilitado
|
||||
Commands.Invite.Accepted=[[GREEN]]Convite aceito. Voc\u00ea se juntou ao grupo {0}
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - Modifica alvo
|
||||
Commands.ModDescription=[[RED]]- Leia a descri\u00e7\u00e3o breve do mod
|
||||
Commands.NoConsole=Esse comando n\u00e3o suporta uso no console
|
||||
Commands.Party.Kick=[[RED]]Voc\u00ea foi kickado da party {0}!
|
||||
Commands.Party.Accept=[[RED]]- Aceitar convite de grupo
|
||||
Commands.Party.Chat.Off=Chat de grupo [[RED]]Desligado
|
||||
Commands.Party.Commands=[[GREEN]]--COMANDOS DE GRUPO--
|
||||
Commands.Party.Invite.0=[[RED]]ALERT: [[GREEN]]Voc\u00ea recebeu um convite para o grupo {0} de {1}
|
||||
Commands.Party.Kick=[[RED]]Voc\u00ea foi kickado do grupo {0}!
|
||||
Commands.Party.Leave=[[RED]]Voc\u00ea saiu do grupo
|
||||
Commands.Party.None=[[RED]]Voc\u00ea n\u00e3o est\u00e1 em um grupo.
|
||||
Commands.Party.Quit=[[RED]]- Deixe seu grupo atual
|
||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Podium--
|
||||
Commands.PowerLevel=[[DARK_RED]]N\u00cdVEL DE PODER: [[GREEN]]{0}
|
||||
Commands.Stats.Self=SEUS STATS
|
||||
mcMMO.NoPermission=[[DARK_RED]]Permiss\u00f5es insuficientes.
|
||||
Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
|
||||
Party.InvalidName=[[DARK_RED]]Isto n\u00e3o \u00e9 um nome v\u00e1lido.
|
||||
Party.Locked=[[RED]]Equipe est\u00e1 bloqueada, s\u00f3 o l\u00edder pode convidar.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} nao est\u00e1 na sua equipe
|
||||
Party.Password.Set=[[GREEN]]Senha da equipe: {0}
|
||||
Party.Player.Invalid=[[RED]]Isto n\u00e3o \u00e9 um jogador v\u00e1lido.
|
||||
Party.Teleport.Dead=[[RED]]Voc\u00ea n\u00e3o pode teleportar para um jogador morto.
|
||||
Party.Teleport.Player=[[GREEN]]Voc\u00ea teleportou para {0}.
|
||||
Party.Teleport.Target=[[GREEN]]{0} teleportou-se para voc\u00ea.
|
||||
Party.Unlocked=[[GRAY]]Equipe foi Destrancada
|
||||
Commands.XPGain.Acrobatics=CAINDO
|
||||
Commands.XPGain.Archery=Atacando Monstros
|
||||
Commands.XPGain.Axes=Atacando Monstros
|
||||
Commands.XPGain.Excavation=Cavando e achando tesouros
|
||||
Commands.XPGain.Herbalism=Colhendo Ervas
|
||||
Commands.XPGain.Mining=Minerar Pedra & Min\u00e9rio
|
||||
Commands.XPGain.Swords=Atacando Monstros
|
||||
Commands.XPGain.Taming=Domesticar animais, ou combater com os seus lobos
|
||||
Commands.XPGain=[[DARK_GRAY]]XP ADQUIRIDO: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR est\u00e1 travada em {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]Sua barra de XP foi [[GREEN]]DESTRAVADA[[GOLD]]!
|
||||
Commands.xprate.over=[[RED]]Evento de XP Rate acabou!!
|
||||
XPRate.Event=[[GOLD]]mcMMO is currently in an XP rate event! XP rate is {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO est\u00e1 em um evento de XP aumentada! O aumento de XP \u00e9 {0}x!
|
||||
Effects.Effects=EFEITOS
|
||||
Guides.Axes=Guide coming soon...
|
||||
Guides.Excavation=[[DARK_AQUA]] Sobre escava\u00e7\u00e3o:.. \\ N [[YELLOW]] Escava\u00e7\u00e3o \u00e9 o ato de cavar terra para encontrar tesouros \\ n [[YELLOW]] Por escavando a terra que voc\u00ea vai encontrar tesouros \\ n [[YELLOW]] Quanto mais voc\u00ea fizer isso mais os tesouros que voc\u00ea pode encontrar \\ n \\ n [[DARK_AQUA]] gANHO XP:. \\ n [[YELLOW]] Para ganhar XP neste habilidade que voc\u00ea tem que cavar com uma p\u00e1 na m\u00e3o \\ n [[. YELLOW]] Apenas certos materiais pode ser desenterrado para tesouros e XP \\ n [[DARK_AQUA]] Materiais compat\u00edveis:. \\ n [[YELLOW]] grama, terra, areia, argila, cascalho, Mic\u00e9lio, Areia Alma \\ n \\ n [[DARK_AQUA]] Como usar Broca Giga Breaker: \\ n [[YELLOW]] com uma p\u00e1 na m\u00e3o direita clique para pronta sua ferramenta \\ n [[YELLOW]] uma vez neste estado tem cerca de 4 segundos para fazer \\. n [[YELLOW]] contato com materiais de escava\u00e7\u00e3o compat\u00edveis esta \\ n [[YELLOW]] ativar disjuntor Broca Giga. \\ n [[DARK_AQUA]] O que \u00e9 o Giga disjuntor broca? \\ n [[YELLOW]] Disjuntor Broca Giga \u00e9 uma habilidade com um cooldown \\ n [[YELLOW]] ligada \u00e0 habilidade de escava\u00e7\u00e3o. Triplica sua chance \\ n [[YELLOW]] de encontrar tesouros e permite quebra instant\u00e2nea \\ n [[YELLOW]] em materiais de escava\u00e7\u00e3o. \\ N \\ n [[DARK_AQUA]] Como Treasure Hunter trabalho? \\ N [[] YELLOW ] Cada tesouro poss\u00edvel para escava\u00e7\u00e3o tem a sua pr\u00f3pria \\ n [[YELLOW]] exig\u00eancia de n\u00edvel de habilidade para a sua queda, como resultado, \u00e9 \\ n [[YELLOW]] dif\u00edcil dizer o quanto ele est\u00e1 ajudando voc\u00ea. \\ n [[YELLOW ]] Basta ter em mente que a habilidade maior escava\u00e7\u00e3o sua \\ n [[YELLOW]] \u00e9, os mais tesouros que podem ser encontrados. \\ n [[YELLOW]] E tamb\u00e9m ter em mente que cada tipo de escava\u00e7\u00e3o \\ n [[YELLOW]] material compat\u00edvel tem sua pr\u00f3pria lista \u00fanica de tesouros. \\ n [[YELLOW]] em outras palavras, voc\u00ea vai encontrar tesouros diferentes na sujeira \\ n [[YELLOW]] do que voc\u00ea em cascalho. \\ n [[DARK_AQUA]] notas sobre a escava\u00e7\u00e3o: \\ n [[YELLOW]] gotas de escava\u00e7\u00e3o s\u00e3o completamente customizeable \\ n [[YELLOW]] Ent\u00e3o, os resultados variam de servidor para servidor.\n
|
||||
Guides.Mining=[[DARK_AQUA]]About Mining:\n[[YELLOW]]Mining consists of mining stone and ores. It provides bonuses\n[[YELLOW]]to the amount of materials dropped while mining.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you must mine with a pickaxe in hand.\n[[YELLOW]]Only certain blocks award XP.\n\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Stone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n[[YELLOW]]Lapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n[[YELLOW]]Glowstone, and Netherrack.\n\n[[DARK_AQUA]]How to use Super Breaker:\n[[YELLOW]]With a pickaxe in your hand, right click to ready your tool.\n[[YELLOW]]Once in this state, you have about 4 seconds to make contact\n[[YELLOW]]with Mining compatible materials, which will activate Super\n[[YELLOW]]Breaker.\n\n[[DARK_AQUA]]What is Super Breaker?\n[[YELLOW]]Super Breaker is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It triples your chance of extra items dropping and\n[[YELLOW]]enables instant break on Mining materials.\n\n[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.\n\n[[DARK_AQUA]]How does Blast Mining work?\n[[YELLOW]]Blast Mining is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It gives bonuses when mining with TNT and allows you\n[[YELLOW]]to remote detonate TNT. There are three parts to Blast Mining.\n[[YELLOW]]The first part is Bigger Bombs, which increases blast radius.\n[[YELLOW]]The second is Demolitions Expert, which decreases damage\n[[YELLOW]]from TNT explosions. The third part simply increases the\n[[YELLOW]]amount of ores dropped from TNT and decreases the\n[[YELLOW]]debris dropped.
|
||||
Inspect.OfflineStats=mcMMO Statsde player offline[[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0}
|
||||
Inspect.TooFar=[[RED]]You are too far away to inspect that player!
|
||||
Item.ChimaeraWing.Fail=**ASAS DE QUIMERA FALHARAM!**
|
||||
Item.ChimaeraWing.Pass=**ASAS DE QUIMERA**
|
||||
Item.Injured.Wait=Voc\u00ea foi ferido recentemente e deve esperar para usar isto. [[YELLOW]]({0}s)
|
||||
Skills.Disarmed=[[DARK_RED]]Voc\u00ea foi Desarmado!
|
||||
Skills.NeedMore=[[DARK_RED]]Voc\u00ea precisa de mais
|
||||
Skills.TooTired=[[RED]]Voc\u00ea est\u00e1 cansado pra usar essa habilidade.
|
||||
Stats.Header.Combat=[[GOLD]]-=SKILLS DE COMBATE=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=SKILLS DE RECOLHA=-
|
||||
|
||||
@@ -458,6 +458,7 @@ Party.NotOwner=[[DARK_RED]]\u0412\u044b \u043d\u0435 \u043b\u0438\u0434\u0435\u0
|
||||
Party.Owner.New=[[GREEN]]{0} \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u043e\u0432\u044b\u0439 \u043b\u0438\u0434\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]\u0412\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043b\u0438\u0434\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b.
|
||||
Party.Owner.Player=[[GREEN]]\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043b\u0438\u0434\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b.
|
||||
Party.Password.None=[[RED]]\u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0435\u043c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0435\u043d\u0438\u0442\u044c\u0441\u044f.
|
||||
Party.Password.Incorrect=[[RED]]\u041f\u0430\u0440\u043e\u043b\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439.
|
||||
Party.Password.Set=[[GREEN]]\u041f\u0430\u0440\u043e\u043b\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d {0}
|
||||
Party.Password.Removed=[[GREEN]]\u041f\u0430\u0440\u043e\u043b\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u044b\u043b \u0443\u0434\u0430\u043b\u0435\u043d.
|
||||
@@ -597,6 +598,7 @@ Commands.Description.hardcore=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \
|
||||
Commands.Description.inspect=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0443\u044e mcMMO \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0434\u0440\u0443\u0433\u043e\u043c \u0438\u0433\u0440\u043e\u043a\u0435
|
||||
Commands.Description.mcability=\u0412\u043a\u043b./\u043e\u0442\u043a\u043b. \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u0443\u043c\u0435\u043d\u0438\u0439 mcMMO \u043a\u043b\u0438\u043a\u043e\u043c \u041f\u041a\u041c
|
||||
Commands.Description.mcgod=\u0412\u043a\u043b./\u043e\u0442\u043a\u043b. \u0440\u0435\u0436\u0438\u043c-\u0431\u043e\u0433\u0430 mcMMO
|
||||
Commands.Description.mchud=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u044c \u041f\u0430\u043d\u0435\u043b\u0438 \u0412\u0430\u0436\u043d\u043e\u0439 \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 mcMMO!
|
||||
Commands.Description.mcmmo=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 mcMMO
|
||||
Commands.Description.mcpurge=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0435\u0437 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 mcMMO \u0438 \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435 {0} \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 mcMMO.
|
||||
Commands.Description.mcrank=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c mcMMO \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0438\u0433\u0440\u043e\u043a\u0430
|
||||
@@ -607,9 +609,11 @@ Commands.Description.mctop=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u04
|
||||
Commands.Description.mmoedit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c mcMMO \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
|
||||
Commands.Description.mmoupdate=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 mcMMO \u0438\u0437 Flatfile \u0432 MySQL
|
||||
Commands.Description.party=\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u0430\u0442\u0438 mcMMO
|
||||
Commands.Description.partychat=\u0412\u043a\u043b./\u043e\u0442\u043a\u043b. \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0447\u0430\u0442 \u0438\u043b\u0438 \u043e\u0442\u043e\u0441\u043b\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.
|
||||
Commands.Description.ptp=\u0422\u0435\u043b\u0435\u043f\u043e\u0440\u0442 \u043a mcMMO \u0447\u043b\u0435\u043d\u0430\u043c \u0433\u0440\u0443\u043f\u043f\u044b
|
||||
Commands.Description.Skill=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u0430\u0432\u044b\u043a\u0430\u0445 mcMMO \u0434\u043b\u044f {0}
|
||||
Commands.Description.skillreset=\u0421\u0431\u0440\u043e\u0441 mcMMO \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
|
||||
Commands.Description.vampirism=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 mcMMO \u043a\u0440\u043e\u0432\u043e\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043a\u0440\u043e\u0432\u043e\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c
|
||||
Commands.Description.xplock=\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041f\u0430\u043d\u0435\u043b\u044c \u041e\u043f\u044b\u0442\u0430 mcMMO \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0432\u044b\u043a\u0430.
|
||||
UpdateChecker.outdated=\u0412\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e mcMMO!
|
||||
UpdateChecker.newavailable=\u0415\u0441\u0442\u044c \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043d\u0430 BukkitDev.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Acrobatics.Ability.Proc=[[GREEN]]**\u0e43\u0e0a\u0e49\u0e17\u0e31\u0e01\u0e29\u0e30 Graceful Landing**
|
||||
Acrobatics.Combat.Proc=[[GREEN]]**Dodged**
|
||||
Acrobatics.DodgeChance=[[RED]]Dodge \u0e42\u0e2d\u0e01\u0e32\u0e2a: [[YELLOW]]{0}
|
||||
Acrobatics.Effect.0=Roll
|
||||
Acrobatics.Effect.1=\u0e25\u0e14\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2a\u0e35\u0e22\u0e2b\u0e32\u0e22\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e01\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07
|
||||
@@ -71,6 +72,7 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]\u0e04\u0e27\u0e32\u0e21\u0e
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]Giga Drill Breaker[[GREEN]] \u0e23\u0e2d\u0e01\u0e32\u0e23\u0e04\u0e39\u0e25\u0e14\u0e32\u0e27\u0e19\u0e4c [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u0e44\u0e14\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e31\u0e01\u0e29\u0e30 [[RED]]Giga Drill Breaker!
|
||||
Excavation.Skillup=[[YELLOW]]\u0e17\u0e31\u0e01\u0e29\u0e30 Excavation \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e36\u0e49\u0e19 {0}. \u0e21\u0e35\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 ({1})
|
||||
Fishing.Ability.Chance=[[RED]]Bite \u0e42\u0e2d\u0e01\u0e32\u0e2a: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=[[RED]]\u0e17\u0e31\u0e01\u0e29\u0e30 Magic Hunter: [[GRAY]] **\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e42\u0e14\u0e22\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e17\u0e31\u0e01\u0e29\u0e30 Treasure Hunter**
|
||||
Fishing.Ability.Locked.0=\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e25\u0e14\u0e25\u0e47\u0e2d\u0e01\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e23\u0e30\u0e14\u0e31\u0e1a {0}+ (SHAKE)
|
||||
Fishing.Ability.Rank=[[RED]]Treasure Hunter \u0e23\u0e30\u0e14\u0e31\u0e1a: [[YELLOW]]{0}/5
|
||||
@@ -84,6 +86,8 @@ Fishing.Effect.4=Shake (vs. Entities)
|
||||
Fishing.Effect.5=\u0e40\u0e02\u0e22\u0e48\u0e32\u0e40\u0e2d\u0e32\u0e2a\u0e34\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e08\u0e32\u0e01 monster w/ \u0e14\u0e49\u0e27\u0e22\u0e04\u0e31\u0e19\u0e40\u0e1a\u0e47\u0e14
|
||||
Fishing.Effect.6=Fisherman\'s Diet
|
||||
Fishing.Effect.7=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e34\u0e48\u0e21\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e01\u0e34\u0e19\u0e1b\u0e25\u0e32
|
||||
Fishing.Effect.8=Master Angler
|
||||
Fishing.Effect.9=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e1b\u0e25\u0e32\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e01\u0e1b\u0e25\u0e32
|
||||
Fishing.Enchant.Chance=[[RED]]Magic Hunter \u0e42\u0e2d\u0e01\u0e32\u0e2a: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] Rain Bonus
|
||||
Fishing.ItemFound=[[GRAY]]\u0e44\u0e14\u0e49\u0e1e\u0e1a\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34!
|
||||
@@ -370,6 +374,7 @@ Commands.mcpurge.Success=[[GREEN]]\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e
|
||||
Commands.mcrank.Heading=[[GOLD]]-=\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2d\u0e31\u0e19\u0e14\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e04\u0e04\u0e25=-
|
||||
Commands.mcrank.Overall=[[YELLOW]]\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14[[GREEN]] - [[GOLD]]\u0e23\u0e30\u0e14\u0e31\u0e1a [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=[[RED]]\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill=[[YELLOW]]{0}[[GREEN]] - [[GOLD]]\u0e25\u0e33\u0e14\u0e31\u0e1a [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]Unranked
|
||||
Commands.mcrefresh.Success=[[RED]]{0}\'\'\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 \u0e04\u0e39\u0e25\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} \u0e08\u0e30\u0e16\u0e39\u0e01\u0e25\u0e1a\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08!
|
||||
@@ -573,6 +578,7 @@ Perks.xp.name=\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c
|
||||
Perks.xp.desc=\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a {0}x EXP.
|
||||
Perks.lucky.name=\u0e42\u0e0a\u0e04
|
||||
Perks.lucky.desc=\u0e43\u0e2b\u0e49\u0e17\u0e31\u0e01\u0e29\u0e30 {0} \u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e35\u0e42\u0e2d\u0e01\u0e32\u0e2a 33.3% \u0e14\u0e35\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
Perks.lucky.desc.login=\u0e43\u0e2b\u0e49\u0e17\u0e31\u0e01\u0e29\u0e30\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e17\u0e35\u0e48 33.3% \u0e14\u0e35\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
Perks.lucky.bonus=[[GOLD]] ({0} \u0e14\u0e49\u0e27\u0e22 Lucky Perk)
|
||||
Perks.cooldowns.name=Fast Recovery
|
||||
Perks.cooldowns.desc=\u0e25\u0e14\u0e23\u0e30\u0e22\u0e30\u0e40\u0e27\u0e25\u0e32\u0e04\u0e39\u0e25\u0e14\u0e32\u0e27\u0e19\u0e4c {0}.
|
||||
@@ -652,5 +658,3 @@ Commands.Description.xplock=\u0e25\u0e47\u0e2d\u0e04 mcMMO \u0e1a\u0e32\u0e23\u0
|
||||
Commands.Description.xprate=\u0e41\u0e01\u0e49\u0e44\u0e02\u0e2d\u0e31\u0e15\u0e23\u0e32 mcMMO EXP \u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c mcMMO EXP
|
||||
UpdateChecker.outdated=You are using an outdated version of mcMMO!
|
||||
UpdateChecker.newavailable=There is a new version available on BukkitDev.
|
||||
Salvage.Listener=\u0e17\u0e31\u0e01\u0e29\u0e30 Salvage:
|
||||
Salvage.SkillName=SALVAGE
|
||||
|
||||
@@ -19,6 +19,7 @@ Archery.Combat.SkillshotBonus=[[RED]]\u6280\u5de7\u5c04\u51fb\u5956\u52b1\u4f24\
|
||||
Archery.Effect.0=\u6280\u5de7\u5c04\u51fb
|
||||
Archery.Effect.1=\u589e\u52a0\u5f13\u7bad\u4f24\u5bb3
|
||||
Archery.Effect.2=\u51fb\u6655 (\u9650\u73a9\u5bb6\u4e4b\u95f4)
|
||||
Archery.Effect.3=\u8ff7\u60d1\u654c\u4eba\u5e76\u9020\u6210 {0} \u4f24\u5bb3
|
||||
Archery.Effect.4=\u56de\u6536\u5f13\u7bad
|
||||
Archery.Effect.5=\u6709\u51e0\u7387\u4ece\u5c38\u4f53\u4e0a\u56de\u6536\u7bad\u77e2
|
||||
Archery.Listener=\u7bad\u672f:(ARCHERY)
|
||||
@@ -48,8 +49,8 @@ Axes.Effect.6=\u51b2\u51fb
|
||||
Axes.Effect.7=\u7528\u8db3\u591f\u7684\u529b\u91cf\u51fb\u788e\u62a4\u7532
|
||||
Axes.Effect.8=\u5f3a\u70c8\u51b2\u51fb
|
||||
Axes.Effect.9=\u5bf9\u65e0\u62a4\u7532\u654c\u4eba\u9020\u6210\u989d\u5916\u4f24\u5bb3
|
||||
Axes.Listener=\u65a7\u5934(Axes):
|
||||
Axes.SkillName=\u65a7\u5934
|
||||
Axes.Listener=\u65a7\u6280(Axes):
|
||||
Axes.SkillName=\u65a7\u6280
|
||||
Axes.Skills.SS.Off=[[RED]]**\u65a9\u9996\u8005\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\u65a9\u9996\u8005\u6280\u80fd\u542f\u52a8**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u65a9\u9996\u8005 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\uff01\uff01\uff01
|
||||
@@ -71,9 +72,11 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u66b
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]\u66b4\u8d70\u94bb\u5934[[GREEN]] \u8fdb\u5165\u51b7\u5374 [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u66b4\u8d70\u94bb\u5934!
|
||||
Excavation.Skillup=[[YELLOW]]\u6316\u6398\u6280\u80fd\u63d0\u5347 {0}. \u603b\u5171 ({1})
|
||||
Fishing.Ability.Chance=[[RED]]\u6495\u54ac\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=[[RED]]\u9b54\u6cd5\u730e\u4eba: [[GRAY]] ** \u968f\u7740\u5b9d\u85cf\u730e\u4eba\u7b49\u7ea7\u63d0\u9ad8 **
|
||||
Fishing.Ability.Locked.0=\u9501\u5b9a\u72b6\u6001\uff0c\u76f4\u5230 {0}+ \u6280\u80fd\uff08\u6447\uff09
|
||||
Fishing.Ability.Rank=[[RED]]\u5b9d\u7269\u730e\u4eba\u7b49\u7ea7: [[YELLOW]]{0}/5
|
||||
Fishing.Ability.Shake=[[RED]]\u9c7c\u94a9\u7a83\u53d6\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.FD=[[RED]]\u6e14\u6c11\u7684\u98df\u8c31: [[YELLOW]]\u6392\u540d {0}
|
||||
Fishing.Effect.0=\u5b9d\u7269\u730e\u4eba (\u88ab\u52a8\u6280\u80fd)
|
||||
Fishing.Effect.1=\u9493\u5230\u6742\u7269
|
||||
@@ -81,20 +84,30 @@ Fishing.Effect.2=\u9b54\u6cd5\u730e\u4eba
|
||||
Fishing.Effect.3=\u627e\u5230\u9644\u9b54\u7269\u54c1
|
||||
Fishing.Effect.4=\u6643\u52a8\u602a\u7269 (\u5bf9\u602a\u7269\u4f7f\u7528)
|
||||
Fishing.Effect.5=\u7528\u9c7c\u7aff\u628a\u602a\u7269\u8eab\u4e0a\u7684\u4e1c\u897f\u6447\u4e0b\u6765
|
||||
Fishing.Effect.6=\u6e14\u592b\u98df\u8c31
|
||||
Fishing.Effect.7=\u63d0\u9ad8\u9c7c\u7c7b\u98df\u7269\u6062\u590d\u7684\u9965\u997f\u503c
|
||||
Fishing.Effect.8=\u9493\u9c7c\u5927\u5e08
|
||||
Fishing.Effect.9=\u63d0\u9ad8\u9493\u9c7c\u54ac\u94a9\u51e0\u7387
|
||||
Fishing.Enchant.Chance=[[RED]]\u9b54\u6cd5\u730e\u4eba\u51e0\u7387: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] \u5927\u91cf\u5956\u52b1
|
||||
Fishing.ItemFound=[[GRAY]]\u53d1\u73b0\u5b9d\u7269\u4e86\uff01
|
||||
Fishing.Listener=\u9493\u9c7c(Fishing):
|
||||
Fishing.MagicFound=[[GRAY]]\u4f60\u611f\u5230\u4e00\u80a1\u9b54\u529b\u7684\u6ce2\u52a8...
|
||||
Fishing.SkillName=\u9493\u9c7c
|
||||
Fishing.Skillup=[[YELLOW]]\u9493\u9c7c\u6280\u80fd\u63d0\u5347\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Herbalism.Ability.DoubleDropChance=[[RED]]\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.FD=[[RED]]\u519c\u592b\u98df\u8c31: [[YELLOW]]\u6392\u540d {0}
|
||||
Herbalism.Ability.GTe.Length=[[RED]]\u571f\u795e\u5e87\u4f51\u6301\u7eed\u65f6\u95f4: [[YELLOW]]{0}s
|
||||
Herbalism.Ability.GTe.NeedMore=[[RED]]\u4f60\u9700\u8981\u66f4\u591a\u7684\u79cd\u5b50\u8fdb\u884c\u7eff\u5316
|
||||
Herbalism.Ability.GTh.Chance=[[RED]]\u7eff\u5316\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=[[RED]]**\u7eff\u5316\u5931\u8d25**
|
||||
Herbalism.Ability.GTh.Stage=[[RED]]\u7eff\u5316:[[YELLOW]]\u519c\u4f5c\u7269\u751f\u957f\u671f{0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**\u7eff\u5316**
|
||||
Herbalism.Ability.HylianLuck=[[RED]]\u6d77\u62c9\u5c14\u7684\u795d\u798f\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u9504\u5934**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**\u4f60\u6311\u8d77\u4e86\u4f60\u7684\u9504\u5934**
|
||||
Herbalism.Ability.ShroomThumb.Chance=[[RED]]\u83cc\u4e1d\u5316\u51e0\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=[[RED]]**\u83cc\u4e1d\u5316\u5931\u8d25**
|
||||
Herbalism.Effect.0=\u571f\u795e\u5e87\u4f51 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Herbalism.Effect.1=\u64ad\u6492\u5973\u795e\u7684\u6069\u60e0, \u83b7\u5f973\u500d\u6389\u7387
|
||||
Herbalism.Effect.2=\u7eff\u5316 (\u5c0f\u9ea6)
|
||||
@@ -105,7 +118,11 @@ Herbalism.Effect.6=\u519c\u592b\u98df\u8c31
|
||||
Herbalism.Effect.7=\u98df\u7528\u519c\u4ea7\u54c1\u65f6\u989d\u5916\u56de\u590d\u9965\u997f\u5ea6
|
||||
Herbalism.Effect.8=\u53cc\u500d\u6389\u843d (\u6240\u6709\u7684\u690d\u7269)
|
||||
Herbalism.Effect.9=\u53cc\u500d\u7269\u54c1
|
||||
Herbalism.Effect.10=\u6d77\u62c9\u5c14\u7684\u795d\u798f
|
||||
Herbalism.Effect.11=\u7ed9\u4e88\u5c0f\u51e0\u7387\u627e\u5230\u7a00\u6709\u7269\u54c1\u7684\u80fd\u529b
|
||||
Herbalism.Effect.12=\u83cc\u4e1d\u5316
|
||||
Herbalism.Effect.13=\u5411\u6ce5\u571f&\u8349\u5730\u6563\u64ad\u83cc\u4e1d
|
||||
Herbalism.HylianLuck=[[GREEN]]\u613f\u6d77\u62c9\u5c14\u7684\u795d\u798f\u4e0e\u4f60\u540c\u5728!
|
||||
Herbalism.Listener=\u8349\u836f\u5b66:(HERBALISM)
|
||||
Herbalism.SkillName=\u8349\u836f\u5b66
|
||||
Herbalism.Skills.GTe.Off=[[RED]]**\u571f\u795e\u5e87\u4f51\u5df2\u7ecf\u505c\u6b62\u4e86**
|
||||
@@ -141,16 +158,19 @@ Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e8
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u8d85\u7ea7\u77ff\u5de5 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u518d\u6b21\u4f7f\u7528\u4e86\uff01
|
||||
Mining.Skillup=[[YELLOW]]\u6316\u77ff\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Mining.Blast.Boom=[[GRAY]]**\u5623**
|
||||
Mining.Blast.Effect=+{0} \u77ff\u7269\u91cf, -{1} \u788e\u7247\u91cf, {2}x \u6389\u843d
|
||||
Mining.Blast.Radius.Increase=[[RED]]\u7206\u70b8\u534a\u5f84\u63d0\u5347: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=[[RED]]\u7206\u7834\u5f00\u91c7: [[YELLOW]] \u6392\u540d {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u7206\u7834\u5f00\u91c7!
|
||||
Mining.Blast.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u7206\u7834\u5f00\u91c7 [[GREEN]]\u6280\u80fd\u51b7\u5374\u5b8c\u6bd5!
|
||||
Repair.AnvilPlaced.Spout1=[mcMMO] \u94c1\u7827\u5df2\u653e\u7f6e
|
||||
Repair.AnvilPlaced.Spout2=\u53f3\u952e\u8fdb\u884c\u4fee\u7406!
|
||||
Repair.Effect.0=\u4fee\u7406
|
||||
Repair.Effect.1=\u4fee\u7406\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.Effect.10=\u4fee\u7406\u9ec4\u91d1 ({0}+ SKILL)
|
||||
Repair.Effect.11=\u4fee\u7406\u9ec4\u91d1\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.Effect.12=\u4fee\u7406\u94c1\u8d28\u7269\u54c1 ({0}+ SKILL)
|
||||
Repair.Effect.13=\u4fee\u7406\u94c1\u8d28\u5de5\u5177\u548c\u88c5\u5907
|
||||
Repair.Effect.13=\u4fee\u7406\u94c1\u8d28\u5de5\u5177\u548c\u62a4\u7532
|
||||
Repair.Effect.14=\u4fee\u7406\u77f3\u5934\u7269\u54c1 ({0}+ SKILL)
|
||||
Repair.Effect.15=\u4fee\u7406\u77f3\u5934\u5de5\u5177
|
||||
Repair.Effect.2=\u4fee\u7406\u7cbe\u901a
|
||||
@@ -165,25 +185,25 @@ Repair.Effect.16=\u5206\u89e3 ({0}+ SKILL)
|
||||
Repair.Effect.17=\u5206\u89e3\u5de5\u5177\u548c\u62a4\u7532
|
||||
Repair.Error=[[DARK_RED]]mcMMO \u5728\u5c1d\u8bd5\u4fee\u7406\u6b64\u7269\u54c1\u65f6\u53d1\u751f\u4e86\u9519\u8bef!
|
||||
Repair.Listener.Anvil=[[DARK_RED]]\u4f60\u653e\u7f6e\u7684\u94c1\u65b9\u5757\u53ef\u4ee5\u7528\u6765\u4fee\u7406\u5de5\u5177\u548c\u9632\u5177.
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]\u60a8\u653e\u7f6e\u4e86\u4e00\u4e2a\u6253\u635e\u7827\uff0c\u7528\u6b64\u6765\u6253\u635e\u5de5\u5177\u548c\u88c5\u7532\u3002
|
||||
Repair.Listener.Anvil2=[[DARK_RED]]\u60a8\u653e\u7f6e\u4e86\u4e00\u4e2a\u5206\u89e3\u7827\uff0c\u7528\u6b64\u6765\u5206\u89e3\u5de5\u5177\u548c\u88c5\u7532\u3002
|
||||
Repair.Listener=\u4fee\u7406\uff1a
|
||||
Repair.SkillName=\u4fee\u7406
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]]\u4f60\u4e0d\u80fd\u5206\u89e3\u8fd9\u4e2a\u7269\u54c1.
|
||||
Repair.Skills.AdeptSalvage=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u4e0d\u8db3\u4ee5\u5206\u89e3\u8fd9\u4e2a\u7269\u54c1.
|
||||
Repair.Skills.AdeptDiamond=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u7406\u94bb\u77f3\u88c5\u5907.
|
||||
Repair.Skills.AdeptGold=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u7406\u9ec4\u91d1\u88c5\u5907.
|
||||
Repair.Skills.AdeptIron=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u4e0d\u8db3\u4ee5\u4fee\u590d\u94c1\u8d28\u88c5\u5907.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u590d\u77f3\u5934\u88c5\u5907\u77f3\u5934\u88c5\u5907.
|
||||
Repair.Skills.AdeptStone=[[DARK_RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fee\u590d\u77f3\u5934\u88c5\u5907
|
||||
Repair.Skills.Adept=[[RED]]\u4f60\u5fc5\u987b\u8fbe\u5230\u7b49\u7ea7 [[YELLOW]]{0}[[RED]] \u624d\u80fd\u4fee\u7406 [[YELLOW]]{1}
|
||||
Repair.Skills.FeltEasy=[[GRAY]]\u90a3\u770b\u8d77\u6765\u5f88\u7b80\u5355.
|
||||
Repair.Skills.FullDurability=[[GRAY]]\u4f60\u7684\u88c5\u5907\u5df2\u7ecf\u6ee1\u8010\u4e45\u5ea6\u4e86
|
||||
Repair.Skills.SalvageSuccess=[[GRAY]]\u7269\u54c1\u5df2\u5206\u89e3!
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]\u60a8\u4e0d\u80fd\u633d\u6551\u53d7\u635f\u7684\u9879\u76ee\u3002
|
||||
Repair.Skills.Mastery=[[RED]]\u4fee\u7406\u7cbe\u901a: [[YELLOW]]\u989d\u5916\u56de\u590d {0}% \u8010\u4e45\u5ea6
|
||||
Repair.Skills.NotFullDurability=[[DARK_RED]]\u4f60\u4e0d\u80fd\u5206\u89e3\u53d7\u635f\u7684\u7269\u54c1
|
||||
Repair.Skills.Mastery=[[RED]]\u4fee\u7406\u7cbe\u901a: [[YELLOW]]\u989d\u5916\u56de\u590d {0} \u8010\u4e45\u5ea6
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]\u4f60\u65e0\u6cd5\u4fee\u7406\u5df2\u53e0\u52a0\u7684\u7269\u54c1.
|
||||
Repair.Skills.Super.Chance=[[RED]]\u8d85\u7ea7\u4fee\u7406\u51e0\u7387: [[YELLOW]]{0}
|
||||
Repair.Skillup=[[YELLOW]]\u4fee\u7406\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u5171 ({1})
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]\u9644\u9b54\u964d\u7ea7\u51e0\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]\u81ea\u52a8\u5bf9\u7126\u7684\u6210\u529f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]\u795e\u79d8\u953b\u9020\u6210\u529f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=[[RED]]\u8fd9\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u7b49\u7ea7\u5df2\u4e0b\u964d.
|
||||
Repair.Arcane.Fail=[[RED]]\u8fd9\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u5df2\u6d88\u5931.
|
||||
Repair.Arcane.Lost=[[RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u4e0d\u8db3\u4ee5\u4fdd\u7559\u9644\u9b54\u5c5e\u6027.
|
||||
@@ -202,8 +222,11 @@ Swords.Combat.Counter.Hit=[[DARK_RED]]\u4f60\u53cd\u51fb\u4e86\u5bf9\u624b!
|
||||
Swords.Combat.Countered=[[GREEN]]**\u53cd\u51fb\u4e86\u654c\u4eba**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]\u53d1\u52a8\u952f\u9f7f\u653b\u51fb\uff01
|
||||
Swords.Effect.0=\u53cd\u51fb
|
||||
Swords.Effect.1=\u53cd\u5c04 {0} \u6240\u53d7\u4f24\u5bb3
|
||||
Swords.Effect.2=\u952f\u9f7f\u653b\u51fb (\u4e3b\u52a8\u6280\u80fd)
|
||||
Swords.Effect.3={0} \u4f24\u5bb3\u8303\u56f4; \u6d41\u8840\u8303\u56f4
|
||||
Swords.Effect.4=\u952f\u9f7f\u653b\u51fb\u6d41\u8840\u4f24\u5bb3\u589e\u52a0
|
||||
Swords.Effect.5={0} \u523b \u6d41\u8840
|
||||
Swords.Effect.6=\u6d41\u8840
|
||||
Swords.Effect.7=\u4ea7\u751f\u6d41\u8840\u70b9
|
||||
Swords.Listener=\u5251\u672f(Swords):
|
||||
@@ -218,13 +241,22 @@ Swords.SS.Length=[[RED]]\u952f\u9f7f\u5229\u5203\u6301\u7eed\u65f6\u95f4: [[YELL
|
||||
Taming.Ability.Bonus.0=\u73af\u5883\u611f\u77e5
|
||||
Taming.Ability.Bonus.1=\u72fc\u4f1a\u907f\u514d\u5371\u9669
|
||||
Taming.Ability.Bonus.2=\u539a\u5b9e\u7684\u76ae\u6bdb
|
||||
Taming.Ability.Bonus.3=1/{0} \u4f24\u5bb3, \u706b\u7130\u62b5\u6297
|
||||
Taming.Ability.Bonus.4=\u51b2\u51fb\u62b5\u6297
|
||||
Taming.Ability.Bonus.5=\u7206\u70b8\u9020\u6210 1/{0} \u666e\u901a\u4f24\u5bb3
|
||||
Taming.Ability.Bonus.6=\u5229\u722a
|
||||
Taming.Ability.Bonus.7=+{0} \u4f24\u5bb3
|
||||
Taming.Ability.Bonus.8=\u5feb\u9910\u670d\u52a1
|
||||
Taming.Ability.Bonus.9={0} \u7684\u51e0\u7387\u653b\u51fb\u65f6\u56de\u8840
|
||||
Taming.Ability.Bonus.10=\u72ac\u795e\u7684\u5e87\u62a4
|
||||
Taming.Ability.Bonus.11=\u53d7\u5230\u9b54\u6cd5\u6216\u4e2d\u6bd2\u4f24\u5bb3\u65f6\u6062\u590d\u751f\u547d\u503c
|
||||
Taming.Ability.Locked.0= {0}+ \u7ea7\u540e\u89e3\u9501 (\u73af\u5883\u611f\u77e5)
|
||||
Taming.Ability.Locked.1=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u539a\u5b9e\u7684\u76ae\u6bdb)
|
||||
Taming.Ability.Locked.2=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u51b2\u51fb\u62b5\u6297)
|
||||
Taming.Ability.Locked.3=\u9501\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u5229\u722a)
|
||||
Taming.Combat.Chance.Gore=[[RED]]\u6d41\u8840\u51e0\u7387: [[YELLOW]]{0}
|
||||
Taming.Ability.Locked.4={0}+ \u7ea7\u540e\u89e3\u9501 (FAST FOOD SERVICE)
|
||||
Taming.Ability.Locked.5={0}+ \u7ea7\u540e\u89e3\u9501 (\u72ac\u795e\u7684\u5e87\u62a4)
|
||||
Taming.Combat.Chance.Gore=[[RED]]\u55dc\u8840\u51e0\u7387: [[YELLOW]]{0}
|
||||
Taming.Effect.0=\u9a6f\u517d\u77e5\u8bc6
|
||||
Taming.Effect.1=\u7528\u9aa8\u5934\u53f3\u952e\u5355\u51fb\u72fc\u6216\u8005\u8c79\u732b\u4ee5\u68c0\u67e5\u5b83\u4eec\u7684\u72b6\u51b5
|
||||
Taming.Effect.10=\u51b2\u51fb\u62b5\u6297
|
||||
@@ -235,7 +267,9 @@ Taming.Effect.14=[[GRAY]]\u53ec\u5524 (\u8c79\u732b): \u6309\u4f4fshift\u540c\u6
|
||||
Taming.Effect.15=[[GRAY]]\u53ec\u5524 (\u72fc): \u6309\u4f4fshift\u540c\u65f6\u5355\u51fb\u5de6\u952e \u8fd8\u9700\u8981\u62ff {0} \u6839\u9aa8\u5934\u5728\u624b\u91cc
|
||||
Taming.Effect.16=\u5feb\u9910\u670d\u52a1
|
||||
Taming.Effect.17=\u4e00\u5b9a\u51e0\u7387\u4f7f\u72fc\u5728\u653b\u51fb\u65f6\u56de\u590d\u81ea\u8eab\u8840\u91cf
|
||||
Taming.Effect.2=\u6d41\u8840
|
||||
Taming.Effect.18=\u72ac\u795e\u7684\u5e87\u62a4
|
||||
Taming.Effect.19=\u5df2\u88ab\u9b54\u6cd5 & \u4e2d\u6bd2\u6548\u679c\u6cbb\u6108
|
||||
Taming.Effect.2=\u55dc\u8840
|
||||
Taming.Effect.3=\u81f4\u547d\u653b\u51fb\u4f1a\u4f7f\u76ee\u6807\u6d41\u8840
|
||||
Taming.Effect.4=\u5229\u722a
|
||||
Taming.Effect.5=\u4f24\u5bb3\u5956\u52b1
|
||||
@@ -255,24 +289,29 @@ Unarmed.Ability.Bonus.0=\u94c1\u8155\u6a21\u5f0f
|
||||
Unarmed.Ability.Bonus.1=\u589e\u52a0{0}\u70b9\u4f24\u5bb3
|
||||
Unarmed.Ability.Chance.ArrowDeflect=[[RED]]\u7bad\u77e2\u504f\u5411\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=[[RED]]\u7f34\u68b0\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=[[RED]]\u8d85\u5f3a\u63e1\u529b\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=[[RED]]\u4f60\u7684\u5bf9\u624b\u6709\u8d85\u5f3a\u63e1\u529b!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]\u4f60\u7684\u8d85\u5f3a\u63e1\u529b\u62b5\u6321\u4f4f\u4e86\u5bf9\u65b9\u7684\u7f34\u68b0\u653b\u51fb!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u62f3\u5934**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7d27\u4e86\u4f60\u7684\u62f3\u5934**
|
||||
Unarmed.Effect.0=\u72c2\u66b4 (\u4e3b\u52a8\u6280\u80fd)
|
||||
Unarmed.Effect.1=+50% \u4f24\u5bb3, \u80fd\u7834\u574f\u786c\u5ea6\u4f4e\u7684\u65b9\u5757
|
||||
Unarmed.Effect.2=\u6389\u843d\u6b66\u5668 (\u50c5\u9650\u65bc\u73a9\u5bb6)
|
||||
Unarmed.Effect.2=\u7f34\u68b0 (\u4ec5\u9650\u73a9\u5bb6)
|
||||
Unarmed.Effect.3=\u4f7f\u654c\u4eba\u624b\u4e2d\u6b66\u5668\u6389\u843d
|
||||
Unarmed.Effect.4=\u94c1\u8155\u6a21\u5f0f
|
||||
Unarmed.Effect.5=\u4f7f\u4f60\u7684\u62a4\u7532\u968f\u65f6\u95f4\u589e\u52a0\u800c\u589e\u5f3a
|
||||
Unarmed.Effect.6=\u7bad\u77e2\u504f\u5411
|
||||
Unarmed.Effect.7=\u8ba9\u7bad\u77e2\u504f\u5411
|
||||
Unarmed.Listener=\u672a\u88c5\u5907\uff1a
|
||||
Unarmed.Effect.8=\u8d85\u5f3a\u63e1\u529b
|
||||
Unarmed.Effect.9=\u9632\u6b62\u4f60\u88ab\u7f34\u68b0
|
||||
Unarmed.Listener=\u683c\u6597:
|
||||
Unarmed.SkillName=\u683c\u6597
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**\u72c2\u66b4\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**\u72c2\u66b4\u6fc0\u6d3b**
|
||||
Unarmed.Skills.Berserk.Other.Off=[[RED]]\u72c2\u66b4[[GREEN]] \u5df2\u7ecf\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u72c2\u66b4!
|
||||
Unarmed.Skills.Berserk.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u72c2\u66b4 [[GREEN]]\u6280\u80fd\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86!
|
||||
Unarmed.Skillup=[[YELLOW]]\u5f92\u624b\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Unarmed.Skillup=[[YELLOW]]\u683c\u6597\u6280\u80fd\u4e0a\u5347\u4e86 {0}. \u603b\u7b49\u7ea7 ({1})
|
||||
Woodcutting.Ability.0=\u79cb\u98ce\u626b\u843d\u53f6
|
||||
Woodcutting.Ability.1=\u626b\u9664\u6811\u53f6
|
||||
Woodcutting.Ability.Chance.DDrop=[[RED]]\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0}
|
||||
@@ -305,15 +344,18 @@ Combat.Gore=[[GREEN]]**\u6d41\u8840**
|
||||
Combat.StruckByGore=[[RED]]**\u4f60\u5f00\u59cb\u6d41\u8840\u4e86**
|
||||
Combat.TargetDazed=\u76ee\u6807\u88ab [[DARK_RED]]\u88ab\u51fb\u6655
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]\u5934\u6655\u76ee\u7729
|
||||
mcMMO.Description=[[DARK_AQUA]]\u5173\u4e8e [[YELLOW]]mcMMO[[DARK_AQUA]]:,[[GOLD]]mcMMO \u662f\u4e00\u4e2a [[RED]]\u5f00\u6e90[[GOLD]] RPG mod \u521b\u5efa\u4e8e2011\u5e742\u6708,[[GOLD]]by [[BLUE]]nossr50[[GOLD]]. \u76ee\u6807\u4e3a\u73a9\u5bb6\u63d0\u4f9b\u4e00\u4e2a\u9ad8\u8d28\u91cf\u7684RPG\u4f53\u9a8c.,[[DARK_AQUA]]\u63d0\u793a:,[[GOLD]] - [[GREEN]]\u4f7f\u7528 [[RED]]/mcmmo help[[GREEN]] \u67e5\u770b\u6307\u4ee4,[[GOLD]] - [[GREEN]]\u8f93\u5165 [[RED]]/\u6280\u80fd\u540d[[GREEN]] \u67e5\u770b\u8be6\u7ec6\u7684\u6280\u80fd\u4fe1\u606f,[[DARK_AQUA]]\u5f00\u53d1\u8005:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](\u521b\u59cb\u4eba),[[GOLD]] - [[GREEN]]GJ [[BLUE]](\u9879\u76ee\u7ec4\u957f),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](\u5f00\u53d1\u8005),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](\u5f00\u53d1\u8005),[[DARK_AQUA]]\u6709\u7528\u7684\u94fe\u63a5:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] \u62a5\u544aBUG,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,[[YELLOW]]\u53c2\u4e0e\u8fc7\u6c49\u5316\u7684\u4eba[[DARK_AQUA]]:,[[GREEN]]664365842 hzk11o11k11o JGG Cirno zesty wolski,[[YELLOW]]\u90e8\u5206\u4fee\u6b63 [[DARK_AQUA]]by [[GREEN]]wolski,[[DARK_AQUA]]\u4fee\u6b63\u8865\u6f0f\u5de5\u4f5c\u8fd8\u5728\u7ee7\u7eed...
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]\u4f60\u7684\u6240\u6709\u7b49\u7ea7\u88ab\u5956\u52b1\u4e0a\u5347\u4e86 {0} \u7ea7!
|
||||
Commands.addlevels.AwardAll.2=[[RED]]\u6240\u6709\u6280\u80fd\u7b49\u7ea7\u5df2\u88ab\u8bbe\u7f6e\u4e3a {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]\u4f60\u5728 {1} \u91cc\u5347\u4e86 {0} \u7ea7!
|
||||
Commands.addlevels.AwardSkill.2=[[RED]]{0} \u56e0\u4e3a {1} \u800c\u88ab\u4fee\u6539.
|
||||
Commands.addxp.AwardAll=[[GREEN]]\u4f60\u7684\u6240\u6709\u6280\u80fd\u83b7\u5f97 {0} \u70b9\u7ecf\u9a8c!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]\u4f60\u5728 {1} \u88ab\u5956\u52b1\u4e86 {0} \u70b9\u7ecf\u9a8c!
|
||||
Commands.Ability.Off=\u6280\u80fd\u4f7f\u7528 [[GREEN]]\u5173\u95ed
|
||||
Commands.Ability.On=\u6280\u80fd\u4f7f\u7528 [[GREEN]]\u5f00\u542f
|
||||
Commands.AdminChat.Off=\u4ec5\u7ba1\u7406\u804a\u5929\u6a21\u5f0f [[RED]]\u5173\u95ed
|
||||
Commands.AdminChat.On=\u4ec5\u7ba1\u7406\u804a\u5929\u6a21\u5f0f [[GREEN]]\u5f00\u542f
|
||||
Commands.AdminChat.Prefix=[[AQUA]][[[WHITE]]{0}[[AQUA]]]
|
||||
Commands.AdminToggle=[[RED]]- \u5207\u6362\u7ba1\u7406\u5458\u804a\u5929
|
||||
Commands.Chat.Console=*\u63a7\u5236\u53f0*
|
||||
Commands.Disabled=[[RED]]\u8fd9\u4e2a\u6307\u4ee4\u88ab\u7981\u7528\u4e86.
|
||||
@@ -329,61 +371,148 @@ Commands.mcc.Header=[[RED]]---[][[YELLOW]]mcMMO \u6307\u4ee4[[RED]][]---
|
||||
Commands.mcgod=[[RED]]- \u5207\u6362\u4e0a\u5e1d\u6a21\u5f0f
|
||||
Commands.mchud.Invalid=[[RED]]\u90a3\u5e76\u4e0d\u662f\u53ef\u7528\u7684HUD\u7c7b\u578b.
|
||||
Commands.mcpurge.Success=[[GREEN]]\u6570\u636e\u5e93\u5df2\u88ab\u6210\u529f\u6e05\u7a7a!
|
||||
Commands.mcrank.Heading=[[GOLD]]-=\u4e2a\u4eba\u6392\u540d=-
|
||||
Commands.mcrank.Overall=[[YELLOW]]\u7efc\u5408[[GREEN]] - [[GOLD]]\u6392\u540d [[WHITE]]#[[GREEN]]{0}
|
||||
Commands.mcrank.Player=[[RED]]\u76ee\u6807: [[WHITE]]{0}
|
||||
Commands.mcrank.Skill=[[YELLOW]]{0}[[GREEN]] - [[GOLD]]\u6392\u540d [[WHITE]]#[[GREEN]]{1}
|
||||
Commands.mcrank.Unranked=[[WHITE]]\u65e0\u6392\u540d
|
||||
Commands.mcrefresh.Success=[[RED]]{0} \u7684\u51b7\u5374\u65f6\u95f4\u5df2\u5237\u65b0
|
||||
Commands.mcremove.Success=[[GREEN]]{0} \u5df2\u4ece\u6570\u636e\u5e93\u4e2d\u6210\u529f\u79fb\u9664!
|
||||
Commands.mctop.Tip=[[GOLD]]\u63d0\u793a: \u4f7f\u7528 [[RED]]/mcrank[[GOLD]] \u6765\u67e5\u770b\u4f60\u6240\u6709\u7684\u4e2a\u4eba\u6392\u540d!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - \u7f16\u8f91\u76ee\u6807
|
||||
Commands.mmoedit.AllSkills.1=[[GREEN]]\u4f60\u7684\u6240\u6709\u6280\u80fd\u7b49\u7ea7\u8bbe\u7f6e\u4e3a {0}!
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]\u4f60\u7684\u7b49\u7ea7 {0} \u88ab\u8bbe\u7f6e\u4e3a {1}!
|
||||
Commands.mmoedit.Modified.2=[[RED]]{0} \u5df2\u66f4\u6539\u4e3a {1}.
|
||||
Commands.mmoupdate.Start=[[GRAY]]\u5f00\u59cb\u8f6c\u6362...
|
||||
Commands.mmoupdate.Finish=[[GREEN]]\u8f6c\u6362\u5b8c\u6bd5!
|
||||
Commands.ModDescription=[[RED]]- \u8bf7\u9605\u8bfb\u7b80\u8981\u63d2\u4ef6\u63cf\u8ff0
|
||||
Commands.NoConsole=\u8fd9\u4e2a\u6307\u4ee4\u4e0d\u652f\u6301\u5728\u63a7\u5236\u53f0\u4f7f\u7528.
|
||||
Commands.Notifications.Off=\u6280\u80fd\u63d0\u793a [[RED]]\u5173\u95ed
|
||||
Commands.Notifications.On=\u6280\u80fd\u63d0\u793a [[GREEN]]\u5f00\u542f
|
||||
Commands.Offline=[[RED]]\u8fd9\u4e2a\u6307\u4ee4\u5bf9\u79bb\u7ebf\u73a9\u5bb6\u65e0\u6548
|
||||
Commands.Other=[[GREEN]]--\u5176\u4ed6\u547d\u4ee4--
|
||||
Commands.Party.Header=[[RED]]-----[][[GREEN]]\u961f\u4f0d[[RED]][]-----
|
||||
Commands.Party.Status=[[DARK_GRAY]]\u540d\u5b57: [[WHITE]]{0} {1}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]\u5171\u4eab\u6a21\u5f0f:
|
||||
Commands.Party.ItemShare=[[GRAY]]\u7269\u54c1 [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]\u7ecf\u9a8c [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]\u7269\u54c1\u5206\u914d: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]\u4f60\u9644\u8fd1 [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[RED]]- \u63a5\u53d7\u961f\u4f0d\u9080\u8bf7
|
||||
Commands.Party.Chat.Off=\u53ea\u5141\u8bb8\u961f\u4f0d\u804a\u5929 [[RED]]\u5173\u95ed
|
||||
Commands.Party.Chat.On=\u56e2\u961f\u804a\u5929 [[GREEN]]\u5f00\u542f
|
||||
Commands.Party.Chat.Prefix=[[GREEN]]([[WHITE]]{0}[[GREEN]])
|
||||
Commands.Party.Commands=[[GREEN]]--\u7ec4\u961f\u547d\u4ee4--
|
||||
Commands.Party.Invite.0=[[RED]]\u6ce8\u610f: [[GREEN]]\u4f60\u6536\u5230\u4e86\u4e00\u4e2a\u7ec4\u961f\u9080\u8bf7 {0} \u6765\u81ea {1}
|
||||
Commands.Party.Invite.1=[[YELLOW]]\u8f93\u5165 [[GREEN]]/party accept[[YELLOW]] \u6765\u63a5\u53d7\u9080\u8bf7
|
||||
Commands.Party.Invite=[[RED]]- \u53d1\u9001\u7ec4\u961f\u9080\u8bf7
|
||||
Commands.Party.Join=[[GRAY]]\u52a0\u5165\u7684\u961f\u4f0d: {0}
|
||||
Commands.Party.Create=[[GRAY]]\u5df2\u521b\u5efa\u961f\u4f0d: {0}
|
||||
Commands.Party.Rename=[[GRAY]]\u961f\u4f0d\u540d\u53d8\u66f4\u4e3a: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]\u961f\u4f0d {0} \u5171\u4eab\u8bbe\u7f6e\u4e3a: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]\u961f\u4f0d\u7269\u54c1\u5206\u914d\u7531 [[GOLD]]{0} [[GRAY]] \u53d8\u4e3a [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]\u961f\u4f0d {0} \u5df2\u5b58\u5728!
|
||||
Commands.Party.Kick=[[RED]]\u4f60\u5df2\u88ab {0} \u8e22\u51fa!
|
||||
Commands.Party.Leave=[[RED]]\u4f60\u79bb\u5f00\u4e86\u8fd9\u652f\u961f\u4f0d
|
||||
Commands.Party.Members.Header=[[RED]]-----[][[GREEN]]\u6210\u5458[[RED]][]-----
|
||||
Commands.Party.None=[[RED]]\u4f60\u4e0d\u5728\u961f\u4f0d\u4e2d.
|
||||
Commands.Party.Quit=[[RED]]- \u79bb\u5f00\u4f60\u73b0\u6709\u7684\u961f\u4f0d
|
||||
Commands.Party.Teleport=<player> [[RED]]- \u4f20\u9001\u5230\u961f\u4f0d\u6210\u5458
|
||||
Commands.Party.Toggle=[[RED]]- \u5207\u6362\u961f\u4f0d\u804a\u5929
|
||||
Commands.Party1=[[RED]]- \u521b\u5efa\u4e00\u4e2a\u65b0\u961f\u4f0d
|
||||
Commands.Party2=[[RED]]- \u52a0\u5165\u4e00\u4e2a\u73a9\u5bb6\u7684\u961f\u4f0d
|
||||
Commands.ptp.Enabled=\u961f\u4f0d\u4f20\u9001 [[GREEN]]\u542f\u7528
|
||||
Commands.ptp.Disabled=\u961f\u4f0d\u4f20\u9001 [[RED]]\u7981\u7528
|
||||
Commands.ptp.NoRequests=[[RED]]\u5f53\u524d\u6ca1\u6709\u4f20\u9001\u8bf7\u6c42
|
||||
Commands.ptp.NoWorldPermissions=[[RED]][mcMMO] \u4f60\u6ca1\u6709\u6743\u9650\u4f20\u9001\u5230\u4e16\u754c {0}.
|
||||
Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]\u5df2\u7ecf\u5411\u4f60\u53d1\u51fa\u8bf7\u6c42\u4f20\u9001
|
||||
Commands.ptp.Request2=[[GREEN]]\u540c\u610f\u4f20\u9001\u8f93\u5165 [[YELLOW]]/ptp accept. [[GREEN]]\u8bf7\u6c42\u5c06\u5728 [[RED]]{0} [[GREEN]] \u79d2\u540e\u5931\u6548
|
||||
Commands.ptp.AcceptAny.Enabled=\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u786e\u8ba4 [[GREEN]]\u542f\u7528
|
||||
Commands.ptp.AcceptAny.Disabled=\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u786e\u8ba4 [[RED]]\u7981\u7528
|
||||
Commands.ptp.RequestExpired=[[RED]]\u961f\u4f0d\u4f20\u9001\u8bf7\u6c42\u5df2\u5931\u6548!
|
||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] \u80fd\u529b\u7b49\u7ea7 [[YELLOW]]\u6392\u884c\u699c--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]\u80fd\u529b\u7b49\u7ea7: [[GREEN]]{0} [[DARK_RED]]\u6700\u9ad8\u7b49\u7ea7: [[YELLOW]]{1}
|
||||
Commands.PowerLevel=[[DARK_RED]]\u80fd\u529b\u7b49\u7ea7: [[GREEN]]{0}
|
||||
Commands.Reset.All=[[GREEN]]\u4f60\u7684\u6280\u672f\u6c34\u5e73\u5df2\u590d\u4f4d\u6210\u529f.
|
||||
Commands.Reset.Single=[[GREEN]]\u60a8\u7684 {0} \u6280\u672f\u6c34\u5e73\u5df2\u590d\u4f4d\u6210\u529f\u3002
|
||||
Commands.Reset=[[RED]]\u91cd\u7f6e\u6280\u80fd\u7b49\u7ea7\u4e3a0
|
||||
Commands.Skill.Invalid=[[RED]]\u8fd9\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u6280\u80fd\u540d\u5b57!
|
||||
Commands.Skill.Leaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] \u6392\u884c\u699c--
|
||||
Commands.SkillInfo=/<skill> [[RED]]- \u67e5\u770b\u6280\u80fd\u7684\u8be6\u7ec6\u4fe1\u606f
|
||||
Commands.Stats.Self=\u4f60\u7684\u4fe1\u606f
|
||||
Commands.Stats=[[RED]]- \u67e5\u770b\u4f60\u7684mcMMO\u7edf\u8ba1\u4fe1\u606f
|
||||
Commands.ToggleAbility=[[RED]]- \u7528\u9f20\u6807\u53f3\u952e\u5207\u6362\u6280\u80fd\u6fc0\u6d3b\u6a21\u5f0f
|
||||
Commands.Usage.0=[[RED]]\u6b63\u786e\u7684\u7528\u6cd5 /{0}
|
||||
Commands.Usage.1=[[RED]]\u6b63\u786e\u7684\u7528\u6cd5\u5e94\u4e3a /{0} {1}
|
||||
Commands.Usage.2=[[RED]]\u6b63\u786e\u7684\u7528\u6cd5 /{0} {1} {2}
|
||||
Commands.Usage.3=[[RED]]\u6b63\u786e\u7684\u7528\u6cd5 /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=\u7b49\u7ea7
|
||||
Commands.Usage.Message=\u6d88\u606f
|
||||
Commands.Usage.Page=\u9875
|
||||
Commands.Usage.PartyName=\u540d\u79f0
|
||||
Commands.Usage.Password=\u5bc6\u7801
|
||||
Commands.Usage.Player=\u73a9\u5bb6
|
||||
Commands.Usage.Rate=\u6bd4\u7387
|
||||
Commands.Usage.Skill=\u6280\u80fd
|
||||
Commands.Usage.XP=\u7ecf\u9a8c\u503c
|
||||
mcMMO.NoInvites=[[RED]]\u4f60\u73b0\u5728\u6ca1\u6709\u6536\u5230\u4efb\u4f55\u9080\u8bf7
|
||||
mcMMO.NoPermission=[[DARK_RED]]\u6743\u9650\u4e0d\u8db3.
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]\u5982\u679c\u4f60\u6ca1\u6709\u67d0\u4e2a\u6280\u80fd\u7684\u4f7f\u7528\u6743\u9650\u90a3\u4e48\u4ed6\u5c06\u4e0d\u4f1a\u5728\u8fd9\u91cc\u663e\u793a.
|
||||
Party.Forbidden=[mcMMO] \u961f\u4f0d\u529f\u80fd\u4e0d\u5141\u8bb8\u5728\u8fd9\u4e2a\u4e16\u754c\u5f00\u542f (\u8be6\u60c5\u8bf7\u770b\u6743\u9650\u914d\u7f6e)
|
||||
Party.Help.0=[[RED]]\u6b63\u786e\u7684\u7528\u6cd5 [[DARK_AQUA]]{0} <player> [password].
|
||||
Party.Help.1=[[RED]]\u521b\u5efa\u4e00\u4e2a\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0} <name> [password].
|
||||
Party.Help.2=[[RED]]\u67e5\u9605 [[DARK_AQUA]]{0} [[RED]]\u83b7\u53d6\u66f4\u591a\u4fe1\u606f
|
||||
Party.Help.3=[[RED]]\u4f7f\u7528 [[DARK_AQUA]]{0} <player> [password] [[RED]]\u52a0\u5165\u6216 [[DARK_AQUA]]{1} [[RED]]\u9000\u51fa
|
||||
Party.Help.4=[[RED]]\u9501\u5b9a\u6216\u89e3\u9501\u4f60\u7684\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0}
|
||||
Party.Help.5=[[RED]]\u8bbe\u7f6e\u961f\u4f0d\u5bc6\u7801, \u4f7f\u7528 [[DARK_AQUA]]{0} <password>
|
||||
Party.Help.6=[[RED]]\u4ece\u4f60\u7684\u961f\u4f0d\u4e2d\u8e22\u51fa\u73a9\u5bb6, \u4f7f\u7528 [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.7=[[RED]]\u79fb\u4ea4\u961f\u957f, \u4f7f\u7528 [[DARK_AQUA]]{0} <player>
|
||||
Party.Help.8=[[RED]]\u89e3\u6563\u961f\u4f0d, \u4f7f\u7528 [[DARK_AQUA]]{0}
|
||||
Party.InformedOnJoin={0} [[GREEN]]\u5df2\u7ecf\u52a0\u5165\u4f60\u7684\u961f\u4f0d
|
||||
Party.InformedOnQuit={0} [[GREEN]]\u79bb\u5f00\u4e86\u961f\u4f0d
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]\u5df2\u8bbe\u7f6e\u961f\u4f0d\u540d\u4e3a [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]\u90a3\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u961f\u4f0d\u540d\u5b57.
|
||||
Party.Invite.Self=[[RED]]\u4f60\u4e0d\u80fd\u9080\u8bf7\u81ea\u5df1!
|
||||
Party.IsLocked=[[RED]]\u8fd9\u4e2a\u961f\u4f0d\u5df2\u7ecf\u9501\u5b9a!
|
||||
Party.IsntLocked=[[RED]]\u8fd9\u4e2a\u961f\u4f0d\u5e76\u6ca1\u6709\u9501\u5b9a!
|
||||
Party.Locked=[[RED]]\u961f\u4f0d\u88ab\u9501\u5b9a, \u53ea\u6709\u961f\u957f\u53ef\u4ee5\u9080\u8bf7.
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} \u4f60\u4e0d\u5728\u4f60\u7684\u56e2\u961f
|
||||
Party.NotOwner=[[DARK_RED]]\u4f60\u4e0d\u662f\u961f\u957f
|
||||
Party.Owner.New=[[GREEN]]{0} \u73b0\u5728\u662f\u65b0\u7684\u6d3e\u7cfb\u9886\u961f.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]\u4f60\u5df2\u7ecf\u4e0d\u518d\u662f\u6d3e\u7cfb\u5185\u7684\u9886\u961f.
|
||||
Party.Owner.Player=[[GREEN]]\u4f60\u73b0\u5728\u4e0d\u662f\u961f\u957f\u4e86
|
||||
Party.Password.None=[[RED]]\u52a0\u5165\u8fd9\u4e2a\u961f\u4f0d\u9700\u8981\u5bc6\u7801. \u8bf7\u63d0\u4f9b\u5bc6\u7801\u518d\u52a0\u5165
|
||||
Party.Password.Incorrect=[[RED]]\u961f\u4f0d\u5bc6\u7801\u9519\u8bef
|
||||
Party.Password.Set=[[GREEN]]\u961f\u4f0d\u5bc6\u7801\u8bbe\u7f6e\u4e3a {0}
|
||||
Party.Password.Removed=[[GREEN]]\u961f\u4f0d\u5bc6\u7801\u5df2\u88ab\u6e05\u9664
|
||||
Party.Player.Invalid=[[RED]]\u8fd9\u4e0d\u662f\u4e00\u540d\u6709\u6548\u7684\u73a9\u5bb6
|
||||
Party.NotOnline=[[DARK_RED]]{0} \u4e0d\u5728\u7ebf!
|
||||
Party.Player.InSameParty=[[RED]]{0} \u5df2\u7ecf\u5728\u961f\u4f0d\u4e2d!
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} \u4e0d\u5728\u961f\u4f0d\u91cc
|
||||
Party.Specify=[[RED]]\u4f60\u5fc5\u987b\u6307\u5b9a\u4e00\u4e2a\u961f\u4f0d
|
||||
Party.Teleport.Dead=[[RED]]\u4f60\u4e0d\u80fd\u4f20\u9001\u5230\u6b7b\u4ea1\u7684\u73a9\u5bb6\u8eab\u8fb9
|
||||
Party.Teleport.Hurt=[[RED]]\u4f60\u53d7\u5230\u4f24\u5bb3, \u81f3\u5c11 {0} \u79d2\u5185\u4e0d\u80fd\u4f20\u9001
|
||||
Party.Teleport.Player=[[GREEN]]\u4f60\u5df2\u7ecf\u4f20\u9001\u5230 {0}.
|
||||
Party.Teleport.Self=[[RED]]\u4f60\u4e0d\u80fd\u4f20\u9001\u5230\u4f60\u81ea\u5df1\u90a3\u91cc!
|
||||
Party.Teleport.Target=[[GREEN]]{0} \u5df2\u7ecf\u4f20\u9001\u5230\u4f60\u8eab\u8fb9.
|
||||
Party.Teleport.Disabled=[[RED]]{0} \u4e0d\u5141\u8bb8\u961f\u4f0d\u4f20\u9001
|
||||
Party.Rename.Same=[[RED]]\u8fd9\u5df2\u7ecf\u662f\u4f60\u7684\u961f\u4f0d\u540d\u5b57\u4e86!
|
||||
Party.Join.Self=[[RED]]\u4f60\u4e0d\u80fd\u52a0\u5165\u4f60\u81ea\u5df1!
|
||||
Party.Unlocked=[[GRAY]]\u961f\u4f0d\u5df2\u89e3\u9501
|
||||
Party.Disband=[[GRAY]]\u961f\u4f0d\u5df2\u89e3\u6563
|
||||
Party.Status.Locked=[[DARK_RED]](\u4ec5\u9080\u8bf7)
|
||||
Party.Status.Unlocked=[[DARK_GREEN]](\u5f00\u542f)
|
||||
Party.ShareType.Exp=\u7ecf\u9a8c
|
||||
Party.ShareType.Item=\u7269\u54c1
|
||||
Party.ShareMode.None=\u65e0
|
||||
Party.ShareMode.Equal=\u5747\u5206
|
||||
Party.ShareMode.Random=\u968f\u673a
|
||||
Party.ExpShare.Disabled=[[RED]]\u961f\u4f0d\u7ecf\u9a8c\u5171\u4eab\u5df2\u7981\u7528
|
||||
Party.ItemShare.Disabled=[[RED]]\u961f\u4f0d\u7269\u54c1\u5206\u914d\u5df2\u5173\u95ed
|
||||
Commands.XPGain.Acrobatics=\u6389\u843d
|
||||
Commands.XPGain.Archery=\u7a7a\u624b\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Axes=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Child=\u4ece\u4e3b\u6280\u80fd\u83b7\u53d6\u7b49\u7ea7
|
||||
Commands.XPGain.Excavation=\u6316\u5230\u5b9d\u7269
|
||||
Commands.XPGain.Fishing=\u9493\u9c7c (\u53bb\u60f3\u60f3\u5427\uff01)
|
||||
Commands.XPGain.Herbalism=\u6536\u83b7\u4f5c\u7269
|
||||
@@ -392,10 +521,11 @@ Commands.XPGain.Repair=\u4fee\u7406
|
||||
Commands.XPGain.Swords=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Taming=\u9a6f\u517d, \u548c\u4f60\u7684\u72fc\u4e00\u8d77\u6218\u6597
|
||||
Commands.XPGain.Unarmed=\u653b\u51fb\u602a\u7269
|
||||
Commands.XPGain.Woodcutting=\u6b63\u5728\u780d\u5012\u6811\u6728
|
||||
Commands.XPGain=[[DARK_GRAY]]\u83b7\u5f97\u7ecf\u9a8c: [[WHITE]]{0}
|
||||
Commands.xplock.locked=[[GOLD]]\u4f60\u7684\u7ecf\u9a8c\u6761\u9501\u5b9a\u5728 {0}!
|
||||
Commands.xplock.unlocked=[[GOLD]]\u4f60\u7684\u7ecf\u9a8c\u6761\u73b0\u5728 [[GREEN]]\u89e3\u9664\u9501\u5b9a\u4e86[[GOLD]]!
|
||||
Commands.xprate.modified=[[RED]]\u7ecf\u9a8c\u6c47\u7387\u5df2\u88ab\u8bbe\u7f6e\u4e3a {0}
|
||||
Commands.xprate.modified=[[RED]]\u7ecf\u9a8c\u500d\u7387\u5df2\u8bbe\u7f6e\u4e3a {0}
|
||||
Commands.xprate.over=[[RED]]mcMMO \u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u7ed3\u675f!!
|
||||
Commands.xprate.proper.0=[[RED]]\u60f3\u4fee\u6539\u7ecf\u9a8c\u83b7\u53d6\u7387\u8bf7\u8f93\u5165 /xprate <integer> <true/false>
|
||||
Commands.xprate.proper.1=[[RED]]\u60f3\u628a\u7ecf\u9a8c\u83b7\u53d6\u7387\u8c03\u6574\u4e3a\u9ed8\u8ba4\u8bf7\u8f93\u5165 /xprate reset
|
||||
@@ -404,14 +534,28 @@ Commands.xprate.started.0=[[GOLD]] mcMMO \u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u5df2\u
|
||||
Commands.xprate.started.1=[[GOLD]]mcMMO \u7ecf\u9a8c\u83b7\u53d6\u7387\u73b0\u5728\u4e3a {0}x!
|
||||
XPRate.Event=[[GOLD]]mcMMO \u73b0\u5728\u6b63\u5904\u4e8e\u9ad8\u7ecf\u9a8c\u4e8b\u4ef6\u9636\u6bb5! \u7ecf\u9a8c\u83b7\u53d6\u7387\u4e3a {0}\u500d
|
||||
Effects.Effects=\u6548\u679c
|
||||
Effects.Child=[[DARK_GRAY]]\u7b49\u7ea7: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]\u7b49\u7ea7: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Acrobatics=[[DARK_AQUA]]\u5173\u4e8e\u6742\u6280:\n[[YELLOW]]\u6742\u6280\u662f\u4e00\u95e8\u4f18\u96c5\u7684\u79fb\u52a8\u827a\u672f.\n[[YELLOW]]\u4ed6\u53ef\u4ee5\u63d0\u4f9b\u6218\u6597\u65f6\u7684\u989d\u5916\u5c5e\u6027\u5956\u52b1\u5e76\u4e14\u662f\u4f60\u7684\u79fb\u52a8\u66f4\u52a0\u65b9\u4fbf.\n[[DARK_AQUA]]\u63d0\u5347\u7ecf\u9a8c:\n[[YELLOW]]\u901a\u8fc7\u5728\u6218\u6597\u4e2d\u95ea\u907f\u5bf9\u624b\u6216\u8005\u4ece\u9ad8\u5904\u8dcc\u843d\u4e0d\u6b7b\u6765\u63d0\u5347\u8be5\u6280\u80fd\u7684\u7ecf\u9a8c.\n[[DARK_AQUA]]\u7ffb\u6eda\u662f\u5982\u4f55\u5de5\u4f5c\u7684?\n[[YELLOW]]\u7ffb\u6eda\u65f6\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd,\u5728\u4f60\u4ece\u9ad8\u7a7a\u6389\u843d\u65f6\uff0c\u4ed6\u6709\u4e00\u5b9a\u51e0\u7387\u51cf\u5c11\u6216\u8005\u5b8c\u5168\u6d88\u9664\u4f60\u6240\u53d7\u5230\u7684\u4f24\u5bb3\n[[YELLOW]]This triggers a Graceful Roll instead of a standard one.\n[[YELLOW]]Graceful Rolls are like regular rolls but are twice as likely to\n[[YELLOW]]occur and provide more damage safety than regular rolls.\n[[YELLOW]]\u7ffb\u6eda\u7684\u51e0\u7387\u548c\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u6709\u5173\n[[DARK_AQUA]]\u95ea\u907f\u662f\u5982\u4f55\u5de5\u4f5c\u7684?\n[[YELLOW]]\u95ea\u907f\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\uff0c\u4ed6\u5728\u4f60\u88ab\u653b\u51fb\u65f6\u6709\u4e00\u5b9a\u51e0\u7387\u88ab\u6fc0\u53d1.\n[[YELLOW]]\u8fd9\u4e2a\u51e0\u7387\u548c\u4f60\u7684\u6280\u80fd\u7b49\u7ea7\u6709\u5173.
|
||||
Guides.Axes=\u8bf4\u660e\u5373\u5c06\u5230\u6765...
|
||||
Guides.Archery=[[DARK_AQUA]]\u5173\u4e8e \u7bad\u672f:\n[[YELLOW]]\u7528\u4f60\u7684\u5f13\u548c\u7bad\u8fdb\u884c\u5c04\u51fb\n[[YELLOW]]\u5b83\u63d0\u4f9b\u4e30\u5bcc\u7684\u989d\u5916\u6218\u6597\u52a0\u6210, \u5982\u4f24\u5bb3\u52a0\u6210\u968f\u7740\n[[YELLOW]]\u6280\u80fd\u7b49\u7ea7\u63d0\u9ad8, PVP\u65f6\u51fb\u6655\u4f60\u7684\u5bf9\u624b\n[[YELLOW]]\u53e6\u5916, \u4f60\u53ef\u4ee5\u4ece\u654c\u4eba\u7684\u5c38\u4f53\u4e0a\u53d6\u56de\u7bad\n[[YELLOW]]\u4ece\u800c\u8282\u7701\u4f60\u7684\u7bad\u77e2\u7528\u91cf\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6:\n[[YELLOW]]\u7ecf\u9a8c\u83b7\u53d6\u91cf\n[[YELLOW]]\u53d6\u51b3\u4e8e\u4f60\u5bf9\u751f\u7269\u6216\u73a9\u5bb6\u9020\u6210\u7684\u4f24\u5bb3\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u719f\u7ec3\u5c04\u51fb?\n[[YELLOW]]\u4e3a\u4f60\u7684\u5c04\u51fb\u63d0\u4f9b\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u989d\u5916\u4f24\u5bb3\u4e0e\u4f60\u7684\u7bad\u672f\u7b49\u7ea7\u6709\u5173\n[[YELLOW]]\u9ed8\u8ba4\u7684\n[[YELLOW]]\u6bcf50\u7ea7\u63d0\u9ad810%\u4f24\u5bb3\n[[YELLOW]]\u6700\u9ad8200%\n[[DARK_AQUA]]\u5982\u4f55\u51fb\u6655?\n[[YELLOW]]\u7528\u5f13\u7bad\u5c04\u51fb\u5176\u4ed6\u73a9\u5bb6\u65f6\u4e00\u5b9a\u51e0\u7387\n[[YELLOW]]\u4f7f\u4f60\u7684\u5bf9\u624b\u8fdb\u5165\u7729\u6655\u72b6\u6001\n[[YELLOW]]\u7729\u6655\u7684\u73a9\u5bb6\u89c6\u89d2\u5f3a\u5236\u671b\u5929\u6301\u7eed\u4e00\u6bb5\u65f6\u95f4\n[[YELLOW]]\u51fb\u6655\u540c\u65f6\u9644\u52a04\u70b9\u989d\u5916\u4f24\u5bb3 (2 \u5fc3).\n[[DARK_AQUA]]\u7bad\u77e2\u56de\u6536\u662f\u4ec0\u4e48?\n[[YELLOW]]\u4f60\u6709\u4e00\u5b9a\u51e0\u7387\u4ece\u6740\u6b7b\u7684\u751f\u7269\n[[YELLOW]]\u8eab\u4e0a\u53d6\u56de\u4e00\u4e9b\u7bad\u77e2\n[[YELLOW]]\u51e0\u7387\u4e0e\u7bad\u672f\u7b49\u7ea7\u6709\u5173\n[[YELLOW]]\u9ed8\u8ba4\u7684, \u6bcf\u5347\u4e00\u7ea7\u63d0\u9ad80.1%\n[[YELLOW]]\u6700\u9ad8100% (1000\u7ea7)
|
||||
Guides.Axes=[[DARK_AQUA]]\u5173\u4e8e \u65a7\u6280:\n[[YELLOW]]\u7528\u4e86\u65a7\u5934\u6280\u80fd, \u65a7\u5b50\u4e0d\u518d\u53ea\u662f\u780d\u6811\u7528\u4e86\n[[YELLOW]]\u4f60\u8fd8\u53ef\u4ee5\u780d\u5176\u4ed6\u751f\u7269\u548c\u73a9\u5bb6\u6765\u8d5a\u53d6\u7ecf\u9a8c\n[[YELLOW]]\u6253\u51fb\u751f\u7269\u65f6\u9644\u52a0\u51fb\u9000\u6548\u679c\n[[YELLOW]]\u8fd8\u4f1a\u5bf9\u751f\u7269\u548c\u73a9\u5bb6\u9020\u6210\u81f4\u547d\u4f24\u5bb3\n[[YELLOW]]\u4f60\u7684\u65a7\u5b50\u4f1a\u50cf\u4f10\u6728\u673a\u4e00\u6837\n[[YELLOW]]\u8f7b\u677e\u524a\u6389\u654c\u4eba\u7684\u62a4\u7532\n[[YELLOW]]\u6548\u679c\u968f\u7740\u6280\u80fd\u7b49\u7ea7\u63d0\u9ad8\n[[DARK_AQUA]]\u7ecf\u9a8c\u7684\u83b7\u53d6:\n[[YELLOW]]\u624b\u6301\u65a7\u5b50\n[[YELLOW]]\u653b\u51fb\u5176\u4ed6\u751f\u7269\u6216\u73a9\u5bb6\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u65a9\u9996\u8005?\n[[YELLOW]]\u8fd9\u4e2a\u6280\u80fd\u4f1a\u9020\u6210\u8303\u56f4\u6253\u51fb\u4f24\u5bb3\n[[YELLOW]]\u8303\u56f4\u6253\u51fb\u4f24\u5bb3\u7b49\u4e8e\u5bf9\u4e3b\u8981\u653b\u51fb\u76ee\u6807\u9020\u6210\u4f24\u5bb3\u768450%\n[[YELLOW]]\u6240\u4ee5\u5f88\u5bb9\u6613\u6e05\u7406\u6389\u4e00\u5927\u7247\u602a\u7269\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u81f4\u547d\u6253\u51fb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4e00\u5b9a\u51e0\u7387\u5bf9\u76ee\u6807\u9020\u6210\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u9ed8\u8ba4\u7684, \u6bcf2\u7ea7\u589e\u52a0 0.1%\u51e0\u7387\n[[YELLOW]]\u5bf9\u751f\u7269\u9020\u62102\u500d\u4f24\u5bb3\n[[YELLOW]]\u5bf9\u73a9\u5bb6\u9020\u62101.5\u500d\u4f24\u5bb3\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u65a7\u7cbe\u901a?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4f7f\u7528\u65a7\u5b50\u653b\u51fb\u65f6\u9644\u52a0\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u9ed8\u8ba4\u7684, \u6bcf50\u7ea7\u989d\u5916\u63d0\u9ad81\u70b9\u4f24\u5bb3\n[[YELLOW]]4\u70b9\u989d\u5916\u4f24\u5bb3\u5c01\u9876\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u88c5\u7532\u51b2\u51fb?\n[[YELLOW]]\u51fb\u788e\u654c\u4eba\u7684\u88c5\u7532\u5427!\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd, \u4e00\u5b9a\u51e0\u7387\u91cd\u521b\u5bf9\u624b\u7684\u88c5\u7532\n[[YELLOW]]\u4f24\u5bb3\u968f\u7740\u6280\u80fd\u7684\u7b49\u7ea7\u63d0\u9ad8\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5f3a\u529b\u51b2\u51fb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4f7f\u7528\u65a7\u5b50\u653b\u51fb\u65f6\u4e00\u5b9a\u51e0\u7387\u7ed9\u751f\u7269\u6216\u73a9\u5bb6\u5e26\u6765\u5de8\u5927\u7684\u51b2\u51fb\u529b\n[[YELLOW]]\u9ed8\u8ba4\u51e0\u7387\u4e3a 25%. \u9644\u52a0\u6781\u5927\u7684\u51fb\u9000\u6548\u679c\n[[YELLOW]]\u6548\u679c\u76f8\u5f53\u4e8e \u51fb\u9000 II \u7684\u9644\u9b54\u6548\u679c\n[[YELLOW]]\u989d\u5916\u7684, \u8fd8\u4f1a\u5bf9\u76ee\u6807\u9020\u6210\u989d\u5916\u4f24\u5bb3
|
||||
Guides.Available=[[DARK_AQUA]]{0} \u7684\u5411\u5bfc - \u8f93\u5165/{1} ? [\u9875\u6570]
|
||||
Guides.Excavation=[[DARK_AQUA]]\u5173\u4e8e\u6316\u6398:\n[[YELLOW]]\u6316\u6398\u662f\u4ece\u4e0d\u8d77\u773c\u7684\u4e1c\u897f\u4e2d\u627e\u51fa\u5b9d\u85cf\u7684\u827a\u672f.\n[[YELLOW]]\u901a\u8fc7\u6316\u6398\u4f60\u5c06\u627e\u5230\u5b9d\u85cf.\n[[YELLOW]]\u6316\u5f97\u8d8a\u591a\uff0c\u56de\u62a5\u8d8a\u591a.\n\n[[DARK_AQUA]]\u7ecf\u9a8c\u503c\u589e\u957f:\n[[YELLOW]]\u4e3a\u4e86\u589e\u957f\u8fd9\u4e2a\u6280\u80fd\u7684\u7ecf\u9a8c\uff0c\u4f60\u5fc5\u987b\u7528\u94f2\u5b50\u6765\u6316\u6398.\n[[YELLOW]]\u53ea\u6709\u6316\u6398\u6b63\u786e\u7684\u7269\u4f53\u624d\u80fd\u83b7\u5f97\u8d22\u5b9d\u548c\u7ecf\u9a8c\u503c.\n[[DARK_AQUA]]\u517c\u5bb9\u7684\u7269\u4f53:\n[[YELLOW]]\u8349\u65b9\u5757, \u6ce5\u571f, \u6c99\u5b50, \u7c98\u571f, \u7802\u783e, \u83cc\u4e1d\u4f53, \u7075\u9b42\u6c99\n\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u66b4\u8d70\u94bb\u5934:\n[[YELLOW]]\u624b\u91cc\u62ff\u7740\u94f2\u5b50\u5e76\u70b9\u51fb\u9f20\u6807\u53f3\u952e.\n[[YELLOW]]\u7136\u540e\u4f60\u67094\u79d2\u7684\u65f6\u95f4\u6765\u6fc0\u53d1\u8fd9\u4e2a\u6280\u80fd\n[[YELLOW]]\u6316\u90a3\u4e9b\u517c\u5bb9\u7684\u65b9\u5757\n[[YELLOW]]\u542f\u52a8\u66b4\u8d70\u94bb\u5934.\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u66b4\u8d70\u94bb\u5934?\n[[YELLOW]]\u66b4\u8d70\u94bb\u5934\u662f\u4e00\u4e2a\u9700\u8981\u51b7\u5374\u65f6\u95f4\u7684\u6280\u80fd\n[[YELLOW]\u4ed6\u548c\u6316\u6398\u6280\u80fd\u6709\u76f8\u540c\u6548\u679c\uff0c\u4e0d\u8fc7\u5b83\u80fd\u63d0\u9ad8\u4f603\u500d\u7684\u51e0\u7387\n[[YELLOW]]\u6765\u6316\u6398\u5b9d\u85cf\u548c\u77ac\u95f4\u6316\u6398\n[[YELLOW]]\u5bf9\u4e8e\u90a3\u4e9b\u517c\u5bb9\u7684\u7269\u54c1.\n\n[[DARK_AQUA]]\u5b9d\u85cf\u730e\u624b\u662f\u5982\u4f55\u5de5\u4f5c\u7684?\n[[YELLOW]]\u6bcf\u4e00\u79cd\u53ef\u80fd\u7684\u8d22\u5b9d\u90fd\u9700\u8981\u8fbe\u5230\u4e00\u5b9a\u7684\n[[YELLOW]]\u6280\u80fd\u7b49\u7ea7\u6765\u4f7f\u5176\u6389\u51fa\uff0c\u6240\u4ee5\u4f60\u80fd\u77e5\u9053\n[[YELLOW]]\u8fd9\u4e2a\u6280\u80fd\u80fd\u5e2e\u52a9\u4f60\u89e3\u51b3\u5f88\u591a\u7684\u56f0\u96be\n[[YELLOW]]\u4f60\u53ea\u9700\u8981\u77e5\u9053\u8d8a\u9ad8\u7684\u6316\u6398\u6280\u80fd\u7b49\u7ea7\n[[YELLOW]]\u4f60\u5c31\u80fd\u627e\u5230\u8d8a\u591a\u7684\u5b9d\u85cf\n[[YELLOW]]\u540c\u65f6\uff0c\u4f60\u4e5f\u8981\u4e86\u89e3\u6bcf\u4e00\u79cd\u517c\u5bb9\u7684\u6316\u6398\u6750\u6599\u4f1a\u6389\u843d\u51fa\u5bf9\u5e94\u7684\u5b9d\u85cf\n[[YELLOW]]\u8fd9\u5c31\u610f\u5473\u7740\u76f8\u5bf9\u4e8e\u6c99\u783e\uff0c\u4f60\u53ef\u80fd\u4f1a\u5728\u6ce5\u571f\u4e2d\u627e\u51fa\u66f4\u591a\u7684\u4e1c\u897f\n[[DARK_AQUA]]\u6316\u6398\u6280\u80fd\u5c0f\u63d0\u793a:\n[[YELLOW]]\u6316\u6398\u65f6\u6389\u843d\u7684\u4e1c\u897f\u53ef\u4ee5\u81ea\u884c\u7f16\u8f91\n[[YELLOW]]\u6240\u4ee5\u670d\u52a1\u5668\u4e4b\u95f4\u53ef\u80fd\u4f1a\u5b8c\u5168\u4e0d\u540c
|
||||
Guides.Fishing=[[DARK_AQUA]]\u5173\u4e8e\u9493\u9c7c:\n[[YELLOW]]\u62e5\u6709\u9493\u9c7c\u6280\u80fd\uff0c\u4f1a\u4f7f\u5f97\u9493\u9c7c\u53d8\u5f97\u632f\u594b\u4eba\u5fc3!\n[[YELLOW]]\u53d1\u73b0\u5b9d\u85cf\uff0c\u83b7\u5f97\u602a\u7269\u6389\u843d\u7684\u7269\u54c1.\n\n[[DARK_AQUA]]\u7ecf\u9a8c\u589e\u957f:\n[[YELLOW]]\u6293\u5230\u9c7c.
|
||||
Guides.Mining=[[DARK_AQUA]]\u5173\u4e8e\u91c7\u77ff\uff1a\n[[YELLOW]]\u5728\u91c7\u77ff\u7684\u65f6\u5019\uff0c\u91c7\u77ff\u6280\u80fd\u63d0\u4f9b\u591a\u91cd\u77ff\u7269\u6389\u843d\u7684\u5956\u52b1\n[[DARK_AQUA]]\u63d0\u5347\u7ecf\u9a8c\uff1a\n[[YELLOW]]\u4f60\u5fc5\u987b\u4f7f\u7528\u9550\u5b50\u6765\u589e\u52a0\u672c\u6280\u80fd\u7684\u7ecf\u9a8c\n[[YELLOW]]\u53ea\u6709\u6b63\u786e\u7684\u65b9\u5757\u80fd\u589e\u52a0\u7ecf\u9a8c\n[[DARK_AQUA]]\u517c\u5bb9\u7684\u539f\u6599\uff1a\n[[YELLOW]]\u77f3\u5934\uff0c\u7164\u77ff\uff0c\u94c1\u77ff\uff0c\u91d1\u77ff\uff0c\u94bb\u77f3\u77ff\uff0c\u7ea2\u77f3\u77ff\n[[YELLOW]]\u9752\u91d1\u77f3\u77ff\uff0c\u9ed1\u66dc\u77f3\uff0c\u82d4\u77f3\uff0c\u672b\u5f71\u77f3\n[[YELLOW]]\u8424\u77f3\uff0c\u5730\u72f1\u5ca9\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u8d85\u7ea7\u77ff\u5de5\uff1a\n[[YELLOW]]\u628a\u9550\u5b50\u62ff\u5728\u624b\u4e0a\uff0c\u4f7f\u7528\u9f20\u6807\u53f3\u952e\u6765\u51c6\u5907\u4f60\u7684\u9550\u5b50\n[[YELLOW]]\u4f60\u5c06\u67094\u79d2\u949f\u7684\u65f6\u95f4\u6765\u6fc0\u53d1\u4f60\u7684\u6280\u80fd\n[[YELLOW]]\u5f53\u6316\u6398\u517c\u5bb9\u7684\u65b9\u5757\u65f6\uff0c\u8d85\u7ea7\u77ff\u5de5\u5c06\u88ab\u6fc0\u6d3b\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u7ea7\u77ff\u5de5\uff1f\n[[YELLOW]]\u8d85\u7ea7\u77ff\u5de5\u662f\u9700\u8981\u51b7\u5374\u7684\u6316\u77ff\u6280\u80fd\n[[YELLOW]]\u5b83\u4f7f\u4f60\u5728\u6316\u77ff\u65f6\u67093\u500d\u7684\u673a\u4f1a\u6765\u6389\u843d\u66f4\u591a\u7684\u4e1c\u897f\uff0c\u5e76\u6fc0\u53d1\u77ac\u95f4\u7834\u574f\u529f\u80fd\n[[DARK_AQUA]\u5982\u4f55\u4f7f\u7528\u7206\u7834\u5f00\u91c7\uff1a\n[[YELLOW]]\u628a\u96f7\u7ba1\u62ff\u5728\u624b\u4e0a\uff0c\u9ed8\u8ba4\u7684\u60c5\u51b5\u4e0b\u662f\u6253\u706b\u5668\n[[YELLOW]]\u5728\u4e00\u5b9a\u8ddd\u79bb\u5185\u53f3\u952e\u70b9\u51fbTNT\uff0c\u8fd9\u5c06\u4f1a\u4f7f\u5f97TNT\u5728\u77ac\u95f4\u5185\u7206\u70b8\n[[DARK_AQUA]]\u7206\u7834\u5f00\u91c7\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u662f\u9700\u8981\u51b7\u5374\u7684\u6316\u77ff\u6280\u80fd\n[[YELLOW]]\u5b83\u53ef\u4ee5\u5728\u4f60\u4f7f\u7528TNT\u6316\u77ff\u65f6\u7ed9\u4f60\u989d\u5916\u7684\u77ff\u7269\u5956\u52b1\u5e76\u4e14\u5141\u8bb8\u4f60\u5728\u8f83\u8fdc\u7684\u5730\u65b9\u5f15\u7206TNT\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u5206\u4e3a3\u4e2a\u90e8\u5206\n[[YELLOW]]\u7b2c\u4e00\u4e2a\u90e8\u5206\u662f\u201c\u66f4\u5927\u7684\u7206\u7834\u201d\uff0c\u53ef\u4ee5\u63d0\u9ad8\u7206\u70b8\u7684\u8303\u56f4\n[[YELLOW]]\u90fd\u4e8c\u4e2a\u90e8\u5206\u662f\u201c\u7834\u574f\u4e13\u5bb6\u201d\uff0c\u53ef\u4ee5\u51cf\u5c11\u6765\u81eaTNT\u7684\u7206\u70b8\u4f24\u5bb3\n[[YELLOW]\u7b2c\u4e09\u4e2a\u90e8\u5206\u662f\u63d0\u5347\u77ff\u7269\u6389\u843d\u7684\u6570\u91cf\u5e76\u4e14\u51cf\u5c11\u4e0d\u9700\u8981\u7684\u4e1c\u897f\u7684\u6389\u843d
|
||||
Guides.Repair=[[DARK_AQUA]]\u5173\u4e8e\u4fee\u7406:\n[[YELLOW]]\u4fee\u7406\u529f\u80fd\u53ef\u4ee5\u4e3a\u4f60\u63d0\u4f9b\u4e86\u7528\u4e00\u4e2a\u94c1\u65b9\u5757\u6765\u4fee\u7406\u62a4\u7532\u548c\n[[YELLOW]]\u5de5\u5177\u7684\u5730\u65b9, \u6216\u8005\u7528\u4e00\u4e2a\u91d1\u8272\u65b9\u5757\u6765\u633d\u6551\u62a4\u7532\u548c\u5de5\u5177.\n[[DARK_AQUA]]\u83b7\u53d6\u7ecf\u9a8c:\n[[YELLOW]]\u4f7f\u7528mcMMO\u7684\u94c1\u6be1\u6765\u4fee\u7406\u5de5\u5177\u6216\u62a4\u7532. \u8fd9\u4e2a\u94c1\u7827\u53ef\u4ee5\u662f\n[[YELLOW]]\u9ed8\u8ba4\u7684\u94c1\u5757\u4e14\u4e0d\u80fd\u548c\u539f\u7248\u7684Minecraft\u94c1\u6be1\u6df7\u6dc6.\n[[DARK_AQUA]]\u6211\u600e\u4e48\u624d\u80fd\u4fee\u7406?\n[[YELLOW]]\u653e\u7f6e\u4e00\u4e2a mcMMO \u7684\u94c1\u7827\u5e76\u4e14\u70b9\u51fb\u53f3\u952e\u6765\u4fee\u7406 \n[[YELLOW]]\u4f60\u76ee\u524d\u62ff\u5728\u624b\u4e0a\u7684\u7269\u54c1. \u6bcf\u70b9\u51fb\u4e00\u6b21\u6d88\u8017\u4e00\u4e2a\u7269\u54c1.\n[[DARK_AQUA]]How does Repair Mastery work?\n[[YELLOW]]Repair Mastery increases the repair amount. The extra amount\n[[YELLOW]]repaired is influenced by your Repair skill level.\n[[DARK_AQUA]]How does Super Repair work?\n[[YELLOW]]Super Repair is a passive ability. When repairing an item,\n[[YELLOW]]it grants players a chance to repair an item with\n[[YELLOW]]double effectiveness.\n[[DARK_AQUA]]How does Arcane Forging work?\n[[YELLOW]]This passive ability allows you to repair items with a certain\n[[YELLOW]]chance of maintaining its enchantments. The enchants may be\n[[YELLOW]]kept at their existing levels, downgraded to a lower level,\n[[YELLOW]]or lost entirely.\n[[DARK_AQUA]]How does Salvage work?\n[[YELLOW]]Place down a mcMMO Salvage Anvil and right-click to salvage\n[[YELLOW]]the item you\'re currently holding.\n[[YELLOW]]This will break the item apart en give back the used ingots.\n[[YELLOW]]Note: You can only salvage fully repaired tools or armor.
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} \u5411\u5bfc[[GOLD]]=-
|
||||
Guides.Herbalism=[[DARK_AQUA]]\u5173\u4e8e\u690d\u7269\u5b66:\n[[YELLOW]]\u690d\u7269\u5b66\u662f\u5173\u4e8e\u91c7\u96c6\u690d\u7269\u548c\u4f5c\u7269\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6\u65b9\u5f0f:\n[[YELLOW]]\u91c7\u96c6\u690d\u7269\u548c\u4f5c\u7269\n[[DARK_AQUA]]\u6709\u6548\u65b9\u5757\n[[YELLOW]]\u5c0f\u9ea6, \u571f\u8c46, \u80e1\u841d\u535c, \u897f\u74dc, \n[[YELLOW]]\u5357\u74dc, \u7518\u8517, \u53ef\u53ef\u8c46, \u82b1, \u4ed9\u4eba\u638c, \u8611\u83c7,\n[[YELLOW]]\u5730\u72f1\u75a3, \u7761\u83b2, \u85e4\u8513\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u5927\u5730\u4e4b\u795d\u798f?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd, \u53f3\u952e\n[[YELLOW]]\u5e76\u624b\u6301\u9504\u5934\u6fc0\u6d3b\u8be5\u6280\u80fd\n[[YELLOW]]\u73a9\u5bb6\u6709\u51e0\u7387\u5728\u6536\u83b7\u4f5c\u7269\u65f6\u89e6\u53d1\u4e09\u500d\u6389\u843d\n[[YELLOW]]\u8be5\u6280\u80fd\u4e5f\u7ed9\u4e88\u73a9\u5bb6\u8f6c\u53d8\u4e00\u4e9b\u65b9\u5757\u7684\u80fd\u529b\n[[YELLOW]]\u5982\u5706\u77f3, \u77f3\u7816, \u6ce5\u571f\u5757\n[[YELLOW]]\u540c\u65f6\u6d88\u8017\u80cc\u5305\u91cc\u7684\u79cd\u5b50\n[[DARK_AQUA]]\u7eff\u624b\u6307 (\u4f5c\u7269) \u5982\u4f55\u5de5\u4f5c?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u6536\u83b7\u4f5c\u7269\u65f6\u4e00\u5b9a\u51e0\u7387\u81ea\u52a8\u8865\u79cd\u56de\u53bb\n[[YELLOW]]\u6210\u529f\u51e0\u7387\u4e0e\u690d\u7269\u5b66\u6280\u80fd\u7b49\u7ea7\u6709\u5173\n[[DARK_AQUA]]\u7eff\u624b\u6307 (\u5706\u77f3, \u77f3\u7816, \u6ce5\u571f\u5757) \u5982\u4f55\u5de5\u4f5c?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u7528\u4e8e\u8f6c\u53d8\u4e00\u4e9b\u65b9\u5757(\u5706\u77f3, \u77f3\u7816, \u6ce5\u571f\u5757), \u4f7f\u4e4b\u8986\u76d6\u4e0a\u7eff\u8272\u690d\u88ab\n[[YELLOW]]\u624b\u6301\u79cd\u5b50, \u53f3\u952e\u65b9\u5757. \u65e0\u8bba\u6210\u529f\u4e0e\u5426, \u90fd\u4f1a\u6d88\u8017\u79cd\u5b50\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u519c\u592b\u98df\u8c31?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd, \u63d0\u9ad8\u9965\u997f\u503c\u56de\u590d\u91cf\n[[YELLOW]]\u6709\u6548\u98df\u7269: \u9762\u5305, \u66f2\u5947, \u897f\u74dc, \u8611\u83c7\u6c64\n[[YELLOW]]\u80e1\u841d\u535c, \u571f\u8c46\n[[DARK_AQUA]]\u6d77\u62c9\u5c14\u7684\u795d\u798f\u662f\u4ec0\u4e48?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u5f53\u4f60\u624b\u6301\u5251\u7834\u574f\u6307\u5b9a\u65b9\u5757\u65f6\u6709\u51e0\u7387\u83b7\u5f97\u7a00\u6709\u7269\u54c1\n[[DARK_AQUA]]\u53cc\u500d\u6389\u843d\u5982\u4f55\u8fd0\u4f5c?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u73a9\u5bb6\u6536\u83b7\u4f5c\u7269\u65f6\u4e00\u5b9a\u51e0\u7387\u89e6\u53d1
|
||||
Guides.Mining=[[DARK_AQUA]]\u5173\u4e8e\u91c7\u77ff\uff1a\n[[YELLOW]]\u5728\u91c7\u77ff\u7684\u65f6\u5019\uff0c\u91c7\u77ff\u6280\u80fd\u63d0\u4f9b\u591a\u91cd\u77ff\u7269\u6389\u843d\u7684\u5956\u52b1\n[[DARK_AQUA]]\u63d0\u5347\u7ecf\u9a8c\uff1a\n[[YELLOW]]\u4f60\u5fc5\u987b\u4f7f\u7528\u9550\u5b50\u6765\u589e\u52a0\u672c\u6280\u80fd\u7684\u7ecf\u9a8c\n[[YELLOW]]\u53ea\u6709\u6b63\u786e\u7684\u65b9\u5757\u80fd\u589e\u52a0\u7ecf\u9a8c\n[[DARK_AQUA]]\u6709\u6548\u6750\u6599\uff1a\n[[YELLOW]]\u77f3\u5934\uff0c\u7164\u77ff\uff0c\u94c1\u77ff\uff0c\u91d1\u77ff\uff0c\u94bb\u77f3\u77ff\uff0c\u7ea2\u77f3\u77ff\n[[YELLOW]]\u9752\u91d1\u77f3\u77ff\uff0c\u9ed1\u66dc\u77f3\uff0c\u82d4\u77f3\uff0c\u672b\u5f71\u77f3\n[[YELLOW]]\u8424\u77f3\uff0c\u5730\u72f1\u5ca9\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u8d85\u7ea7\u77ff\u5de5\uff1a\n[[YELLOW]]\u628a\u9550\u5b50\u62ff\u5728\u624b\u4e0a\uff0c\u4f7f\u7528\u9f20\u6807\u53f3\u952e\u6765\u51c6\u5907\u4f60\u7684\u9550\u5b50\n[[YELLOW]]\u4f60\u5c06\u67094\u79d2\u949f\u7684\u65f6\u95f4\u6765\u6fc0\u53d1\u4f60\u7684\u6280\u80fd\n[[YELLOW]]\u5f53\u6316\u6398\u517c\u5bb9\u7684\u65b9\u5757\u65f6\uff0c\u8d85\u7ea7\u77ff\u5de5\u5c06\u88ab\u6fc0\u6d3b\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u7ea7\u77ff\u5de5\uff1f\n[[YELLOW]]\u8d85\u7ea7\u77ff\u5de5\u662f\u9700\u8981\u51b7\u5374\u7684\u6316\u77ff\u6280\u80fd\n[[YELLOW]]\u5b83\u4f7f\u4f60\u5728\u6316\u77ff\u65f6\u67093\u500d\u7684\u673a\u4f1a\u6765\u6389\u843d\u66f4\u591a\u7684\u4e1c\u897f\uff0c\u5e76\u6fc0\u53d1\u77ac\u95f4\u7834\u574f\u529f\u80fd\n[[DARK_AQUA]\u5982\u4f55\u4f7f\u7528\u7206\u7834\u5f00\u91c7\uff1a\n[[YELLOW]]\u628a\u96f7\u7ba1\u62ff\u5728\u624b\u4e0a\uff0c\u9ed8\u8ba4\u7684\u60c5\u51b5\u4e0b\u662f\u6253\u706b\u5668\n[[YELLOW]]\u5728\u4e00\u5b9a\u8ddd\u79bb\u5185\u53f3\u952e\u70b9\u51fbTNT\uff0c\u8fd9\u5c06\u4f1a\u4f7f\u5f97TNT\u5728\u77ac\u95f4\u5185\u7206\u70b8\n[[DARK_AQUA]]\u7206\u7834\u5f00\u91c7\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u662f\u9700\u8981\u51b7\u5374\u7684\u6316\u77ff\u6280\u80fd\n[[YELLOW]]\u5b83\u53ef\u4ee5\u5728\u4f60\u4f7f\u7528TNT\u6316\u77ff\u65f6\u7ed9\u4f60\u989d\u5916\u7684\u77ff\u7269\u5956\u52b1\u5e76\u4e14\u5141\u8bb8\u4f60\u5728\u8f83\u8fdc\u7684\u5730\u65b9\u5f15\u7206TNT\n[[YELLOW]]\u7206\u7834\u5f00\u91c7\u5206\u4e3a3\u4e2a\u90e8\u5206\n[[YELLOW]]\u7b2c\u4e00\u4e2a\u90e8\u5206\u662f\u201c\u66f4\u5927\u7684\u7206\u7834\u201d\uff0c\u53ef\u4ee5\u63d0\u9ad8\u7206\u70b8\u7684\u8303\u56f4\n[[YELLOW]]\u90fd\u4e8c\u4e2a\u90e8\u5206\u662f\u201c\u7834\u574f\u4e13\u5bb6\u201d\uff0c\u53ef\u4ee5\u51cf\u5c11\u6765\u81eaTNT\u7684\u7206\u70b8\u4f24\u5bb3\n[[YELLOW]\u7b2c\u4e09\u4e2a\u90e8\u5206\u662f\u63d0\u5347\u77ff\u7269\u6389\u843d\u7684\u6570\u91cf\u5e76\u4e14\u51cf\u5c11\u4e0d\u9700\u8981\u7684\u4e1c\u897f\u7684\u6389\u843d
|
||||
Guides.Page.Invalid=\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684\u9875\u6570!
|
||||
Guides.Page.OutOfRange=\u90a3\u9875\u4e0d\u5b58\u5728, \u603b\u5171\u53ea\u6709 {0} \u9875
|
||||
Guides.Repair=[[DARK_AQUA]]\u5173\u4e8e\u4fee\u7406:\n[[YELLOW]]\u4fee\u7406\u529f\u80fd\u53ef\u4ee5\u4e3a\u4f60\u63d0\u4f9b\u4e86\u7528\u4e00\u4e2a\u94c1\u65b9\u5757\u6765\u4fee\u7406\u62a4\u7532\u548c\n[[YELLOW]]\u5de5\u5177\u7684\u5730\u65b9, \u6216\u8005\u7528\u4e00\u4e2a\u91d1\u8272\u65b9\u5757\u6765\u5206\u89e3\u62a4\u7532\u548c\u5de5\u5177.\n[[DARK_AQUA]]\u83b7\u53d6\u7ecf\u9a8c:\n[[YELLOW]]\u4f7f\u7528mcMMO\u7684\u94c1\u6be1\u6765\u4fee\u7406\u5de5\u5177\u6216\u62a4\u7532. \u8fd9\u4e2a\u94c1\u7827\u53ef\u4ee5\u662f\n[[YELLOW]]\u9ed8\u8ba4\u7684\u94c1\u5757\u4e14\u4e0d\u80fd\u548c\u539f\u7248\u7684Minecraft\u94c1\u7827\u6df7\u6dc6.\n[[DARK_AQUA]]\u6211\u600e\u4e48\u624d\u80fd\u4fee\u7406?\n[[YELLOW]]\u653e\u7f6e\u4e00\u4e2a mcMMO \u7684\u94c1\u7827\u5e76\u4e14\u70b9\u51fb\u53f3\u952e\u6765\u4fee\u7406 \n[[YELLOW]]\u4f60\u76ee\u524d\u62ff\u5728\u624b\u4e0a\u7684\u7269\u54c1. \u6bcf\u70b9\u51fb\u4e00\u6b21\u6d88\u8017\u4e00\u4e2a\u7269\u54c1.\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u4fee\u7406\u7cbe\u901a?\n[[YELLOW]]\u63d0\u9ad8\u4fee\u7406\u8010\u4e45\u91cf\n[[YELLOW]]\u989d\u5916\u56de\u590d\u91cf\u4e0e\u4fee\u7406\u7b49\u7ea7\u6709\u5173\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u7ea7\u4fee\u7406?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u5f53\u73a9\u5bb6\u8fdb\u884c\u4fee\u7406\u65f6\n[[YELLOW]]\u6062\u590d\u53cc\u500d\u7684\u8010\u4e45\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u795e\u79d8\u953b\u9020?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u4fee\u7406\u9644\u9b54\u88c5\u5907\u65f6\u4e00\u5b9a\u51e0\u7387\u4fdd\u6301\u9644\u9b54\n[[YELLOW]]\u4e14\u4fdd\u7559\u7b49\u7ea7, \u6216\u964d\u7ea7\n[[YELLOW]]\u6216\u5931\u53bb\u9644\u9b54\u6548\u679c\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5206\u89e3\u7827?\n[[YELLOW]]\u653e\u7f6e\u4e00\u4e2a mcMMO \u5206\u89e3\u7827\n[[YELLOW]]\u624b\u6301\u7269\u54c1\u53f3\u952e\u5b83\n[[YELLOW]]\u5c06\u4f1a\u5206\u89e3\u6389\u7269\u54c1, \u8fd4\u8fd8\u4e00\u4e9b\u6750\u6599\n[[YELLOW]]\u6ce8\u610f: \u53ea\u80fd\u5206\u89e3\u65e0\u635f\u7684\u5de5\u5177\u6216\u62a4\u7532\u88c5\u5907
|
||||
Guides.Swords=[[DARK_AQUA]]\u5173\u4e8e \u5251\u672f:\n[[YELLOW]]\u4f7f\u7528\u5251\u8fdb\u884c\u6218\u6597\u65f6\n[[YELLOW]]\u9644\u52a0\u989d\u5916\u6548\u679c\n[[DARK_AQUA]]\u5982\u4f55\u83b7\u5f97\u7ecf\u9a8c:\n[[YELLOW]]\u4f7f\u7528\u5251\u6218\u6597\n[[YELLOW]]\u7ecf\u9a8c\u503c\u53d6\u51b3\u4e8e\u5bf9\u751f\u7269\u548c\u5176\u4ed6\u73a9\u5bb6\u9020\u6210\u7684\u4f24\u5bb3\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u952f\u9f7f\u653b\u51fb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd, \u624b\u6301\u5251\u53f3\u952e\u4ee5\u6fc0\u6d3b\n[[YELLOW]]\u8fd9\u4e2a\u6280\u80fd\u4f1a\u9020\u6210\u8303\u56f4\u6253\u51fb\u6548\u679c\n[[YELLOW]]\u8be5\u8303\u56f4\u5185\u670925%\u989d\u5916\u4f24\u5bb3\u52a0\u6210\n[[YELLOW]]\u5e76\u9644\u52a05\u523b(tick)\u6d41\u8840\u6548\u679c\n[[DARK_AQUA]]\u53cd\u51fb\u5982\u4f55\u5de5\u4f5c?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd. \n[[YELLOW]]\u5f53\u4f60\u53d7\u5230\u751f\u7269\u7684\u653b\u51fb\n[[YELLOW]]\u6709\u4e00\u5b9a\u51e0\u7387\u53cd\u51fb\u6240\u53d7\u4f24\u5bb3\u768450%\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u6d41\u8840?\n[[YELLOW]]\u6d41\u8840\u7684\u654c\u4eba\u6bcf2\u79d2\u53d7\u5230\u4e00\u6b21\u4f24\u5bb3 \n[[YELLOW]]\u76ee\u6807\u6d41\u8840\u6548\u679c\u76f4\u5230\u6548\u679c\u6d88\u5931 \n[[YELLOW]]\u6216\u76ee\u6807\u6b7b\u4ea1\n[[YELLOW]]\u6301\u7eed\u65f6\u95f4\u4e0e\u5251\u672f\u7b49\u7ea7\u6709\u5173
|
||||
Guides.Smelting=\u5373\u5c06\u5230\u6765...
|
||||
Guides.Taming=[[DARK_AQUA]]\u5173\u4e8e \u9a6f\u517d:\n[[YELLOW]]\u5f53\u73a9\u5bb6\u4f7f\u7528\u9a6f\u670d\u7684\u72fc\u6218\u6597\u65f6\n[[YELLOW]]\u7ed9\u73a9\u5bb6\u63d0\u4f9b\u4e30\u5bcc\u7684\u989d\u5916\u6218\u6597\u52a0\u6210\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6:\n[[YELLOW]]\u9a6f\u670d\u72fc/\u8c79\u732b\n[[YELLOW]]\u4e0e\u4f60\u7684\u72fc\u4e00\u540c\u6218\u6597\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u91ce\u6027\u547c\u5524?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u53ec\u5524\u4e00\u53ea\u72fc\u6216\u8c79\u732b\u5230\u4f60\u8eab\u8fb9\n[[YELLOW]]\u624b\u6301\u9aa8\u5934\u6216\u751f\u9c7c\u5de6\u952e\u8fdb\u884c\u53ec\u5524\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u517d\u738b\u6280\u80fd?\n[[YELLOW]]\u5141\u8bb8\u73a9\u5bb6\u67e5\u770b\u5ba0\u7269\n[[YELLOW]]\u68c0\u67e5\u72fc\u548c\u8c79\u732b\u72b6\u6001\n[[YELLOW]]\u5de6\u952e\u4e00\u53ea\u72fc\u6216\u8c79\u732b\u4f7f\u7528\u8be5\u6280\u80fd\n[[DARK_AQUA]]\u4ec0\u4e48\u55dc\u8840?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u72fc\u653b\u51fb\u76ee\u6807\u65f6\u4e00\u5b9a\u51e0\u7387\u4f7f\u4e4b\u6d41\u8840\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5229\u722a?\n[[YELLOW]]\u4e3a\u72fc\u7684\u653b\u51fb\u63d0\u4f9b\u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u989d\u5916\u4f24\u5bb3\u53d6\u51b3\u4e8e\u9a6f\u517d\u7b49\u7ea7\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u73af\u5883\u611f\u77e5?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u5f53\u72fc\u611f\u77e5\u5230\u5468\u56f4\u7684\u5371\u9669\u65f6\u4f20\u9001\u5230\u4f60\u8eab\u8fb9, \u5982\u4ed9\u4eba\u638c,\u5ca9\u6d46\n[[YELLOW]]\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u4f1a\u514d\u75ab\u6389\u843d\u4f24\u5bb3\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u539a\u5b9e\u7684\u76ae\u6bdb?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u51cf\u5c11\u72fc\u6240\u53d7\u4f24\u5bb3, \u63d0\u9ad8\u706b\u7130\u6297\u6027\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u7206\u7834\u9632\u5fa1?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u51cf\u5c11\u7206\u70b8\u6548\u679c\u5bf9\u72fc\u9020\u6210\u7684\u4f24\u5bb3\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u5feb\u9910\u670d\u52a1\uff08\u5438\u8840\uff09?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u653b\u51fb\u65f6\u6062\u590d\u751f\u547d\u503c
|
||||
Guides.Unarmed=[[DARK_AQUA]]\u5173\u4e8e \u683c\u6597:\n[[YELLOW]]\u5f53\u73a9\u5bb6\u4ee5\u62f3\u5934\u4f5c\u4e3a\u6b66\u5668\u65f6\n[[YELLOW]]\u7ed9\u4e88\u73a9\u5bb6\u4e30\u5bcc\u7684\u6218\u6597\u6548\u679c\u52a0\u6210\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6:\n[[YELLOW]]\u7ecf\u9a8c\u91cf\u53d6\u51b3\u4e8e\n[[YELLOW]]\u7a7a\u624b\u5bf9\u751f\u7269\u6216\u73a9\u5bb6\u9020\u6210\u7684\u4f24\u5bb3\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u72c2\u66b4?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd, \u53f3\u952e\u89e6\u53d1\n[[YELLOW]]\u5904\u4e8e\u72c2\u66b4\u72b6\u6001\u65f6, \u9644\u52a0 50% \u989d\u5916\u4f24\u5bb3\n[[YELLOW]]\u5e76\u7acb\u5373\u51fb\u788e\u4e00\u4e9b\u65b9\u5757\n[[YELLOW]]\u5982\u6ce5\u571f, \u8349\u5730\n[[DARK_AQUA]]\u94c1\u62f3\u662f\u4ec0\u4e48?\n[[YELLOW]]\u7a7a\u624b\u65f6, \u63d0\u9ad8\u4f60\u5bf9\u602a\u7269\n[[YELLOW]]\u6216\u73a9\u5bb6\u9020\u6210\u7684\u4f24\u5bb3 \n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u7bad\u77e2\u62b5\u5fa1?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u62b5\u5fa1\u9ab7\u9ac5\u6216\u73a9\u5bb6\u5c04\u6765\u7684\u7bad\u77e2\n[[YELLOW]]\u7bad\u77e2\u4f1a\u65e0\u5bb3\u7684\u6389\u843d\u5230\u5730\u4e0a\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u8d85\u5f3a\u63e1\u529b?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd, \u7528\u6765\u5bf9\u4ed8\u7f34\u68b0\n[[YELLOW]]\u683c\u6597\u6280\u80fd\u8d8a\u9ad8, \u62b5\u5fa1\u7f34\u68b0\u7684\u51e0\u7387\u8d8a\u5927\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u7f34\u68b0?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd, \u4f7f\u5176\u4ed6\u73a9\u5bb6\u88ab\u7f34\u68b0\n[[YELLOW]]\u76ee\u6807\u88c5\u5907\u4f1a\u6389\u5230\u5730\u4e0a
|
||||
Guides.Usage=[[RED]] \u7528\u6cd5 /{0} ? [\u9875\u6570]
|
||||
Guides.Woodcutting=[[DARK_AQUA]]\u5173\u4e8e \u4f10\u6728:\n[[YELLOW]]\u5373\u4e0e\u780d\u6811\u76f8\u5173\u7684\u6240\u6709\u4e1c\u897f\n[[DARK_AQUA]]\u7ecf\u9a8c\u83b7\u53d6:\n[[YELLOW]]\u901a\u8fc7\u7528\u65a7\u5b50\u780d\u6811\u83b7\u5f97\u7ecf\u9a8c\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u4f10\u6728\u673a?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u4e3b\u52a8\u6280\u80fd\n[[YELLOW]]\u624b\u6301\u65a7\u5b50\u53f3\u952e\u8fdb\u5165\u6fc0\u6d3b\u72b6\u6001\n[[YELLOW]]\u780d\u4f10\u5e95\u90e8, \u7acb\u5373\u780d\u5012\u5927\u6811\n[[YELLOW]]\u6389\u843d\u6240\u6709\u6728\u5757\n[[DARK_AQUA]]\u9664\u53f6\u673a?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u624b\u6301\u65a7\u5b50\u4e00\u51fb\u6572\u788e\u6811\u53f6\n[[YELLOW]]\u8be5\u6280\u80fd\u9ed8\u8ba4100\u7ea7\u89e3\u9501\n[[DARK_AQUA]]\u4ec0\u4e48\u662f\u53cc\u500d\u6389\u843d?\n[[YELLOW]]\u8fd9\u662f\u4e00\u4e2a\u88ab\u52a8\u6280\u80fd\n[[YELLOW]]\u780d\u6811\u65f6\u989d\u5916\u6389\u843d\u4e00\u4e2a\u6728\u5757
|
||||
Inspect.Offline=[[RED]]\u4f60\u6ca1\u6709\u67e5\u8be2\u4e0d\u5728\u7ebf\u73a9\u5bb6\u4fe1\u606f\u7684\u6743\u9650!
|
||||
Inspect.OfflineStats=\u4e0d\u5728\u7ebf\u73a9\u5bb6\u7684mcmmo\u7edf\u8ba1\u4fe1\u606f [[YELLOW]]{0}
|
||||
Inspect.Stats=[[YELLOW]]{0} \u7684 [[GREEN]]mcMMO \u7edf\u8ba1\u4fe1\u606f
|
||||
@@ -419,9 +563,11 @@ Inspect.TooFar=[[RED]]\u4f60\u65e0\u6cd5\u68c0\u67e5\u90a3\u4e2a\u73a9\u5bb6\u56
|
||||
Item.ChimaeraWing.Fail=**\u5947\u7f8e\u62c9\u4e4b\u7ffc\u5931\u8d25\u4e86!**
|
||||
Item.ChimaeraWing.Pass=**\u5947\u7f8e\u62c9\u4e4b\u7ffc**
|
||||
Item.Injured.Wait=\u4f60\u6700\u8fd1\u53d7\u4f24\u4e86\u6240\u4ee5\u4f60\u5fc5\u987b\u7b49\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u4f7f\u7528\u8fd9\u4e2a. [[YELLOW]]({0}s)
|
||||
Skills.Child=[[GOLD]](\u5206\u652f\u6280\u80fd)
|
||||
Skills.Disarmed=[[DARK_RED]]\u4f60\u88ab\u7f34\u68b0\u4e86!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]\u4f60\u9700\u8981\u66f4\u591a
|
||||
Skills.Parents=\u4e3b\u6280\u80fd
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]\u4f60\u73b0\u5728\u592a\u7d2f\u4e86\u6240\u4ee5\u4f60\u65e0\u6cd5\u4f7f\u7528\u8fd9\u4e2a\u6280\u80fd.
|
||||
Stats.Header.Combat=[[GOLD]]-=\u683c\u6597\u6280\u80fd=-
|
||||
@@ -433,10 +579,82 @@ Perks.xp.desc=\u83b7\u5f97 {0}x \u7ecf\u9a8c.
|
||||
Perks.lucky.name=\u5e78\u8fd0
|
||||
Perks.lucky.desc=\u7ed9\u4e88 {0} \u6280\u80fd\u548c\u80fd\u529b33.3%\u7684\u66f4\u9ad8\u51e0\u7387\u89e6\u53d1
|
||||
Perks.lucky.desc.login=\u7ed9\u4e88\u6280\u80fd\u548c\u80fd\u529b33.3%\u5f97\u66f4\u9ad8\u51e0\u7387\u89e6\u53d1
|
||||
Perks.lucky.bonus=[[GOLD]] ({0} \u7684\u597d\u8fd0\u52a0\u6210)
|
||||
Perks.cooldowns.name=\u5feb\u901f\u6062\u590d
|
||||
Perks.cooldowns.desc=\u51cf\u5c11\u51b7\u5374\u65f6\u95f4 {0}.
|
||||
Perks.activationtime.name=\u8010\u529b
|
||||
Perks.activationtime.desc=\u63d0\u9ad8\u80fd\u529b\uff0c\u6fc0\u6d3b\u65f6\u95f4 {0} \u79d2.
|
||||
Perks.activationtime.bonus=[[GOLD]] ({0} \u79d2\u989d\u5916\u6301\u7eed\u65f6\u95f4)
|
||||
Hardcore.Player.Loss=[[GOLD]][mcMMO] [[DARK_RED]]\u4f60\u5728\u6b7b\u4ea1\u4e2d\u4e22\u5931 [[BLUE]]{0}[[DARK_RED]].
|
||||
Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] \u719f\u7ec3\u5ea6\u4e0d\u8db3, \u65e0\u6cd5\u5438\u53d6\u77e5\u8bc6
|
||||
Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]\u4f60\u4ece [[YELLOW]]{1} \u5077\u53d6 [[BLUE]]{0}[[DARK_AQUA]] \u7ea7
|
||||
Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] \u65e0\u6cd5\u4ece\u4f60\u90a3\u91cc\u7a83\u53d6\u77e5\u8bc6!
|
||||
Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] \u4ece\u4f60\u90a3\u91cc\u5077\u53d6 [[BLUE]]{1}[[DARK_RED]] \u7b49\u7ea7!
|
||||
Hardcore.Disabled=[[GOLD]][mcMMO] Hardcore \u6a21\u5f0f\u5df2\u7981\u7528
|
||||
Hardcore.Enabled=[[GOLD]][mcMMO] \u542f\u7528\u786c\u6838\u6a21\u5f0f
|
||||
Hardcore.PercentageChanged=[[GOLD]][mcMMO] \u72b6\u6001\u4e22\u5931\u767e\u5206\u6bd4\u8bbe\u7f6e\u4e3a {0}.
|
||||
Vampirism.Disabled=[[GOLD]][mcMMO] Vampirism \u6a21\u5f0f\u5df2\u5173\u95ed
|
||||
Vampirism.Enabled=[[GOLD]][mcMMO] Vampirism \u6a21\u5f0f\u5df2\u5f00\u542f
|
||||
Vampirism.PercentageChanged=[[GOLD]][mcMMO] \u72b6\u6001\u69a8\u53d6\u767e\u5206\u6bd4\u8bbe\u7f6e\u4e3a {0}.
|
||||
Spout.Donate=[[YELLOW]][mcMMO] \u6350\u6b3e!
|
||||
Spout.LevelUp.1=[[GREEN]]\u5347\u7ea7!
|
||||
Spout.LevelUp.2=[[YELLOW]]{0}[[DARK_AQUA]] ([[GREEN]]{1}[[DARK_AQUA]])
|
||||
Spout.Menu.Exit=[[GRAY]]\u6309\u7a7a\u683c\u952e\u9000\u51fa!
|
||||
Spout.Menu.ExitButton=\u9000\u51fa
|
||||
Spout.Menu.HudButton.1=HUD \u7c7b\u578b: {0}
|
||||
Spout.Menu.HudButton.2=\u53d8\u66f4HUD\u6837\u5f0f!
|
||||
Spout.Menu.Title=[[GOLD]]~mcMMO \u83dc\u5355~
|
||||
Spout.Title={0}\n[[YELLOW]]P[[GOLD]]lvl[[WHITE]].[[GREEN]]{1}
|
||||
MOTD.Donate=[[DARK_AQUA]]\u6350\u8d60\u4fe1\u606f:
|
||||
MOTD.Hardcore.VampireOff=[[GOLD]][mcMMO] [[DARK_RED]]Hardcore & Vampirism \u542f\u7528
|
||||
MOTD.Hardcore.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\u6280\u80fd\u6b7b\u4ea1\u60e9\u7f5a: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.VampireOn=[[GOLD]][mcMMO] [[DARK_RED]]Hardcore \u542f\u7528
|
||||
MOTD.PerksPrefix=[[RED]][mcMMO \u80fd\u529b]
|
||||
MOTD.Vampire.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]Vampirism\u7edf\u8ba1: [[DARK_RED]]{0}%
|
||||
MOTD.Version=[[GOLD]][mcMMO] \u6b63\u5728\u8fd0\u884c\u7248\u672c [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO \u7f51\u5740
|
||||
Smelting.Ability.FluxMining=[[RED]]\u70bd\u70ed\u7684\u9550\u5b50\u89e6\u53d1\u51e0\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=[[RED]]\u71c3\u6599\u6548\u7387\u52a0\u500d: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0={0}+ \u7ea7\u540e\u89e3\u9501 (\u66f4\u591a\u51b6\u70bc\u7ecf\u9a8c\u7403)
|
||||
Smelting.Ability.Locked.1={0}+ \u7ea7\u540e\u89e3\u9501 (FLUX MINING)
|
||||
Smelting.Ability.SecondSmelt=[[RED]]\u4e8c\u6b21\u7194\u70bc\u51e0\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=[[RED]]\u7ecf\u9a8c\u52a0\u500d: [[YELLOW]]{0}x
|
||||
Smelting.Effect.0=\u71c3\u6599\u6548\u7387
|
||||
Smelting.Effect.1=\u7194\u70bc\u65f6\u63d0\u9ad8\u7194\u7089\u5185\u71c3\u6599\u7684\u71c3\u70e7\u65f6\u95f4
|
||||
Smelting.Effect.2=\u4e8c\u6b21\u7194\u70bc
|
||||
Smelting.Effect.3=\u901a\u8fc7\u51b6\u70bc\u83b7\u5f97\u53cc\u500d\u8d44\u6e90
|
||||
Smelting.Effect.4=\u66f4\u591a\u51b6\u70bc\u7ecf\u9a8c\u7403
|
||||
Smelting.Effect.5=\u63d0\u9ad8\u51b6\u70bc\u83b7\u53d6\u7684\u7ecf\u9a8c\u7403
|
||||
Smelting.Effect.6=\u70bd\u70ed\u7684\u9550\u5b50
|
||||
Smelting.Effect.7=\u91c7\u77ff\u65f6\u4e00\u5b9a\u51e0\u7387\u4f7f\u77ff\u77f3\u7acb\u5373\u88ab\u7194\u70bc
|
||||
Smelting.FluxMining.Success=[[GREEN]]\u90a3\u4e2a\u77ff\u77f3\u81ea\u5df1\u7194\u5316\u4e86!
|
||||
Smelting.Listener=\u51b6\u70bc:
|
||||
Smelting.SkillName=\u51b6\u70bc
|
||||
Commands.Description.addlevels=\u7ed9\u73a9\u5bb6\u589e\u52a0 mcMMO\u7b49\u7ea7
|
||||
Commands.Description.adminchat=\u5207\u6362mcMMO\u7ba1\u7406\u5458\u804a\u5929\u6216\u53d1\u9001\u7ba1\u7406\u5458\u804a\u5929\u4fe1\u606f
|
||||
Commands.Description.addxp=\u7ed9\u73a9\u5bb6\u589e\u52a0 mcMMO\u7ecf\u9a8c
|
||||
Commands.Description.hardcore=\u4fee\u6539 mcMMO hardcore \u767e\u5206\u6bd4\u6216\u5207\u6362 hardcore \u6a21\u5f0f\u5f00/\u5173
|
||||
Commands.Description.inspect=\u67e5\u770b\u73a9\u5bb6\u8be6\u7ec6\u7684mcMMO\u4fe1\u606f
|
||||
Commands.Description.mcability=\u5207\u6362 mcMMO\u6280\u80fd \u80fd\u5426\u88ab\u53f3\u952e\u6fc0\u6d3b
|
||||
Commands.Description.mcgod=\u5207\u6362mcMMO\u4e0a\u5e1d\u6a21\u5f0f
|
||||
Commands.Description.mchud=\u53d8\u66f4\u4f60\u7684 mcMMO HUD \u6837\u5f0f
|
||||
Commands.Description.mcmmo=\u663e\u793amcMMO\u7684\u7b80\u5355\u63cf\u8ff0
|
||||
Commands.Description.mcnotify=\u5207\u6362mcMMO\u6280\u80fd\u63d0\u793a\u5f00\u5173
|
||||
Commands.Description.mcpurge=\u6e05\u9664\u6ca1\u6709 mcMMO\u7b49\u7ea7\u7684\u73a9\u5bb6\u548c\u8d85\u8fc7 {0} \u4e2a\u6708\u6ca1\u6709\u767b\u5f55\u7684\u73a9\u5bb6\u7684 mcMMO\u6570\u636e
|
||||
Commands.Description.mcrank=\u663e\u793a\u73a9\u5bb6\u7684mcMMO\u6392\u540d
|
||||
Commands.Description.mcrefresh=\u5237\u65b0\u6240\u6709\u7684 mcMMO\u51b7\u5374\u65f6\u95f4
|
||||
Commands.Description.mcremove=\u4ecemcMMO\u6570\u636e\u5e93\u4e2d\u79fb\u9664\u4e00\u4e2a\u73a9\u5bb6
|
||||
Commands.Description.mcstats=\u663e\u793a\u4f60\u7684 mcMMO \u7b49\u7ea7\u548c\u7ecf\u9a8c
|
||||
Commands.Description.mctop=\u663e\u793a mcMMO\u6392\u884c\u699c
|
||||
Commands.Description.mmoedit=\u7ed9\u73a9\u5bb6\u8bbe\u7f6e mcMMO\u7b49\u7ea7
|
||||
Commands.Description.mmoupdate=\u8f6c\u6362mcMMO\u6570\u636e, \u5c06 Flatfile \u8f6c\u6362\u4e3a MySQL
|
||||
Commands.Description.party=\u63a7\u5236\u5404\u79cd mcMMO \u961f\u4f0d\u8bbe\u7f6e
|
||||
Commands.Description.partychat=\u5207\u6362mcMMO\u961f\u4f0d\u804a\u5929\u6216\u53d1\u9001\u961f\u4f0d\u804a\u5929\u6d88\u606f
|
||||
Commands.Description.ptp=\u4f20\u9001\u81f3mcMMO\u961f\u4f0d\u6210\u5458
|
||||
Commands.Description.Skill=\u663e\u793a {0} \u8be6\u7ec6\u7684mcMMO\u6280\u80fd\u4fe1\u606f
|
||||
Commands.Description.skillreset=\u91cd\u7f6e mcMMO\u7b49\u7ea7
|
||||
Commands.Description.vampirism=\u66f4\u6539 mcMMO \u69a8\u53d6\u767e\u5206\u6bd4 \u6216\u5207\u6362 vampirism \u6a21\u5f0f\u5f00/\u5173
|
||||
Commands.Description.xplock=\u9501\u5b9a\u6307\u5b9amcMMO\u6280\u80fd\u7684\u7ecf\u9a8c\u6761
|
||||
Commands.Description.xprate=\u66f4\u6539mcMMO\u7ecf\u9a8c\u500d\u7387\u6216\u5f00\u542f\u4e00\u4e2amcMMO\u7ecf\u9a8c\u7ffb\u500d\u4e8b\u4ef6
|
||||
UpdateChecker.outdated=\u4f60\u6b63\u4f7f\u7528\u7740\u4e00\u4e2a\u8fc7\u65f6\u7248\u672c\u7684mcMMO!
|
||||
UpdateChecker.newavailable=\u53d1\u73b0BukkitDev\u4e0a\u6709\u53ef\u7528\u65b0\u7248\u672c.
|
||||
|
||||
@@ -7,18 +7,19 @@ Acrobatics.Effect.2=\u6f02\u4eae\u7ffb\u6efe
|
||||
Acrobatics.Effect.3=\u5169\u500d\u7684\u7ffb\u6efe\u6548\u679c
|
||||
Acrobatics.Effect.4=\u9583\u907f
|
||||
Acrobatics.Effect.5=\u6e1b\u5c11\u4e00\u534a\u7684\u50b7\u5bb3
|
||||
Acrobatics.Listener=\u654f\u6377:
|
||||
Acrobatics.Listener=\u96dc\u6280:
|
||||
Acrobatics.Roll.Chance=[[RED]]\u7ffb\u6efe\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.GraceChance=[[RED]]\u6f02\u4eae\u7ffb\u6efe\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Acrobatics.Roll.Text=**\u7ffb\u6efe**
|
||||
Acrobatics.SkillName=\u654f\u6377
|
||||
Acrobatics.Skillup=[[YELLOW]]\u654f\u6377\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a({1})!
|
||||
Acrobatics.SkillName=\u96dc\u6280
|
||||
Acrobatics.Skillup=[[YELLOW]]\u96dc\u6280\u7b49\u7d1a\u4e0a\u5347\u4e86{0}\u7b49. \u5171({1})\u7b49
|
||||
Archery.Combat.DazeChance=[[RED]]\u6688\u7729\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Archery.Combat.RetrieveChance=[[RED]]\u56de\u6536\u7bad\u77e2\u7684\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Archery.Combat.SkillshotBonus=[[RED]]\u6280\u8853\u5c04\u64ca\u734e\u52f5\u50b7\u5bb3: [[YELLOW]]{0}
|
||||
Archery.Effect.0=\u6280\u8853\u5c04\u64ca
|
||||
Archery.Effect.1=\u589e\u52a0\u5f13\u7bad\u50b7\u5bb3
|
||||
Archery.Effect.2=\u6688\u7729(\u9650\u5b9a\u73a9\u5bb6)
|
||||
Archery.Effect.3=\u8ff7\u60d1\u6575\u4eba\u4e26\u9020\u6210 {0}\u9ede\u50b7\u5bb3
|
||||
Archery.Effect.4=\u56de\u6536\u5f13\u7bad
|
||||
Archery.Effect.5=\u6709\u6a5f\u7387\u5f9e\u5c4d\u9ad4\u4e0a\u53d6\u5f97\u7bad\u77e2
|
||||
Archery.Listener=\u7bad\u8853:
|
||||
@@ -37,7 +38,7 @@ Axes.Combat.CritChance=[[RED]]\u66b4\u64ca\u6a5f\u7387: [[YELLOW]]{0}%
|
||||
Axes.Combat.CriticalHit=[[RED]]\u6703\u5fc3\u4e00\u64ca!
|
||||
Axes.Combat.GI.Proc=[[GREEN]]**\u66b4\u529b\u6253\u64ca**
|
||||
Axes.Combat.GI.Struck=[[RED]]**\u88ab\u5f37\u529b\u5c04\u64ca\u64ca\u4e2d**
|
||||
Axes.Combat.SS.Length=[[RED]]\u65b7\u982d\u8005\u6301\u7e8c\u6642\u9593: [[YELLOW]]{0}s
|
||||
Axes.Combat.SS.Length=[[RED]]\u5288\u9871\u65ac\u6301\u7e8c\u6642\u9593: [[YELLOW]]{0}s
|
||||
Axes.Effect.0=\u65b7\u982d\u8005 (\u4e3b\u52d5\u6280\u80fd)
|
||||
Axes.Effect.1=\u9020\u6210\u7bc4\u570d\u50b7\u5bb3
|
||||
Axes.Effect.2=\u6703\u5fc3\u4e00\u64ca
|
||||
@@ -50,11 +51,11 @@ Axes.Effect.8=\u5f37\u529b\u5c04\u64ca
|
||||
Axes.Effect.9=\u5c0d\u7121\u88dd\u7532\u6575\u4eba\u9020\u6210\u66f4\u591a\u50b7\u5bb3
|
||||
Axes.Listener=\u65a7\u982d:
|
||||
Axes.SkillName=\u65a7\u982d
|
||||
Axes.Skills.SS.Off=[[RED]]**\u65b7\u982d\u8005\u6280\u80fd\u5df2\u7d50\u675f**
|
||||
Axes.Skills.SS.Off=[[RED]]**\u5288\u9871\u65ac\u5df2\u7d50\u675f**
|
||||
Axes.Skills.SS.On=[[GREEN]]**\u65b7\u982d\u8005\u6280\u80fd\u4f7f\u7528**
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u65b7\u982d\u8005 [[GREEN]]\u6280\u80fd\u5df2\u7d93\u53ef\u4ee5\u4f7f\u7528\uff01
|
||||
Axes.Skills.SS.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u5288\u9871\u65ac [[GREEN]]\u80fd\u529b\u5df2\u53ef\u4f7f\u7528\uff01
|
||||
Axes.Skills.SS.Other.Off=[[RED]]\u65b7\u982d\u8005[[GREEN]] \u5df2\u7d93\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\u4f7f\u7528\u4e86 [[RED]]\u65b7\u982d\u8005!
|
||||
Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]]\u4f7f\u7528\u4e86 [[RED]]\u5288\u9871\u65ac!
|
||||
Axes.Skillup=[[YELLOW]]\u65a7\u982d\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})!
|
||||
Excavation.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u93df\u5b50**
|
||||
Excavation.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7dca\u4e86\u4f60\u7684\u93df\u5b50**
|
||||
@@ -71,6 +72,7 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u66b
|
||||
Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]\u66b4\u8d70\u947d\u982d[[GREEN]] \u5df2\u7d93\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u66b4\u8d70\u947d\u982d!
|
||||
Excavation.Skillup=[[YELLOW]]\u6316\u6398\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})!
|
||||
Fishing.Ability.Chance=[[RED]]\u54ac\u788e\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Fishing.Ability.Info=[[RED]]\u9b54\u6cd5\u7375\u4eba: [[GRAY]] ** \u96a8\u8457\u5bf6\u85cf\u7375\u4eba\u7b49\u7d1a\u63d0\u9ad8 **
|
||||
Fishing.Ability.Locked.0=\u5c07\u9396\u5b9a\uff0c\u76f4\u5230 {0}+ \u6280\u80fd\uff08\u6416\u6643\uff09
|
||||
Fishing.Ability.Rank=[[RED]]\u5bf6\u7269\u7375\u4eba\u7b49\u7d1a: [[YELLOW]]{0}/5
|
||||
@@ -84,6 +86,8 @@ Fishing.Effect.4=\u6416\u6643 (\u5c0d\u602a\u7269\u4f7f\u7528)
|
||||
Fishing.Effect.5=\u7528\u91e3\u7aff\u628a\u602a\u7269\u7684\u7269\u54c1\u53d6\u4e0b\u4f86
|
||||
Fishing.Effect.6=\u6f01\u592b\u751f\u6d3b
|
||||
Fishing.Effect.7=\u98df\u7528\u9b5a\u98df\u54c1\u6642\u984d\u5916\u6062\u5fa9\u98fd\u98df\u5ea6
|
||||
Fishing.Effect.8=\u91e3\u9b5a\u5927\u5e2b
|
||||
Fishing.Effect.9=\u589e\u52a0\u5728\u91e3\u9b5a\u6642\u4e0a\u9264\u7684\u6a5f\u7387
|
||||
Fishing.Enchant.Chance=[[RED]]\u9b54\u6cd5\u7375\u4eba\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Fishing.Chance.Raining=[[BLUE]] \u5927\u91cf\u734e\u52f5
|
||||
Fishing.ItemFound=[[GRAY]]\u767c\u73fe\u5bf6\u7269\u4e86\uff01
|
||||
@@ -97,9 +101,13 @@ Herbalism.Ability.GTe.Length=[[RED]]\u571f\u795e\u795d\u798f\u6301\u7e8c\u6642\u
|
||||
Herbalism.Ability.GTe.NeedMore=[[RED]]\u4f60\u9700\u8981\u66f4\u591a\u7a2e\u5b50\u624d\u53ef\u7da0\u5316.
|
||||
Herbalism.Ability.GTh.Chance=[[RED]]\u7da0\u5316\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.GTh.Fail=[[RED]]**\u7da0\u5316\u5931\u6557**
|
||||
Herbalism.Ability.GTh.Stage=[[RED]]\u7da0\u624b\u6307\u968e\u6bb5: [[YELLOW]]\u4f5c\u7269\u6210\u9577\u81f3\u968e\u6bb5 {0}
|
||||
Herbalism.Ability.GTh=[[GREEN]]**\u7da0\u5316**
|
||||
Herbalism.Ability.HylianLuck=[[RED]]\u6d77\u502b\u7684\u795d\u798f\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u92e4\u982d**
|
||||
Herbalism.Ability.Ready=[[GREEN]]**\u4f60\u8209\u9ad8\u4e86\u4f60\u7684\u92e4\u982d**
|
||||
Herbalism.Ability.ShroomThumb.Chance=[[RED]]\u8611\u83c7\u624b\u89f8\u767c\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Herbalism.Ability.ShroomThumb.Fail=[[RED]]**\u78e8\u83c7\u624b\u4f7f\u7528\u5931\u6557**
|
||||
Herbalism.Effect.0=\u571f\u795e\u795d\u798f (\u4e3b\u52d5\u6280\u80fd)
|
||||
Herbalism.Effect.1=\u6563\u64ad\u4e0a\u5e1d\u7684\u6069\u60e0,3\u500d\u6389\u843d\u7269
|
||||
Herbalism.Effect.2=\u7da0\u5316 (\u5c0f\u9ea5)
|
||||
@@ -110,12 +118,16 @@ Herbalism.Effect.6=\u8fb2\u592b\u751f\u6d3b
|
||||
Herbalism.Effect.7=\u98df\u7528\u8fb2\u98df\u54c1\u6642\u984d\u5916\u6062\u5fa9\u98fd\u98df\u5ea6
|
||||
Herbalism.Effect.8=\u96d9\u500d\u6389\u843d (\u6240\u6709\u7684\u690d\u7269)
|
||||
Herbalism.Effect.9=\u96d9\u500d\u6389\u843d\u7269\u54c1
|
||||
Herbalism.Effect.11=\u7d66\u4e88\u4e00\u500b\u5f88\u5c0f\u7684\u6a5f\u6703\u4f86\u627e\u5230\u7269\u54c1
|
||||
Herbalism.Effect.10=\u6d77\u502b\u7684\u795d\u798f
|
||||
Herbalism.Effect.11=\u4f7f\u4f60\u64c1\u6709\u5fae\u5c0f\u6a5f\u7387\u767c\u73fe\u7a00\u6709\u7269\u54c1
|
||||
Herbalism.Effect.12=\u8611\u83c7\u624b
|
||||
Herbalism.Effect.13=\u6563\u64ad\u83cc\u7d72\u9ad4\u81f3\u571f\u548c\u8349
|
||||
Herbalism.HylianLuck=[[GREEN]]\u8c50\u6536\u5973\u795e\u4eca\u65e5\u8207\u4f60\u540c\u5728!
|
||||
Herbalism.Listener=\u8fb2\u696d\u77e5\u8b58:
|
||||
Herbalism.SkillName=\u8fb2\u696d\u77e5\u8b58
|
||||
Herbalism.Skills.GTe.Off=[[RED]]**\u571f\u795e\u795d\u798f\u5df2\u7ed3\u675f**
|
||||
Herbalism.Skills.GTe.On=[[GREEN]]**\u555f\u52d5\u571f\u795e\u795d\u798f\u6280\u80fd**
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u571f\u795e\u795d\u798f [[GREEN]]\u6280\u80fd\u5df2\u7d93\u53ef\u4ee5\u4f7f\u7528\u4e86\uff01
|
||||
Herbalism.Skills.GTe.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u571f\u795e\u795d\u798f [[GREEN]]\u80fd\u529b\u5df2\u53ef\u4f7f\u7528!
|
||||
Herbalism.Skills.GTe.Other.Off=[[RED]]\u571f\u795e\u795d\u798f[[GREEN]] \u5df2\u7d93\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u571f\u795e\u795d\u798f!
|
||||
Herbalism.Skillup=[[YELLOW]]\u8fb2\u696d\u77e5\u8b58\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})!
|
||||
@@ -123,7 +135,7 @@ Mining.Ability.Length=[[RED]]\u8d85\u7d1a\u5de5\u4eba\u6301\u7e8c\u6642\u9593: [
|
||||
Mining.Ability.Locked.0=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u6316\u7926\u7206\u767c)
|
||||
Mining.Ability.Locked.1=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u66f4\u5927\u7684\u70b8\u5f48)
|
||||
Mining.Ability.Locked.2=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u7206\u7834\u5c08\u5bb6)
|
||||
Mining.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u7a3f\u5b50**
|
||||
Mining.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u93ac\u5b50**
|
||||
Mining.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7dca\u4e86\u4f60\u7684\u7a3f\u5b50**
|
||||
Mining.Effect.0=\u8d85\u7d1a\u5de5\u4eba (\u4e3b\u52d5\u6280\u80fd)
|
||||
Mining.Effect.1=\u901f\u5ea6+, 3\u500d\u6389\u843d\u7387
|
||||
@@ -143,13 +155,15 @@ Mining.Skills.SuperBreaker.Off=[[RED]]**\u8d85\u7d1a\u5de5\u4eba\u5df2\u7ed3\u67
|
||||
Mining.Skills.SuperBreaker.On=[[GREEN]]**\u8d85\u7d1a\u5de5\u4eba\u4f7f\u7528**
|
||||
Mining.Skills.SuperBreaker.Other.Off=[[RED]]\u8d85\u7d1a\u5de5\u4eba[[GREEN]] \u5df2\u7d93\u7ed3\u675f\u4e86 [[YELLOW]]{0}
|
||||
Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u8d85\u7d1a\u5de5\u4eba!
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u8d85\u7d1a\u5de5\u4eba [[GREEN]]\u6280\u80fd\u5df2\u7d93\u53ef\u4ee5\u518d\u6b21\u4f7f\u7528\u4e86\uff01
|
||||
Mining.Skills.SuperBreaker.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u8d85\u7d1a\u5de5\u4eba [[GREEN]]\u80fd\u529b\u5df2\u53ef\u518d\u6b21\u4f7f\u7528\uff01
|
||||
Mining.Skillup=[[YELLOW]]\u6316\u7926\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})!
|
||||
Mining.Blast.Boom=[[GRAY]]**BOOM!**
|
||||
Mining.Blast.Effect=+{0} \u7926\u7269\u7522\u91cf, -{1}\u5783\u573e\u7522\u91cf, {2}x \u6389\u843d\u91cf
|
||||
Mining.Blast.Radius.Increase=[[RED]]\u7206\u70b8\u534a\u5f91\u63d0\u5347: [[YELLOW]]+{0}
|
||||
Mining.Blast.Rank=[[RED]]\u6316\u7926\u7206\u767c: [[YELLOW]] \u6392\u540d {0}/8 [[GRAY]]({1})
|
||||
Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] \u4f7f\u7528\u4e86 [[RED]]\u6316\u7926\u7206\u767c!
|
||||
Mining.Blast.Refresh=[[GREEN]]\u4f60\u7684 [[YELLOW]]\u6316\u7926\u7206\u767c [[GREEN]]\u51b7\u537b\u6642\u9593\u5df2\u7d50\u675f!
|
||||
Repair.AnvilPlaced.Spout1=[mcMMO] \u4f60\u653e\u7f6e\u4e86\u4e00\u500b\u9435\u7827
|
||||
Repair.AnvilPlaced.Spout2=\u8acb\u9ede\u5de6\u9375\u4f86\u4fee\u5fa9!
|
||||
Repair.Effect.0=\u4fee\u7406
|
||||
Repair.Effect.1=\u4fee\u7406\u5de5\u5177\u548c\u88dd\u5099
|
||||
@@ -188,7 +202,7 @@ Repair.Skills.Mastery=[[RED]]\u4fee\u7406\u7cbe\u901a: [[YELLOW]]\u984d\u5916\u5
|
||||
Repair.Skills.StackedItems=[[DARK_RED]]\u4f60\u7121\u6cd5\u4fee\u7406\u758a\u52a0\u7684\u7269\u54c1
|
||||
Repair.Skills.Super.Chance=[[RED]]\u8d85\u7d1a\u4fee\u7406\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Repair.Skillup=[[YELLOW]]\u4fee\u7406\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})!
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]AF\u964d\u7d1a\u6a5f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Downgrade=[[GRAY]]\u9644\u9b54\u964d\u7d1a\u6a5f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Chance.Success=[[GRAY]]\u81ea\u52d5\u7784\u6e96\u7684\u6210\u529f\u7387: [[YELLOW]]{0}%
|
||||
Repair.Arcane.Downgrade=[[RED]]\u9019\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u7b49\u7d1a\u5df2\u4e0b\u964d
|
||||
Repair.Arcane.Fail=[[RED]]\u9019\u4ef6\u7269\u54c1\u7684\u9644\u9b54\u5df2\u6d88\u5931!
|
||||
@@ -196,7 +210,7 @@ Repair.Arcane.Lost=[[RED]]\u4f60\u7684\u6280\u80fd\u7b49\u7d1a\u4e0d\u8db3\u4ee5
|
||||
Repair.Arcane.Perfect=[[GREEN]]\u4f60\u6210\u529f\u5730\u4fdd\u7559\u4e86\u9019\u4ef6\u7269\u54c1\u7684\u9644\u9b54.
|
||||
Repair.Arcane.Rank=[[RED]]\u79d8\u6cd5\u935b\u9020: [[YELLOW]]\u7b49\u7ea7 {0}/4
|
||||
Swords.Ability.Lower=[[GRAY]]**\u4f60\u653e\u4e0b\u4e86\u4f60\u7684\u528d**
|
||||
Swords.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7dca\u4e86\u4f60\u7684\u528d**
|
||||
Swords.Ability.Ready=[[GREEN]]**\u4f60\u63e1\u7dca\u8457\u4f60\u7684\u528d**
|
||||
Swords.Combat.Bleed.Chance=[[RED]]\u6d41\u8840\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Swords.Combat.Bleed.Length=[[RED]]\u6d41\u8840\u6301\u7e8c\u6642\u9593: [[YELLOW]]{0} ticks
|
||||
Swords.Combat.Bleed.Note=[[GRAY]]\u6ce8\u610f: [[YELLOW]]\u6bcf\u5169\u79d2\u6e1b\u4e00\u6ef4\u8840
|
||||
@@ -205,11 +219,14 @@ Swords.Combat.Bleeding.Stopped=[[GRAY]]\u6d41\u8840\u6548\u679c\u5df2[[GREEN]]\u
|
||||
Swords.Combat.Bleeding=[[GREEN]]**\u6575\u4eba\u6b63\u5728\u4e0d\u65b7\u6d41\u8840**
|
||||
Swords.Combat.Counter.Chance=[[RED]]\u53cd\u64ca\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Swords.Combat.Counter.Hit=[[DARK_RED]]\u4f60\u53cd\u64ca\u4e86\u5c0d\u624b!
|
||||
Swords.Combat.Countered=[[GREEN]]**\u5c0d\u6575\u4eba\u53cd\u64ca\u4e86**
|
||||
Swords.Combat.Countered=[[GREEN]]**\u53cd\u5c04\u4e86\u6575\u4eba\u7684\u653b\u64ca**
|
||||
Swords.Combat.SS.Struck=[[DARK_RED]]\u555f\u52d5\u6c23\u7d55\u528d\uff01
|
||||
Swords.Effect.0=\u53cd\u64ca
|
||||
Swords.Effect.1=\u53cd\u5f48{0}\u9ede\u50b7\u5bb3
|
||||
Swords.Effect.2=\u6c23\u7d55\u528d (\u4e3b\u52d5\u6280\u80fd)
|
||||
Swords.Effect.3={0} \u50b7\u5bb3\u7bc4\u570d, \u6d41\u8840\u7bc4\u570d
|
||||
Swords.Effect.4=\u6c23\u7d55\u528d\u6d41\u8840\u50b7\u5bb3\u589e\u52a0
|
||||
Swords.Effect.5={0} \u6b21\u6d41\u8840
|
||||
Swords.Effect.6=\u6d41\u8840
|
||||
Swords.Effect.7=\u7522\u751f\u6d41\u8840\u8655
|
||||
Swords.Listener=\u528d:
|
||||
@@ -226,16 +243,19 @@ Taming.Ability.Bonus.1=\u72fc\u6703\u907f\u958b\u5371\u96aa
|
||||
Taming.Ability.Bonus.2=\u539a\u5be6\u7684\u76ae\u6bdb
|
||||
Taming.Ability.Bonus.3=1/{0} \u50b7\u5bb3/\u706b\u7130\u50b7\u5bb3
|
||||
Taming.Ability.Bonus.4=\u885d\u64ca\u683c\u64cb
|
||||
Taming.Ability.Bonus.5=\u7206\u70b8\u50b7\u5bb3\u6e1b\u514d\u70ba 1/{0}
|
||||
Taming.Ability.Bonus.6=\u5229\u722a
|
||||
Taming.Ability.Bonus.7=+{0} \u50b7\u5bb3
|
||||
Taming.Ability.Bonus.8=\u5feb\u9910\u670d\u52d9
|
||||
Taming.Ability.Bonus.9={0} \u4e00\u5b9a\u6a5f\u7387\u5728\u653b\u64ca\u6642\u6062\u5fa9\u8840\u91cf
|
||||
Taming.Ability.Bonus.11=\u88ab\u6709\u5bb3\u7684\u9b54\u6cd5\u50b7\u5bb3\u6216\u4e2d\u6bd2\u6642\uff0c\u6062\u5fa9\u5065\u5eb7
|
||||
Taming.Ability.Bonus.10=\u795e\u72ac
|
||||
Taming.Ability.Bonus.11=\u7576\u88ab\u6cd5\u8853\u653b\u64ca\u6216\u4e2d\u6bd2\u6642\u6062\u5fa9\u751f\u547d\u503c
|
||||
Taming.Ability.Locked.0=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u8fc5\u9748\u654f\u6377)
|
||||
Taming.Ability.Locked.1=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u539a\u5be6\u7684\u76ae\u6bdb)
|
||||
Taming.Ability.Locked.2=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u885d\u64ca\u683c\u64cb)
|
||||
Taming.Ability.Locked.3=\u9396\u5b9a\u76f4\u5230 {0}+ \u6280\u80fd (\u5229\u722a)
|
||||
Taming.Ability.Locked.4=\u9396\u5b9a \u76f4\u5230 {0}+ \u6280\u80fd (\u5feb\u9910\u670d\u52d9)
|
||||
Taming.Ability.Locked.5=\u9396\u5b9a\u6280\u80fd(\u795e\u72ac)\u76f4\u5230\u7b49\u7d1a\u8d85\u904e{0}+
|
||||
Taming.Combat.Chance.Gore=[[RED]]\u6d41\u8840\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Taming.Effect.0=\u8a13\u7378\u4e4b\u80fd
|
||||
Taming.Effect.1=\u62ff\u8457\u9aa8\u982d\u4e26\u4f7f\u7528\u6ed1\u9f20\u53f3\u9375\u4f86\u78ba\u8a8d\u72fc\u8207\u5c71\u8c93\u7684\u72c0\u6cc1
|
||||
@@ -247,6 +267,8 @@ Taming.Effect.14=[[GRAY]]\u53ec\u559a (\u5c71\u8c93): \u6309\u4f4fshift\u540c\u6
|
||||
Taming.Effect.15=[[GRAY]]\u53ec\u559a (\u72fc): \u6309\u4f4fshift\u540c\u6642\u4e26\u6309\u4f4f\u5de6\u9375 \u9084\u9700\u8981\u62ff {0} \u6839\u9aa8\u982d\u5728\u624b\u88e1
|
||||
Taming.Effect.16=\u5feb\u9910\u670d\u52d9
|
||||
Taming.Effect.17=\u4e00\u5b9a\u6a5f\u7387\u4f7f\u72fc\u5728\u653b\u64ca\u6642\u6062\u5fa9\u8840\u91cf
|
||||
Taming.Effect.18=\u795e\u72ac
|
||||
Taming.Effect.19=\u6cd5\u8853&\u4e2d\u6bd2\u5c07\u6703\u89f8\u767c\u6cbb\u7642.
|
||||
Taming.Effect.2=\u6d41\u8840
|
||||
Taming.Effect.3=\u6703\u5fc3\u4e00\u64ca\u4f7f\u76ee\u6a19\u6d41\u8840
|
||||
Taming.Effect.4=\u5229\u722a
|
||||
@@ -267,6 +289,9 @@ Unarmed.Ability.Bonus.0=\u9435\u8155\u5927\u5e2b
|
||||
Unarmed.Ability.Bonus.1=\u589e\u52a0{0}\u50b7\u5bb3
|
||||
Unarmed.Ability.Chance.ArrowDeflect=[[RED]]\u5f13\u7bad\u504f\u5411\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.Disarm=[[RED]]\u63a0\u596a\u6b66\u5668\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.Chance.IronGrip=[[RED]]\u92fc\u9435\u624b\u6307\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Unarmed.Ability.IronGrip.Attacker=[[RED]]\u4f60\u7684\u5c0d\u624b\u6709\u92fc\u9435\u624b\u6307!
|
||||
Unarmed.Ability.IronGrip.Defender=[[GREEN]]\u4f60\u7684\u8d85\u5f37\u63e1\u529b\u4f7f\u4f60\u7684\u6b66\u5668\u514d\u65bc\u88ab\u64ca\u843d!
|
||||
Unarmed.Ability.Lower=[[GRAY]]**\u4f60\u653e\u9b06\u4e86\u4f60\u7684\u62f3\u982d**
|
||||
Unarmed.Ability.Ready=[[GREEN]]**\u4f60\u7dca\u63e1\u8457\u4f60\u7684\u62f3\u982d**
|
||||
Unarmed.Effect.0=\u72c2\u66b4 (\u4e3b\u52d5\u6280\u80fd)
|
||||
@@ -277,8 +302,9 @@ Unarmed.Effect.4=\u9435\u8155\u5927\u5e2b
|
||||
Unarmed.Effect.5=\u4f7f\u4f60\u7684\u88dd\u7532\u96a8\u6642\u9593\u589e\u52a0\u800c\u589e\u5f37
|
||||
Unarmed.Effect.6=\u5f13\u7bad\u504f\u5411
|
||||
Unarmed.Effect.7=\u8b93\u5f13\u7bad\u504f\u5411
|
||||
Unarmed.Effect.8=[[RED]]\u4f60\u7684\u5c0d\u624b\u6709\u8d85\u5f37\u63e1\u529b!
|
||||
Unarmed.Effect.9=\u9632\u6b62\u4f60\u88ab\u596a\u53d6\u6b66\u5668
|
||||
Unarmed.Listener=\u5c1a\u672a\u88dd\u5099:
|
||||
Unarmed.Listener=\u7a7a\u624b\u9053:
|
||||
Unarmed.SkillName=\u5c1a\u672a\u88dd\u5099
|
||||
Unarmed.Skills.Berserk.Off=[[RED]]**\u72c2\u66b4\u6280\u80fd\u5df2\u7ed3\u675f**
|
||||
Unarmed.Skills.Berserk.On=[[GREEN]]**\u72c2\u66b4\u6280\u80fd\u4f7f\u7528**
|
||||
@@ -318,9 +344,10 @@ Combat.Gore=[[GREEN]]**\u6d41\u8840**
|
||||
Combat.StruckByGore=[[RED]]**\u4f60\u958b\u59cb\u6d41\u8840\u4e86**
|
||||
Combat.TargetDazed=\u76ee\u6a19\u5df2\u88ab [[DARK_RED]] \u64ca\u6688
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]\u982d\u6688\u76ee\u7729...
|
||||
mcMMO.Description=[[DARK_AQUA]]\u95dc\u65bc [[YELLOW]]mcMMO[[DARK_AQUA]] \u5c08\u6848:,[[GOLD]]mcMMO\u662f\u4e00\u500b[[RED]]\u958b\u653e\u539f\u59cb\u78bc\u7684[[GOLD]] RPG \u6a21\u7d44\u59cb\u65bc2011\u5e74\u4e8c\u6708,[[GOLD]]\u5efa\u7acb\u8005 [[BLUE]]nossr50[[GOLD]]. \u65e8\u5728\u63d0\u4f9b\u4e00\u500b\u9ad8\u54c1\u8ceaRPG\u9ad4\u9a57.,[[DARK_AQUA]]\u5c0f\u6280\u5de7:,[[GOLD]] - [[GREEN]]\u8f38\u5165 [[RED]]/mcmmo help[[GREEN]] \u4ee5\u4e86\u89e3\u6240\u6709\u6307\u4ee4,[[GOLD]] - [[GREEN]]\u8f38\u5165 [[RED]]/\u6280\u80fd\u540d\u7a31[[GREEN]]\u4ee5\u4e86\u89e3\u6280\u80fd\u7d30\u7bc0,[[DARK_AQUA]]\u958b\u767c\u8005:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](\u8d0a\u52a9\u8005),[[GOLD]] - [[GREEN]]GJ [[BLUE]](\u5c08\u6848\u9818\u5c0e\u4eba),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](\u958b\u767c\u8005),[[GOLD]] - [[GREEN]]bm01 [[BLUE]](\u958b\u767c\u8005),[[GOLD]] - [[GREEN]]TfT_02 [[BLUE]](\u958b\u767c\u8005),[[GOLD]] - [[GREEN]]Glitchfinder [[BLUE]](\u958b\u767c\u8005),[[GOLD]] - [[GREEN]]t00thpick1 [[BLUE]](\u958b\u767c\u8005),[[DARK_AQUA]]\u5be6\u7528\u9023\u7d50:,[[GOLD]] - [[GREEN]]https://github.com/mcMMO-Dev/mcMMO/issues[[GOLD]] \u932f\u8aa4\u56de\u5831,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC \u983b\u9053,
|
||||
Commands.addlevels.AwardAll.1=[[GREEN]]\u5728\u5168\u90e8\u7684\u6280\u80fd\u88e1\u4f60\u9084\u5dee {0} \u7b49\u7d1a!
|
||||
Commands.addlevels.AwardAll.2=[[RED]]\u6240\u6709\u6280\u80fd\u7b49\u7d1a\u5df2\u88ab\u8a2d\u5b9a\u70ba {0}.
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]\u4f60\u4e0a\u5347\u4e86{0} \u7d1a\u5728 {1} \u9019\u7b49\u7d1a!
|
||||
Commands.addlevels.AwardSkill.1=[[GREEN]]{1}\u6280\u80fd\u5df2\u589e\u52a0{0}\u7b49!
|
||||
Commands.addlevels.AwardSkill.2=[[RED]]{0} \u56e0\u70ba {1} \u800c\u4fee\u6539.
|
||||
Commands.addxp.AwardAll=[[GREEN]]\u5728\u5168\u90e8\u7684\u6280\u80fd\u88e1\u4f60\u9084\u5dee {0} \u7d93\u9a57\u503c!
|
||||
Commands.addxp.AwardSkill=[[GREEN]]\u4f60\u5728 {1} \u4e2d\u88ab\u734e\u52f5\u4e86 {0} \u7d93\u9a57\u503c!
|
||||
@@ -331,13 +358,13 @@ Commands.AdminChat.On=\u7ba1\u7406\u804a\u5929\u6a21\u5f0f [[GREEN]]\u958b\u555f
|
||||
Commands.AdminChat.Prefix=[[AQUA]][[[WHITE]]{0}[[AQUA]]]
|
||||
Commands.AdminToggle=[[RED]]- \u5207\u63db\u7ba1\u7406\u54e1\u804a\u5929
|
||||
Commands.Chat.Console=*\u63a7\u5236\u53f0*
|
||||
Commands.Disabled=[[RED]]\u9019\u500b\u6307\u4ee4\u88ab\u53d6\u6d88\u4e86.
|
||||
Commands.Disabled=[[RED]]\u9019\u500b\u6307\u4ee4\u88ab\u7981\u7528\u4e86.
|
||||
Commands.DoesNotExist=[[RED]]\u6b64\u73a9\u5bb6\u4e0d\u5b58\u5728\uff01
|
||||
Commands.GodMode.Disabled=[[YELLOW]]mcMMO \u795e\u4e4b\u6a21\u5f0f\u53d6\u6d88
|
||||
Commands.GodMode.Enabled=[[YELLOW]]mcMMO \u795e\u4e4b\u6a21\u5f0f\u958b\u555f
|
||||
Commands.GodMode.Forbidden=[mcMMO] \u795e\u4e4b\u6a21\u5f0f\u4e0d\u5141\u8a31\u5728\u9019\u4e16\u754c\u958b\u555f (\u8acb\u89c0\u770b\u6b0a\u9650\u8a2d\u5b9a)
|
||||
Commands.Inspect=<player> [[RED]]-\u67e5\u770b\u73a9\u5bb6\u8a73\u7d30\u8a0a\u606f
|
||||
Commands.Invite.Accepted=[[GREEN]]\u63a5\u53d7\u9080\u8acb\uff0c\u4f60\u6210\u70ba\u4e86\u6b64\u968a\u4f0d\u7684\u968a\u54e1 {0}
|
||||
Commands.Invite.Accepted=[[GREEN]]\u63a5\u53d7\u9080\u8acb\uff0c\u4f60\u52a0\u5165\u4e86\u968a\u4f0d {0}
|
||||
Commands.Invite.Success=[[GREEN]]\u9080\u8acb\u8a0a\u606f\u767c\u9001\u6210\u529f
|
||||
Commands.Leaderboards=<skill> <page> [[RED]]- \u6392\u884c\u699c
|
||||
Commands.mcc.Header=[[RED]]---[][[YELLOW]]mcMMO \u6307\u4ee4[[RED]][]---
|
||||
@@ -351,6 +378,7 @@ Commands.mcrank.Skill=[[YELLOW]]{0}[[GREEN]] - [[GOLD]]\u6392\u540d [[WHITE]]#[[
|
||||
Commands.mcrank.Unranked=[[WHITE]]\u6392\u884c\u699c\u5916
|
||||
Commands.mcrefresh.Success=[[RED]]{0} \u79d2\u5f8c\u51b7\u537b\u6642\u9593\u5b8c\u7562.
|
||||
Commands.mcremove.Success=[[GREEN]]{0} \u5df2\u6210\u529f\u5f9e\u6578\u64da\u88e1\u79fb\u9664!
|
||||
Commands.mctop.Tip=[[GOLD]]\u5c0f\u6487\u6b65: \u6253 [[RED]]/mcrank[[GOLD]] \u53ef\u4ee5\u89c0\u770b\u4f60\u7684\u6392\u540d!
|
||||
Commands.mmoedit=[player] <skill> <newvalue> [[RED]] - \u7de8\u8f2f\u76ee\u6a19
|
||||
Commands.mmoedit.AllSkills.1=[\u7da0\u8272]\u60a8\u6240\u6709\u7684\u6280\u80fd\u7b49\u7d1a\u88ab\u8a2d\u5b9a\u70ba{0}\uff01
|
||||
Commands.mmoedit.Modified.1=[[GREEN]]\u4f60\u7684 {0} \u7b49\u7d1a\u88ab\u8a2d\u5b9a\u70ba {1}!
|
||||
@@ -359,8 +387,8 @@ Commands.mmoupdate.Start=[[GRAY]]\u78ba\u8a8d\u7248\u672c\u4e2d...
|
||||
Commands.mmoupdate.Finish=[[GREEN]]\u8b80\u53d6\u7248\u672c\u5b8c\u7562!
|
||||
Commands.ModDescription=[[RED]]- \u8acb\u95b1\u8b80\u63d2\u4ef6\u63cf\u8ff0
|
||||
Commands.NoConsole=\u9019\u500b\u6307\u4ee4\u4e0d\u53ef\u4f7f\u7528
|
||||
Commands.Notifications.Off=<FONT> <FONT> [\u7da0\u8272]\u5207\u63db\u80fd\u529b\u7684\u901a\u77e5</ FONT> </ FONT>
|
||||
Commands.Notifications.On=<FONT> <FONT> [\u7da0\u8272]\u5207\u63db\u80fd\u529b\u7684\u901a\u77e5</ FONT> </ FONT>
|
||||
Commands.Notifications.Off=\u5207\u63db\u80fd\u529b\u901a\u77e5\u70ba [[RED]]\u95dc\u9589
|
||||
Commands.Notifications.On=\u5207\u63db\u80fd\u529b\u901a\u77e5\u70ba [[GREEN]]\u958b\u555f
|
||||
Commands.Offline=[RED]]\u6b64\u547d\u4ee4\u4e26\u4e0d\u9069\u7528\u65bc\u96e2\u7dda\u73a9\u5bb6\u3002
|
||||
Commands.Other=[[GREEN]]--\u5176\u4ed6\u6307\u4ee4--
|
||||
Commands.Party.Header=[[RED]]-----[][[GREEN]]\u968a\u4f0d[[RED]][]-----
|
||||
@@ -368,23 +396,25 @@ Commands.Party.Status=[[DARK_GRAY]]\u540d\u5b57: [[WHITE]]{0} {1}
|
||||
Commands.Party.ShareMode=[[DARK_GRAY]]\u5206\u4eab\u6a21\u5f0f:
|
||||
Commands.Party.ItemShare=[[GRAY]]\u7269\u54c1 [[DARK_AQUA]]({0})
|
||||
Commands.Party.ExpShare=[[GRAY]]\u7d93\u9a57\u503c [[DARK_AQUA]]({0})
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]\u5171\u4eab\u9805\u76ee: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.ItemShareCategories=[[DARK_GRAY]]\u5171\u4eab\u7269\u54c1: [[GRAY]][[ITALIC]]{0}
|
||||
Commands.Party.MembersNear=[[DARK_GRAY]]\u63a5\u8fd1\u4f60 [[DARK_AQUA]]{0}[[DARK_GRAY]]/[[DARK_AQUA]]{1}
|
||||
Commands.Party.Accept=[[RED]]- \u63a5\u53d7\u968a\u4f0d\u9080\u8acb
|
||||
Commands.Party.Chat.Off=\u968a\u4f0d\u804a\u5929\u6a21\u5f0f[[RED]]\u53d6\u6d88
|
||||
Commands.Party.Chat.On=\u968a\u4f0d\u804a\u5929\u6a21\u5f0f [[GREEN]]\u958b\u555f
|
||||
Commands.Party.Chat.Prefix=[[GREEN]]([[WHITE]]{0}[[GREEN]])
|
||||
Commands.Party.Commands=[[GREEN]]--\u7d44\u968a\u6307\u4ee4--
|
||||
Commands.Party.Invite.0=[[RED]]\u6ce8\u610f: [[GREEN]]\u4f60\u6536\u5230\u4e86\u4e00\u500b\u968a\u4f0d\u9080\u8acb {0} \u4f86\u81ea {1}
|
||||
Commands.Party.Invite.0=[[RED]]\u6ce8\u610f: [[GREEN]]\u4f60\u6536\u5230\u4e86\u4f86\u81ea {1} \u7684\u968a\u4f0d\u9080\u8acb {0}
|
||||
Commands.Party.Invite.1=[[YELLOW]]\u8f38\u5165 [[GREEN]]/party accept[[YELLOW]] \u4f86\u63a5\u53d7\u9080\u8acb
|
||||
Commands.Party.Invite=[[RED]]- \u5df2\u767c\u9001\u968a\u4f0d\u9080\u8acb
|
||||
Commands.Party.Join=[[GRAY]]\u52a0\u5165\u7684\u968a\u4f0d: {0}
|
||||
Commands.Party.Create=[[GRAY]]\u5275\u5efa\u7684\u968a\u4f0d\u540d\u7a31: {0}
|
||||
Commands.Party.Rename=[[GRAY]]\u968a\u4f0d\u540d\u7a31\u5df2\u66f4\u6539\u70ba: [[WHITE]]{0}
|
||||
Commands.Party.SetSharing=[[GRAY]]\u968a\u4f0d {0} \u5206\u4eab\u8a2d\u5b9a\u70ba: [[DARK_AQUA]]{1}
|
||||
Commands.Party.ToggleShareCategory=[[GRAY]]\u968a\u4f0d\u5171\u4eab\u7684\u7269\u54c1[[GOLD]]{0} [[GRAY]] \u5df2\u7d93 [[DARK_AQUA]]{1}
|
||||
Commands.Party.AlreadyExists=[[DARK_RED]]\u5c0d\u4f0d{0} \u5df2\u5b58\u5728!
|
||||
Commands.Party.Kick=[[RED]]\u4f60\u5df2\u88ab {0} \u8e22\u51fa!
|
||||
Commands.Party.Leave=[[RED]]\u4f60\u96e2\u958b\u4e86\u9019\u652f\u968a\u4f0d
|
||||
Commands.Party.Members.Header=[RED]] ----- [] [GREEN]\u6703\u54e1[RED] [] -----
|
||||
Commands.Party.Members.Header=[RED]] ----- [] [GREEN]\u6210\u54e1[RED] [] -----
|
||||
Commands.Party.None=[[RED]]\u4f60\u4e0d\u5728\u968a\u4f0d\u4e2d.
|
||||
Commands.Party.Quit=[[RED]]- \u96e2\u958b\u4f60\u73fe\u5728\u7684\u968a\u4f0d
|
||||
Commands.Party.Teleport=<player> [[RED]]- \u50b3\u9001\u5230\u968a\u4f0d\u6210\u54e1\u65c1
|
||||
@@ -397,6 +427,8 @@ Commands.ptp.NoRequests=[[RED]]\u4f60\u73fe\u5728\u4e0d\u53ef\u4ee5\u50b3\u9001
|
||||
Commands.ptp.NoWorldPermissions=[[RED]] [mcMMO]\u60a8\u6c92\u6709\u6b0a\u9650\u50b3\u9001\u5230\u6b64\u4e16\u754c{0}\u3002
|
||||
Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]\u5df2\u50b3\u9001\u81f3\u4f60\u65c1\u908a.
|
||||
Commands.ptp.Request2=[[GREEN]]\u4f60\u50b3\u9001\u7684\u8a71\u8acb\u8f38\u5165[[YELLOW]]/ptp accept. [[GREEN]]\u5728[[RED]]{0} [[GREEN]]\u79d2\u5167\u5fc5\u9808\u5b8c\u6210
|
||||
Commands.ptp.AcceptAny.Enabled=\u968a\u4f0d\u50b3\u9001\u8acb\u6c42\u78ba\u8a8d [[GREEN]]\u555f\u7528
|
||||
Commands.ptp.AcceptAny.Disabled=\u968a\u4f0d\u50b3\u9001\u8acb\u6c42\u78ba\u8a8d[[RED]]\u7981\u7528
|
||||
Commands.ptp.RequestExpired=[[RED]]\u968a\u4f0d\u50b3\u9001\u5df2\u6210\u529f!
|
||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] \u80fd\u529b\u7b49\u7d1a [[YELLOW]]\u6392\u884c\u699c--
|
||||
Commands.PowerLevel.Capped=[[DARK_RED]]\u80fd\u529b\u7b49\u7d1a: [[GREEN]]{0} [[DARK_RED]]\u6700\u9ad8\u7b49\u7d1a: [[YELLOW]]{1}
|
||||
@@ -410,35 +442,37 @@ Commands.SkillInfo=/<skill> [[RED]]- \u67e5\u770b\u6280\u80fd\u7684\u8a73\u7ec6\
|
||||
Commands.Stats.Self=\u4f60\u7684\u8a0a\u606f
|
||||
Commands.Stats=[[RED]]- \u67e5\u770b\u4f60\u7684mcMMO\u7d71\u8a08\u8a0a\u606f
|
||||
Commands.ToggleAbility=[[RED]]- \u7528\u6ed1\u9f20\u53f3\u9375\u5207\u63db\u6280\u80fd\u4f7f\u7528\u6a21\u5f0f
|
||||
Commands.Usage.0=[RED]]\u6b63\u78ba\u4f7f\u7528/ {0}
|
||||
Commands.Usage.0=[[RED]]\u6b63\u78ba\u7528\u6cd5\u70ba/{0}
|
||||
Commands.Usage.1=[[RED]]\u8acb\u8f38\u5165 /{0} {1}
|
||||
Commands.Usage.2=[[RED]]\u8acb\u8f38\u5165 /{0} {1} {2}
|
||||
Commands.Usage.3=[[RED]]\u8acb\u8f38\u5165 /{0} {1} {2} {3}
|
||||
Commands.Usage.Level=\u7b49\u7d1a
|
||||
Commands.Usage.Message=\u8a0a\u606f
|
||||
Commands.Usage.Page=\u9801\u6578
|
||||
Commands.Usage.PartyName=<FONT> <FONT>\u540d\u7a31</ FONT> </ FONT>
|
||||
Commands.Usage.PartyName=\u540d\u7a31
|
||||
Commands.Usage.Password=\u5bc6\u78bc
|
||||
Commands.Usage.Player=\u73a9\u5bb6
|
||||
Commands.Usage.Rate=\u6a5f\u7387
|
||||
Commands.Usage.Skill=\u6280\u80fd
|
||||
Commands.Usage.XP=\u7d93\u9a57\u503c
|
||||
mcMMO.NoInvites=[[RED]]\u4f60\u6c92\u6709\u6536\u5230\u4efb\u4f55\u968a\u4f0d\u9080\u8acb
|
||||
mcMMO.NoPermission=[[DARK_RED]]\u6b0a\u9650\u4e0d\u8db3
|
||||
mcMMO.NoSkillNote=[[DARK_GRAY]]\u5982\u679c\u4f60\u7121\u6cd5\u4f7f\u7528\u90a3\u4e9b\u6280\u80fd\u5c31\u4e0d\u6703\u51fa\u73fe\u5728\u9019\u88e1
|
||||
Party.Forbidden=[mcMMO] \u968a\u4f0d\u529f\u80fd\u4e0d\u5141\u8a31\u5728\u9019\u4e16\u754c\u958b\u555f (\u8acb\u89c0\u770b\u6b0a\u9650\u8a2d\u5b9a)
|
||||
Party.Help.0=[RED]]\u6b63\u78ba\u4f7f\u7528[DARK_AQUA] {0} <player> [\u5bc6\u78bc]\u3002
|
||||
Party.Help.1=[RED]]\u8981\u5275\u5efa\u4e00\u500b\u968a\u4f0d\uff0c\u8acb\u4f7f\u7528[DARK_AQUA] {0} <\u540d\u7a31> [\u5bc6\u78bc]\u3002
|
||||
Party.Help.0=[[RED]]\u6b63\u78ba\u7528\u6cd5\u70ba[[DARK_AQUA]]{0} <player> [password].
|
||||
Party.Help.1=[[RED]]\u8981\u5275\u5efa\u4e00\u500b\u968a\u4f0d\uff0c\u8acb\u4f7f\u7528[[DARK_AQUA]] {0} <name> [password].
|
||||
Party.Help.2=[[RED]]\u66f4\u591a\u8cc7\u8a0a\u8acb\u8aee\u8a62[[DARK_AQUA]]{0}
|
||||
Party.Help.3=[[RED]]\u4f7f\u7528 [[DARK_AQUA]]{0} <player> [password] [[RED]]\u4f86\u52a0\u5165\u6216\u4f7f\u7528 [[DARK_AQUA]]{1} [[RED]]\u4f86\u96e2\u958b
|
||||
Party.Help.4=[RED]]\u8981\u9396\u5b9a\u6216\u89e3\u9396\u4f60\u7684\u968a\u4f0d\uff0c\u4f7f\u7528[DARK_AQUA]] {0}
|
||||
Party.Help.5=[[RED]]\u4f7f\u7528\u5bc6\u78bc\u4fdd\u8b77\u4f60\u7684\u968a\u4f0d\uff0c\u8acb\u4f7f\u7528[DARK_AQUA] {0}<\u5bc6\u78bc>
|
||||
Party.Help.6=[[RED]]\u8981\u8e22\u7684\u7403\u54e1\u5f9e\u968a\u4f0d\u4e2d\uff0c\u4f7f\u7528[DARK_AQUA] {0} <player>
|
||||
Party.Help.7=[RED]]\u8981\u8cb4\u968a\u4f0d\u7684\u6240\u6709\u6b0a\u8f49\u79fb\uff0c\u4f7f\u7528[DARK_AQUA] {0} <player>
|
||||
Party.Help.8=[RED]\u8981\u89e3\u6563\u968a\u4f0d\uff0c\u4f7f\u7528[DARK_AQUA] {0}
|
||||
Party.Help.4=[RED]]\u6b32\u9396\u5b9a\u6216\u89e3\u9396\u4f60\u7684\u968a\u4f0d\uff0c\u4f7f\u7528[[DARK_AQUA]] {0}
|
||||
Party.Help.5=[[RED]]\u6b32\u4f7f\u7528\u5bc6\u78bc\u4fdd\u8b77\u4f60\u7684\u968a\u4f0d\uff0c\u8acb\u4f7f\u7528[[DARK_AQUA]] {0}<password>
|
||||
Party.Help.6=[[RED]]\u8981\u5f9e\u968a\u4f0d\u4e2d\u8e22\u6389\u6210\u54e1\uff0c\u4f7f\u7528[[DARK_AQUA]] {0} <player>
|
||||
Party.Help.7=[[RED]]\u8981\u8f49\u79fb\u4f60\u7684\u968a\u4f0d\u6240\u6709\u6b0a\uff0c\u4f7f\u7528[[DARK_AQUA]] {0} <player>
|
||||
Party.Help.8=[[RED]]\u8981\u89e3\u6563\u968a\u4f0d\uff0c\u4f7f\u7528[[DARK_AQUA]] {0}
|
||||
Party.InformedOnJoin={0} [[GREEN]]\u52a0\u5165\u4e86\u4f60\u7684\u968a\u4f0d
|
||||
Party.InformedOnQuit={0} [[GREEN]]\u96e2\u958b\u4e86\u4f60\u7684\u968a\u4f0d
|
||||
Party.InformedOnNameChange=[[GOLD]]{0} [[GREEN]]\u5c07\u968a\u4f0d\u540d\u7a31\u8a2d\u5b9a\u70ba [[WHITE]]{1}
|
||||
Party.InvalidName=[[DARK_RED]]\u90a3\u4e0d\u662f\u4e00\u500b\u6709\u6548\u7684\u968a\u4f0d\u540d\u7a31.
|
||||
Party.Invite.Self=[RED]\u4f60\u80fd\u4e0d\u80fd\u9080\u8acb\u81ea\u5df1\uff01
|
||||
Party.Invite.Self=[[RED]]\u4f60\u80fd\u4e0d\u80fd\u9080\u8acb\u81ea\u5df1\uff01
|
||||
Party.IsLocked=[[RED]]\u9019\u500b\u968a\u4f0d\u5df2\u7d93\u9396\u5b9a\u4e86!
|
||||
Party.IsntLocked=[[RED]]\u9019\u500b\u968a\u4f0d\u4e26\u6c92\u6709\u9396\u5b9a!
|
||||
Party.Locked=[[RED]]\u9019\u500b\u968a\u4f0d\u5df2\u9396\u5b9a!\u53ea\u6709\u968a\u9577\u53ef\u4ee5\u9080\u8acb!
|
||||
@@ -447,7 +481,7 @@ Party.NotOwner=[[DARK_RED]]\u4f60\u4e26\u975e\u968a\u9577.
|
||||
Party.Owner.New=[[GREEN]]{0} \u6210\u70ba\u65b0\u968a\u9577.
|
||||
Party.Owner.NotLeader=[[DARK_RED]]\u56e0\u9592\u7f6e\u904e\u4e45,\u968a\u9577\u81ea\u52d5\u8f49\u8b93.
|
||||
Party.Owner.Player=[[GREEN]]\u4f60\u6210\u70ba\u4e86\u968a\u9577.
|
||||
Party.Password.None=[RED]\u9019\u500b\u968a\u4f0d\u662f\u6709\u5bc6\u78bc\u4fdd\u8b77\u7684\u3002\u8acb\u63d0\u4f9b\u5bc6\u78bc\u624d\u80fd\u52a0\u5165\u3002
|
||||
Party.Password.None=[[RED]]\u9019\u500b\u968a\u4f0d\u6709\u5bc6\u78bc\u4fdd\u8b77. \u8acb\u63d0\u4f9b\u5bc6\u78bc\u4f86\u52a0\u5165.
|
||||
Party.Password.Incorrect=[[RED]]\u968a\u4f0d\u5bc6\u78bc\u932f\u8aa4.
|
||||
Party.Password.Set=[[GREEN]]\u968a\u4f0d\u5bc6\u78bc\u8a2d\u5b9a\u70ba {0}
|
||||
Party.Password.Removed=[[GREEN]]\u968a\u4f0d\u5bc6\u78bc\u5df2\u522a\u9664.
|
||||
@@ -457,11 +491,12 @@ Party.Player.InSameParty=[[RED]]{0} \u5df2\u7d93\u5728\u4f60\u968a\u4f0d\u88e1\u
|
||||
Party.PlayerNotInParty=[[DARK_RED]]{0} \u5df2\u4e0d\u5728\u4f60\u7684\u5718\u968a
|
||||
Party.Specify=[RED]\u60a8\u5fc5\u9808\u6307\u5b9a\u4e00\u500b\u968a\u4f0d\u3002
|
||||
Party.Teleport.Dead=[[RED]]\u4f60\u4e0d\u80fd\u50b3\u9001\u81f3\u6b7b\u4ea1\u7684\u73a9\u5bb6\u65c1
|
||||
Party.Teleport.Hurt=[[RED]]\u4f60\u5728{0}\u79d2\u524d\u88ab\u653b\u64ca\u6240\u4ee5\u7121\u6cd5\u50b3\u9001.
|
||||
Party.Teleport.Player=[[GREEN]]\u4f60\u5df2\u7d93\u50b3\u9001\u5230 {0}.
|
||||
Party.Teleport.Self=[[RED]]\u4f60\u7121\u6cd5\u50b3\u9001\u5230\u4f60\u81ea\u5df1\u8eab\u65c1!
|
||||
Party.Teleport.Target=[[GREEN]]{0} \u5df2\u7d93\u50b3\u9001\u5230\u4f60\u8eab\u908a
|
||||
Party.Teleport.Target=[[GREEN]]{0} \u5df2\u7d93\u50b3\u9001\u5230\u4f60\u8eab\u908a.
|
||||
Party.Teleport.Disabled=[[RED]]{0} \u4e0d\u5141\u8a31\u968a\u4f0d\u50b3\u9001.
|
||||
Party.Rename.Same=[RED]] {0}\u4f60\u5df2\u7d93\u5728\u968a\u4f0d\u88e1\u4e86\uff01
|
||||
Party.Rename.Same=[[RED]] {0}\u4f60\u7684\u968a\u4f0d\u5df2\u7d93\u662f\u9019\u500b\u540d\u5b57\u4e86!
|
||||
Party.Join.Self=[RED]\u4e0d\u80fd\u52a0\u5165\u4f60\u81ea\u5df1\uff01
|
||||
Party.Unlocked=[[GRAY]]\u968a\u4f0d\u4ee5\u89e3\u9396!
|
||||
Party.Disband=[[GRAY]]\u968a\u4f0d\u5df2\u89e3\u6563
|
||||
@@ -470,11 +505,14 @@ Party.Status.Unlocked=[[DARK_GREEN]](\u958b\u555f)
|
||||
Party.ShareType.Exp=\u7d93\u9a57\u503c
|
||||
Party.ShareType.Item=\u7269\u54c1
|
||||
Party.ShareMode.None=\u7121
|
||||
Party.ShareMode.Equal=\u5e73\u5206
|
||||
Party.ShareMode.Random=\u96a8\u6a5f
|
||||
Party.ExpShare.Disabled=<FONT> <FONT> [RED]\u968a\u4f0d\u7684\u7d93\u9a57\u5171\u4eab\u88ab\u7981\u7528\u3002</ FONT> </ FONT>
|
||||
Party.ExpShare.Disabled=[[RED]]\u968a\u4f0d\u7d93\u9a57\u5171\u4eab\u5df2\u505c\u7528.
|
||||
Party.ItemShare.Disabled=[[RED]]\u968a\u4f0d\u7684\u7269\u54c1\u5206\u4eab\u95dc\u9589.
|
||||
Commands.XPGain.Acrobatics=\u6389\u843d
|
||||
Commands.XPGain.Archery=\u653b\u64ca\u602a\u7269
|
||||
Commands.XPGain.Axes=\u653b\u64ca\u602a\u7269
|
||||
Commands.XPGain.Child=\u5f9e\u524d\u7f6e\u6280\u80fd\u7372\u53d6\u7b49\u7d1a
|
||||
Commands.XPGain.Excavation=\u6316\u5230\u5bf6\u7269
|
||||
Commands.XPGain.Fishing=\u91e3\u9b5a!(\u53bb\u60f3\u60f3\u5427!)
|
||||
Commands.XPGain.Herbalism=\u6536\u7a6b\u8fb2\u4f5c\u7269
|
||||
@@ -500,12 +538,24 @@ Effects.Child=[[DARK_GRAY]]\u7b49\u7d1a: [[GREEN]]{0}
|
||||
Effects.Level=[[DARK_GRAY]]\u7b49\u7d1a: [[GREEN]]{0} [[DARK_AQUA]]\u7d93\u9a57\u503c[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Effects.Parent=[[GOLD]]{0} -
|
||||
Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
Guides.Excavation=[[DARK_AQUA]]About Excavation:\n[[YELLOW]]Excavation is the act of digging up dirt to find treasures.\n[[YELLOW]]By excavating the land you will find treasures.\n[[YELLOW]]The more you do this the more treasures you can find.\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you must dig with a shovel in hand.\n[[YELLOW]]Only certain materials can be dug up for treasures and XP.\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Grass, Dirt, Sand, Clay, Gravel, Mycelium, Soul Sand\n[[DARK_AQUA]]How to use Giga Drill Breaker:\n[[YELLOW]]With a shovel in hand right click to ready your tool.\n[[YELLOW]]Once in this state you have about 4 seconds to make\n[[YELLOW]]contact with Excavation compatible materials this will\n[[YELLOW]]activate Giga Drill Breaker.\n[[DARK_AQUA]]What is Giga Drill Breaker?\n[[YELLOW]]Giga Drill Breaker is an ability with a cooldown\n[[YELLOW]]tied to Excavation skill. It triples your chance\n[[YELLOW]]of finding treasures and enables instant break\n[[YELLOW]]on Excavation materials.\n[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]Every possible treasure for Excavation has its own\n[[YELLOW]]skill level requirement for it to drop, as a result it\'s\n[[YELLOW]]difficult to say how much it is helping you.\n[[YELLOW]]Just keep in mind that the higher your Excavation skill\n[[YELLOW]]is, the more treasures that can be found.\n[[YELLOW]]And also keep in mind that each type of Excavation\n[[YELLOW]]compatible material has its own unique list of treasures.\n[[YELLOW]]In other words you will find different treasures in Dirt\n[[YELLOW]]than you would in Gravel.\n[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Excavation drops are completely customizeable\n[[YELLOW]]So results vary server to server.
|
||||
Guides.Acrobatics=[[DARK_AQUA]]\u95dc\u65bc\u96dc\u6280:\n[[YELLOW]]\u96dc\u6280\u53ef\u4ee5\u8b93\u4f60\u5728MMO\u88e1\u73a9\u5f97\u5f88\u512a\u96c5.\n[[YELLOW]]\u5b83\u53ef\u4ee5\u8b93\u4f60\u5728\u6230\u9b25\u4e2d\u53ca\u74b0\u5883\u4e2d\u53d6\u5f97\u512a\u52e2.\n[[DARK_AQUA]]\u7d93\u9a57\u5982\u4f55\u7372\u53d6:\n[[YELLOW]]\u5728\u6230\u9b25\u4e2d\u9583\u8eb2\u653b\u64ca\u6216\u5f9e\u9ad8\u8655\u589c\u843d\n[[YELLOW]]\u53ef\u4ee5\u7372\u5f97\u7d93\u9a57.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6efe\u5730?\n[[YELLOW]]\u4f60\u6709\u4e00\u5b9a\u7684\u6a5f\u7387\u53ef\u4ee5\u6e1b\u514d\u5f9e\u9ad8\u8655\u589c\u843d\n[[YELLOW]]\u7684\u50b7\u5bb3. \u4f60\u53ef\u4ee5\u6309\u4f4f\u6f5b\u884c\u9375(\u9810\u8a2dshift)\n[[YELLOW]]\u5c07\u64c1\u6709\u96d9\u500d\u7684\u6efe\u5730\u6a5f\u7387.\n[[YELLOW]]\u9019\u5c07\u89f8\u767c\u5b8c\u7f8e\u8457\u9678.\n[[YELLOW]]\u5b8c\u7f8e\u8457\u9678\u6548\u679c\u8207\u6efe\u5730\u985e\u4f3c,\u53ea\u662f\u6709\u5169\u500d\n[[YELLOW]]\u7684\u89f8\u767c\u6a5f\u7387\u4e14\u53ef\u6e1b\u514d\u66f4\u591a\u50b7\u5bb3.\n[[YELLOW]]\u6efe\u5730\u6a5f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u96dc\u6280\u7b49\u7d1a.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8ff4\u907f?\n[[YELLOW]]\u8ff4\u907f\u662f\u6709\u6a5f\u7387\u6e1b\u514d\u5728\u6230\u9b25\u4e2d\n[[YELLOW]]\u6575\u4eba\u5c0d\u4f60\u7684\u50b7\u5bb3.\n[[YELLOW]]\u9019\u6a5f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u96dc\u6280\u7b49\u7d1a.
|
||||
Guides.Archery=[[DARK_AQUA]]\u5c04\u85dd:\n[[YELLOW]]\u5c04\u85dd\u662f\u7528\u5f13\u5c04\u7bad\u7684\u6280\u80fd.\n[[YELLOW]]\u5c04\u85dd\u6709\u5404\u7a2e\u52a0\u4e58\u6548\u679c,\u5982\u52a0\u4e58\u653b\u64ca\n[[YELLOW]]\u6688\u7729\u5c0d\u624b\u7b49\u6548\u679c.\n[[YELLOW]]\u6b64\u5916\u4f60\u4e5f\u6709\u6a5f\u7387\u56de\u6536\u5df2\u7d93\u5c04\u4e2d\u6575\u4eba\u7684\u7bad\n[[YELLOW]]\u4ee5\u4e0a\u6a5f\u7387\u95dc\u4fc2\u5230\u7b49\u7d1a.\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u5f97\u7d93\u9a57\u5fc5\u9808\u7528\u5f13\u5c04\u4e2d\u602a\u7269\u6216\u73a9\u5bb6\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5f13\u7bad\u719f\u7df4?\n[[YELLOW]]\u5f13\u7bad\u719f\u7df4\u5c07\u52a0\u4e58\u4f60\u7684\u5c04\u7bad\u57fa\u672c\u653b\u64ca\u529b.\n[[YELLOW]]\u52a0\u4e58\u7a0b\u5ea6\u95dc\u4fc2\u5230\u4f60\u7684\u5c04\u85dd\u7b49\u7d1a.\n[[YELLOW]]\n[[YELLOW]]\u9810\u8a2d\u4e2d\u6bcf\u534750\u7d1a\u52a0\u4e5810%\u653b\u64ca\u529b,\u6700\u9ad8200%\u52a0\u4e58.\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6688\u7729\u6548\u679c?\n[[YELLOW]]\u4f60\u6709\u88ab\u52d5\u6a5f\u7387\u4f7f\u76ee\u6a19\u6688\u7729\n[[YELLOW]]\u6688\u7729\u6548\u679c\u6709\u52a0\u4e584\u9ede\u50b7\u5bb3(2\u5fc3)\n[[YELLOW]]\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7bad\u56de\u6536?\n[[YELLOW]]\u4f60\u6709\u6a5f\u7387\u5728\u6bba\u6b7b\u602a\u7269\u5f8c\u56de\u6536\u5c04\u51fa\u53bb\u7684\u7bad.\n[[YELLOW]]\u6a5f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u5c04\u85dd\u7b49\u7d1a.\n[[YELLOW]]\u9810\u8a2d\u4e2d,\u6bcf\u5347\u4e00\u7b49\u589e\u52a00.1%\u6a5f\u7387\n[[YELLOW]]\n[[YELLOW]]
|
||||
Guides.Axes=[[DARK_AQUA]]\u95dc\u65bc\u64cd\u65a7\u8853:\n[[YELLOW]]\u6709\u4e86\u64cd\u65a7\u8853\u6280\u80fd, \u4f60\u5c31\u53ef\u4ee5\u4e0d\u5fc5\u53ea\u662f\u4e82\u63ee\u4e82\u780d\n[[YELLOW]]\u4f60\u53ef\u4ee5\u66f4\u6709\u6548\u5730\u64ca\u6bba\u53ef\u60e1\u7684\u602a\u7269\u5011!\n[[YELLOW]]\u800c\u4e14\u53ef\u4ee5\u5728\u63ee\u64ca\u6642\u70b8\u98db\u6216\u767c\u51fa\u81f4\u547d\u7684\u66b4\u64ca\n[[YELLOW]]\u4ee5\u91cd\u5275\u5c0d\u624b.\n[[YELLOW]]\u4f60\u7684\u65a7\u982d\u4e5f\u53ef\u4ee5\u6210\u70ba\u4e00\u53f0\u6bba\u4eba\u96fb\u92f8,\n[[YELLOW]]\u91cd\u5275\u5c0d\u624b\u7684\u88dd\u7532,\u96a8\u8457\u64cd\u65a7\u6280\u80fd\u5347\u9ad8\u800c\n[[YELLOW]]\u63d0\u5347\u6548\u679c.\n[[DARK_AQUA]]\u5982\u4f55\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57\u4f60\u5fc5\u9808\u7528\u65a7\u982d\u653b\u64ca\u73a9\u5bb6\u6216\u602a\u7269\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u795e\u65a7\u9739\u9742?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd(\u7bc4\u570d\u6280).\n[[YELLOW]]\u9031\u906d\u88ab\u6ce2\u53ca\u7684\u50b7\u5bb3\u70ba\u4e3b\u8981\u76ee\u6a19\u7684\u4e00\u534a\n[[YELLOW]]\u662f\u5c0d\u4ed8\u7fa4\u6bc6\u7684\u5fc5\u5099\u7d55\u62db.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u66b4\u64ca?\n[[YELLOW]]\u66b4\u64ca\u662f\u4e00\u500b\u53ef\u4ee5\u9020\u6210\u52a0\u4e58\u50b7\u5bb3\u7684\u88ab\u52d5\u6280\u80fd.\n[[YELLOW]]\u9810\u8a2d\u64cd\u65a7\u8853\u6bcf\u5347\u5169\u7b49,\u53ef\u589e\u52a00.1%\u66b4\u64ca\u7387\n[[YELLOW]]\u5c0d\u602a\u7269\u67092\u500d\u653b\u64ca\u529b\u5c0d\u73a9\u5bb6\u67091.5\u500d\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u65a7\u6280\u719f\u7df4?\n[[YELLOW]]\u65a7\u6280\u719f\u7df4\u53ef\u4ee5\u52a0\u4e58\u65a7\u982d\u7684\u57fa\u672c\u653b\u64ca\u529b\n[[YELLOW]]\u9810\u8a2d\u4e2d\u6bcf50\u7b49\u589e\u52a01\u9ede\u50b7\u5bb3(\u534a\u5fc3)\n[[YELLOW]]200\u7b49\u9054\u5230\u6975\u96504\u9ede\u50b7\u5bb3.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u9632\u5177\u7834\u58de\u8005?\n[[YELLOW]]\u9632\u5177\u7834\u58de\u8005\u6709\u88ab\u52d5\u6a5f\u7387\u5c0d\u5c0d\u624b\u9632\u5177\u6709\u52a0\u4e58\u50b7\u5bb3!\n[[YELLOW]]\u50b7\u5bb3\u7a0b\u5ea6\u95dc\u4fc2\u5230\u4f60\u7684\u64cd\u65a7\u8853\u7b49\u7d1a.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u70b8\u98db\u5c0d\u624b?\n[[YELLOW]]\u5728\u653b\u64ca\u73a9\u5bb6\u6216\u602a\u7269\u6642\u6709\u88ab\u52d5\u6a5f\u7387\u70b8\u98db\u5c0d\u624b\n[[YELLOW]]\u9810\u8a2d\u6a5f\u7387\u70ba25%. \u70b8\u98db\u6548\u679c\u76f8\u7576\u65bc\u64ca\u9000II\u7684\u9644\u9b54\n[[YELLOW]]\u5916\u52a0\u5c0d\u76ee\u6a19\u7684\u52a0\u4e58\u653b\u64ca.
|
||||
Guides.Available=[[DARK_AQUA]] \u95dc\u65bc{0}\u7684\u89e3\u8aaa - \u6253 /{1} ? [\u9801\u6578]
|
||||
Guides.Excavation=[[DARK_AQUA]]\u95dc\u65bc\u6316\u6398:\n[[YELLOW]]\u6316\u6398\u662f\u4e00\u500b\u95dc\u65bc\u6316\u571f\u8207\u6316\u5bf6\u7684\u6280\u80fd.\n[[YELLOW]]\u6316\u6398\u5730\u9762\u53ef\u4ee5\u627e\u5230\u5bf6\u7269.\n[[YELLOW]]\u6316\u6108\u591a\u5bf6\u7269\u6108\u591a.\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57\u5fc5\u9808\u6301\u6709\u93df\u5b50.\n[[YELLOW]]\u53ea\u6709\u7279\u5b9a\u7269\u8cea\u624d\u80fd\u6316\u5230\u5bf6\u7269\u6216\u7d93\u9a57.\n[[DARK_AQUA]]\u7279\u5b9a\u7269\u8cea:\n[[YELLOW]]\u8349\u76ae, \u571f, \u6c99, \u9ecf\u571f, \u792b\u77f3, \u83cc\u7d72\u9ad4, \u9748\u9b42\u6c99\n[[DARK_AQUA]]\u5982\u4f55\u7528\u8d85\u5f37\u529b\u947d\u982d:\n[[YELLOW]]\u624b\u6301\u93df\u5b50\u4e26\u9ede\u53f3\u9375.\n[[YELLOW]]\u9032\u5165\u6b64\u72c0\u614b\u7d04\u80fd\u7dad\u63014\u79d2\n[[YELLOW]]\u4e00\u65e6\u63a5\u89f8\u5230\u7279\u5b9a\u6750\u8cea\u4fbf\u80fd\n[[YELLOW]]\u89f8\u767c\u8d85\u5f37\u529b\u947d\u982d.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8d85\u5f37\u529b\u947d\u982d?\n[[YELLOW]]\u8d85\u5f37\u529b\u947d\u982d\u662f\u4e3b\u52d5\u6280\u80fd,\u6301\u7e8c\u6642\u9593\u95dc\u4fc2\u5230\n[[YELLOW]]\u6316\u6398\u6280\u80fd\u7b49\u7d1a,\u5b83\u53ef\u4ee5\u8b93\u4f60\u6709\u6a5f\u7387\u7372\u5f97\u5bf6\u7269\n[[YELLOW]]\u9084\u6709\u76f4\u63a5\u6467\u6bc0\u6307\u5b9a\u65b9\u584a.\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5bf6\u7269\u7375\u4eba?\n[[YELLOW]]\u6240\u6709\u5bf6\u7269\u90fd\u6709\u81ea\u5df1\u7684\u6700\u4f4e\u6389\u843d\u7b49\u7d1a\n[[YELLOW]]\u6240\u4ee5\u5bf6\u7269\u5c0d\u4f60\u4e0d\u898b\u5f97\u6709\u7528.\n[[YELLOW]]\u53ea\u9700\u8981\u8a18\u5f97\u6108\u6316\u6398\u7b49\u7d1a\u6108\u9ad8,\n[[YELLOW]]\u5c31\u80fd\u6316\u9053\u6108\u591a\u5bf6.\n[[YELLOW]]\u9084\u6709\u6bcf\u4e00\u7a2e\u4e0d\u540c\u7684\u6750\u8cea,\n[[YELLOW]]\u53ef\u80fd\u6389\u51fa\u4f86\u7684\u5bf6\u7269\u90fd\u4e0d\u540c\n[[YELLOW]]\u63db\u53e5\u8a71\u8aaa\u4f60\u80fd\u5f9e\u571f\u88e1\u6316\u51fa\u6bd4\u792b\u77f3\n[[YELLOW]]\u66f4\u591a\u7a2e\u985e\u7684\u5bf6\u7269.\n[[YELLOW]]\n[[DARK_AQUA]]\u8a3b:\n[[YELLOW]]\u5bf6\u7269\u6389\u843d\u662f\u53ef\u8abf\u6574\u7684,\n[[YELLOW]]\u6240\u4ee5\u53ef\u80fd\u5404\u4f3a\u670d\u5668\u6709\u6240\u4e0d\u540c.
|
||||
Guides.Fishing=[[DARK_AQUA]]\u95dc\u65bc\u91e3\u9b5a:\n[[YELLOW]]\u6709\u4e86\u91e3\u9b5a\u6280\u80fd,\u91e3\u9b5a\u66f4\u6709\u8da3\u4e86!\n[[YELLOW]]\u53ef\u4ee5\u6389\u5bf6\u7269,\u5f9e\u602a\u7269\u8eab\u4e0a\u76dc\u5bf6\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u91e3\u9b5a.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u91e3\u5bf6\u7269?\n[[YELLOW]]\u9019\u500b\u6280\u80fd\u8b93\u4f60\u5728\u91e3\u9b5a\u6642\u91e3\u5230\u5bf6\u7269\n[[YELLOW]]\u6709\u5c0f\u6a5f\u7387\u91e3\u5230\u9644\u9b54\u9053\u5177.\n[[YELLOW]]\u6bcf\u7a2e\u5bf6\u7269\u7684\u51fa\u73fe\u95dc\u4fc2\u5230\n[[YELLOW]]\u4f60\u7684\u91e3\u9b5a\u7b49\u7d1a\n[[YELLOW]]\u91e3\u9b5a\u7b49\u7d1a\u6108\u9ad8\n[[YELLOW]]\u5c31\u80fd\u91e3\u9053\u6108\u591a\u6108\u597d\u7684\u5bf6\u7269\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u76dc\u5bf6?\n[[YELLOW]]\u9019\u500b\u6280\u80fd\u8b93\u4f60\u53ef\u4ee5\u5f9e\u602a\u7269\u8eab\u4e0a\u626f\u4e0b\u5bf6\u7269\n[[YELLOW]]\u53ea\u8981\u4f7f\u7528\u91e3\u7aff\u91e3\u602a\u7269\n[[YELLOW]]\u80fd\u91e3\u51fa\u602a\u7269\u6b7b\u4ea1\u6642\u6703\u6389\u7684\u5bf6\u7269.\n[[YELLOW]]\u9019\u6280\u80fd\u751a\u81f3\u80fd\u91e3\u51fa\u8eab\u5b58\u6a21\u5f0f\u7121\u6cd5\u7372\u5f97\u7684\n[[YELLOW]]\u602a\u7269\u982d\u9871.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6f01\u4eba\u4fbf\u7576?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd\u8b93\u4f60\u80fd\u5728\u5403\u9b5a\u6642\u6709\n[[YELLOW]]\u66f4\u591a\u7684\u98fd\u98df\u5ea6.\n[[DARK_AQUA]]\u8a3b:\n[[YELLOW]]\u6389\u843d\u8a2d\u5b9a\u662f\u53ef\u8abf\u6574\u7684,\n[[YELLOW]]\u5404\u4f3a\u670d\u5668\u53ef\u80fd\u6709\u6240\u4e0d\u540c.\n
|
||||
Guides.Header=[[GOLD]]-=[[GREEN]]{0} \u6307\u5357[[GOLD]]=-
|
||||
Guides.Herbalism=[[DARK_AQUA]]\u95dc\u65bc\u8349\u85e5\u5b78:\n[[YELLOW]]\u8349\u85e5\u5b78\u662f\u95dc\u65bc\u63a1\u6536\u8349\u85e5\u8207\u690d\u7269\u7684\u6280\u80fd..\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u63a1\u6536\u8349\u85e5\u6216\u690d\u7269.\n[[DARK_AQUA]]\u6307\u5b9a\u6750\u8cea\n[[YELLOW]]\u5c0f\u9ea5, \u99ac\u9234\u85af, \u80e1\u863f\u8514, \u897f\u74dc, \n[[YELLOW]]\u5357\u74dc, \u7518\u8517, \u53ef\u53ef\u8c46, \u82b1, \u4ed9\u4eba\u638c, \u9999\u83c7,\n[[YELLOW]]\u5730\u7344\u7599\u7629, \u84ee\u8449, \u8207\u85e4.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7948\u79b1\u8c50\u6536?\n[[YELLOW]]\u7948\u79b1\u8c50\u6536\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd, \u624b\u6301\u92e4\u982d\n[[YELLOW]]\u9ede\u64ca\u53f3\u9375\u53ef\u767c\u52d5\u6280\u80fd.\n[[YELLOW]]\u7948\u79b1\u8c50\u6536\u63d0\u9ad8\u4e09\u88ab\u6536\u7a6b\u7684\u6a5f\u7387.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7da0\u624b\u6307(\u4f5c\u7269)?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\u8b93\u4f5c\u7269\u5728\u63a1\u6536\u6642\n[[YELLOW]]\u81ea\u52d5\u7a2e\u56de\u53bb.\n[[YELLOW]]\u6210\u529f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u8349\u85e5\u5b78\u6280\u80fd\u7b49\u7d1a.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7da0\u624b\u6307(\u5375\u77f3/\u77f3\u78da/\u571f)?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd,\u8b93\u4f60\u5728\u624b\u62ff\u8457\u7a2e\u5b50\u6642,\n[[YELLOW]]\u5c0d\u5375\u77f3/\u77f3\u78da/\u571f,\u9ede\u64ca\u53f3\u9375,\u53ef\u4f7f\u5b83\u5011\u8b8a\u6210\n[[YELLOW]]\u690d\u7269\u5f62\u614b,\u6703\u6d88\u8017\u4e00\u9846\u7a2e\u5b50.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8fb2\u592b\u79c1\u623f\u83dc?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\u53ef\u589e\u52a0\u4e0b\u5217\u98df\u7269\u7684\u98fd\u98df\u5ea6\u56de\u5fa9,\n[[YELLOW]]\u9eb5\u5305, \u9905\u4e7e, \u897f\u74dc, \u8611\u83c7\u6e6f, \u80e1\u863f\u8514,\u99ac\u9234\u85af.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6d77\u502b\u7684\u795d\u798f?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd,\u6709\u6a5f\u7387\u5728\u7528\u528d\u7834\u58de\u7279\u5b9a\n[[YELLOW]]\u65b9\u584a\u6642\u7372\u5f97\u7a00\u6709\u9053\u5177.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u96d9\u500d\u6389\u843d?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd\u4f7f\u73a9\u5bb6\u80fd\u52a0\u500d\u6536\u7372.
|
||||
Guides.Mining=[[DARK_AQUA]]\u95dc\u65bc\u6316\u7926\u6280\u80fd:\n[[YELLOW]]\u6316\u7926\u6280\u80fd\u7531\u63a1\u77f3\u8207\u63a1\u7926\u7d44\u6210. \u5b83\u53ef\u4ee5\u8b93\n[[YELLOW]]\u6709\u6389\u843d\u7269\u6578\u91cf\u52a0\u4e58\u7684\u6a5f\u6703.\n[[DARK_AQUA]]\u5982\u4f55\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u589e\u8fd1\u6316\u7926\u6280\u80fd,\u4f60\u5fc5\u9808\u7528\u93ac\u5b50\u6316\u7926.\n[[YELLOW]]\u53ea\u6709\u6316\u6398\u6307\u5b9a\u7926\u7269\u80fd\u589e\u52a0\u7d93\u9a57.\n[[DARK_AQUA]]\u6307\u5b9a\u7926\u7269:\n[[YELLOW]]\u77f3\u982d, \u70ad\u7926\u8108, \u9435\u7926\u8108, \u91d1\u7926\u8108, \u947d\u77f3\u7926\u8108, \u7d05\u77f3\u7926\u8108,\n[[YELLOW]]\u9752\u91d1\u77f3\u7926\u8108, \u9ed1\u66dc\u77f3, \u9752\u82d4\u77f3, \u7d42\u754c\u77f3,\n[[YELLOW]]\u87a2\u5149\u77f3, \u9084\u6709\u5730\u7344\u77f3.\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u8d85\u7d1a\u6316\u6398:\n[[YELLOW]]\u624b\u62ff\u8457\u93ac\u5b50\u9ede\u6ed1\u9f20\u53f3\u9375\u4ee5\u6e96\u5099\u597d\u958b\u555f\u6280\u80fd.\n[[YELLOW]]\u4e00\u65e6\u958b\u555f\u6280\u80fd\u5c07\u6709\u6578\u79d2\u7684\u6642\u9593\u53ef\u4ee5\u8b93\u4f60\n[[YELLOW]]\u5feb\u901f\u7834\u58de\u6307\u5b9a\u7926\u7269,\u53ea\u6709\u6307\u5b9a\u7926\u7269\u53ef\u4ee5\n[[YELLOW]]\u89f8\u767c\u6280\u80fd.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8d85\u7d1a\u6316\u6398?\n[[YELLOW]]\u8d85\u7d1a\u6316\u6398\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd, \u51b7\u537b\u6642\u9593\u95dc\u4fc2\u5230\u4f60\u7684\u6316\u7926\n[[YELLOW]]\u6280\u80fd\u7b49\u7d1a. \u5b83\u53ef\u4ee5\u89f8\u767c\u66f4\u591a\u6389\u843d\u7269\u7684\u6a5f\u7387\n[[YELLOW]]\u800c\u4e14\u53ef\u4ee5\u76f4\u63a5\u7c89\u788e\u6307\u5b9a\u7926\u7269.\n[[DARK_AQUA]]\u5982\u4f55\u4f7f\u7528\u7206\u7834\u6316\u6398:\n[[YELLOW]]\u624b\u6301\u6253\u706b\u77f3, \u9810\u8a2d\u7531\u71e7\u77f3\u53ca\u9435\u9320\u7d44\u6210,\n[[YELLOW]]\u8e72\u4e0b\u4e26\u7528\u53f3\u9375\u9ede\u53caTNT. \u9019\u6703\u4f7fTNT\n[[YELLOW]]\u76f4\u63a5\u7206\u70b8, \u6700\u597d\u7ad9\u9060\u4e00\u9ede.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7206\u7834\u6316\u6398?\n[[YELLOW]]\u7206\u7834\u6316\u6398\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd, \u51b7\u537b\u6642\u9593\u95dc\u4fc2\u5230\u4f60\u7684\u6316\u7926\n[[YELLOW]]\u6280\u80fd\u7b49\u7d1a. \u5b83\u53ef\u4ee5\u8b93\u4f60\u5728\u4f7f\u7528TNT\u6316\u7926\u77f3\u6709\u66f4\u591a\u798f\u5229\n[[YELLOW]]\u4e14\u53ef\u4ee5\u9059\u63a7\u5f15\u7206TNT. \u7206\u7834\u6316\u6398\u5206\u6210\u4e09\u90e8\u5206.\n[[YELLOW]]\u7b2c\u4e00\u90e8\u5206\u7a31\u70ba\u5de8\u5927\u7206\u7834, \u53ef\u4ee5\u64f4\u5927\u4f60\u7684\u7206\u7834\u7bc4\u570d.\n[[YELLOW]]\u7b2c\u4e8c\u90e8\u5206\u7a31\u70ba\u7206\u7834\u5c08\u5bb6, \u53ef\u4ee5\u6e1b\u514dTNT\u5c0d\u4f60\u7684\u50b7\u5bb3\n[[YELLOW]]\u7b2c\u4e09\u90e8\u5206\u7a31\u70ba\u7cbe\u6e96\u7206\u7834, \u589e\u52a0\u6389\u843d\u7269\u6578\u91cf, \u6e1b\u5c11\u5783\u573e\u6389\n[[YELLOW]]\u843d\u7269\u6578\u91cf, \u5f88\u68d2\u5427.
|
||||
Guides.Page.Invalid=\u4e0d\u5b58\u5728\u7684\u9801\u6578
|
||||
Guides.Page.OutOfRange=\u9019\u9801\u78bc\u4e0d\u5b58\u5728,\u7e3d\u5171\u53ea\u6709{0} \u9801.
|
||||
Guides.Repair=[[DARK_AQUA]]\u4fee\u5fa9:\n[[YELLOW]]\u4fee\u5fa9\u6280\u80fd\u8b93\u4f60\u53ef\u4ee5\u4f7f\u7528\u9435\u78da(MMO\u9435\u7827)\n[[YELLOW]]\u4fee\u5fa9\u5de5\u5177,\u6216\u4f7f\u7528\u91d1\u78da\u56de\u6536\u5de5\u5177.\n[[DARK_AQUA]]\u7d93\u9a57\u7372\u53d6:\n[[YELLOW]]\u7528MMO\u9435\u7827\u4fee\u5fa9\u5de5\u5177.\n[[YELLOW]]\u9810\u8a2d\u662f\u9435\u78da.\n[[YELLOW]]\n[[DARK_AQUA]]\u5982\u4f55\u4fee\u5fa9?\n[[YELLOW]]\u624b\u6301\u8981\u4fee\u5fa9\u7684\u5de5\u5177\u5c0d\u9435\u78da\u9ede\u64ca\u53f3\u9375\n[[YELLOW]]\u6703\u6d88\u80171\u500b\u4e3b\u539f\u6599.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u4fee\u5fa9\u719f\u7df4?\n[[YELLOW]]\u55ae\u6b21\u4fee\u5fa9\u7684\u8010\u4e45\u5ea6\u52a0\u4e58.\n[[YELLOW]]\u9019\u95dc\u4fc2\u5230\u4f60\u7684\u4fee\u5fa9\u7b49\u7d1a.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8d85\u7d1a\u4fee\u5fa9?\n[[YELLOW]]\u8d85\u7d1a\u4fee\u5fa9\u662f\u88ab\u52d5\u6a5f\u7387\u4fee\u5fa9\u5169\u500d\u8010\u4e45\u5ea6.\n[[YELLOW]]\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u935b\u9020\u79d8\u8f9b?\n[[YELLOW]]\u935b\u9020\u79d8\u8f9b\u8b93\u4f60\u6709\u6a5f\u7387\u7559\u4f4f\u5de5\u5177\u7684\u9644\u9b54.\n[[YELLOW]]\u9644\u9b54\u53ef\u80fd\u5728\u4fee\u5fa9\u6642\u964d\u7d1a\u6216\u6d88\u5931.\n[[YELLOW]]\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u56de\u6536?\n[[YELLOW]]\u653e\u4e00\u500bMMO\u56de\u6536\u7827(\u9810\u8a2d\u91d1\u78da)\n[[YELLOW]]\u624b\u6301\u7121\u8017\u640d\u5de5\u5177\u5c0d\u91d1\u78da\u9ede\u53f3\u9375\u53ef\u5c07\u4e3b\u539f\u6599\u56de\u6536\n[[YELLOW]]\n[[YELLOW]]
|
||||
Guides.Swords=[[DARK_AQUA]]:\u528d\u8853\n[[YELLOW]]\u9019\u500b\u6280\u80fd\u8b93\u4f60\u7528\u528d\u6230\u9b25\u6642\u6709\u52a0\u4e58\u6548\u679c.\n[[DARK_AQUA]]\u5982\u4f55\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u7d93\u9a57\u4f86\u81ea\u7528\u528d\u653b\u64ca\u602a\u7269\u6216\u73a9\u5bb6.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8ffd\u9b42\u596a\u547d\u528d?\n[[YELLOW]]\u8ffd\u9b42\u596a\u547d\u528d\u662f\u4e00\u500b\u6301\u528d\u6642\u6309\u53f3\u9375\u53ef\u767c\u52d5\u7684\u7bc4\u570d\u6280\n[[YELLOW]]\u540c\u6642\u52a0\u4e5825%\u7684\u653b\u64ca\u5229\u4e26\u9810\u8a2d\u8b93\u6575\u4eba\u6d41\u8840\u4e94\u6b21\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u9006\u9c57?\n[[YELLOW]]\u9006\u9c57\u662f\u88ab\u52d5\u6280\u80fd. \u7576\u88ab\u5c0d\u624b\u653b\u64ca\u6642,\n[[YELLOW]]\u4f60\u6709\u6a5f\u6703\u53cd\u5f4850%\u50b7\u5bb3\u7d66\u5c0d\u624b.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6d41\u8840?\n[[YELLOW]]\u6d41\u8840\u6bcf\u5169\u79d2\u50b7\u5bb3\u5c0d\u624b\u4e00\u6b21.\n[[YELLOW]]\u6548\u679c\u6642\u7e8c\u81f3\u6642\u9593\u505c\u6b62\u6216\u6b7b\u4ea1.\n[[YELLOW]]\u6301\u7e8c\u6642\u9593\u95dc\u4fc2\u5230\u4f60\u7684\u528d\u6280\u7b49\u7d1a.
|
||||
Guides.Smelting=\u4e0b\u6b21\u9084\u6709...
|
||||
Guides.Taming=[[DARK_AQUA]]\u8a13\u7378:\n[[YELLOW]]\u8a13\u7378\u6280\u80fd\u8b93\u73a9\u5bb6\u80fd\u5728\u7528\u72fc\u6230\u9b25\u6642\n[[YELLOW]]\u6642\u6709\u52a0\u4e58\u6548\u679c.\n[[DARK_AQUA]]\u7d93\u9a57\u7372\u53d6:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57,\u9808\u8a13\u670d\u72fc\u6216\u8c79\u8c93,\n[[YELLOW]]\u6216\u8207\u4f60\u7684\u72fc\u4e00\u540c\u6230\u9b25.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u91ce\u6027\u547c\u558a?\n[[YELLOW]]\u91ce\u6027\u547c\u558a\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd\u8b93\u4f60\n[[YELLOW]]\u53ef\u4ee5\u53ec\u559a\u4e00\u96bb\u72fc\u6216\u8c79\u8c93,\n[[YELLOW]]\u53ea\u8981\u624b\u630110\u8ddf\u9aa8\u982d\u6216\u751f\u9b5a,\u9ede\u5de6\u9375.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u52d5\u7269\u5b78?\n[[YELLOW]]\u52d5\u7269\u5b78\u8b93\u4f60\u80fd\u4e86\u7c21\u5bf5\u7269\u7684\u8fd1\u6cc1,\n[[YELLOW]]\u53ea\u8981\u5c0d\u5bf5\u7269\u9ede\u64ca\u5de6\u9375.\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u55dc\u8840\u653b\u64ca?\n[[YELLOW]]\u55dc\u8840\u653b\u64ca\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd,\u80fd\u9020\u6210\n[[YELLOW]]\u72fc\u7684\u653b\u64ca\u76ee\u6a19\u6709\u6a5f\u7387\u9677\u5165\u6d41\u8840\u72c0\u614b.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u54ac\u529b\u5f37\u5316?\n[[YELLOW]]\u54ac\u529b\u5f37\u5316\u4f7f\u72fc\u7684\u653b\u64ca\u529b\u96a8\u8457\u8a13\u7378\u7b49\u7d1a\n[[YELLOW]]\u589e\u52a0\u800c\u589e\u52a0.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5371\u6a5f\u610f\u8b58?\n[[YELLOW]]\u9019\u500b\u88ab\u52d5\u6280\u80fd\u80fd\u8b93\u72fc\u5728\u9047\u5230\u5371\u96aa\u6642\n[[YELLOW]]\u8fc5\u901f\u56de\u5230\u4f60\u8eab\u908a,(\u5982\u4ed9\u4eba\u638c\u6216\u5ca9\u6f3f)\n[[YELLOW]]\u4e5f\u53ef\u4ee5\u6e1b\u514d\u6454\u843d\u50b7\u5bb3.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6bdb\u76ae\u5f37\u5316?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd\u80fd\u8b93\u72fc\n[[YELLOW]]\u53d7\u5230\u653b\u64ca\u6216\u71c3\u71d2\u6642\u6e1b\u514d\u50b7\u5bb3.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7206\u70b8\u9632\u79a6?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\u8b93\u72fc\u7fa4\n[[YELLOW]]\u6e1b\u514d\u7206\u70b8\u50b7\u5bb3.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5403\u73fe\u6210?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\u8b93\u72fc\u7fa4\u5728\u653b\u64ca\u6642\n[[YELLOW]]\u6709\u6a5f\u7387\u56de\u5fa9\u8840\u91cf.
|
||||
Guides.Unarmed=[[DARK_AQUA]]\u7a7a\u624b\u9053:\n[[YELLOW]]\u7a7a\u624b\u9053\u8b93\u73a9\u5bb6\u5728\u4f7f\u7528\u62f3\u982d\u4f5c\u6230\u6642\u6709\n[[YELLOW]]\u5404\u7a2e\u52a0\u4e58\u6548\u679c.\n[[DARK_AQUA]]\u7d93\u9a57\u7372\u53d6:\n[[YELLOW]]\u5728\u7528\u624b\u653b\u64ca\u602a\u7269\u6216\u73a9\u5bb6\u6642\u53ef\u4ee5\u7372\u53d6\u7d93\u9a57.\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u9435\u7802\u638c?\n[[YELLOW]]\u9435\u7802\u638c\u662f\u4e3b\u52d5\u6280\u80fd,\u7a7a\u624b\u6642\u9ede\u64ca\u53f3\u9375\u767c\u52d5.\n[[YELLOW]]\u9435\u7802\u9577\u53ef\u4ee5\u52a0\u4e5850%\u5c0d\u65b9\u584a\u7684\u50b7\u5bb3,\n[[YELLOW]]\u4f7f\u4f60\u53ef\u4ee5\u8f15\u9b06\u7834\u58de\u8106\u5f31\u7269\u9ad4,\n[[YELLOW]]\u5982\u571f\u8207\u7802.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u91d1\u525b\u81c2?\n[[YELLOW]]\u91d1\u525b\u81c2\u80fd\u589e\u52a0\u5f92\u624b\u653b\u64ca\u602a\u7269\u6216\n[[YELLOW]]\u73a9\u5bb6\u7684\u5a01\u529b.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u7a7a\u624b\u596a\u7bad?\n[[YELLOW]]\u7a7a\u624b\u596a\u7bad\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\u8b93\u4f60\u6709\u6a5f\u7387\n[[YELLOW]]\u80fd\u64ca\u843d\u9ab7\u9acf\u7372\u73a9\u5bb6\u5c04\u5411\u4f60\u7684\u7bad.\n[[YELLOW]]\u7bad\u6703\u88ab\u64ca\u843d\u81f3\u5730\u9762.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8d85\u5f37\u63e1\u529b?\n[[YELLOW]]\u8d85\u5f37\u63e1\u529b\u53ef\u4ee5\u6709\u6a5f\u7387\u4f7f\u64ca\u843d\u6b66\u5668\u7121\u6548\u5316.\n[[YELLOW]]\u6a5f\u7387\u95dc\u4fc2\u5230\u7a7a\u624b\u9053\u6280\u80fd\u7b49\u7d1a,\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u64ca\u843d\u6b66\u5668?\n[[YELLOW]]\u9019\u500b\u88ab\u52d5\u6280\u80fd\u8b93\u73a9\u5bb6\u80fd\u64ca\u843d\n[[YELLOW]]\u76ee\u6a19\u7684\u88dd\u5099.
|
||||
Guides.Usage=[[RED]]\u8acb\u8f38\u5165 /{0}
|
||||
Guides.Woodcutting=[[DARK_AQUA]]\u95dc\u65bc\u4f10\u6728\u8853:\n[[YELLOW]]\u9019\u662f\u4f10\u6728\u76f8\u95dc\u7684\u6280\u80fd.\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u7834\u58de\u6a39\u5e79\u53ef\u7372\u53d6\u7d93\u9a57.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6a39\u6728\u8f5f\u70b8?\n[[YELLOW]]\u6a39\u6728\u8f5f\u70b8\u662f\u4e3b\u52d5\u6280\u80fd,\u6301\u6709\u65a7\u982d\u6642\u9ede\u53f3\u9375\n[[YELLOW]]\u53ef\u4ee5\u767c\u52d5.\u5c07\u5c0e\u81f4\u6574\u68f5\u6a39\u6728\u76f4\u63a5\u7834\u58de,\n[[YELLOW]]\u6240\u6709\u679d\u8449\u90fd\u5c07\u6389\u843d.\n[[YELLOW]]\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u79cb\u98a8\u6383\u843d\u8449?\n[[YELLOW]]\u79cb\u98a8\u6383\u843d\u8449\u662f\u4e00\u500b\u88ab\u52d5\u6280\u80fd,\n[[YELLOW]]\u7576\u4f60\u7528\u65a7\u982d\u7834\u58de\u6a39\u8449\u6642,\u6a39\u8449\u5c07\u76f4\u63a5\u6467\u6bc0\n[[YELLOW]]\u9019\u500b\u6280\u80fd\u9810\u8a2d\u5728100\u7b49\u958b\u653e.\n[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u96d9\u500d\u6389\u843d?\n[[YELLOW]]\u9019\u500b\u88ab\u52d5\u6280\u80fd\u53ef\u4ee5\u8b93\u4f60\u6709\u6a5f\u7387\u5728\u4f10\u6728\n[[YELLOW]]\u6642\u6a39\u6728\u6389\u843d\u66f4\u591a\u539f\u6728.
|
||||
Inspect.Offline=[[RED]]\u4f60\u6c92\u6709\u67e5\u8a62\u96e2\u7dda\u73a9\u5bb6\u8a0a\u606f\u7684\u6b0a\u9650!
|
||||
Inspect.OfflineStats=\u96e2\u7dda\u73a9\u5bb6\u7684 [mcMMO] \u7d71\u8a08\u8a0a\u606f [[YELLOW]]{0}
|
||||
Inspect.Stats=[[GREEN]][mcMMO] \u7684\u7d71\u8a08\u8a0a\u606f [[YELLOW]]{0}
|
||||
@@ -513,30 +563,39 @@ Inspect.TooFar=[[RED]]\u56e0\u8ddd\u96e2\u592a\u9060\u7121\u6cd5\u67e5\u770b\u90
|
||||
Item.ChimaeraWing.Fail=**\u5947\u7f8e\u62c9\u4e4b\u7ffc\u4f7f\u7528\u5931\u6557\u4e86!**
|
||||
Item.ChimaeraWing.Pass=**\u5947\u7f8e\u62c9\u4e4b\u7ffc**
|
||||
Item.Injured.Wait=\u4f60\u904e\u5ea6\u75b2\u52de\u5fc5\u9808\u7b49\u5f85\u4e00\u6bb5\u6642\u9593\u5f8c\u624d\u53ef\u4f7f\u7528. [[YELLOW]]({0}s)
|
||||
Skills.Child=[[GOLD]](\u5c0f\u5b69\u6280\u80fd)
|
||||
Skills.Disarmed=[[DARK_RED]]\u4f60\u7684\u6b66\u5668\u88ab\u63a0\u596a\u4e86!
|
||||
Skills.Child=[[GOLD]](\u5b50\u6280\u80fd)
|
||||
Skills.Disarmed=[[DARK_RED]]\u4f60\u7684\u6b66\u5668\u88ab\u64ca\u843d!
|
||||
Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
Skills.NeedMore=[[DARK_RED]]\u4f60\u9700\u8981\u66f4\u591a[[GRAY]]{0}
|
||||
Skills.Parents=\u7236\u6bcd
|
||||
Skills.Parents=\u524d\u7f6e
|
||||
Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
|
||||
Skills.TooTired=[[RED]]\u6b64\u6280\u80fd\u6b63\u8655\u65bc\u51b7\u537b\u6642\u9593. [[YELLOW]]({0}s)
|
||||
Stats.Header.Combat=[[GOLD]]-=\u683c\u9b25\u6280\u80fd=-
|
||||
Stats.Header.Gathering=[[GOLD]]-=\u63a1\u96c6\u6280\u80fd=-
|
||||
Stats.Header.Misc=[[GOLD]]-=\u96dc\u985e\u6280\u80fd=-
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] \u7d71\u8a08\u8a0a\u606f
|
||||
Stats.Own.Stats=[[GREEN]][mcMMO] \u72c0\u614b
|
||||
Perks.xp.name=\u7d93\u9a57\u503c
|
||||
Perks.xp.desc=\u7372\u5f97 {0}x \u7d93\u9a57\u503c
|
||||
Perks.lucky.name=\u5e78\u904b
|
||||
Perks.lucky.desc=\u7d66\u4e88 {0} \u6280\u80fd\u9ad8\u65bc33.3%\u4ee5\u4e0a\u7684\u6a5f\u7387\u89f8\u767c
|
||||
Perks.lucky.desc.login=\u7d66\u4e88\u6280\u80fd\u9ad8\u65bc33.3%\u4ee5\u4e0a\u7684\u6a5f\u7387\u89f8\u767c
|
||||
Perks.lucky.bonus=[[GOLD]] ({0}\u5f88\u8d70\u904b)
|
||||
Perks.cooldowns.name=\u5feb\u901f\u56de\u5fa9
|
||||
Perks.cooldowns.desc=\u6e1b\u5c11\u51b7\u537b\u6642\u9593 {0}
|
||||
Perks.activationtime.name=\u8010\u529b
|
||||
Perks.activationtime.desc=\u63d0\u9ad8\u80fd\u529b \u6301\u7e8c\u6642\u9593: {0} \u79d2
|
||||
Perks.activationtime.bonus=[[GOLD]] ({0}\u8010\u4e45\u52a0\u4e58)
|
||||
Hardcore.Player.Loss=[[GOLD]][mcMMO] [[DARK_RED]]\u4f60\u5728\u6b7b\u4ea1\u4e2d\u5931\u53bb\u4e86[[BLUE]]{0}[[DARK_RED]].
|
||||
Vampirism.Killer.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] \u592a\u5ae9\u5c0e\u81f4\u81f3\u4f60\u7121\u6cd5\u7372\u5f97\u4efb\u4f55\u80fd\u529b.
|
||||
Vampirism.Killer.Success=[[GOLD]][mcMMO] [[DARK_AQUA]]\u4f60\u5077\u4e86 [[BLUE]]{0}[[DARK_AQUA]] \u7b49\u4f86\u81ea\u65bc[[YELLOW]]{1}.
|
||||
Vampirism.Victim.Failure=[[GOLD]][mcMMO] [[YELLOW]]{0}[[GRAY]] \u4e0d\u5141\u8a31\u5f9e\u4f60\u90a3\u596a\u53d6\u7d93\u9a57\u503c!
|
||||
Vampirism.Victim.Success=[[GOLD]][mcMMO] [[YELLOW]]{0}[[DARK_RED]] \u596a\u8d70\u4e86\u4f60 [[BLUE]]{1}[[DARK_RED]] \u7b49!
|
||||
Hardcore.Disabled=[[GOLD]][mcMMO] \u786c\u6d3e\u6a21\u5f0f\u95dc\u9589.
|
||||
Hardcore.Enabled=[[GOLD]][mcMMO]\u786c\u6d3e\u6a21\u5f0f\u958b\u555f.
|
||||
Hardcore.PercentageChanged=[[GOLD]][mcMMO] \u72c0\u614b\u640d\u5931\u6bd4\u7387\u8abf\u6574\u81f3{0}.
|
||||
Vampirism.Disabled=[[GOLD]][mcMMO] \u5438\u8840\u6a21\u5f0f\u95dc\u9589
|
||||
Vampirism.Enabled=[[GOLD]][mcMMO] \u5438\u8840\u6a21\u5f0f\u958b\u555f
|
||||
Vampirism.PercentageChanged=[[GOLD]][mcMMO] \u72c0\u614b\u5438\u53d6\u6bd4\u4f8b\u8abf\u6574\u81f3{0}.
|
||||
Spout.Donate=[[YELLOW]] [mcMMO\u6350\u52a9\uff01
|
||||
Spout.LevelUp.1=[[GREEN]]\u5347\u7d1a!
|
||||
Spout.LevelUp.2=[[YELLOW]]{0}[[DARK_AQUA]] ([[GREEN]]{1}[[DARK_AQUA]])
|
||||
@@ -546,28 +605,56 @@ Spout.Menu.HudButton.1=HUD\u985e\u578b: {0}
|
||||
Spout.Menu.HudButton.2=\u66f4\u63db\u4f60\u7684HUD\u985e\u578b!
|
||||
Spout.Menu.Title=[[GOLD]]~mcMMO \u9078\u55ae~
|
||||
Spout.Title={0}\n[[YELLOW]]P[[GOLD]]\u7b49\u7d1a[[WHITE]].[[GREEN]]{1}
|
||||
MOTD.Donate=[[DARK_AQUA]]\u8d0a\u52a9\u8cc7\u8a0a:
|
||||
MOTD.Hardcore.VampireOff=[[GOLD]][mcMMO] [[DARK_RED]]\u6b63\u7248 & \u5438\u8840\u9b3c \u555f\u7528.
|
||||
MOTD.Hardcore.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\u6b7b\u4ea1\u6280\u80fd\u61f2\u7f70: [[DARK_RED]]{0}%
|
||||
MOTD.Hardcore.VampireOn=[[GOLD]][mcMMO] [[DARK_RED]]\u6b63\u7248\u6a21\u5f0f\u958b\u555f.
|
||||
MOTD.PerksPrefix=[[RED]][mcMMO \u984d\u5916\u734e\u52f5]
|
||||
MOTD.Vampire.Stats=[[GOLD]][mcMMO] [[DARK_AQUA]]\u5438\u8840\u8005\u9b3c\u7d71\u8a08: [[DARK_RED]]{0}%
|
||||
MOTD.Version=[[GOLD]][mcMMO] \u6b63\u904b\u4f5c\u7684\u7248\u672c [[DARK_AQUA]]{0}
|
||||
MOTD.Website=[[GOLD]][mcMMO] [[GREEN]]{0}[[YELLOW]] - mcMMO \u9996\u9801
|
||||
Smelting.Ability.FluxMining=[[RED]]\u9ad8\u71b1\u6316\u6398\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.FuelEfficiency=[[RED]]\u71c3\u71d2\u6548\u7387\u52a0\u4e58: [[YELLOW]]{0}x
|
||||
Smelting.Ability.Locked.0=\u9396\u5b9a\u72c0\u614b\uff0c\u76f4\u5230{0} +\u6280\u80fd\uff08VANILLA XP BOOST\uff09
|
||||
Smelting.Ability.Locked.1=\u9396\u5b9a\u72c0\u614b\uff0c\u76f4\u5230{0} +\u6280\u80fd\uff08FLUX\u7926\u696d\uff09
|
||||
Smelting.Effect.6=Flux \u6316\u7926
|
||||
Smelting.Ability.SecondSmelt=[[RED]]\u518d\u51b6\u7149\u6a5f\u7387: [[YELLOW]]{0}
|
||||
Smelting.Ability.VanillaXPBoost=[[RED]]\u4e00\u822c\u7d93\u9a57\u52a0\u4e58: [[YELLOW]]{0}x
|
||||
Smelting.Effect.0=\u71c3\u6599\u6548\u7387
|
||||
Smelting.Effect.1=\u589e\u52a0\u71c3\u6599\u5728\u7194\u7210\u88e1\u71c3\u71d2\u7684\u6642\u9593
|
||||
Smelting.Effect.2=\u518d\u51b6\u7149
|
||||
Smelting.Effect.3=\u51b6\u7149\u7926\u7269\u52a0\u500d
|
||||
Smelting.Effect.4=\u4e00\u822c\u7d93\u9a57\u52a0\u4e58
|
||||
Smelting.Effect.5=\u589e\u52a0\u51b6\u7149\u6642\u7684\u9999\u8349\u7d93\u9a57
|
||||
Smelting.Effect.6=\u6d41\u80fd\u6316\u7926
|
||||
Smelting.Effect.7=\u6316\u539f\u7926\u6642\u6709\u6a5f\u7387\u76f4\u63a5\u6389\u51fa\u51b6\u7149\u597d\u7684\u7926\u7269
|
||||
Smelting.FluxMining.Success=[[GREEN]]\u7926\u7269\u81ea\u52d5\u51b6\u7149!
|
||||
Smelting.Listener=\u51b6\u7149:
|
||||
Smelting.SkillName=\u51b6\u7149
|
||||
Commands.Description.addlevels=\u7d66\u4e88\u73a9\u5bb6McMMO\u7b49\u7d1a
|
||||
Commands.Description.adminchat=<FONT> <font class=\"\">\u5207\u63dbmcMMO\u7ba1\u7406\u804a\u5929\u958b/\u95dc\u6216\u767c\u9001\u7d66\u7ba1\u7406\u54e1\u7684\u804a\u5929\u6d88\u606f</ FONT> </ FONT>
|
||||
Commands.Description.addxp=\u7d66\u4e88\u73a9\u5bb6McMMO\u7d93\u9a57\u503c
|
||||
Commands.Description.mcgod=\u5207\u63db\u795e\u4e4b\u6a21\u5f0f on/off
|
||||
Commands.Description.mchud=\u66f4\u63db\u4f60\u7684McMMO HUD\u985e\u578b!
|
||||
Commands.Description.mcmmo=\u986f\u793a\u4e00\u500bmcMMO\u7684\u7c21\u55ae\u63cf\u8ff0
|
||||
Commands.Description.mcnotify=\u5207\u63dbmcMMO\u7684\u804a\u5929\u986f\u793a\u901a\u77e5 \u958b/\u95dc
|
||||
Commands.Description.adminchat=\u5207\u63dbmcMMO\u7ba1\u7406\u54e1\u804a\u5929\u958b/\u95dc\u6216\u767c\u9001\u7d66\u7ba1\u7406\u54e1\u7684\u804a\u5929\u6d88\u606f
|
||||
Commands.Description.addxp=\u7d66\u4e88\u73a9\u5bb6mcMMO\u7d93\u9a57\u503c
|
||||
Commands.Description.hardcore=\u8abf\u6574mcMMO\u786c\u6d3e\u6bd4\u4f8b\u6216\u5207\u63db\u786c\u6d3e\u6a21\u5f0f (\u958b/\u95dc)
|
||||
Commands.Description.inspect=\u89c0\u770b\u5176\u5b83\u4f7f\u7528\u8005\u7684\u8a73\u7d30mcMMO\u8cc7\u8a0a
|
||||
Commands.Description.mcability=\u4f7f\u7528\u53f3\u9375\u767c\u52d5mcMMO\u6280\u80fd(\u958b/\u95dc)
|
||||
Commands.Description.mcgod=\u5207\u63dbmcMMo\u795e\u4e4b\u6a21\u5f0f(\u958b/\u95dc)
|
||||
Commands.Description.mchud=\u66f4\u63db\u4f60\u7684McMMO HUD\u98a8\u683c
|
||||
Commands.Description.mcmmo=\u986f\u793amcMMO\u7684\u7c21\u8981\u8aaa\u660e
|
||||
Commands.Description.mcnotify=\u5207\u63dbmcMMO\u7684\u804a\u5929\u986f\u793a\u901a\u77e5 (\u958b/\u95dc)
|
||||
Commands.Description.mcpurge= \u6e05\u9664mcMMO\u6280\u80fd\u7b49\u7d1a\u70ba0\u6216\u8d85\u904e{0}\u500b\u6708\u672a\u767b\u5165\u7684\u7528\u6236\u8cc7\u6599.
|
||||
Commands.Description.mcrank=\u986f\u793a\u6240\u6709mcMMO\u7684\u6392\u540d
|
||||
Commands.Description.mcrefresh=\u5237\u65b0\u6240\u6709McMMO\u6280\u80fd\u51b7\u537b\u6642\u9593
|
||||
Commands.Description.mcremove=<font><font class=\"\">\u5f9emcMMO\u6578\u64da\u5eab\u4e2d\u522a\u9664\u7528\u6236</font></font>
|
||||
Commands.Description.mctop=<font><font>\u986f\u793amcMMO\u6392\u884c\u699c</font></font>
|
||||
Commands.Description.mmoedit=\u65b0\u589e\u73a9\u5bb6McMMO\u7b49\u7d1a
|
||||
Commands.Description.party=<FONT> <FONT>\u63a7\u5236\u5404\u7a2emcMMO\u968a\u4f0d\u7684\u8a2d\u7f6e</ FONT> </ FONT>
|
||||
Commands.Description.mcrefresh=\u66f4\u65b0\u6240\u6709McMMO\u6280\u80fd\u51b7\u537b\u6642\u9593
|
||||
Commands.Description.mcremove=\u5f9emcMMO\u8cc7\u6599\u5eab\u4e2d\u522a\u9664\u4f7f\u7528\u8005
|
||||
Commands.Description.mcstats=\u986f\u793a\u4f60\u7684MMO\u7b49\u7d1a\u8207\u7d93\u9a57
|
||||
Commands.Description.mctop=\u986f\u793amcMMO\u6392\u884c\u699c
|
||||
Commands.Description.mmoedit=\u4fee\u6539\u73a9\u5bb6McMMO\u7b49\u7d1a
|
||||
Commands.Description.mmoupdate=\u8f49\u63dbmcMMO\u6578\u64da\u5eab\u5f9e\u4e00\u822c\u6a94\u6848\u5230MySQL
|
||||
Commands.Description.party=\u63a7\u5236\u5404\u7a2emcMMO\u968a\u4f0d\u8a2d\u7f6e
|
||||
Commands.Description.partychat=\u5207\u63dbmcMMO\u958b/\u95dc\u968a\u4f0d\u7684\u804a\u5929\u6216\u767c\u9001\u65b9\u7684\u804a\u5929\u4fe1\u606f
|
||||
Commands.Description.ptp=\u50b3\u9001\u5230\u4e00\u500bmcMMO\u968a\u4f0d\u6210\u54e1\u65c1
|
||||
Commands.Description.Skill=\u986f\u793a\u7684\u8a73\u7d30mcMMO\u6280\u80fd\u4fe1\u606f{0}
|
||||
Commands.Description.Skill=\u986f\u793a\u8a73\u7d30\u7684{0}mcMMO\u6280\u80fd\u8cc7\u8a0a
|
||||
Commands.Description.skillreset=\u91cd\u7f6e\u73a9\u5bb6McMMO\u7b49\u7d1a
|
||||
Commands.Description.vampirism=\u8abf\u6574mcMMO\u5438\u8840\u6bd4\u4f8b\u6216\u5207\u63db\u5438\u8840\u6a21\u5f0f (\u958b/\u95dc)
|
||||
Commands.Description.xplock=\u9396\u4f4f\u4f60\u4e00\u500b\u7279\u5b9amcMMO\u6280\u80fd\u7684\u7d93\u9a57\u6b04
|
||||
Commands.Description.xprate=\u8abf\u6574mcMMO\u7d93\u9a57\u503c\u6bd4\u4f8b\u6216\u8209\u8fa6mcMMO\u7d93\u9a57\u503c\u52a0\u500d\u6d3b\u52d5
|
||||
UpdateChecker.outdated=\u60a8\u4f7f\u7528\u7684\u662f\u904e\u6642\u7684\u7248\u672cmcMMO\uff01
|
||||
UpdateChecker.newavailable=\u6709\u65b0\u7684\u7248\u672cBukkitDev\u3002
|
||||
UpdateChecker.newavailable=BukkitDev\u4e0a\u5df2\u6709\u65b0\u7248\u672c\u91cb\u51fa\u3002
|
||||
|
||||
@@ -16,7 +16,7 @@ authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1]
|
||||
website: http://dev.bukkit.org/server-mods/mcmmo/
|
||||
|
||||
main: com.gmail.nossr50.mcMMO
|
||||
softdepend: [Spout]
|
||||
softdepend: [Spout, CombatTag]
|
||||
load: STARTUP
|
||||
|
||||
commands:
|
||||
@@ -107,6 +107,11 @@ commands:
|
||||
mobhealth:
|
||||
aliases: [mcmobhealth]
|
||||
description: Change the style of the mob healthbar
|
||||
mcscoreboard:
|
||||
description: Change the current mcMMO scoreboard being displayed
|
||||
kraken:
|
||||
aliases: [mckraken]
|
||||
description: Unleash the kraken!
|
||||
permissions:
|
||||
mcmmo.*:
|
||||
default: false
|
||||
@@ -253,6 +258,7 @@ permissions:
|
||||
description: Allows access to all Fishing abilities
|
||||
children:
|
||||
mcmmo.ability.fishing.fishermansdiet: true
|
||||
mcmmo.ability.fishing.icefishing: true
|
||||
mcmmo.ability.fishing.magic: true
|
||||
mcmmo.ability.fishing.masterangler: true
|
||||
mcmmo.ability.fishing.shakemob: true
|
||||
@@ -260,6 +266,8 @@ permissions:
|
||||
mcmmo.ability.fishing.vanillaxpboost: true
|
||||
mcmmo.ability.fishing.fishermansdiet:
|
||||
description: Allows access to the Fishermans's Diet ability
|
||||
mcmmo.ability.fishing.icefishing:
|
||||
description: Allows access to the Ice Fishing ability
|
||||
mcmmo.ability.fishing.magic:
|
||||
description: Allows enchanted drops from Fishing
|
||||
mcmmo.ability.fishing.masterangler:
|
||||
@@ -602,6 +610,7 @@ permissions:
|
||||
children:
|
||||
mcmmo.bypass.arcanebypass: true
|
||||
mcmmo.bypass.hardcoremode: true
|
||||
mcmmo.bypass.kraken: true
|
||||
mcmmo.commands.inspect.far: true
|
||||
mcmmo.commands.inspect.offline: true
|
||||
mcmmo.bypass.arcanebypass:
|
||||
@@ -610,6 +619,9 @@ permissions:
|
||||
mcmmo.bypass.hardcoremode:
|
||||
default: false
|
||||
description: Allows user to bypass negative penalties of Hardcore mode
|
||||
mcmmo.bypass.kraken:
|
||||
default: false
|
||||
description: Allows user to bypass the effects of the exploit prevention when Fishing
|
||||
mcmmo.bypass.inspect.distance:
|
||||
default: false
|
||||
description: Allows user to bypass Inspect's distance requirements
|
||||
@@ -665,6 +677,7 @@ permissions:
|
||||
mcmmo.commands.mcmmo.all: true
|
||||
mcmmo.commands.mcnotify: true
|
||||
mcmmo.commands.mcrank: true
|
||||
mcmmo.commands.mcscoreboard: true
|
||||
mcmmo.commands.mcstats: true
|
||||
mcmmo.commands.mctop.all: true
|
||||
mcmmo.commands.mining: true
|
||||
@@ -689,14 +702,19 @@ permissions:
|
||||
mcmmo.commands.hardcore.all: true
|
||||
mcmmo.commands.inspect.far: true
|
||||
mcmmo.commands.inspect.offline: true
|
||||
mcmmo.commands.kraken: true
|
||||
mcmmo.commands.kraken.others: true
|
||||
mcmmo.commands.mcability.others: true
|
||||
mcmmo.commands.mcgod: true
|
||||
mcmmo.commands.mcgod.others: true
|
||||
mcmmo.commands.mcpurge: true
|
||||
mcmmo.commands.mcrank.others.all: true
|
||||
mcmmo.commands.mcrefresh: true
|
||||
mcmmo.commands.mcrefresh.others: true
|
||||
mcmmo.commands.mcremove: true
|
||||
mcmmo.commands.mmoedit: true
|
||||
mcmmo.commands.mmoedit.others: true
|
||||
mcmmo.commands.mmoupdate: true
|
||||
mcmmo.commands.ptp.world.all: true
|
||||
mcmmo.commands.skillreset.all: true
|
||||
mcmmo.commands.vampirism.all: true
|
||||
@@ -761,6 +779,10 @@ permissions:
|
||||
description: Allows access to the inspect command for far players
|
||||
mcmmo.commands.inspect.offline:
|
||||
description: Allows access to the inspect command for offline players
|
||||
mcmmo.commands.kraken:
|
||||
description: Allows access to the kraken command
|
||||
mcmmo.commands.kraken.others:
|
||||
description: Allows access to the kraken command for other players
|
||||
mcmmo.commands.mcability:
|
||||
description: Allows access to the mcability command
|
||||
mcmmo.commands.mcability.others:
|
||||
@@ -793,7 +815,6 @@ permissions:
|
||||
mcmmo.commands.mcnotify:
|
||||
description: Allows access to the mcnotify command
|
||||
mcmmo.commands.mcpurge:
|
||||
default: false
|
||||
description: Allows access to the mcpurge command
|
||||
mcmmo.commands.mcrank:
|
||||
description: Allows access to the mcrank command
|
||||
@@ -819,8 +840,9 @@ permissions:
|
||||
mcmmo.commands.mcrefresh.others:
|
||||
description: Allows access to the mcrefresh command for other players
|
||||
mcmmo.commands.mcremove:
|
||||
default: false
|
||||
description: Allows access to the mcremove command
|
||||
mcmmo.commands.mcscoreboard:
|
||||
description: Allows access to the mcscoreboard command
|
||||
mcmmo.commands.mcstats:
|
||||
description: Allows access to the mcstats command
|
||||
mcmmo.commands.mctop.*:
|
||||
@@ -880,7 +902,6 @@ permissions:
|
||||
mcmmo.commands.mmoedit.others:
|
||||
description: Allows access to the mmoedit command for other players
|
||||
mcmmo.commands.mmoupdate:
|
||||
default: false
|
||||
description: Allows access to the mmoupdate command
|
||||
mcmmo.commands.mobhealth:
|
||||
default: true
|
||||
|
||||
@@ -70,3 +70,8 @@ HUD:
|
||||
BLUE: 0.75
|
||||
GREEN: 0.3
|
||||
RED: 0.3
|
||||
Notifications:
|
||||
Tier1: 200
|
||||
Tier2: 400
|
||||
Tier3: 600
|
||||
Tier4: 800
|
||||
Reference in New Issue
Block a user