From 8379bbcffcf7f0faf2c85796753e4bc40eb80b06 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 1 Jul 2021 23:16:42 +0000 Subject: [PATCH] Addition of AddHomunculusPoints effect handler. Contributed by nasseka. --- .../scripts/handlers/EffectMasterHandler.java | 1 + .../effecthandlers/AddHomunculusPoints.java | 62 +++++++++++++++++++ .../game/data/stats/skills/39700-39799.xml | 13 ++++ .../gameserver/network/SystemMessageId.java | 3 + .../scripts/handlers/EffectMasterHandler.java | 1 + .../effecthandlers/AddHomunculusPoints.java | 62 +++++++++++++++++++ .../game/data/stats/skills/39700-39799.xml | 13 ++++ .../gameserver/network/SystemMessageId.java | 3 + 8 files changed, 158 insertions(+) create mode 100644 L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java create mode 100644 L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java index b7187e803f..f130ad51cf 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -37,6 +37,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("AbsorbDamage", AbsorbDamage::new); EffectHandler.getInstance().registerHandler("Accuracy", Accuracy::new); EffectHandler.getInstance().registerHandler("AddHate", AddHate::new); + EffectHandler.getInstance().registerHandler("AddHomunculusPoints", AddHomunculusPoints::new); EffectHandler.getInstance().registerHandler("AddHuntingTime", AddHuntingTime::new); EffectHandler.getInstance().registerHandler("AdditionalPotionCp", AdditionalPotionCp::new); EffectHandler.getInstance().registerHandler("AdditionalPotionHp", AdditionalPotionHp::new); diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java new file mode 100644 index 0000000000..16e8ab018c --- /dev/null +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java @@ -0,0 +1,62 @@ +/* + * 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.actor.Creature; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; +import org.l2jmobius.gameserver.model.variables.PlayerVariables; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.homunculus.ExHomunculusPointInfo; + +/** + * Item Effect: Increase Homunculus points permanently. + * @author `NasSeKa` + */ +public class AddHomunculusPoints extends AbstractEffect +{ + private final int _amount; + + public AddHomunculusPoints(StatSet params) + { + _amount = params.getInt("amount", 0); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + if (!effected.isPlayer()) + { + return; + } + + final PlayerInstance player = effected.getActingPlayer(); + final int upgradePoints = player.getVariables().getInt(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, 0) + _amount; + player.getVariables().set(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, upgradePoints); + player.sendPacket(SystemMessageId.YOU_VE_OBTAINED_UPGRADE_POINTS); + player.sendPacket(new ExHomunculusPointInfo(player)); + } +} diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml index 4f9b52ccfe..41b118fb45 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml @@ -77,6 +77,19 @@ icon.skill0000 A1 + 1 + 4 + 5 + 0 + SELF + SINGLE + 1 + 81812 + + + 10 + + icon.skill0000 diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java index 6b018bd92c..0d40a1b2ef 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java @@ -17647,6 +17647,9 @@ public class SystemMessageId @ClientString(id = 13086, message = "The XP recovery fee has changed. Please try again.") public static SystemMessageId THE_XP_RECOVERY_FEE_HAS_CHANGED_PLEASE_TRY_AGAIN; + @ClientString(id = 13238, message = "You've obtained upgrade points.") + public static SystemMessageId YOU_VE_OBTAINED_UPGRADE_POINTS; + @ClientString(id = 13136, message = "The enchant value is decreased by 1.") public static SystemMessageId THE_ENCHANT_VALUE_IS_DECREASED_BY_1; diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java index b7187e803f..f130ad51cf 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -37,6 +37,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("AbsorbDamage", AbsorbDamage::new); EffectHandler.getInstance().registerHandler("Accuracy", Accuracy::new); EffectHandler.getInstance().registerHandler("AddHate", AddHate::new); + EffectHandler.getInstance().registerHandler("AddHomunculusPoints", AddHomunculusPoints::new); EffectHandler.getInstance().registerHandler("AddHuntingTime", AddHuntingTime::new); EffectHandler.getInstance().registerHandler("AdditionalPotionCp", AdditionalPotionCp::new); EffectHandler.getInstance().registerHandler("AdditionalPotionHp", AdditionalPotionHp::new); diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java new file mode 100644 index 0000000000..16e8ab018c --- /dev/null +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java @@ -0,0 +1,62 @@ +/* + * 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.actor.Creature; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; +import org.l2jmobius.gameserver.model.variables.PlayerVariables; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.homunculus.ExHomunculusPointInfo; + +/** + * Item Effect: Increase Homunculus points permanently. + * @author `NasSeKa` + */ +public class AddHomunculusPoints extends AbstractEffect +{ + private final int _amount; + + public AddHomunculusPoints(StatSet params) + { + _amount = params.getInt("amount", 0); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + if (!effected.isPlayer()) + { + return; + } + + final PlayerInstance player = effected.getActingPlayer(); + final int upgradePoints = player.getVariables().getInt(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, 0) + _amount; + player.getVariables().set(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, upgradePoints); + player.sendPacket(SystemMessageId.YOU_VE_OBTAINED_UPGRADE_POINTS); + player.sendPacket(new ExHomunculusPointInfo(player)); + } +} diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml index 4f9b52ccfe..41b118fb45 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml @@ -77,6 +77,19 @@ icon.skill0000 A1 + 1 + 4 + 5 + 0 + SELF + SINGLE + 1 + 81812 + + + 10 + + icon.skill0000 diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java index 6b018bd92c..0d40a1b2ef 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java @@ -17647,6 +17647,9 @@ public class SystemMessageId @ClientString(id = 13086, message = "The XP recovery fee has changed. Please try again.") public static SystemMessageId THE_XP_RECOVERY_FEE_HAS_CHANGED_PLEASE_TRY_AGAIN; + @ClientString(id = 13238, message = "You've obtained upgrade points.") + public static SystemMessageId YOU_VE_OBTAINED_UPGRADE_POINTS; + @ClientString(id = 13136, message = "The enchant value is decreased by 1.") public static SystemMessageId THE_ENCHANT_VALUE_IS_DECREASED_BY_1;