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