From 0b319c3730a1388a9c80497bb6fdb658bb8cfe9f Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 9 Mar 2022 17:19:07 +0000 Subject: [PATCH] Reverted recent break speed limit changes. --- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 7 ----- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- .../dist/game/config/Character.ini | 4 --- .../scripts/handlers/EffectMasterHandler.java | 1 - .../handlers/effecthandlers/SpeedLimit.java | 31 ------------------- .../game/data/stats/skills/documentation.txt | 1 - .../java/org/l2jmobius/Config.java | 2 -- .../model/actor/stat/CreatureStat.java | 20 +++--------- .../model/actor/stat/PlayableStat.java | 6 ---- .../model/actor/stat/SummonStat.java | 24 ++++++++++++-- .../gameserver/model/stats/Stat.java | 1 - .../stats/finalizers/SpeedFinalizer.java | 20 ++---------- 210 files changed, 630 insertions(+), 1693 deletions(-) delete mode 100644 L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java delete mode 100644 L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini b/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini index 8ff4dab335..eeaf022244 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini +++ b/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java index 4b4d6d3d18..4f232ab070 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -328,7 +328,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt index 6550b5db2b..06f563d514 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt @@ -297,7 +297,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java index f0f0160d80..ce56da0f17 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java @@ -200,7 +200,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1766,7 +1765,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java index dedd0d6dfb..be7e1eb712 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -164,7 +164,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini b/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini index 5897b96dda..6b26b61be8 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini +++ b/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java index 4b4d6d3d18..4f232ab070 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -328,7 +328,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt index 6550b5db2b..06f563d514 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt @@ -297,7 +297,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java index 726cce0627..332af96e61 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java @@ -207,7 +207,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1786,7 +1785,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java index dedd0d6dfb..be7e1eb712 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -164,7 +164,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini b/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini index 5897b96dda..6b26b61be8 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini +++ b/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java index 4b4d6d3d18..4f232ab070 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -328,7 +328,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt index 6550b5db2b..06f563d514 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt @@ -297,7 +297,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java index dfe17889e6..d6959e5417 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java @@ -207,7 +207,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1799,7 +1798,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java index dedd0d6dfb..be7e1eb712 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -164,7 +164,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini index 3261c36a79..1023449a9c 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java index 5d11e2e4ad..0ab4cce3d2 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -333,7 +333,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt index fdfd05596f..d35a53a9b1 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt @@ -302,7 +302,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java index b98f26f905..2fda2748c1 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java @@ -207,7 +207,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1786,7 +1785,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java index d007925d19..9b69f1e6bc 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -164,7 +164,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini b/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini index f19c93f28d..8b58d24305 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini +++ b/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java index eb09091dc1..27bac64a77 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -338,7 +338,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt index 6297fea43d..91849e22e9 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt @@ -307,7 +307,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java index 215f30e68b..8f004e5965 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java @@ -214,7 +214,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1795,7 +1794,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java index 8fdb8000ae..5a6836c1c2 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -167,7 +167,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini index f19c93f28d..8b58d24305 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini @@ -315,10 +315,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java index 748731f653..b22f420b93 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -339,7 +339,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt index e538359b55..50f8122da4 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt @@ -308,7 +308,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java index 9a8612380e..327a349dec 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java @@ -214,7 +214,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1802,7 +1801,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6df8233361..b79755260e 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -167,7 +167,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini b/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini index dbbfc52676..eecb622e52 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini +++ b/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini @@ -319,10 +319,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999999 MaxPAtk = 999999999 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java index 748731f653..b22f420b93 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -339,7 +339,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt index e538359b55..50f8122da4 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt @@ -308,7 +308,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java index 4ea2a41dac..a91529dc86 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java @@ -215,7 +215,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1837,7 +1836,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b11725c93f..678412218a 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -255,10 +254,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6df8233361..b79755260e 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -167,7 +167,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini index c11653ab35..1ad1920798 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini @@ -329,10 +329,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999999 MaxPAtk = 999999999 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java index 621226b271..9f6d6b9c6a 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -339,7 +339,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt index 6eedb4d8c6..ae39cc0285 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt @@ -307,7 +307,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java index 566643137c..bd23826014 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java @@ -215,7 +215,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1847,7 +1846,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 73d9ad393d..cf84c07a62 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -327,17 +327,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -345,7 +335,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -353,7 +343,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -361,7 +351,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -369,7 +359,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index c35b7b1fb2..7dd70aa301 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -255,10 +255,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java index 531e3c5c19..bb815e784c 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -168,7 +168,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini b/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini index cb2515b637..a8d5df94d7 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini +++ b/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini @@ -329,10 +329,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999999 MaxPAtk = 999999999 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java index ae05e05dfc..46004d8ef1 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -341,7 +341,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt index 60fb337696..9e02f9ee88 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt @@ -309,7 +309,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java index c6ffb97683..a42476c509 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1820,7 +1819,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a7a38eb6bc..04cd1fb1df 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -332,17 +332,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -350,7 +340,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -358,7 +348,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -366,7 +356,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -374,7 +364,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index be8cc356d8..6c2c9fcd61 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -255,10 +255,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java index 7c8311dcce..8d8771f155 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -173,7 +173,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index 87f06d6fea..bba571606d 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -61,21 +61,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -83,7 +69,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini index d37b76fb25..ec77f7765c 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini @@ -329,10 +329,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999999 MaxPAtk = 999999999 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java index 4ad6ef49c9..39bba847a5 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -342,7 +342,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt index a01644e318..670f703536 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt @@ -309,7 +309,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java index cf1edc06f2..0060fb4d4d 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1822,7 +1821,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a7a38eb6bc..04cd1fb1df 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -332,17 +332,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -350,7 +340,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -358,7 +348,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -366,7 +356,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -374,7 +364,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index be8cc356d8..6c2c9fcd61 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -255,10 +255,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java index 7c8311dcce..8d8771f155 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -173,7 +173,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index 87f06d6fea..bba571606d 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -61,21 +61,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -83,7 +69,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini b/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini index d37b76fb25..ec77f7765c 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini +++ b/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini @@ -329,10 +329,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999999 MaxPAtk = 999999999 diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java index 9340e046ea..9510b99b90 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -344,7 +344,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/skills/documentation.txt index 3b779c4442..7b668809d3 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/skills/documentation.txt @@ -311,7 +311,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java index 6a10096f59..b4eb4c7fcc 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1822,7 +1821,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a7a38eb6bc..04cd1fb1df 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -332,17 +332,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -350,7 +340,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -358,7 +348,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -366,7 +356,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -374,7 +364,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index be8cc356d8..6c2c9fcd61 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -255,10 +255,4 @@ public class PlayableStat extends CreatureStat final Weapon weapon = getActiveChar().getActiveWeaponItem(); return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java index 7c8311dcce..8d8771f155 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -173,7 +173,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index 87f06d6fea..bba571606d 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -61,21 +61,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -83,7 +69,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini index 7775793463..99b1752e92 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java index c633439745..67dd0f10d4 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -324,7 +324,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt index ef76524dc8..303e2285b3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt @@ -293,7 +293,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java index 680ed0b7ac..e03eb8835f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1733,7 +1732,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6b52c36e9c..36b2c82280 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -163,7 +163,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Character.ini index 0cac75b2e9..8e55d52c02 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java index c633439745..67dd0f10d4 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -324,7 +324,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt index ef76524dc8..303e2285b3 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt @@ -293,7 +293,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java index 92659cf6e9..5fc621eded 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1737,7 +1736,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6b52c36e9c..36b2c82280 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -163,7 +163,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Character.ini index 0ba6105985..a2aff64c04 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java index f5d9aa3162..cc1d7bdcd5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -326,7 +326,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt index d7ff377580..4b593af52d 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt @@ -295,7 +295,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java index 92659cf6e9..5fc621eded 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1737,7 +1736,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java index 5c252d6b82..da6c7497b8 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -166,7 +166,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Character.ini index 0ba6105985..a2aff64c04 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java index 282cd2d1d0..2de62a9096 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -329,7 +329,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt index 32ef8c1035..db9610ee0d 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt @@ -298,7 +298,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java index 92659cf6e9..5fc621eded 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1737,7 +1736,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java index daaf5c2180..360f87caa7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -179,7 +179,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/Character.ini index 15c8746aea..9f307fdf9b 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java index 282cd2d1d0..2de62a9096 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -329,7 +329,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt index 32ef8c1035..db9610ee0d 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt @@ -298,7 +298,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java index c0d754cadc..7368ab9009 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1742,7 +1741,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java index daaf5c2180..360f87caa7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -179,7 +179,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini index 9b2c2ee19c..5517f3b789 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java index a9edd975a8..a1f8ef24f4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -331,7 +331,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt index f11987e472..cc328db3d3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt @@ -300,7 +300,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java index c4bce39129..172326cacb 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java @@ -208,7 +208,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1748,7 +1747,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 3812746e4e..1b3568357d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -272,12 +272,6 @@ public class PlayableStat extends CreatureStat return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java index 0310ad84de..978e648034 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -182,7 +182,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini b/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini index 9167d7c108..0acf5578bc 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java index e4327aeeda..2b8269f2e9 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -327,7 +327,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt index ec6d9ba27f..a4ee69f5ac 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt @@ -295,7 +295,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java index 5dfae2d18c..cf59172ffc 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java @@ -207,7 +207,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1740,7 +1739,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index a2e5edb144..8f331376a0 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -317,17 +317,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -335,7 +325,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -343,7 +333,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -351,7 +341,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -359,7 +349,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index b656d4ec10..ab69ac3799 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; -import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -272,12 +271,6 @@ public class PlayableStat extends CreatureStat return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java index 54a24adb35..353e528971 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -163,7 +163,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini index b06b11c0ef..9dc8677ae3 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java index c7d2ed2bd9..1d6bd1a85e 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -338,7 +338,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt index 523a7089c7..557de9a78d 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt @@ -307,7 +307,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java index 3711307b21..3e236fa602 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java @@ -210,7 +210,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1768,7 +1767,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index d161a62c5d..fe084eead5 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -322,17 +322,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -340,7 +330,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -348,7 +338,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -356,7 +346,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -364,7 +354,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 43b0fa5461..20ad33d1ae 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -272,12 +272,6 @@ public class PlayableStat extends CreatureStat return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java index 3ec0d69666..3a22250416 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -188,7 +188,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini index b06b11c0ef..9dc8677ae3 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java index 53aad4ada9..09c534eb01 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -340,7 +340,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt index 46b85b0dd8..2603791ccf 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt @@ -308,7 +308,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java index 6e7a913580..0e1caed230 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java @@ -210,7 +210,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1771,7 +1770,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index d161a62c5d..fe084eead5 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -322,17 +322,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -340,7 +330,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -348,7 +338,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -356,7 +346,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -364,7 +354,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 43b0fa5461..20ad33d1ae 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -272,12 +272,6 @@ public class PlayableStat extends CreatureStat return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java index 3ec0d69666..3a22250416 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -188,7 +188,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini index b06b11c0ef..9dc8677ae3 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini @@ -234,10 +234,6 @@ MaxSpBonus = 0 # Default: 300 MaxRunSpeed = 300 -# Maximum summon running speed. -# Default: 350 -MaxRunSpeedSummon = 350 - # Maximum character Physical Attack. # Default: 999999 MaxPAtk = 999999 diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java index 6543dab8c1..f75fac7e68 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -342,7 +342,6 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Sow", Sow::new); EffectHandler.getInstance().registerHandler("Speed", Speed::new); EffectHandler.getInstance().registerHandler("SphericBarrier", SphericBarrier::new); - EffectHandler.getInstance().registerHandler("SpeedLimit", SpeedLimit::new); EffectHandler.getInstance().registerHandler("SpiritExpModify", SpiritExpModify::new); EffectHandler.getInstance().registerHandler("SpModify", SpModify::new); EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java deleted file mode 100644 index 41f395125a..0000000000 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SpeedLimit.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package handlers.effecthandlers; - -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.stats.Stat; - -/** - * @author dontknowdontcare - */ -public class SpeedLimit extends AbstractStatEffect -{ - public SpeedLimit(StatSet params) - { - super(params, Stat.SPEED_LIMIT); - } -} diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/stats/skills/documentation.txt index 1bffd02664..db31e70d71 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/stats/skills/documentation.txt @@ -309,7 +309,6 @@ SoulEating: Absorbs souls when taking exp from mobs and sets max soul count. Sow: Planting a seed into NPC target. Manor stuff. Speed: Speed stat. SphericBarrier: Blocks damage and buff/debuff incoming from outside the specified range. -SpeedLimit: Increase a character's max Speed limit. (l2jmobius) SpiritExpModify: Spirit EXP modify stat effect. (JoeAlisson) SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java index 6e7a913580..0e1caed230 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java @@ -210,7 +210,6 @@ public class Config public static double MAX_BONUS_EXP; public static double MAX_BONUS_SP; public static int MAX_RUN_SPEED; - public static int MAX_RUN_SPEED_SUMMON; public static int MAX_PATK; public static int MAX_MATK; public static int MAX_PCRIT_RATE; @@ -1771,7 +1770,6 @@ public class Config MAX_BONUS_EXP = characterConfig.getDouble("MaxExpBonus", 0); MAX_BONUS_SP = characterConfig.getDouble("MaxSpBonus", 0); MAX_RUN_SPEED = characterConfig.getInt("MaxRunSpeed", 300); - MAX_RUN_SPEED_SUMMON = characterConfig.getInt("MaxRunSpeedSummon", 350); MAX_PATK = characterConfig.getInt("MaxPAtk", 999999); MAX_MATK = characterConfig.getInt("MaxMAtk", 999999); MAX_PCRIT_RATE = characterConfig.getInt("MaxPCritRate", 500); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index d161a62c5d..fe084eead5 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -322,17 +322,7 @@ public class CreatureStat { baseSpeed = _creature.getTemplate().getBaseValue(_creature.isRunning() ? Stat.RUN_SPEED : Stat.WALK_SPEED, 0); } - return getMoveSpeed() * (1 / baseSpeed); - } - - protected double maxSpeed() - { - return 99999999; - } - - private double calcValidSpeed(final double val) - { - return Math.max(Math.min(val, maxSpeed() + getValue(Stat.SPEED_LIMIT)), 0); + return getMoveSpeed() * (1. / baseSpeed); } /** @@ -340,7 +330,7 @@ public class CreatureStat */ public double getRunSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_RUN_SPEED : Stat.RUN_SPEED); } /** @@ -348,7 +338,7 @@ public class CreatureStat */ public double getWalkSpeed() { - return calcValidSpeed(getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED)); + return getValue(_creature.isInsideZone(ZoneId.WATER) ? Stat.SWIM_WALK_SPEED : Stat.WALK_SPEED); } /** @@ -356,7 +346,7 @@ public class CreatureStat */ public double getSwimRunSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_RUN_SPEED)); + return getValue(Stat.SWIM_RUN_SPEED); } /** @@ -364,7 +354,7 @@ public class CreatureStat */ public double getSwimWalkSpeed() { - return calcValidSpeed(getValue(Stat.SWIM_WALK_SPEED)); + return getValue(Stat.SWIM_WALK_SPEED); } /** diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 378c3b4330..fecef82b02 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -272,12 +272,6 @@ public class PlayableStat extends CreatureStat return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } - @Override - protected double maxSpeed() - { - return Config.MAX_RUN_SPEED + getValue(Stat.SPEED_LIMIT); - } - private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) { Clan clan = player.getClan(); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java index 1b9227199d..7b4c4d6176 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/SummonStat.java @@ -33,8 +33,28 @@ public class SummonStat extends PlayableStat } @Override - protected double maxSpeed() + public double getRunSpeed() { - return Config.MAX_RUN_SPEED_SUMMON; + final double val = super.getRunSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; + } + + @Override + public double getWalkSpeed() + { + final double val = super.getWalkSpeed() + Config.RUN_SPD_BOOST; + + // Apply max run speed cap. + if (val > (Config.MAX_RUN_SPEED + 50)) // In retail maximum run speed is 350 for summons and 300 for players + { + return Config.MAX_RUN_SPEED + 50; + } + return val; } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java index 85ca0e81a7..56f8bef8a3 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -188,7 +188,6 @@ public enum Stat // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff MOVE_SPEED("moveSpeed"), - SPEED_LIMIT("speedLimit"), RUN_SPEED("runSpd", new SpeedFinalizer()), WALK_SPEED("walkSpd", new SpeedFinalizer()), SWIM_RUN_SPEED("fastSwimSpd", new SpeedFinalizer()), diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java index a010d20921..35e7b6aec2 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/finalizers/SpeedFinalizer.java @@ -42,7 +42,7 @@ public class SpeedFinalizer implements IStatFunction throwIfPresent(base); double baseValue = getBaseSpeed(creature, stat); - if (creature.isPlayable()) + if (creature.isPlayer()) { // Enchanted feet bonus baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_FEET); @@ -56,21 +56,7 @@ public class SpeedFinalizer implements IStatFunction baseValue += bonusDex; } - final double maxSpeed; - if (creature.isPlayer()) - { - maxSpeed = Config.MAX_RUN_SPEED + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else if (creature.isSummon()) - { - maxSpeed = Config.MAX_RUN_SPEED_SUMMON + creature.getStat().getValue(Stat.SPEED_LIMIT, 0); - } - else - { - maxSpeed = Double.MAX_VALUE; - } - - return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, maxSpeed); + return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_RUN_SPEED : Double.MAX_VALUE); } @Override @@ -78,7 +64,7 @@ public class SpeedFinalizer implements IStatFunction { if (isBlessed) { - return Math.max(enchantLevel - 3, 0) + Math.max(enchantLevel - 6, 0); + return (1 * Math.max(enchantLevel - 3, 0)) + (1 * Math.max(enchantLevel - 6, 0)); } return (0.6 * Math.max(enchantLevel - 3, 0)) + (0.6 * Math.max(enchantLevel - 6, 0)); }