Fixing ClassMaster and preliminary drop of PlayerClass.
This commit is contained in:
parent
14602f5e47
commit
c0d84f833e
@ -22,8 +22,6 @@ import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
|||||||
import org.l2jmobius.gameserver.datatables.xml.ItemTable;
|
import org.l2jmobius.gameserver.datatables.xml.ItemTable;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassLevel;
|
|
||||||
import org.l2jmobius.gameserver.model.base.PlayerClass;
|
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@ -84,20 +82,20 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
final ClassId classId = player.getClassId();
|
final ClassId classId = player.getClassId();
|
||||||
int jobLevel = 0;
|
int jobLevel = 0;
|
||||||
final int level = player.getLevel();
|
final int level = player.getLevel();
|
||||||
final ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();
|
final int lvl = classId.level();
|
||||||
switch (lvl)
|
switch (lvl)
|
||||||
{
|
{
|
||||||
case FIRST:
|
case 0:
|
||||||
{
|
{
|
||||||
jobLevel = 1;
|
jobLevel = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SECOND:
|
case 1:
|
||||||
{
|
{
|
||||||
jobLevel = 2;
|
jobLevel = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case THIRD:
|
case 2:
|
||||||
{
|
{
|
||||||
jobLevel = 3;
|
jobLevel = 3;
|
||||||
break;
|
break;
|
||||||
@ -123,7 +121,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
{
|
{
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32></center><br><br>");
|
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
||||||
|
|
||||||
if (((level >= 20) && (jobLevel == 1) && Config.ALLOW_CLASS_MASTERS_FIRST_CLASS) || ((level >= 40) && (jobLevel == 2) && Config.ALLOW_CLASS_MASTERS_SECOND_CLASS) || ((level >= 76) && (jobLevel == 3) && Config.ALLOW_CLASS_MASTERS_THIRD_CLASS))
|
if (((level >= 20) && (jobLevel == 1) && Config.ALLOW_CLASS_MASTERS_FIRST_CLASS) || ((level >= 40) && (jobLevel == 2) && Config.ALLOW_CLASS_MASTERS_SECOND_CLASS) || ((level >= 76) && (jobLevel == 3) && Config.ALLOW_CLASS_MASTERS_THIRD_CLASS))
|
||||||
{
|
{
|
||||||
@ -153,7 +151,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
{
|
{
|
||||||
sb.append("<br><br><a action=\"bypass -h npc_" + getObjectId() + "_upgrade_hatchling\">Upgrade Hatchling to Strider</a><br>");
|
sb.append("<br><br><a action=\"bypass -h npc_" + getObjectId() + "_upgrade_hatchling\">Upgrade Hatchling to Strider</a><br>");
|
||||||
}
|
}
|
||||||
sb.append("<br><center><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
||||||
html.setHtml(sb.toString());
|
html.setHtml(sb.toString());
|
||||||
player.sendPacket(html);
|
player.sendPacket(html);
|
||||||
}
|
}
|
||||||
@ -244,8 +242,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
|
|
||||||
player.setTarget(player);
|
player.setTarget(player);
|
||||||
|
|
||||||
final ClassLevel lvlnow = PlayerClass.values()[classId.getId()].getLevel();
|
final int lvlnow = classId.level();
|
||||||
|
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
changeClass(player, val);
|
changeClass(player, val);
|
||||||
@ -262,9 +259,9 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
|
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32></center><br><br>");
|
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
||||||
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
||||||
sb.append("<br><center><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
||||||
|
|
||||||
html.setHtml(sb.toString());
|
html.setHtml(sb.toString());
|
||||||
player.sendPacket(html);
|
player.sendPacket(html);
|
||||||
@ -272,17 +269,17 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
}
|
}
|
||||||
switch (lvlnow)
|
switch (lvlnow)
|
||||||
{
|
{
|
||||||
case FIRST:
|
case 0:
|
||||||
{
|
{
|
||||||
jobLevel = 1;
|
jobLevel = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SECOND:
|
case 1:
|
||||||
{
|
{
|
||||||
jobLevel = 2;
|
jobLevel = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case THIRD:
|
case 2:
|
||||||
{
|
{
|
||||||
jobLevel = 3;
|
jobLevel = 3;
|
||||||
break;
|
break;
|
||||||
@ -298,20 +295,20 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
return; // no more job changes
|
return; // no more job changes
|
||||||
}
|
}
|
||||||
|
|
||||||
final ClassLevel lvlnext = PlayerClass.values()[val].getLevel();
|
final int lvlnext = ClassId.getClassId(val).level();
|
||||||
switch (lvlnext)
|
switch (lvlnext)
|
||||||
{
|
{
|
||||||
case FIRST:
|
case 0:
|
||||||
{
|
{
|
||||||
newJobLevel = 1;
|
newJobLevel = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SECOND:
|
case 1:
|
||||||
{
|
{
|
||||||
newJobLevel = 2;
|
newJobLevel = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case THIRD:
|
case 2:
|
||||||
{
|
{
|
||||||
newJobLevel = 3;
|
newJobLevel = 3;
|
||||||
break;
|
break;
|
||||||
@ -403,9 +400,9 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
|
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32></center><br><br>");
|
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
||||||
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
||||||
sb.append("<br><center><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
||||||
|
|
||||||
html.setHtml(sb.toString());
|
html.setHtml(sb.toString());
|
||||||
player.sendPacket(html);
|
player.sendPacket(html);
|
||||||
|
@ -129,8 +129,6 @@ import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
|||||||
import org.l2jmobius.gameserver.model.actor.status.PlayerStatus;
|
import org.l2jmobius.gameserver.model.actor.status.PlayerStatus;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassLevel;
|
|
||||||
import org.l2jmobius.gameserver.model.base.PlayerClass;
|
|
||||||
import org.l2jmobius.gameserver.model.base.SubClass;
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
||||||
@ -2918,7 +2916,7 @@ public class PlayerInstance extends Playable
|
|||||||
*/
|
*/
|
||||||
public void setClassId(int id)
|
public void setClassId(int id)
|
||||||
{
|
{
|
||||||
if ((getLvlJoinedAcademy() != 0) && (_clan != null) && (PlayerClass.values()[id].getLevel() == ClassLevel.THIRD))
|
if ((getLvlJoinedAcademy() != 0) && (_clan != null) && (ClassId.getClassId(id).level() == 2))
|
||||||
{
|
{
|
||||||
if (getLvlJoinedAcademy() <= 16)
|
if (getLvlJoinedAcademy() <= 16)
|
||||||
{
|
{
|
||||||
|
@ -963,9 +963,7 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
* follows: Treasure Hunter, Plainswalker and Abyss Walker Hawkeye, Silver Ranger and Phantom Ranger Paladin, Dark Avenger, Temple Knight and Shillien Knight Warlocks, Elemental Summoner and Phantom Summoner Elder and Shillien Elder Swordsinger and Bladedancer Sorcerer, Spellsinger and
|
* follows: Treasure Hunter, Plainswalker and Abyss Walker Hawkeye, Silver Ranger and Phantom Ranger Paladin, Dark Avenger, Temple Knight and Shillien Knight Warlocks, Elemental Summoner and Phantom Summoner Elder and Shillien Elder Swordsinger and Bladedancer Sorcerer, Spellsinger and
|
||||||
* Spellhowler
|
* Spellhowler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
final Set<PlayerClass> availSubs = currClass.getAvailableSubclasses(player);
|
final Set<PlayerClass> availSubs = currClass.getAvailableSubclasses(player);
|
||||||
|
|
||||||
if (availSubs != null)
|
if (availSubs != null)
|
||||||
{
|
{
|
||||||
for (PlayerClass availSub : availSubs)
|
for (PlayerClass availSub : availSubs)
|
||||||
|
@ -23,8 +23,6 @@ import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.ClassMasterInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.ClassMasterInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassLevel;
|
|
||||||
import org.l2jmobius.gameserver.model.base.PlayerClass;
|
|
||||||
import org.l2jmobius.gameserver.model.base.SubClass;
|
import org.l2jmobius.gameserver.model.base.SubClass;
|
||||||
import org.l2jmobius.gameserver.model.entity.event.TvT;
|
import org.l2jmobius.gameserver.model.entity.event.TvT;
|
||||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
@ -178,24 +176,22 @@ public class PlayerStat extends PlayableStat
|
|||||||
if (Config.ALLOW_CLASS_MASTERS && Config.ALLOW_REMOTE_CLASS_MASTERS)
|
if (Config.ALLOW_CLASS_MASTERS && Config.ALLOW_REMOTE_CLASS_MASTERS)
|
||||||
{
|
{
|
||||||
final ClassMasterInstance masterInstance = ClassMasterInstance.getInstance();
|
final ClassMasterInstance masterInstance = ClassMasterInstance.getInstance();
|
||||||
|
|
||||||
if (masterInstance != null)
|
if (masterInstance != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
final ClassLevel curLevel = PlayerClass.values()[getActiveChar().getClassId().getId()].getLevel();
|
final int curLevel = getActiveChar().getClassId().level();
|
||||||
if ((getLevel() >= 20) && (curLevel == ClassLevel.FIRST))
|
if ((getLevel() >= 20) && (curLevel == 0))
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
||||||
}
|
}
|
||||||
else if ((getLevel() >= 40) && (curLevel == ClassLevel.SECOND))
|
else if ((getLevel() >= 40) && (curLevel == 1))
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
||||||
}
|
}
|
||||||
else if ((getLevel() >= 76) && (curLevel == ClassLevel.THIRD))
|
else if ((getLevel() >= 76) && (curLevel == 2))
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
ClassMasterInstance.getInstance().onAction(getActiveChar());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -99,6 +99,38 @@ public enum PlayerClass
|
|||||||
DwarvenArtisan(Race.DWARF, Fighter, SECOND),
|
DwarvenArtisan(Race.DWARF, Fighter, SECOND),
|
||||||
Warsmith(Race.DWARF, Fighter, THIRD),
|
Warsmith(Race.DWARF, Fighter, THIRD),
|
||||||
|
|
||||||
|
// TODO: Diminish the use of PlayerClass.values() and drop this class.
|
||||||
|
dummyEntry1(null, null, null),
|
||||||
|
dummyEntry2(null, null, null),
|
||||||
|
dummyEntry3(null, null, null),
|
||||||
|
dummyEntry4(null, null, null),
|
||||||
|
dummyEntry5(null, null, null),
|
||||||
|
dummyEntry6(null, null, null),
|
||||||
|
dummyEntry7(null, null, null),
|
||||||
|
dummyEntry8(null, null, null),
|
||||||
|
dummyEntry9(null, null, null),
|
||||||
|
dummyEntry10(null, null, null),
|
||||||
|
dummyEntry11(null, null, null),
|
||||||
|
dummyEntry12(null, null, null),
|
||||||
|
dummyEntry13(null, null, null),
|
||||||
|
dummyEntry14(null, null, null),
|
||||||
|
dummyEntry15(null, null, null),
|
||||||
|
dummyEntry16(null, null, null),
|
||||||
|
dummyEntry17(null, null, null),
|
||||||
|
dummyEntry18(null, null, null),
|
||||||
|
dummyEntry19(null, null, null),
|
||||||
|
dummyEntry20(null, null, null),
|
||||||
|
dummyEntry21(null, null, null),
|
||||||
|
dummyEntry22(null, null, null),
|
||||||
|
dummyEntry23(null, null, null),
|
||||||
|
dummyEntry24(null, null, null),
|
||||||
|
dummyEntry25(null, null, null),
|
||||||
|
dummyEntry26(null, null, null),
|
||||||
|
dummyEntry27(null, null, null),
|
||||||
|
dummyEntry28(null, null, null),
|
||||||
|
dummyEntry29(null, null, null),
|
||||||
|
dummyEntry30(null, null, null),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (3rd classes)
|
* (3rd classes)
|
||||||
*/
|
*/
|
||||||
@ -152,7 +184,6 @@ public enum PlayerClass
|
|||||||
private static final Set<PlayerClass> subclasseSet5 = EnumSet.of(Sorceror, Spellsinger, Spellhowler);
|
private static final Set<PlayerClass> subclasseSet5 = EnumSet.of(Sorceror, Spellsinger, Spellhowler);
|
||||||
|
|
||||||
private static final EnumMap<PlayerClass, Set<PlayerClass>> subclassSetMap = new EnumMap<>(PlayerClass.class);
|
private static final EnumMap<PlayerClass, Set<PlayerClass>> subclassSetMap = new EnumMap<>(PlayerClass.class);
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
final Set<PlayerClass> subclasses = getSet(null, THIRD);
|
final Set<PlayerClass> subclasses = getSet(null, THIRD);
|
||||||
|
@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
|
|||||||
*/
|
*/
|
||||||
public class SubClass
|
public class SubClass
|
||||||
{
|
{
|
||||||
private PlayerClass _class;
|
private ClassId _class;
|
||||||
private long _exp = ExperienceData.getInstance().getExpForLevel(Config.BASE_SUBCLASS_LEVEL);
|
private long _exp = ExperienceData.getInstance().getExpForLevel(Config.BASE_SUBCLASS_LEVEL);
|
||||||
private int _sp = 0;
|
private int _sp = 0;
|
||||||
private int _level = Config.BASE_SUBCLASS_LEVEL;
|
private int _level = Config.BASE_SUBCLASS_LEVEL;
|
||||||
@ -34,7 +34,7 @@ public class SubClass
|
|||||||
|
|
||||||
public SubClass(int classId, long exp, int sp, byte level, int classIndex)
|
public SubClass(int classId, long exp, int sp, byte level, int classIndex)
|
||||||
{
|
{
|
||||||
_class = PlayerClass.values()[classId];
|
_class = ClassId.getClassId(classId);
|
||||||
_exp = exp;
|
_exp = exp;
|
||||||
_sp = sp;
|
_sp = sp;
|
||||||
_level = level;
|
_level = level;
|
||||||
@ -44,7 +44,7 @@ public class SubClass
|
|||||||
public SubClass(int classId, int classIndex)
|
public SubClass(int classId, int classIndex)
|
||||||
{
|
{
|
||||||
// Used for defining a sub class using default values for XP, SP and player level.
|
// Used for defining a sub class using default values for XP, SP and player level.
|
||||||
_class = PlayerClass.values()[classId];
|
_class = ClassId.getClassId(classId);
|
||||||
_classIndex = classIndex;
|
_classIndex = classIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,14 +53,14 @@ public class SubClass
|
|||||||
// Used for specifying ALL attributes of a sub class directly, using the preset default values.
|
// Used for specifying ALL attributes of a sub class directly, using the preset default values.
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerClass getClassDefinition()
|
public ClassId getClassDefinition()
|
||||||
{
|
{
|
||||||
return _class;
|
return _class;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getClassId()
|
public int getClassId()
|
||||||
{
|
{
|
||||||
return _class.ordinal();
|
return _class.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getExp()
|
public long getExp()
|
||||||
@ -85,7 +85,7 @@ public class SubClass
|
|||||||
|
|
||||||
public void setClassId(int classId)
|
public void setClassId(int classId)
|
||||||
{
|
{
|
||||||
_class = PlayerClass.values()[classId];
|
_class = ClassId.getClassId(classId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExp(long expValue)
|
public void setExp(long expValue)
|
||||||
|
@ -49,8 +49,6 @@ import org.l2jmobius.gameserver.model.Skill;
|
|||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.ClassMasterInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.ClassMasterInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassLevel;
|
|
||||||
import org.l2jmobius.gameserver.model.base.PlayerClass;
|
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.entity.Announcements;
|
import org.l2jmobius.gameserver.model.entity.Announcements;
|
||||||
import org.l2jmobius.gameserver.model.entity.ClanHall;
|
import org.l2jmobius.gameserver.model.entity.ClanHall;
|
||||||
@ -465,17 +463,16 @@ public class EnterWorld extends GameClientPacket
|
|||||||
final ClassMasterInstance master = ClassMasterInstance.getInstance();
|
final ClassMasterInstance master = ClassMasterInstance.getInstance();
|
||||||
if (master != null)
|
if (master != null)
|
||||||
{
|
{
|
||||||
final ClassLevel lvlnow = PlayerClass.values()[player.getClassId().getId()].getLevel();
|
final int lvlnow = player.getClassId().level();
|
||||||
|
if ((player.getLevel() >= 20) && (lvlnow == 0))
|
||||||
if ((player.getLevel() >= 20) && (lvlnow == ClassLevel.FIRST))
|
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(player);
|
ClassMasterInstance.getInstance().onAction(player);
|
||||||
}
|
}
|
||||||
else if ((player.getLevel() >= 40) && (lvlnow == ClassLevel.SECOND))
|
else if ((player.getLevel() >= 40) && (lvlnow == 1))
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(player);
|
ClassMasterInstance.getInstance().onAction(player);
|
||||||
}
|
}
|
||||||
else if ((player.getLevel() >= 76) && (lvlnow == ClassLevel.THIRD))
|
else if ((player.getLevel() >= 76) && (lvlnow == 2))
|
||||||
{
|
{
|
||||||
ClassMasterInstance.getInstance().onAction(player);
|
ClassMasterInstance.getInstance().onAction(player);
|
||||||
}
|
}
|
||||||
|
@ -125,9 +125,8 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final int endOfId = _command.indexOf('_', 5);
|
|
||||||
String id;
|
String id;
|
||||||
|
final int endOfId = _command.indexOf('_', 5);
|
||||||
if (endOfId > 0)
|
if (endOfId > 0)
|
||||||
{
|
{
|
||||||
id = _command.substring(4, endOfId);
|
id = _command.substring(4, endOfId);
|
||||||
@ -139,8 +138,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final WorldObject object = World.getInstance().findObject(Integer.parseInt(id));
|
|
||||||
|
|
||||||
if (_command.substring(endOfId + 1).startsWith("event_participate"))
|
if (_command.substring(endOfId + 1).startsWith("event_participate"))
|
||||||
{
|
{
|
||||||
GameEvent.inscribePlayer(player);
|
GameEvent.inscribePlayer(player);
|
||||||
@ -158,7 +155,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
player.sendMessage("The event is already started. You can not join now!");
|
player.sendMessage("The event is already started. You can not join now!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (_command.substring(endOfId + 1).startsWith("tvt_player_leave"))
|
else if (_command.substring(endOfId + 1).startsWith("tvt_player_leave"))
|
||||||
{
|
{
|
||||||
if (TvT.isJoining())
|
if (TvT.isJoining())
|
||||||
@ -170,7 +166,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
player.sendMessage("The event is already started. You can not leave now!");
|
player.sendMessage("The event is already started. You can not leave now!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (_command.substring(endOfId + 1).startsWith("dmevent_player_join"))
|
else if (_command.substring(endOfId + 1).startsWith("dmevent_player_join"))
|
||||||
{
|
{
|
||||||
if (DM.isJoining())
|
if (DM.isJoining())
|
||||||
@ -182,7 +177,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
player.sendMessage("The event is already started. You can't join now!");
|
player.sendMessage("The event is already started. You can't join now!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (_command.substring(endOfId + 1).startsWith("dmevent_player_leave"))
|
else if (_command.substring(endOfId + 1).startsWith("dmevent_player_leave"))
|
||||||
{
|
{
|
||||||
if (DM.isJoining())
|
if (DM.isJoining())
|
||||||
@ -194,7 +188,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
player.sendMessage("The event is already started. You can't leave now!");
|
player.sendMessage("The event is already started. You can't leave now!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (_command.substring(endOfId + 1).startsWith("ctf_player_join "))
|
else if (_command.substring(endOfId + 1).startsWith("ctf_player_join "))
|
||||||
{
|
{
|
||||||
final String teamName = _command.substring(endOfId + 1).substring(16);
|
final String teamName = _command.substring(endOfId + 1).substring(16);
|
||||||
@ -207,7 +200,6 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
player.sendMessage("The event is already started. You can't join now!");
|
player.sendMessage("The event is already started. You can't join now!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (_command.substring(endOfId + 1).startsWith("ctf_player_leave"))
|
else if (_command.substring(endOfId + 1).startsWith("ctf_player_leave"))
|
||||||
{
|
{
|
||||||
if (CTF.isJoining())
|
if (CTF.isJoining())
|
||||||
@ -240,9 +232,11 @@ public class RequestBypassToServer extends GameClientPacket
|
|||||||
GameEvent.inscribePlayer(player);
|
GameEvent.inscribePlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ((Config.ALLOW_CLASS_MASTERS && Config.ALLOW_REMOTE_CLASS_MASTERS && (object instanceof ClassMasterInstance)) || ((object instanceof NpcInstance) && (endOfId > 0) && player.isInsideRadius(object, NpcInstance.INTERACTION_DISTANCE, false, false)))
|
final WorldObject object = World.getInstance().findObject(Integer.parseInt(id));
|
||||||
|
if ((Config.ALLOW_CLASS_MASTERS && Config.ALLOW_REMOTE_CLASS_MASTERS && (object instanceof ClassMasterInstance)) //
|
||||||
|
|| ((object instanceof NpcInstance) && (endOfId > 0) && player.isInsideRadius(object, NpcInstance.INTERACTION_DISTANCE, false, false)))
|
||||||
{
|
{
|
||||||
((NpcInstance) object).onBypassFeedback(player, _command.substring(endOfId + 1));
|
((NpcInstance) object).onBypassFeedback(player, _command.replace("npc_" + object.getObjectId() + "_", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
Loading…
Reference in New Issue
Block a user