From a07cc58b885768c08d6203e2e67966ee34e4da62 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 15 Jun 2020 16:49:17 +0000 Subject: [PATCH] Fixed scheme buffer not buffing servitors. Contributed by Sahar. --- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- .../actor/instance/SchemeBufferInstance.java | 33 +++++++++---------- 7 files changed, 112 insertions(+), 119 deletions(-) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index 722ef54481..ca38d13322 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -26,7 +26,6 @@ import java.util.StringTokenizer; import org.l2jmobius.Config; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.datatables.SchemeBufferTable; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; @@ -67,6 +66,7 @@ public class SchemeBufferInstance extends Npc { summon.stopAllEffects(); } + player.getServitors().values().forEach(servitor -> servitor.stopAllEffects()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player, getHtmlPath(getId(), 0, player)); @@ -97,21 +97,8 @@ public class SchemeBufferInstance extends Npc { final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); - Creature target = null; - if (st.hasMoreTokens()) - { - final String targetType = st.nextToken(); - if ((targetType != null) && targetType.equalsIgnoreCase("pet")) - { - target = player.getPet(); - } - } - else - { - target = player; - } - - if (target == null) + final boolean buffSummons = st.hasMoreTokens() && st.nextToken().equalsIgnoreCase("pet"); + if (buffSummons && (player.getPet() == null) && !player.hasServitors()) { player.sendMessage("You don't have a pet."); } @@ -119,7 +106,19 @@ public class SchemeBufferInstance extends Npc { for (int skillId : SchemeBufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) { - SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)).applyEffects(this, target); + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (buffSummons) + { + if (player.getPet() != null) + { + skill.applyEffects(this, player.getPet()); + } + player.getServitors().values().forEach(servitor -> skill.applyEffects(this, servitor)); + } + else + { + skill.applyEffects(this, player); + } } } }