Scheme buffer improvements.

Contributed by Sahar.
This commit is contained in:
MobiusDev 2018-05-11 22:20:58 +00:00
parent fbe58c63a9
commit d82c8e3575
8 changed files with 108 additions and 24 deletions

View File

@ -1,5 +1,5 @@
<html><body> <html><body>
<font color="LEVEL">%schemename%</font> scheme holds %count% buffs.<br> <font color="LEVEL">%schemename%</font> scheme holds %count%.<br>
<center> <center>
%typesframe%<br> %typesframe%<br>
%skilllistframe%<br> %skilllistframe%<br>

View File

@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.L2Summon;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
public class L2SchemeBufferInstance extends L2Npc public class L2SchemeBufferInstance extends L2Npc
@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc
if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) 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 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")) else if (currentCommand.startsWith("skillunselect"))
@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc
for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
{ {
final int cost = getFee(scheme.getValue()); final int cost = getFee(scheme.getValue());
sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>"); sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;");
@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc
html.setFile(player, getHtmlPath(getId(), 2)); html.setFile(player, getHtmlPath(getId(), 2));
html.replace("%schemename%", schemeName); 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("%typesframe%", getTypesFrame(groupType, schemeName));
html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page));
html.replace("%objectId%", getObjectId()); html.replace("%objectId%", getObjectId());
@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc
{ {
return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1);
} }
private static long getCountOf(List<Integer> skills, boolean dances)
{
return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count();
}
} }

View File

@ -1,5 +1,5 @@
<html><body> <html><body>
<font color="LEVEL">%schemename%</font> scheme holds %count% buffs.<br> <font color="LEVEL">%schemename%</font> scheme holds %count%.<br>
<center> <center>
%typesframe%<br> %typesframe%<br>
%skilllistframe%<br> %skilllistframe%<br>

View File

@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.L2Summon;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
public class L2SchemeBufferInstance extends L2Npc public class L2SchemeBufferInstance extends L2Npc
@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc
if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) 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 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")) else if (currentCommand.startsWith("skillunselect"))
@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc
for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
{ {
final int cost = getFee(scheme.getValue()); final int cost = getFee(scheme.getValue());
sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>"); sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;");
@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc
html.setFile(player, getHtmlPath(getId(), 2)); html.setFile(player, getHtmlPath(getId(), 2));
html.replace("%schemename%", schemeName); 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("%typesframe%", getTypesFrame(groupType, schemeName));
html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page));
html.replace("%objectId%", getObjectId()); html.replace("%objectId%", getObjectId());
@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc
{ {
return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1);
} }
private static long getCountOf(List<Integer> skills, boolean dances)
{
return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count();
}
} }

View File

@ -1,5 +1,5 @@
<html><body> <html><body>
<font color="LEVEL">%schemename%</font> scheme holds %count% buffs.<br> <font color="LEVEL">%schemename%</font> scheme holds %count%.<br>
<center> <center>
%typesframe%<br> %typesframe%<br>
%skilllistframe%<br> %skilllistframe%<br>

View File

@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.L2Summon;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
public class L2SchemeBufferInstance extends L2Npc public class L2SchemeBufferInstance extends L2Npc
@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc
if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) 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 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")) else if (currentCommand.startsWith("skillunselect"))
@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc
for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
{ {
final int cost = getFee(scheme.getValue()); final int cost = getFee(scheme.getValue());
sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>"); sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;");
@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc
html.setFile(player, getHtmlPath(getId(), 2)); html.setFile(player, getHtmlPath(getId(), 2));
html.replace("%schemename%", schemeName); 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("%typesframe%", getTypesFrame(groupType, schemeName));
html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page));
html.replace("%objectId%", getObjectId()); html.replace("%objectId%", getObjectId());
@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc
{ {
return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1);
} }
private static long getCountOf(List<Integer> skills, boolean dances)
{
return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count();
}
} }

View File

@ -1,5 +1,5 @@
<html><body> <html><body>
<font color="LEVEL">%schemename%</font> scheme holds %count% buffs.<br> <font color="LEVEL">%schemename%</font> scheme holds %count%.<br>
<center> <center>
%typesframe%<br> %typesframe%<br>
%skilllistframe%<br> %skilllistframe%<br>

View File

@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.L2Summon;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
public class L2SchemeBufferInstance extends L2Npc public class L2SchemeBufferInstance extends L2Npc
@ -136,13 +137,28 @@ public class L2SchemeBufferInstance extends L2Npc
if (currentCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) 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 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")) else if (currentCommand.startsWith("skillunselect"))
@ -241,7 +257,7 @@ public class L2SchemeBufferInstance extends L2Npc
for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
{ {
final int cost = getFee(scheme.getValue()); final int cost = getFee(scheme.getValue());
sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " / " + player.getStat().getMaxBuffCount() + "]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>"); sb.append("<font color=\"LEVEL\">" + scheme.getKey() + " [" + scheme.getValue().size() + " skill(s)]" + ((cost > 0) ? " - cost: " + NumberFormat.getInstance(Locale.ENGLISH).format(cost) : "") + "</font><br1>");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + "\">Use on Me</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_givebuffs " + scheme.getKey() + " " + cost + " pet\">Use on Pet</a>&nbsp;|&nbsp;");
sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;"); sb.append("<a action=\"bypass -h npc_%objectId%_editschemes Buffs " + scheme.getKey() + " 1\">Edit</a>&nbsp;|&nbsp;");
@ -271,7 +287,7 @@ public class L2SchemeBufferInstance extends L2Npc
html.setFile(player, getHtmlPath(getId(), 2)); html.setFile(player, getHtmlPath(getId(), 2));
html.replace("%schemename%", schemeName); 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("%typesframe%", getTypesFrame(groupType, schemeName));
html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page)); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName, page));
html.replace("%objectId%", getObjectId()); html.replace("%objectId%", getObjectId());
@ -447,4 +463,9 @@ public class L2SchemeBufferInstance extends L2Npc
{ {
return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1);
} }
private static long getCountOf(List<Integer> skills, boolean dances)
{
return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count();
}
} }