experienceNeededStandardExponential;
private FormulaType previousFormula;
- //Used for XP formula scaling
- private boolean retroModeEnabled;
-
public FormulaManager() {
/* Setting for Classic Mode (Scales a lot of stuff up by * 10) */
- retroModeEnabled = mcMMO.isRetroModeEnabled();
+ initExperienceNeededMaps();
loadFormula();
}
+ /**
+ * Initialize maps used for XP to next level
+ */
+ private void initExperienceNeededMaps() {
+ experienceNeededRetroLinear = new HashMap<>();
+ experienceNeededRetroExponential = new HashMap<>();
+ experienceNeededStandardLinear = new HashMap<>();
+ experienceNeededStandardExponential = new HashMap<>();
+ }
+
/**
* Get the formula type that was used before converting
*
@@ -50,7 +59,7 @@ public class FormulaManager {
* the amount of levels and experience, using the previously
* used formula type.
*
- * @param skillLevel Amount of levels
+ * @param skillLevel Amount of levels
* @param skillXPLevel Amount of experience
* @return The total amount of experience
*/
@@ -58,7 +67,7 @@ public class FormulaManager {
int totalXP = 0;
for (int level = 0; level < skillLevel; level++) {
- totalXP += getCachedXpToLevel(level, previousFormula);
+ totalXP += getXPtoNextLevel(level, previousFormula);
}
totalXP += skillXPLevel;
@@ -71,28 +80,17 @@ public class FormulaManager {
* the new formula type.
*
* @param primarySkillType skill where new levels and experience are calculated for
- * @param experience total amount of experience
- * @param formulaType The new {@link FormulaType}
+ * @param experience total amount of experience
+ * @param formulaType The new {@link FormulaType}
* @return the amount of levels and experience
*/
public int[] calculateNewLevel(PrimarySkillType primarySkillType, int experience, FormulaType formulaType) {
int newLevel = 0;
int remainder = 0;
- int maxLevel = mcMMO.getPlayerLevelingSettings().getLevelCap(primarySkillType);
+ int maxLevel = mcMMO.getConfigManager().getConfigLeveling().getLevelCap(primarySkillType);
- while (experience > 0 && newLevel < Integer.MAX_VALUE) {
- //Level Cap
- if (mcMMO.getPlayerLevelingSettings().isLevelCapEnabled(primarySkillType)) {
- //Break the loop if we're at the cap
- if (newLevel + 1 > mcMMO.getPlayerLevelingSettings().getLevelCap(primarySkillType))
- break;
-
- //If the maximum level is at or below our starting level, then the player can't level up anymore
- if (maxLevel <= mcMMO.getPlayerLevelingSettings().getConfigSectionLevelingGeneral().getStartingLevel())
- return new int[]{newLevel, remainder};
- }
-
- int experienceToNextLevel = getCachedXpToLevel(newLevel, formulaType);
+ while (experience > 0 && newLevel < maxLevel) {
+ int experienceToNextLevel = getXPtoNextLevel(newLevel, formulaType);
if (experience - experienceToNextLevel < 0) {
remainder = experience;
@@ -103,7 +101,7 @@ public class FormulaManager {
experience -= experienceToNextLevel;
}
- return new int[]{newLevel, remainder};
+ return new int[]{ newLevel, remainder };
}
/**
@@ -111,77 +109,102 @@ public class FormulaManager {
* if cache doesn't contain the given value it is calculated and added
* to the cached data.
*
- * @param level level to check
+ * @param level level to check
* @param formulaType The {@link FormulaType} used
* @return amount of experience needed to reach next level
*/
- public int getCachedXpToLevel(int level, FormulaType formulaType) {
- int experience;
-
+ public int getXPtoNextLevel(int level, FormulaType formulaType) {
/**
* Retro mode XP requirements are the default requirements
* Standard mode XP requirements are multiplied by a factor of 10
*/
- int xpNeededMultiplier = retroModeEnabled ? 1 : 10;
+ //TODO: When the heck is Unknown used?
if (formulaType == FormulaType.UNKNOWN) {
formulaType = FormulaType.LINEAR;
}
- int base = mcMMO.getConfigManager().getConfigLeveling().getBase(formulaType);
- double multiplier = mcMMO.getConfigManager().getConfigLeveling().getMultiplier(formulaType);
- double exponent = mcMMO.getConfigManager().getConfigLeveling().getExponentialExponent();
+ return processXPToNextLevel(level, formulaType);
+ }
- switch (formulaType) {
- case LINEAR:
- if (!experienceNeededLinear.containsKey(level)) {
- experience = (int) Math.floor(xpNeededMultiplier * (base + level * multiplier));
- experienceNeededLinear.put(level, experience);
- }
-
- return experienceNeededLinear.get(level);
-
- case EXPONENTIAL:
- if (!experienceNeededExponential.containsKey(level)) {
- experience = (int) Math.floor(xpNeededMultiplier * (multiplier * Math.pow(level, exponent) + base));
- experienceNeededExponential.put(level, experience);
- }
-
- return experienceNeededExponential.get(level);
-
- default:
- return 0;
+ /**
+ * Gets the value of XP needed for the next level based on the level Scaling, the level, and the formula type
+ * @param level target level
+ * @param formulaType target formulaType
+ */
+ private int processXPToNextLevel(int level, FormulaType formulaType) {
+ if(mcMMO.isRetroModeEnabled())
+ {
+ return processXPRetroToNextLevel(level, formulaType);
+ } else {
+ return processStandardXPToNextLevel(level, formulaType);
}
}
/**
- * Get the cached amount of experience needed to reach the next party level,
- * if cache doesn't contain the given value it is calculated and added
- * to the cached data.
- *
- * Parties use the exponential leveling formula
- *
- * @param level level to check
- * @return amount of experience needed to reach next level
+ * Calculate the XP needed for the next level for the linear formula for Standard scaling (1-100)
+ * @param level target level
+ * @return raw xp needed to reach the next level
*/
- public int getPartyCachedXpToLevel(int level) {
- int experience;
+ private int processStandardXPToNextLevel(int level, FormulaType formulaType) {
+ Map experienceMapRef = formulaType == FormulaType.LINEAR ? experienceNeededStandardLinear : experienceNeededStandardExponential;
- /**
- * Retro mode XP requirements are the default requirements
- * Standard mode XP requirements are multiplied by a factor of 10
- */
- int base = mcMMO.getConfigManager().getConfigLeveling().getBase(FormulaType.EXPONENTIAL);
- double multiplier = mcMMO.getConfigManager().getConfigLeveling().getMultiplier(FormulaType.EXPONENTIAL);
- double exponent = mcMMO.getConfigManager().getConfigLeveling().getExponentialExponent();
+ if(!experienceMapRef.containsKey(level)) {
+ int experienceSum = 0;
+ int retroIndex = (level * 10) + 1;
- if (!experienceNeededExponential.containsKey(level)) {
- experience = (int) Math.floor((multiplier * Math.pow(level, exponent) + base));
- experience *= mcMMO.getConfigManager().getConfigParty().getPartyXP().getPartyLevel().getPartyXpCurveMultiplier();
- experienceNeededExponential.put(level, experience);
+ //Sum the range of levels in Retro that this Standard level would represent
+ for(int x = retroIndex; x < (retroIndex + 10); x++) {
+ //calculateXPNeeded doesn't cache results so we use that instead of invoking the Retro XP methods to avoid memory bloat
+ experienceSum += calculateXPNeeded(x, formulaType);
+ }
+
+ experienceMapRef.put(level, experienceSum);
}
- return experienceNeededExponential.get(level);
+ return experienceMapRef.get(level);
+ }
+
+ /**
+ * Calculates the XP to next level for Retro Mode scaling
+ * Results are cached to reduce needless operations
+ * @param level target level
+ * @param formulaType target formula type
+ * @return raw xp needed to reach the next level based on formula type
+ */
+ private int processXPRetroToNextLevel(int level, FormulaType formulaType) {
+ Map experienceMapRef = formulaType == FormulaType.LINEAR ? experienceNeededRetroLinear : experienceNeededRetroExponential;
+
+ if (!experienceMapRef.containsKey(level)) {
+ int experience = calculateXPNeeded(level, formulaType);
+ experienceMapRef.put(level, experience);
+ }
+
+ return experienceMapRef.get(level);
+ }
+
+ /**
+ * Does the actual math to get the XP needed for a level in RetroMode scaling
+ * Standard uses a sum of RetroMode XP needed levels for its own thing, so it uses this too
+ * @param level target level
+ * @param formulaType target formulatype
+ * @return the raw XP needed for the next level based on formula type
+ */
+ private int calculateXPNeeded(int level, FormulaType formulaType) {
+ int base = mcMMO.getConfigManager().getConfigLeveling().getConfigExperienceFormula().getBase(formulaType);
+ double multiplier = mcMMO.getConfigManager().getConfigLeveling().getConfigExperienceFormula().getMultiplier(formulaType);
+
+ switch(formulaType) {
+ case LINEAR:
+ return (int) Math.floor(base + level * multiplier);
+ case EXPONENTIAL:
+ double exponent = mcMMO.getConfigManager().getConfigLeveling().getConfigExperienceFormula().getExponentialExponent();
+ return (int) Math.floor(multiplier * Math.pow(level, exponent) + base);
+ default:
+ //TODO: Should never be called
+ mcMMO.p.getLogger().severe("Invalid formula specified for calculation, defaulting to Linear");
+ return calculateXPNeeded(level, FormulaType.LINEAR);
+ }
}
/**
@@ -206,8 +229,9 @@ public class FormulaManager {
try {
formulasFile.save(formulaFile);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
e.printStackTrace();
}
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/gmail/nossr50/util/player/NotificationManager.java b/src/main/java/com/gmail/nossr50/util/player/NotificationManager.java
index b9d341277..db57edae9 100644
--- a/src/main/java/com/gmail/nossr50/util/player/NotificationManager.java
+++ b/src/main/java/com/gmail/nossr50/util/player/NotificationManager.java
@@ -53,19 +53,14 @@ public class NotificationManager {
* Sends players notifications from mcMMO
* This does this by sending out an event so other plugins can cancel it
* This event in particular is provided with a source player, and players near the source player are sent the information
- *
- * @param source the source player for this event
+ * @param targetPlayer the recipient player for this message
* @param notificationType type of notification
* @param key Locale Key for the string to use with this event
* @param values values to be injected into the locale string
*/
- public static void sendNearbyPlayersInformation(Player source, NotificationType notificationType, String key, String... values) {
- Location location = source.getLocation();
- for (Player otherPlayer : source.getWorld().getPlayers()) {
- if (otherPlayer != source && Misc.isNear(location, otherPlayer.getLocation(), Misc.SKILL_MESSAGE_MAX_SENDING_DISTANCE)) {
- sendPlayerInformation(otherPlayer, notificationType, key, values);
- }
- }
+ public static void sendNearbyPlayersInformation(Player targetPlayer, NotificationType notificationType, String key, String... values)
+ {
+ sendPlayerInformation(targetPlayer, notificationType, key, values);
}
public static void sendPlayerInformation(Player player, NotificationType notificationType, String key, String... values) {
diff --git a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
index 9db4db90c..e6325d06a 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
@@ -116,7 +116,7 @@ public class SkillUtils {
for (Player otherPlayer : player.getWorld().getPlayers()) {
if (otherPlayer != player && Misc.isNear(location, otherPlayer.getLocation(), Misc.SKILL_MESSAGE_MAX_SENDING_DISTANCE)) {
- NotificationManager.sendNearbyPlayersInformation(player, notificationType, key, player.getName());
+ NotificationManager.sendNearbyPlayersInformation(otherPlayer, notificationType, key, player.getName());
}
}
}
@@ -225,7 +225,7 @@ public class SkillUtils {
* @param durabilityModifier the amount to modify the durability by
* @param maxDamageModifier the amount to adjust the max damage by
*/
- public static void handleDurabilityChange(ItemStack itemStack, int durabilityModifier, double maxDamageModifier) {
+ public static void handleDurabilityChange(ItemStack itemStack, double durabilityModifier, double maxDamageModifier) {
if (itemStack.hasItemMeta() && itemStack.getItemMeta().isUnbreakable()) {
return;
}
diff --git a/src/main/resources/advanced.yml b/src/main/resources/advanced.yml
index 56ac2beb1..30e6ca52e 100644
--- a/src/main/resources/advanced.yml
+++ b/src/main/resources/advanced.yml
@@ -180,12 +180,12 @@ Skills:
KnockbackModifier: 1.5
BonusDamage: 2.0
ArmorImpact:
+ # Multiplied against the skill rank to determine how much damage to do
+ DamagePerRank: 6.5
# IncreaseLevel: Every the durability damage goes up with 1
# Chance: Chance of hitting with ArmorImpact
# MaxPercentageDurabilityDamage: Durability damage cap for ArmorImpact, 20% means that you can never destroy a piece of armor in less than 5 hits
- IncreaseLevel: 5
Chance: 25.0
- MaxPercentageDurabilityDamage: 20.0
SkullSplitter:
# DamageModifier: Damage will get divided by this modifier
DamageModifier: 2.0
diff --git a/src/main/resources/locale/locale_hu_HU.properties b/src/main/resources/locale/locale_hu_HU.properties
index df9c49f26..97f46beb6 100644
--- a/src/main/resources/locale/locale_hu_HU.properties
+++ b/src/main/resources/locale/locale_hu_HU.properties
@@ -1,4 +1,5 @@
#I'm going to try to normalize our locale file, forgive the mess for now.
+
#DO NOT USE COLOR CODES IN THE JSON KEYS
#COLORS ARE DEFINED IN advanced.yml IF YOU WISH TO CHANGE THEM
JSON.Rank=Szint
@@ -46,13 +47,17 @@ JSON.Hover.SuperAbility=[[DARK_PURPLE]]{0}&r
JSON.Hover.MaxRankSkillName=[[GOLD]]{0}&r
JSON.Hover.AtSymbolSkills=[[YELLOW]]@
JSON.Hover.AtSymbolURL=[[YELLOW]]@
+
#This is the message sent to players when an ability is activated
JSON.Notification.SuperAbility={0}
+
#These are the JSON Strings used for SubSkills
JSON.Acrobatics.Roll.Interaction.Activated=Teszt [[RED]]Gurul\u00E1s Teszt
JSON.Acrobatics.SubSkill.Roll.Details.Tips=Ha guggolsz es\u00E9s k\u00F6zben megakad\u00E1lyozhatod, hogy k\u00E9tszer annyi k\u00E1rt szenvedj, amit \u00E1ltal\u00E1ban!
+
#DO NOT USE COLOR CODES IN THE JSON KEYS
#COLORS ARE DEFINED IN advanced.yml IF YOU WISH TO CHANGE THEM
+
# BEGIN STYLING
Ability.Generic.Refresh=[[GREEN]]**K\u00C9PESS\u00C9GEK FRISS\u00CDTVE!**
Ability.Generic.Template.Lock=[[GRAY]]{0}
@@ -118,6 +123,7 @@ XPBar.Complex.Template={0} [[DARK_AQUA]] {4}[[WHITE]]% [[DARK_AQUA]]([[WHITE]]{1
# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level
# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP!
# END STYLING
+
#ACROBATICS
Acrobatics.Ability.Proc=[[GREEN]]**Kecses Landol\u00E1s**
Acrobatics.Combat.Proc=[[GREEN]]**Kit\u00E9r\u00EDtve**
@@ -149,6 +155,8 @@ Alchemy.Listener=Alk\u00EDmia:
Alchemy.Ability.Locked.0=LEZ\u00C1RVA {0}+ K\u00C9PESS\u00C9G SZINTIG (KATAL\u00CDZIS)
Alchemy.SkillName=ALK\u00CDMIA
#ARCHERY
+
+
Archery.SubSkill.SkillShot.Name=L\u00F6v\u00E9s K\u00E9pess\u00E9g
Archery.SubSkill.SkillShot.Description=N\u00F6veli az \u00EDjakkal okozott sebz\u00E9st
Archery.SubSkill.SkillShot.Stat=K\u00E9pess\u00E9gi L\u00F6v\u00E9s B\u00F3nusz Sebz\u00E9s
@@ -215,10 +223,10 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]A [[YELLOW]]Giga F\u00FAr\u0
Excavation.Skills.GigaDrillBreaker.Other.Off=Giga F\u00FAr\u00F3-T\u00F6r\u0151[[GREEN]] kikapcsolva: [[YELLOW]]{0}
Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] haszn\u00E1lta a [[RED]]Giga F\u00FAr\u00F3-T\u00F6r\u0151 [[DARK_GREEN]]k\u00E9pess\u00E9get!
#FISHING
-Fishing.Scarcity=[[YELLOW]]&oEz a ter\u00FClet t\u00FAlhal\u00E1szott. Pr\u00F3b\u00E1lj meg \u00FAj ter\u00FCleten hal\u00E1szni.
+Fishing.ScarcityTip=[[YELLOW]]&oEz a ter\u00FClet t\u00FAlhal\u00E1szott. Horg\u00E1ssz egy m\u00E1sik helyen, ha t\u00F6bb halat szeretn\u00E9l. Legal\u00E1bb {0} blokknyira.
Fishing.Scared=[[GRAY]]&oA Zavaros mozg\u00E1sok megijesztik a halakat!
Fishing.Exhausting=[[RED]]&oA horg\u00E1szbot helytelen haszn\u00E1lata f\u00E1radts\u00E1got okoz, \u00E9s elhaszn\u00E1l\u00F3dik a r\u00FAd!
-Fishing.LowResources=[[GRAY]]\u00DAgy \u00E9rzem nem sok hal maradt ezen a ter\u00FCleten.
+Fishing.LowResourcesTip=[[GRAY]]\u00DAgy \u00E9rzem nem sok hal maradt ezen a ter\u00FCleten. Pr\u00F3b\u00E1lj meg horg\u00E1szni legal\u00E1bb {0} blokknyira.
Fishing.Ability.Info=M\u00E1gikus Vad\u00E1sz: [[GRAY]] **A Kincsvad\u00E1sz Szinttel Egy\u00FCtt Fejl\u0151dik**
Fishing.Ability.Locked.0=LEZ\u00C1RVA {0}+ K\u00C9PESS\u00C9G SZINTIG (R\u00C1Z\u00C1S)
Fishing.Ability.Locked.1=LEZ\u00C1RVA {0}+ K\u00C9PESS\u00C9G SZINTIG (J\u00C9G HORG\u00C1SZAT)
@@ -305,6 +313,7 @@ Mining.SubSkill.BiggerBombs.Description=N\u00F6veli a TNT-k robban\u00E1si erej\
Mining.SubSkill.DemolitionsExpertise.Name=Rombol\u00E1si Tud\u00E1s
Mining.SubSkill.DemolitionsExpertise.Description=Cs\u00F6kkentik a TNT-k \u00E1ltal okozott robbant\u00E1sok sebz\u00E9s\u00E9t
Mining.SubSkill.DemolitionsExpertise.Stat=Rombol\u00E1si Tud\u00E1s Sebz\u00E9s Cs\u00F6kkent\u00E9se
+
Mining.Listener=B\u00E1ny\u00E1szat:
Mining.SkillName=B\u00C1NY\u00C1SZAT
Mining.Skills.SuperBreaker.Off=**Szuper T\u00F6r\u00E9s v\u00E9get \u00E9rt**
@@ -386,7 +395,7 @@ Anvil.Unbreakable=Ez a t\u00E1rgy t\u00F6rhetetlen!
#SWORDS
Swords.Ability.Lower=[[GRAY]]Leengeded a kardod.
Swords.Ability.Ready=[[GOLD]]El\u0151k\u00E9sz\u00EDted[[DARK_AQUA]] a kardod.
-Swords.Combat.Bleed.Note=[[GRAY]]Megj.: [[YELLOW]]1 Tick t\u00F6rt\u00E9nik minden 0,5 m\u00E1sodpercenk\u00E9nt
+Swords.Combat.Rupture.Note=[[GRAY]]MEGJ.: [[YELLOW]]1 Tick t\u00F6rt\u00E9nik minden 0,5 m\u00E1sodpercenk\u00E9nt
Swords.Combat.Bleeding.Started=[[DARK_RED]] V\u00E9rzel!
Swords.Combat.Bleeding.Stopped=[[GRAY]]A v\u00E9rz\u00E9s [[GREEN]]el\u00E1llt[[GRAY]]!
Swords.Combat.Bleeding=[[GREEN]]**AZ ELLENS\u00C9G V\u00C9RZIK**
@@ -464,7 +473,7 @@ Taming.Listener.Wolf=[[DARK_GRAY]]A Farkasod hozz\u00E1d oson...
Taming.Listener=Szel\u00EDd\u00EDt\u00E9s:
Taming.SkillName=SZELID\u00CDT\u00C9S
Taming.Summon.Complete=[[GREEN]]Sikeres Megid\u00E9z\u00E9s
-Taming.Summon.Lifespan=(\u00C9lettartam: {0}mp)
+Taming.Summon.Lifespan= (\u00C9lettartam: {0}mp)
Taming.Summon.Fail.Ocelot=[[RED]]T\u00FAl sok ocelot van a k\u00F6zeledben, hogy t\u00F6bbet id\u00E9zhess.
Taming.Summon.Fail.Wolf=[[RED]]T\u00FAl sok farkas van a k\u00F6zeledben, hogy t\u00F6bbet id\u00E9zhess.
Taming.Summon.Fail.Horse=[[RED]]T\u00FAl sok l\u00F3 van a k\u00F6zeledben, hogy t\u00F6bbet id\u00E9zhess.
@@ -531,6 +540,7 @@ Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] haszn\u00E1lta
Woodcutting.Skills.TreeFeller.Splinter=A BALT\u00C1D TUCATNYI DARABOKRA ESIK SZ\u00C9T!
Woodcutting.Skills.TreeFeller.Threshold=Ez a fa t\u00FAl nagy!
#ABILITIY
+
#COMBAT
Combat.ArrowDeflect=[[WHITE]]**NY\u00CDL ELH\u00C1R\u00CDTVA**
Combat.BeastLore=[[GREEN]]**VAD\u00C1LLAT TAN**
@@ -562,7 +572,7 @@ Commands.Cooldowns.Row.Y=\ [[AQUA]]{0}[[WHITE]] - [[DARK_GREEN]]K\u00E9szen \u0
Commands.Database.CooldownMS=V\u00E1rnod kell {0} ezredm\u00E1sodpercet, miel\u0151tt ism\u00E9t haszn\u00E1lod a parancsot.
Commands.Database.Processing=Az el\u0151z\u0151 parancs m\u00E9g feldolgoz\u00E1s alatt \u00E1ll. K\u00E9rlek v\u00E1rj.
Commands.Disabled=Ez a parancs le van tiltva.
-Commands.DoesNotExist=[[RED]]A j\u00E1t\u00E9kos nincs az adatb\u00E1zisban!
+Commands.DoesNotExist= [[RED]]A j\u00E1t\u00E9kos nincs az adatb\u00E1zisban!
Commands.GodMode.Disabled=mcMMO Isten m\u00F3d Letiltva.
Commands.GodMode.Enabled=mcMMO Isten m\u00F3d Enged\u00E9lyezve
Commands.AdminChatSpy.Enabled=mcMMO Party Chat Figyel\u00E9s Enged\u00E9lyezve
@@ -736,7 +746,7 @@ Party.NotOwner=[[DARK_RED]]Nem vagy a party vezet\u0151je!
Party.Target.NotOwner=[[DARK_RED]]{0} nem party vezet\u0151.
Party.Owner.New=[[GREEN]]{0} az \u00FAj party vezet\u0151.
Party.Owner.NotLeader=[[DARK_RED]]Mostant\u00F3l nem te vagy a party vezet\u0151je.
-Party.Owner.Player=[[GREEN]]Te vagy a party vezet\u0151je.
+Party.Owner.Player =[[GREEN]]Te vagy a party vezet\u0151je.
Party.Password.None=[[RED]]Ez a party jelsz\u00F3val v\u00E9dett. Adj meg jelsz\u00F3t a csatlakoz\u00E1shoz.
Party.Password.Incorrect=[[RED]]Nem egyezik a party jelsz\u00F3!
Party.Password.Set=[[GREEN]]A party jelsz\u00F3 be\u00E1ll\u00EDtva: {0}
@@ -816,13 +826,25 @@ Commands.Event.Stop.Subtitle=[[GREEN]]Rem\u00E9lem j\u00F3l \u00E9rezted magad!
Commands.Event.XP=[[DARK_AQUA]]Az XP szorz\u00F3 [[GOLD]]{0}[[DARK_AQUA]]x!
Commands.xprate.started.0=[[GOLD]]mcMMO XP szorz\u00F3 esem\u00E9ny kezd\u0151d\u00F6tt!
Commands.xprate.started.1=[[GOLD]]mcMMO XP Ar\u00E1nya most: {0}x!
-XPRate.Event=[[GOLD]]mcMMO XP szorz\u00F3 esem\u00E9ny! XP ar\u00E1nya {0}x!
+
+# Admin Notifications
+Server.ConsoleName=[[YELLOW]][Szerver]
+Notifications.Admin.XPRate.Start.Self=[[GRAY]]Be\u00E1ll\u00EDtottad a glob\u00E1lis XP szorz\u00F3t erre [[GOLD]]{0}x
+Notifications.Admin.XPRate.End.Self=[[GRAY]]Megszak\u00EDtottad az XP szorz\u00F3 eventet.
+Notifications.Admin.XPRate.End.Others={0} [[GRAY]]megszak\u00EDtotta az XP szorz\u00F3 eventet.
+Notifications.Admin.XPRate.Start.Others={0} [[GRAY]]elind\u00EDtotta vagy m\u00F3dos\u00EDtotta az XP szorz\u00F3 eventet glob\u00E1lis {1}x szorz\u00F3val
+Notifications.Admin.Format.Others=[[GOLD]]([[GREEN]]mcMMO [[DARK_AQUA]]Admin[[GOLD]]) [[GRAY]]{0}
+Notifications.Admin.Format.Self=[[GOLD]]([[GREEN]]mcMMO[[GOLD]]) [[GRAY]]{0}
+
+# Event
+XPRate.Event= [[GOLD]]mcMMO XP szorz\u00F3 event! Az XP ar\u00E1nya {0}x!
+
#GUIDES
Guides.Available=[[GRAY]]A {0} seg\u00EDts\u00E9g el\u00E9rhet\u0151 - haszn\u00E1lat: /{1} ? [oldal]
Guides.Header=[[GOLD]]-=[[GREEN]]{0} Seg\u00EDts\u00E9g[[GOLD]]=-
Guides.Page.Invalid=Nem egy val\u00F3s oldal!
Guides.Page.OutOfRange=Ez az oldal nem l\u00E9tezik, \u00F6sszesen csak {0} oldal van.
-Guides.Usage=Haszn\u00E1lat: /{0} ? [oldal]
+Guides.Usage= Haszn\u00E1lat: /{0} ? [oldal]
##Acrobatics
Guides.Acrobatics.Section.0=[[DARK_AQUA]]Az akrobatik\u00E1r\u00F3l:\n[[YELLOW]]Az akrobatika a kecses mozg\u00E1s m\u0171v\u00E9szete az mcMMO-ban.\n[[YELLOW]]Harci \u00E9s k\u00F6rnyezeti b\u00F3nuszokkal l\u00E1t el.\n\n[[DARK_AQUA]]TAPASZTALAT SZERZ\u00C9S:\n[[YELLOW]]Hogy tapasztalathoz juss ebben a k\u00E9pess\u00E9gben, kit\u00E9r\u00E9st kell v\u00E9grehajtanod \n[[YELLOW]]harcban, vagy olyan es\u00E9seket t\u00FAl\u00E9lned, amelyek sebz\u00E9st okoznak.
Guides.Acrobatics.Section.1=[[DARK_AQUA]]Hogyan m\u0171k\u00F6dik a Gurul\u00E1s?\n[[YELLOW]]Passz\u00EDv es\u00E9lyed van arra, hogy a sz\u00E1modra sebz\u00E9st okoz\u00F3 landol\u00E1sokn\u00E1l, \n[[YELLOW]]neg\u00E1ld a s\u00E9r\u00FCl\u00E9st. A guggol\u00E1s lenyomva tart\u00E1sa es\u00E9s k\u00F6zben \n[[YELLOW]] megdupl\u00E1zza az es\u00E9lyeidet.\n[[YELLOW]]Ilyenkor a sima gurul\u00E1s helyett Kecses Gurul\u00E1st hajthatsz v\u00E9gre.\n[[YELLOW]]A Kecses Gurul\u00E1s nagyban hasonl\u00EDt a sima gurul\u00E1shoz, azzal a k\u00FCl\u00F6nbs\u00E9ggel, \n[[YELLOW]]hogy k\u00E9tszer olyan val\u00F3sz\u00EDn\u0171, \u00E9s nagyobb v\u00E9delmet ny\u00FAjt.\n[[YELLOW]]A gurul\u00E1s es\u00E9lye a k\u00E9pess\u00E9ged szintj\u00E9t\u0151l f\u00FCgg.
@@ -920,7 +942,7 @@ Guides.Woodcutting.Section.1=[[DARK_AQUA]]Hogyan m\u0171k\u00F6dik a Fad\u00F6nt
Guides.Woodcutting.Section.2=[[DARK_AQUA]]Hogyan m\u0171k\u00F6dik a Lev\u00E9lf\u00FAj\u00F3?\n[[YELLOW]]A Lev\u00E9lf\u00FAj\u00F3 egy passz\u00EDv k\u00E9pess\u00E9g, amely miatt a levelek azonnal elt\u0171nnek, ha\n[[YELLOW]]r\u00E1kattintasz balt\u00E1val. Alapb\u00F3l a 100-as szinten old\u00F3dik fel ez a k\u00E9pess\u00E9g.
Guides.Woodcutting.Section.3=[[DARK_AQUA]]Hogyan m\u0171k\u00F6dnek a Dupla Drop-ok?\n[[YELLOW]]Ez a passz\u00EDv k\u00E9pess\u00E9g lehet\u0151v\u00E9 teszi, hogy minden kiv\u00E1gott\n[[YELLOW]]far\u00F6nk ut\u00E1n kapj m\u00E9g egyet.
#INSPECT
-Inspect.Offline=[[RED]]Nincs jogod offline j\u00E1t\u00E9kosok megvizsg\u00E1l\u00E1s\u00E1ra!
+Inspect.Offline= [[RED]]Nincs jogod offline j\u00E1t\u00E9kosok megvizsg\u00E1l\u00E1s\u00E1ra!
Inspect.OfflineStats=A(z) [[YELLOW]]{0} nev\u0171 offline j\u00E1t\u00E9kos mcMMO Statisztik\u00E1ja
Inspect.Stats=[[GREEN]]A(z) [[YELLOW]]{0} [[GREEN]]nev\u0171 j\u00E1t\u00E9kos mcMMO Statisztik\u00E1ja
Inspect.TooFar=T\u00FAl t\u00E1vol vagy, hogy megvizsg\u00E1lhasd ezt a j\u00E1t\u00E9kost!
@@ -944,8 +966,8 @@ Skills.Child=[[GOLD]](ALK\u00C9PESS\u00C9G)
Skills.Disarmed=[[DARK_RED]]Lefegyvereztek!
Skills.Header=-----[] [[GREEN]]{0}[[RED]] []-----
Skills.NeedMore=[[DARK_RED]]T\u00F6bb[[GRAY]]{0}-ra/re van sz\u00FCks\u00E9ged
-Skills.NeedMore=[[DARK_RED]]T\u00F6bb[[GRAY]]{0}{1}-ra/re van sz\u00FCks\u00E9ged
-Skills.Parents=ANYAK\u00C9PESS\u00C9G
+Skills.NeedMore.Extra=[[DARK_RED]]T\u00F6bb[[GRAY]]{0}{1}-ra/re van sz\u00FCks\u00E9ged
+Skills.Parents= ANYAK\u00C9PESS\u00C9G
Skills.Stats={0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]])
Skills.ChildStats={0}[[GREEN]]{1}
Skills.TooTired=T\u00FAl f\u00E1radt vagy, hogy \u00FAjra haszn\u00E1lhasd ezt a k\u00E9pess\u00E9get. [[YELLOW]]({0}s)
@@ -1059,12 +1081,12 @@ Scoreboard.Misc.Ability=K\u00E9pess\u00E9g
#DATABASE RECOVERY
Profile.PendingLoad=[[RED]]Az mcMMO j\u00E1t\u00E9kos adatod m\u00E9g nincs bet\u00F6ltve.
Profile.Loading.Success=[[GREEN]]mcMMO profil sikeresen bet\u00F6ltve.
-Profile.Loading.Failure=[[RED]]Az mcMMO nem tudja bet\u00F6lteni az adataidat. Besz\u00E9lj a [[AQUA]]szerver tulajdonossal.\n[[YELLOW]]\u00CDgy is tudsz j\u00E1tszani a szerveren, [[BOLD]]de nem lesz mcMMO szinted[[YELLOW]] \u00E9s ami XP-t szerzel [[BOLD]]mentetlen\u00FCl marad[[YELLOW]].
-Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]]Az mcMMO nem tudta bet\u00F6lteni [[YELLOW]]{0}[[RED]] adatait. [[LIGHT_PURPLE]]K\u00E9rlek n\u00E9zd \u00E1t az adatb\u00E1zisod.
+Profile.Loading.FailurePlayer=[[RED]]Az mcMMO-nak probl\u00E9m\u00E1i vannak az adataid bet\u00F6lt\u00E9sekor, megpr\u00F3b\u00E1ltuk bet\u00F6lteni [[GREEN]]{0}[[RED]]x.[[LIGHT_GRAY]] Ezzel kapcsolatban \u00E9rdemes kapcsolatba l\u00E9pni a szerver adminisztr\u00E1torokkal. Az mcMMO megpr\u00F3b\u00E1lja bet\u00F6lteni az adatait mindaddig, am\u00EDg nem kapcsol\u00F3dsz le. Nem kapsz XP-t, \u00E9s nem tudod haszn\u00E1lni a k\u00E9pess\u00E9geket, am\u00EDg az adataid nem t\u00F6lt\u0151dnek be.
+Profile.Loading.FailureNotice=[[DARK_RED]][A][[RED]] az mcMMO nem tudta bet\u00F6lteni ennek a j\u00E1t\u00E9kosnak az adatait [[YELLOW]]{0}[[RED]]. [[LIGHT_PURPLE]]K\u00E9rj\u00FCk, ellen\u0151rizd az adatb\u00E1zis be\u00E1ll\u00EDt\u00E1sait. Eddig tett k\u00EDs\u00E9rletek {1}.
#Holiday
Holiday.AprilFools.Levelup=[[GOLD]]{0} jelenlegi szint [[GREEN]]{1}[[GOLD]]!
Holiday.Anniversary=[[BLUE]]Boldog {0}. \u00C9vfordul\u00F3t!\n[[BLUE]]nossr50, \u00E9s az \u00F6sszes fejleszt\u0151 tisztelet\u00E9re itt egy t\u0171zij\u00E1t\u00E9k show!
#Reminder Messages
Reminder.Squelched=[[GRAY]]Eml\u00E9keztet\u0151: jelenleg nem kapsz \u00E9rtes\u00EDt\u00E9seket az mcMMO-t\u00F3l. Ahhoz, hogy enged\u00E9lyezd az \u00E9rtes\u00EDt\u00E9seket, futtasd \u00FAjra a /mcnotify parancsot. Ez egy automatikus, \u00F3r\u00E1nk\u00E9nti eml\u00E9keztet\u0151.
#Locale
-Locale.Reloaded=[[GREEN]]Ford\u00EDt\u00E1s \u00FAjrat\u00F6ltve!
+Locale.Reloaded=[[GREEN]]Ford\u00EDt\u00E1s \u00FAjrat\u00F6ltve!
\ No newline at end of file