diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/mods/SchemeBuffer/50008-2.htm b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/mods/SchemeBuffer/50008-2.htm index a67c328098..6dfaa03ec0 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/mods/SchemeBuffer/50008-2.htm +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/mods/SchemeBuffer/50008-2.htm @@ -1,5 +1,5 @@ -%schemename% scheme holds %count% buffs.
+%schemename% scheme holds %count%.
%typesframe%
%skilllistframe%
diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java index 29a3a3115b..21d2bafea4 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java @@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; public class L2SchemeBufferInstance extends L2Npc @@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { - if (skills.size() < player.getStat().getMaxBuffCount()) + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (skill.isDance()) { - skills.add(skillId); + if (getCountOf(skills, true) < Config.DANCES_MAX_AMOUNT) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of dances/songs."); + } } else { - player.sendMessage("This scheme has reached the maximum amount of buffs."); + if (getCountOf(skills, false) < player.getStat().getMaxBuffCount()) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of buffs."); + } } } else if (currentCommand.startsWith("skillunselect")) @@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc for (Map.Entry> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); - sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); + sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); sb.append("Use on Me | "); sb.append("Use on Pet | "); sb.append("Edit | "); @@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc html.setFile(player, getHtmlPath(getId(), 2)); html.replace("%schemename%", schemeName); - html.replace("%count%", schemeSkills.size() + " / " + player.getStat().getMaxBuffCount()); + html.replace("%count%", getCountOf(schemeSkills, false) + " / " + player.getStat().getMaxBuffCount() + " buffs, " + getCountOf(schemeSkills, true) + " / " + Config.DANCES_MAX_AMOUNT + " dances/songs"); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%objectId%", getObjectId()); @@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc { return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } + + private static long getCountOf(List skills, boolean dances) + { + return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count(); + } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/mods/SchemeBuffer/50008-2.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/mods/SchemeBuffer/50008-2.htm index 620467cf0e..578e51db73 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/mods/SchemeBuffer/50008-2.htm +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/mods/SchemeBuffer/50008-2.htm @@ -1,5 +1,5 @@ -%schemename% scheme holds %count% buffs.
+%schemename% scheme holds %count%.
%typesframe%
%skilllistframe%
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java index 8ed128c7e6..39b5973808 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java @@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; public class L2SchemeBufferInstance extends L2Npc @@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { - if (skills.size() < player.getStat().getMaxBuffCount()) + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (skill.isDance()) { - skills.add(skillId); + if (getCountOf(skills, true) < Config.DANCES_MAX_AMOUNT) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of dances/songs."); + } } else { - player.sendMessage("This scheme has reached the maximum amount of buffs."); + if (getCountOf(skills, false) < player.getStat().getMaxBuffCount()) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of buffs."); + } } } else if (currentCommand.startsWith("skillunselect")) @@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc for (Map.Entry> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); - sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); + sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); sb.append("Use on Me | "); sb.append("Use on Pet | "); sb.append("Edit | "); @@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc html.setFile(player, getHtmlPath(getId(), 2)); html.replace("%schemename%", schemeName); - html.replace("%count%", schemeSkills.size() + " / " + player.getStat().getMaxBuffCount()); + html.replace("%count%", getCountOf(schemeSkills, false) + " / " + player.getStat().getMaxBuffCount() + " buffs, " + getCountOf(schemeSkills, true) + " / " + Config.DANCES_MAX_AMOUNT + " dances/songs"); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%objectId%", getObjectId()); @@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc { return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } + + private static long getCountOf(List skills, boolean dances) + { + return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count(); + } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/mods/SchemeBuffer/50008-2.htm b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/mods/SchemeBuffer/50008-2.htm index 620467cf0e..578e51db73 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/mods/SchemeBuffer/50008-2.htm +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/mods/SchemeBuffer/50008-2.htm @@ -1,5 +1,5 @@ -%schemename% scheme holds %count% buffs.
+%schemename% scheme holds %count%.
%typesframe%
%skilllistframe%
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java index 8ed128c7e6..39b5973808 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java @@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; public class L2SchemeBufferInstance extends L2Npc @@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { - if (skills.size() < player.getStat().getMaxBuffCount()) + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (skill.isDance()) { - skills.add(skillId); + if (getCountOf(skills, true) < Config.DANCES_MAX_AMOUNT) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of dances/songs."); + } } else { - player.sendMessage("This scheme has reached the maximum amount of buffs."); + if (getCountOf(skills, false) < player.getStat().getMaxBuffCount()) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of buffs."); + } } } else if (currentCommand.startsWith("skillunselect")) @@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc for (Map.Entry> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); - sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); + sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); sb.append("Use on Me | "); sb.append("Use on Pet | "); sb.append("Edit | "); @@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc html.setFile(player, getHtmlPath(getId(), 2)); html.replace("%schemename%", schemeName); - html.replace("%count%", schemeSkills.size() + " / " + player.getStat().getMaxBuffCount()); + html.replace("%count%", getCountOf(schemeSkills, false) + " / " + player.getStat().getMaxBuffCount() + " buffs, " + getCountOf(schemeSkills, true) + " / " + Config.DANCES_MAX_AMOUNT + " dances/songs"); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%objectId%", getObjectId()); @@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc { return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } + + private static long getCountOf(List skills, boolean dances) + { + return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count(); + } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/mods/SchemeBuffer/50008-2.htm b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/mods/SchemeBuffer/50008-2.htm index 620467cf0e..578e51db73 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/mods/SchemeBuffer/50008-2.htm +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/mods/SchemeBuffer/50008-2.htm @@ -1,5 +1,5 @@ -%schemename% scheme holds %count% buffs.
+%schemename% scheme holds %count%.
%typesframe%
%skilllistframe%
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java index 8ed128c7e6..39b5973808 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/actor/instance/L2SchemeBufferInstance.java @@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; public class L2SchemeBufferInstance extends L2Npc @@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { - if (skills.size() < player.getStat().getMaxBuffCount()) + final Skill skill = SkillData.getInstance().getSkill(skillId, SkillData.getInstance().getMaxLevel(skillId)); + if (skill.isDance()) { - skills.add(skillId); + if (getCountOf(skills, true) < Config.DANCES_MAX_AMOUNT) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of dances/songs."); + } } else { - player.sendMessage("This scheme has reached the maximum amount of buffs."); + if (getCountOf(skills, false) < player.getStat().getMaxBuffCount()) + { + skills.add(skillId); + } + else + { + player.sendMessage("This scheme has reached the maximum amount of buffs."); + } } } else if (currentCommand.startsWith("skillunselect")) @@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc for (Map.Entry> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); - sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); + sb.append("" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + ""); sb.append("Use on Me | "); sb.append("Use on Pet | "); sb.append("Edit | "); @@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc html.setFile(player, getHtmlPath(getId(), 2)); html.replace("%schemename%", schemeName); - html.replace("%count%", schemeSkills.size() + " / " + player.getStat().getMaxBuffCount()); + html.replace("%count%", getCountOf(schemeSkills, false) + " / " + player.getStat().getMaxBuffCount() + " buffs, " + getCountOf(schemeSkills, true) + " / " + Config.DANCES_MAX_AMOUNT + " dances/songs"); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%objectId%", getObjectId()); @@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc { return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } + + private static long getCountOf(List skills, boolean dances) + { + return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count(); + } } \ No newline at end of file