Store sub certificate count in player variables.
This commit is contained in:
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -234,7 +247,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int index = Integer.parseInt(substrings[1]);
|
final int index = Integer.parseInt(substrings[1]);
|
||||||
if ((index < 0) || (index > 3))
|
if ((index < 0) || (index > (DUAL_SKILL_LEVELS.length - 1)))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -234,7 +247,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int index = Integer.parseInt(substrings[1]);
|
final int index = Integer.parseInt(substrings[1]);
|
||||||
if ((index < 0) || (index > 3))
|
if ((index < 0) || (index > (DUAL_SKILL_LEVELS.length - 1)))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -234,7 +247,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int index = Integer.parseInt(substrings[1]);
|
final int index = Integer.parseInt(substrings[1]);
|
||||||
if ((index < 0) || (index > 3))
|
if ((index < 0) || (index > (DUAL_SKILL_LEVELS.length - 1)))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -22,6 +22,7 @@ import org.l2jmobius.Config;
|
|||||||
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -53,6 +54,8 @@ public class Gallias extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Gallias()
|
private Gallias()
|
||||||
{
|
{
|
||||||
@@ -167,8 +170,14 @@ public class Gallias extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "34514-20.html";
|
htmltext = "34514-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -205,6 +214,10 @@ public class Gallias extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -256,8 +269,13 @@ public class Gallias extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "34514-29.html");
|
htmltext = getHtm(player, "34514-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -305,6 +323,7 @@ public class Gallias extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.data.xml.impl.SkillData;
|
|||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.events.EventType;
|
import org.l2jmobius.gameserver.model.events.EventType;
|
||||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||||
@@ -51,6 +52,8 @@ public class Trandon extends AbstractNpcAI
|
|||||||
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
private static final int[] SUB_SKILL_LEVELS = {65, 70, 75, 80};
|
||||||
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
private static final int[] DUAL_SKILL_LEVELS = {85, 90, 95, 99, 101, 103, 105};
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
private static final String SUB_CERTIFICATE_COUNT_VAR = "SUB_CERTIFICATE_COUNT";
|
||||||
|
private static final String DUAL_CERTIFICATE_COUNT_VAR = "DUAL_CERTIFICATE_COUNT";
|
||||||
|
|
||||||
private Trandon()
|
private Trandon()
|
||||||
{
|
{
|
||||||
@@ -153,8 +156,14 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getSubSkillVariableName(player, level), true);
|
final int subId = player.getClassId().getId();
|
||||||
giveItems(player, SUB_CERTIFICATE, 1);
|
final int currentCount = player.getVariables().getInt(SUB_CERTIFICATE_COUNT_VAR + subId, 0);
|
||||||
|
if (currentCount < SUB_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(SUB_CERTIFICATE_COUNT_VAR + subId, currentCount + 1);
|
||||||
|
vars.set(getSubSkillVariableName(player, level), true);
|
||||||
|
giveItems(player, SUB_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = "33490-20.html";
|
htmltext = "33490-20.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -200,6 +209,10 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, SUB_CERTIFICATE, -1);
|
takeItems(player, SUB_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_SUBCLASS_SKILLS);
|
||||||
|
for (SubClass subclass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(SUB_CERTIFICATE_COUNT_VAR + subclass.getClassId());
|
||||||
|
}
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int i = 1; i <= 3; i++)
|
||||||
@@ -251,8 +264,13 @@ public class Trandon extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars.set(getDualSkillVariableName(level), true);
|
final int currentCount = player.getVariables().getInt(DUAL_CERTIFICATE_COUNT_VAR, 0);
|
||||||
giveItems(player, DUAL_CERTIFICATE, 1);
|
if (currentCount < DUAL_SKILL_LEVELS.length)
|
||||||
|
{
|
||||||
|
player.getVariables().set(DUAL_CERTIFICATE_COUNT_VAR, currentCount + 1);
|
||||||
|
vars.set(getDualSkillVariableName(level), true);
|
||||||
|
giveItems(player, DUAL_CERTIFICATE, 1);
|
||||||
|
}
|
||||||
htmltext = getHtm(player, "33490-29.html");
|
htmltext = getHtm(player, "33490-29.html");
|
||||||
}
|
}
|
||||||
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
htmltext = htmltext.replace("%level%", String.valueOf(level));
|
||||||
@@ -300,6 +318,7 @@ public class Trandon extends AbstractNpcAI
|
|||||||
htmltext = null; // TODO: Unknown html
|
htmltext = null; // TODO: Unknown html
|
||||||
takeItems(player, DUAL_CERTIFICATE, -1);
|
takeItems(player, DUAL_CERTIFICATE, -1);
|
||||||
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
takeItems(player, Inventory.ADENA_ID, Config.FEE_DELETE_DUALCLASS_SKILLS);
|
||||||
|
player.getVariables().remove(DUAL_CERTIFICATE_COUNT_VAR);
|
||||||
|
|
||||||
final PlayerVariables vars = player.getVariables();
|
final PlayerVariables vars = player.getVariables();
|
||||||
for (int lv : DUAL_SKILL_LEVELS)
|
for (int lv : DUAL_SKILL_LEVELS)
|
||||||
|
Reference in New Issue
Block a user