Removal of Balthus Knights configurations.

This commit is contained in:
MobiusDevelopment 2022-03-07 22:00:56 +00:00
parent bfb9625122
commit 2e3281b3db
15 changed files with 21 additions and 465 deletions

View File

@ -1,28 +0,0 @@
# ---------------------------------------------------------------------------
# Balthus Knights Settings
# ---------------------------------------------------------------------------
# Enable high level boost character creation.
# Default: False
BalthusKnightsEnabled = False
# Level for boosted characters.
# Retail: 85
BalthusKnightsLevel = 85
# Enable high level boost only for premium accounts.
# Default: True
BalthusKnightsPremium = True
# Coordinates for starting location.
# Default: -114371,256483,-1286 (Talking Island)
BalthusKnightsLocation = -114371,256483,-1286
# Items rewarded to boosted characters.
# You can add multiple items separated by commas.
# Default: 46919;1
BalthusKnightsRewards = 46919;1
# Reward available skills to boosted characters.
# Default: True
BalthusKnightsRewardSkills = True

View File

@ -92,7 +92,6 @@ public class Config
public static final String FORTSIEGE_CONFIG_FILE = "./config/FortSiege.ini";
private static final String ATTENDANCE_CONFIG_FILE = "./config/AttendanceRewards.ini";
private static final String ATTRIBUTE_SYSTEM_FILE = "./config/AttributeSystem.ini";
private static final String BALTHUS_KNIGHTS_CONFIG_FILE = "./config/BalthusKnights.ini";
private static final String CHARACTER_CONFIG_FILE = "./config/Character.ini";
private static final String FEATURE_CONFIG_FILE = "./config/Feature.ini";
private static final String FLOOD_PROTECTOR_CONFIG_FILE = "./config/FloodProtector.ini";
@ -159,12 +158,6 @@ public class Config
public static int ATTENDANCE_REWARD_DELAY;
public static boolean ATTENDANCE_POPUP_START;
public static boolean ATTENDANCE_POPUP_WINDOW;
public static boolean BALTHUS_KNIGHTS_ENABLED;
public static int BALTHUS_KNIGHTS_LEVEL;
public static boolean BALTHUS_KNIGHTS_PREMIUM;
public static Location BALTHUS_KNIGHTS_LOCATION;
public static List<ItemHolder> BALTHUS_KNIGHTS_REWARDS;
public static boolean BALTHUS_KNIGHTS_REWARD_SKILLS;
public static boolean PLAYER_DELEVEL;
public static int DELEVEL_MINIMUM;
public static boolean DECREASE_SKILL_LEVEL;
@ -1694,24 +1687,6 @@ public class Config
// Only R110 is used
R110_ARMOR_JEWEL = attributeConfig.getInt("R110ArmorJewel", 100);
// Load BalthusKnights config file (if exists)
final PropertiesParser balthusKnightsConfig = new PropertiesParser(BALTHUS_KNIGHTS_CONFIG_FILE);
BALTHUS_KNIGHTS_ENABLED = balthusKnightsConfig.getBoolean("BalthusKnightsEnabled", true);
BALTHUS_KNIGHTS_LEVEL = balthusKnightsConfig.getInt("BalthusKnightsLevel", 85);
BALTHUS_KNIGHTS_PREMIUM = balthusKnightsConfig.getBoolean("BalthusKnightsPremium", true);
final String[] balthusKnightsLocation = balthusKnightsConfig.getString("BalthusKnightsLocation", "-114371,256483,-1286").split(",");
BALTHUS_KNIGHTS_LOCATION = new Location(Integer.parseInt(balthusKnightsLocation[0]), Integer.parseInt(balthusKnightsLocation[1]), Integer.parseInt(balthusKnightsLocation[2]));
BALTHUS_KNIGHTS_REWARDS = new ArrayList<>();
for (String s : balthusKnightsConfig.getString("BalthusKnightsRewards", "46919;1").split(","))
{
if (s.isEmpty())
{
continue;
}
BALTHUS_KNIGHTS_REWARDS.add(new ItemHolder(Integer.parseInt(s.split(";")[0]), Integer.parseInt(s.split(";")[1])));
}
BALTHUS_KNIGHTS_REWARD_SKILLS = balthusKnightsConfig.getBoolean("BalthusKnightsRewardSkills", true);
// Load Character config file (if exists)
final PropertiesParser characterConfig = new PropertiesParser(CHARACTER_CONFIG_FILE);
PLAYER_DELEVEL = characterConfig.getBoolean("Delevel", true);

View File

@ -22,15 +22,12 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.sql.CharNameTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.FakePlayerData;
import org.l2jmobius.gameserver.data.xml.InitialEquipmentData;
import org.l2jmobius.gameserver.data.xml.InitialShortcutData;
import org.l2jmobius.gameserver.data.xml.PlayerTemplateData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.SkillTreeData;
import org.l2jmobius.gameserver.enums.ClassId;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.World;
@ -41,7 +38,6 @@ import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
import org.l2jmobius.gameserver.model.events.Containers;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.item.PlayerItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
@ -150,7 +146,6 @@ public class CharacterCreate implements IClientIncomingPacket
Player newChar = null;
PlayerTemplate template = null;
boolean balthusKnights = false;
/*
* DrHouse: Since checks for duplicate names are done using SQL, lock must be held until data is written to DB as well.
@ -168,43 +163,6 @@ public class CharacterCreate implements IClientIncomingPacket
return;
}
// Balthus Knights.
if (Config.BALTHUS_KNIGHTS_ENABLED && (!Config.BALTHUS_KNIGHTS_PREMIUM || (Config.PREMIUM_SYSTEM_ENABLED && (PremiumManager.getInstance().getPremiumExpiration(client.getAccountName()) > 0))))
{
if (_classId == 190)
{
_classId = 188; // Eviscerator
balthusKnights = true;
}
else if (_classId == 191)
{
_classId = 189; // Sayha Seer
balthusKnights = true;
}
else if ((_classId > 138) && (_classId < 147))
{
final String properClass = ClassId.getClassId(_classId).toString().split("_")[0];
for (ClassId classId : ClassId.values())
{
if (classId.getRace() == null)
{
continue;
}
if ((classId.getRace().ordinal() == _race) && classId.toString().startsWith(properClass))
{
_classId = classId.getId();
balthusKnights = true;
break;
}
}
}
}
if (!balthusKnights && (ClassId.getClassId(_classId).level() > 0))
{
client.sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
return;
}
template = PlayerTemplateData.getInstance().getTemplate(_classId);
if (template == null)
{
@ -283,16 +241,6 @@ public class CharacterCreate implements IClientIncomingPacket
newChar = Player.create(template, client.getAccountName(), _name, new PlayerAppearance(_face, _hairColor, _hairStyle, _sex != 0));
}
if (balthusKnights)
{
newChar.setExp(ExperienceData.getInstance().getExpForLevel(Config.BALTHUS_KNIGHTS_LEVEL));
newChar.getStat().setLevel(Config.BALTHUS_KNIGHTS_LEVEL);
if (Config.BALTHUS_KNIGHTS_REWARD_SKILLS)
{
newChar.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true, Config.AUTO_LEARN_SKILLS_WITHOUT_ITEMS);
}
}
// HP and MP are at maximum and CP is zero by default.
newChar.setCurrentHp(newChar.getMaxHp());
newChar.setCurrentMp(newChar.getMaxMp());
@ -315,10 +263,6 @@ public class CharacterCreate implements IClientIncomingPacket
{
newChar.setXYZInvisible(Config.FACTION_STARTING_LOCATION.getX(), Config.FACTION_STARTING_LOCATION.getY(), Config.FACTION_STARTING_LOCATION.getZ());
}
else if (balthusKnights)
{
newChar.setXYZInvisible(Config.BALTHUS_KNIGHTS_LOCATION.getX(), Config.BALTHUS_KNIGHTS_LOCATION.getY(), Config.BALTHUS_KNIGHTS_LOCATION.getZ());
}
else
{
final Location createLoc = template.getCreationPoint();
@ -357,23 +301,6 @@ public class CharacterCreate implements IClientIncomingPacket
}
}
}
if (balthusKnights)
{
for (ItemHolder reward : Config.BALTHUS_KNIGHTS_REWARDS)
{
final Item item = newChar.getInventory().addItem("Balthus Rewards", reward.getId(), reward.getCount(), newChar, null);
if (item == null)
{
PacketLogger.warning("Could not create item during char creation: itemId " + reward.getId() + ", amount " + reward.getCount() + ".");
continue;
}
if (item.isEquipable())
{
newChar.getInventory().equipItem(item);
}
}
}
for (SkillLearn skill : SkillTreeData.getInstance().getAvailableSkills(newChar, newChar.getClassId(), false, false, true))
{

View File

@ -30,7 +30,6 @@ import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.sql.ClanTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.CharSelectInfoPackage;
import org.l2jmobius.gameserver.model.VariationInstance;
import org.l2jmobius.gameserver.model.World;
@ -164,30 +163,8 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(1); // 0=can't play, 1=can play free until level 85, 2=100% free play
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
// Balthus Knights
if (Config.BALTHUS_KNIGHTS_ENABLED)
{
if (Config.BALTHUS_KNIGHTS_PREMIUM)
{
if (Config.PREMIUM_SYSTEM_ENABLED)
{
PremiumManager.getInstance().loadPremiumData(_loginName);
packet.writeC(PremiumManager.getInstance().getPremiumExpiration(_loginName) > 0 ? 1 : 0);
}
else
{
packet.writeC(0);
}
}
else
{
packet.writeC(1);
}
}
else
{
packet.writeC(0);
}
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -200,6 +177,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -258,8 +236,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food

View File

@ -1,28 +0,0 @@
# ---------------------------------------------------------------------------
# Balthus Knights Settings
# ---------------------------------------------------------------------------
# Enable high level boost character creation.
# Default: False
BalthusKnightsEnabled = False
# Level for boosted characters.
# Retail: 85
BalthusKnightsLevel = 85
# Enable high level boost only for premium accounts.
# Default: True
BalthusKnightsPremium = True
# Coordinates for starting location.
# Default: -114371,256483,-1286 (Talking Island)
BalthusKnightsLocation = -114371,256483,-1286
# Items rewarded to boosted characters.
# You can add multiple items separated by commas.
# Default: 46919;1
BalthusKnightsRewards = 46919;1
# Reward available skills to boosted characters.
# Default: True
BalthusKnightsRewardSkills = True

View File

@ -92,7 +92,6 @@ public class Config
public static final String FORTSIEGE_CONFIG_FILE = "./config/FortSiege.ini";
private static final String ATTENDANCE_CONFIG_FILE = "./config/AttendanceRewards.ini";
private static final String ATTRIBUTE_SYSTEM_FILE = "./config/AttributeSystem.ini";
private static final String BALTHUS_KNIGHTS_CONFIG_FILE = "./config/BalthusKnights.ini";
private static final String CHARACTER_CONFIG_FILE = "./config/Character.ini";
private static final String FEATURE_CONFIG_FILE = "./config/Feature.ini";
private static final String FLOOD_PROTECTOR_CONFIG_FILE = "./config/FloodProtector.ini";
@ -159,12 +158,6 @@ public class Config
public static int ATTENDANCE_REWARD_DELAY;
public static boolean ATTENDANCE_POPUP_START;
public static boolean ATTENDANCE_POPUP_WINDOW;
public static boolean BALTHUS_KNIGHTS_ENABLED;
public static int BALTHUS_KNIGHTS_LEVEL;
public static boolean BALTHUS_KNIGHTS_PREMIUM;
public static Location BALTHUS_KNIGHTS_LOCATION;
public static List<ItemHolder> BALTHUS_KNIGHTS_REWARDS;
public static boolean BALTHUS_KNIGHTS_REWARD_SKILLS;
public static boolean PLAYER_DELEVEL;
public static int DELEVEL_MINIMUM;
public static boolean DECREASE_SKILL_LEVEL;
@ -1696,24 +1689,6 @@ public class Config
// Only R110 is used
R110_ARMOR_JEWEL = attributeConfig.getInt("R110ArmorJewel", 100);
// Load BalthusKnights config file (if exists)
final PropertiesParser balthusKnightsConfig = new PropertiesParser(BALTHUS_KNIGHTS_CONFIG_FILE);
BALTHUS_KNIGHTS_ENABLED = balthusKnightsConfig.getBoolean("BalthusKnightsEnabled", true);
BALTHUS_KNIGHTS_LEVEL = balthusKnightsConfig.getInt("BalthusKnightsLevel", 85);
BALTHUS_KNIGHTS_PREMIUM = balthusKnightsConfig.getBoolean("BalthusKnightsPremium", true);
final String[] balthusKnightsLocation = balthusKnightsConfig.getString("BalthusKnightsLocation", "-114371,256483,-1286").split(",");
BALTHUS_KNIGHTS_LOCATION = new Location(Integer.parseInt(balthusKnightsLocation[0]), Integer.parseInt(balthusKnightsLocation[1]), Integer.parseInt(balthusKnightsLocation[2]));
BALTHUS_KNIGHTS_REWARDS = new ArrayList<>();
for (String s : balthusKnightsConfig.getString("BalthusKnightsRewards", "46919;1").split(","))
{
if (s.isEmpty())
{
continue;
}
BALTHUS_KNIGHTS_REWARDS.add(new ItemHolder(Integer.parseInt(s.split(";")[0]), Integer.parseInt(s.split(";")[1])));
}
BALTHUS_KNIGHTS_REWARD_SKILLS = balthusKnightsConfig.getBoolean("BalthusKnightsRewardSkills", true);
// Load Character config file (if exists)
final PropertiesParser characterConfig = new PropertiesParser(CHARACTER_CONFIG_FILE);
PLAYER_DELEVEL = characterConfig.getBoolean("Delevel", true);

View File

@ -22,15 +22,12 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.sql.CharNameTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.FakePlayerData;
import org.l2jmobius.gameserver.data.xml.InitialEquipmentData;
import org.l2jmobius.gameserver.data.xml.InitialShortcutData;
import org.l2jmobius.gameserver.data.xml.PlayerTemplateData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.SkillTreeData;
import org.l2jmobius.gameserver.enums.ClassId;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.World;
@ -41,7 +38,6 @@ import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
import org.l2jmobius.gameserver.model.events.Containers;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.item.PlayerItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
@ -150,7 +146,6 @@ public class CharacterCreate implements IClientIncomingPacket
Player newChar = null;
PlayerTemplate template = null;
boolean balthusKnights = false;
/*
* DrHouse: Since checks for duplicate names are done using SQL, lock must be held until data is written to DB as well.
@ -168,43 +163,6 @@ public class CharacterCreate implements IClientIncomingPacket
return;
}
// Balthus Knights.
if (Config.BALTHUS_KNIGHTS_ENABLED && (!Config.BALTHUS_KNIGHTS_PREMIUM || (Config.PREMIUM_SYSTEM_ENABLED && (PremiumManager.getInstance().getPremiumExpiration(client.getAccountName()) > 0))))
{
if (_classId == 190)
{
_classId = 188; // Eviscerator
balthusKnights = true;
}
else if (_classId == 191)
{
_classId = 189; // Sayha Seer
balthusKnights = true;
}
else if ((_classId > 138) && (_classId < 147))
{
final String properClass = ClassId.getClassId(_classId).toString().split("_")[0];
for (ClassId classId : ClassId.values())
{
if (classId.getRace() == null)
{
continue;
}
if ((classId.getRace().ordinal() == _race) && classId.toString().startsWith(properClass))
{
_classId = classId.getId();
balthusKnights = true;
break;
}
}
}
}
if (!balthusKnights && (ClassId.getClassId(_classId).level() > 0))
{
client.sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
return;
}
template = PlayerTemplateData.getInstance().getTemplate(_classId);
if (template == null)
{
@ -283,16 +241,6 @@ public class CharacterCreate implements IClientIncomingPacket
newChar = Player.create(template, client.getAccountName(), _name, new PlayerAppearance(_face, _hairColor, _hairStyle, _sex != 0));
}
if (balthusKnights)
{
newChar.setExp(ExperienceData.getInstance().getExpForLevel(Config.BALTHUS_KNIGHTS_LEVEL));
newChar.getStat().setLevel(Config.BALTHUS_KNIGHTS_LEVEL);
if (Config.BALTHUS_KNIGHTS_REWARD_SKILLS)
{
newChar.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true, Config.AUTO_LEARN_SKILLS_WITHOUT_ITEMS);
}
}
// HP and MP are at maximum and CP is zero by default.
newChar.setCurrentHp(newChar.getMaxHp());
newChar.setCurrentMp(newChar.getMaxMp());
@ -315,10 +263,6 @@ public class CharacterCreate implements IClientIncomingPacket
{
newChar.setXYZInvisible(Config.FACTION_STARTING_LOCATION.getX(), Config.FACTION_STARTING_LOCATION.getY(), Config.FACTION_STARTING_LOCATION.getZ());
}
else if (balthusKnights)
{
newChar.setXYZInvisible(Config.BALTHUS_KNIGHTS_LOCATION.getX(), Config.BALTHUS_KNIGHTS_LOCATION.getY(), Config.BALTHUS_KNIGHTS_LOCATION.getZ());
}
else
{
final Location createLoc = template.getCreationPoint();
@ -357,23 +301,6 @@ public class CharacterCreate implements IClientIncomingPacket
}
}
}
if (balthusKnights)
{
for (ItemHolder reward : Config.BALTHUS_KNIGHTS_REWARDS)
{
final Item item = newChar.getInventory().addItem("Balthus Rewards", reward.getId(), reward.getCount(), newChar, null);
if (item == null)
{
PacketLogger.warning("Could not create item during char creation: itemId " + reward.getId() + ", amount " + reward.getCount() + ".");
continue;
}
if (item.isEquipable())
{
newChar.getInventory().equipItem(item);
}
}
}
for (SkillLearn skill : SkillTreeData.getInstance().getAvailableSkills(newChar, newChar.getClassId(), false, false, true))
{

View File

@ -30,7 +30,6 @@ import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.sql.ClanTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.CharSelectInfoPackage;
import org.l2jmobius.gameserver.model.VariationInstance;
import org.l2jmobius.gameserver.model.World;
@ -164,30 +163,8 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(1); // 0=can't play, 1=can play free until level 85, 2=100% free play
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
// Balthus Knights
if (Config.BALTHUS_KNIGHTS_ENABLED)
{
if (Config.BALTHUS_KNIGHTS_PREMIUM)
{
if (Config.PREMIUM_SYSTEM_ENABLED)
{
PremiumManager.getInstance().loadPremiumData(_loginName);
packet.writeC(PremiumManager.getInstance().getPremiumExpiration(_loginName) > 0 ? 1 : 0);
}
else
{
packet.writeC(0);
}
}
else
{
packet.writeC(1);
}
}
else
{
packet.writeC(0);
}
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -200,6 +177,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -258,8 +236,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food

View File

@ -1,28 +0,0 @@
# ---------------------------------------------------------------------------
# Balthus Knights Settings
# ---------------------------------------------------------------------------
# Enable high level boost character creation.
# Default: False
BalthusKnightsEnabled = False
# Level for boosted characters.
# Retail: 85
BalthusKnightsLevel = 85
# Enable high level boost only for premium accounts.
# Default: True
BalthusKnightsPremium = True
# Coordinates for starting location.
# Default: -114371,256483,-1286 (Talking Island)
BalthusKnightsLocation = -114371,256483,-1286
# Items rewarded to boosted characters.
# You can add multiple items separated by commas.
# Default: 46919;1
BalthusKnightsRewards = 46919;1
# Reward available skills to boosted characters.
# Default: True
BalthusKnightsRewardSkills = True

View File

@ -92,7 +92,6 @@ public class Config
public static final String FORTSIEGE_CONFIG_FILE = "./config/FortSiege.ini";
private static final String ATTENDANCE_CONFIG_FILE = "./config/AttendanceRewards.ini";
private static final String ATTRIBUTE_SYSTEM_FILE = "./config/AttributeSystem.ini";
private static final String BALTHUS_KNIGHTS_CONFIG_FILE = "./config/BalthusKnights.ini";
private static final String CHARACTER_CONFIG_FILE = "./config/Character.ini";
private static final String FEATURE_CONFIG_FILE = "./config/Feature.ini";
private static final String FLOOD_PROTECTOR_CONFIG_FILE = "./config/FloodProtector.ini";
@ -159,12 +158,6 @@ public class Config
public static int ATTENDANCE_REWARD_DELAY;
public static boolean ATTENDANCE_POPUP_START;
public static boolean ATTENDANCE_POPUP_WINDOW;
public static boolean BALTHUS_KNIGHTS_ENABLED;
public static int BALTHUS_KNIGHTS_LEVEL;
public static boolean BALTHUS_KNIGHTS_PREMIUM;
public static Location BALTHUS_KNIGHTS_LOCATION;
public static List<ItemHolder> BALTHUS_KNIGHTS_REWARDS;
public static boolean BALTHUS_KNIGHTS_REWARD_SKILLS;
public static boolean PLAYER_DELEVEL;
public static int DELEVEL_MINIMUM;
public static boolean DECREASE_SKILL_LEVEL;
@ -1696,24 +1689,6 @@ public class Config
// Only R110 is used
R110_ARMOR_JEWEL = attributeConfig.getInt("R110ArmorJewel", 100);
// Load BalthusKnights config file (if exists)
final PropertiesParser balthusKnightsConfig = new PropertiesParser(BALTHUS_KNIGHTS_CONFIG_FILE);
BALTHUS_KNIGHTS_ENABLED = balthusKnightsConfig.getBoolean("BalthusKnightsEnabled", true);
BALTHUS_KNIGHTS_LEVEL = balthusKnightsConfig.getInt("BalthusKnightsLevel", 85);
BALTHUS_KNIGHTS_PREMIUM = balthusKnightsConfig.getBoolean("BalthusKnightsPremium", true);
final String[] balthusKnightsLocation = balthusKnightsConfig.getString("BalthusKnightsLocation", "-114371,256483,-1286").split(",");
BALTHUS_KNIGHTS_LOCATION = new Location(Integer.parseInt(balthusKnightsLocation[0]), Integer.parseInt(balthusKnightsLocation[1]), Integer.parseInt(balthusKnightsLocation[2]));
BALTHUS_KNIGHTS_REWARDS = new ArrayList<>();
for (String s : balthusKnightsConfig.getString("BalthusKnightsRewards", "46919;1").split(","))
{
if (s.isEmpty())
{
continue;
}
BALTHUS_KNIGHTS_REWARDS.add(new ItemHolder(Integer.parseInt(s.split(";")[0]), Integer.parseInt(s.split(";")[1])));
}
BALTHUS_KNIGHTS_REWARD_SKILLS = balthusKnightsConfig.getBoolean("BalthusKnightsRewardSkills", true);
// Load Character config file (if exists)
final PropertiesParser characterConfig = new PropertiesParser(CHARACTER_CONFIG_FILE);
PLAYER_DELEVEL = characterConfig.getBoolean("Delevel", true);

View File

@ -22,15 +22,12 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.sql.CharNameTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.FakePlayerData;
import org.l2jmobius.gameserver.data.xml.InitialEquipmentData;
import org.l2jmobius.gameserver.data.xml.InitialShortcutData;
import org.l2jmobius.gameserver.data.xml.PlayerTemplateData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.SkillTreeData;
import org.l2jmobius.gameserver.enums.ClassId;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.World;
@ -41,7 +38,6 @@ import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
import org.l2jmobius.gameserver.model.events.Containers;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.item.PlayerItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
@ -150,7 +146,6 @@ public class CharacterCreate implements IClientIncomingPacket
Player newChar = null;
PlayerTemplate template = null;
boolean balthusKnights = false;
/*
* DrHouse: Since checks for duplicate names are done using SQL, lock must be held until data is written to DB as well.
@ -168,43 +163,6 @@ public class CharacterCreate implements IClientIncomingPacket
return;
}
// Balthus Knights.
if (Config.BALTHUS_KNIGHTS_ENABLED && (!Config.BALTHUS_KNIGHTS_PREMIUM || (Config.PREMIUM_SYSTEM_ENABLED && (PremiumManager.getInstance().getPremiumExpiration(client.getAccountName()) > 0))))
{
if (_classId == 190)
{
_classId = 188; // Eviscerator
balthusKnights = true;
}
else if (_classId == 191)
{
_classId = 189; // Sayha Seer
balthusKnights = true;
}
else if ((_classId > 138) && (_classId < 147))
{
final String properClass = ClassId.getClassId(_classId).toString().split("_")[0];
for (ClassId classId : ClassId.values())
{
if (classId.getRace() == null)
{
continue;
}
if ((classId.getRace().ordinal() == _race) && classId.toString().startsWith(properClass))
{
_classId = classId.getId();
balthusKnights = true;
break;
}
}
}
}
if (!balthusKnights && (ClassId.getClassId(_classId).level() > 0))
{
client.sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
return;
}
template = PlayerTemplateData.getInstance().getTemplate(_classId);
if (template == null)
{
@ -283,16 +241,6 @@ public class CharacterCreate implements IClientIncomingPacket
newChar = Player.create(template, client.getAccountName(), _name, new PlayerAppearance(_face, _hairColor, _hairStyle, _sex != 0));
}
if (balthusKnights)
{
newChar.setExp(ExperienceData.getInstance().getExpForLevel(Config.BALTHUS_KNIGHTS_LEVEL));
newChar.getStat().setLevel(Config.BALTHUS_KNIGHTS_LEVEL);
if (Config.BALTHUS_KNIGHTS_REWARD_SKILLS)
{
newChar.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true, Config.AUTO_LEARN_SKILLS_WITHOUT_ITEMS);
}
}
// HP and MP are at maximum and CP is zero by default.
newChar.setCurrentHp(newChar.getMaxHp());
newChar.setCurrentMp(newChar.getMaxMp());
@ -315,10 +263,6 @@ public class CharacterCreate implements IClientIncomingPacket
{
newChar.setXYZInvisible(Config.FACTION_STARTING_LOCATION.getX(), Config.FACTION_STARTING_LOCATION.getY(), Config.FACTION_STARTING_LOCATION.getZ());
}
else if (balthusKnights)
{
newChar.setXYZInvisible(Config.BALTHUS_KNIGHTS_LOCATION.getX(), Config.BALTHUS_KNIGHTS_LOCATION.getY(), Config.BALTHUS_KNIGHTS_LOCATION.getZ());
}
else
{
final Location createLoc = template.getCreationPoint();
@ -357,23 +301,6 @@ public class CharacterCreate implements IClientIncomingPacket
}
}
}
if (balthusKnights)
{
for (ItemHolder reward : Config.BALTHUS_KNIGHTS_REWARDS)
{
final Item item = newChar.getInventory().addItem("Balthus Rewards", reward.getId(), reward.getCount(), newChar, null);
if (item == null)
{
PacketLogger.warning("Could not create item during char creation: itemId " + reward.getId() + ", amount " + reward.getCount() + ".");
continue;
}
if (item.isEquipable())
{
newChar.getInventory().equipItem(item);
}
}
}
for (SkillLearn skill : SkillTreeData.getInstance().getAvailableSkills(newChar, newChar.getClassId(), false, false, true))
{

View File

@ -32,7 +32,6 @@ import org.l2jmobius.gameserver.data.sql.ClanTable;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.model.CharSelectInfoPackage;
import org.l2jmobius.gameserver.model.VariationInstance;
import org.l2jmobius.gameserver.model.World;
@ -166,30 +165,8 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(1); // 0=can't play, 1=can play free until level 85, 2=100% free play
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
// Balthus Knights
if (Config.BALTHUS_KNIGHTS_ENABLED)
{
if (Config.BALTHUS_KNIGHTS_PREMIUM)
{
if (Config.PREMIUM_SYSTEM_ENABLED)
{
PremiumManager.getInstance().loadPremiumData(_loginName);
packet.writeC(PremiumManager.getInstance().getPremiumExpiration(_loginName) > 0 ? 1 : 0);
}
else
{
packet.writeC(0);
}
}
else
{
packet.writeC(1);
}
}
else
{
packet.writeC(0);
}
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -202,6 +179,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -260,8 +238,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food

View File

@ -164,6 +164,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -176,6 +177,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -234,8 +236,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food

View File

@ -164,6 +164,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -176,6 +177,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -234,8 +236,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food

View File

@ -164,6 +164,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeD(2); // if 1, Korean client
packet.writeC(0); // Gift message for inactive accounts // 152
packet.writeC(0); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
{
@ -176,6 +177,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
}
}
}
for (int i = 0; i < size; i++)
{
final CharSelectInfoPackage charInfoPackage = _characterPackages.get(i);
@ -234,8 +236,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND) > 127 ? 127 : charInfoPackage.getEnchantEffect(Inventory.PAPERDOLL_RHAND));
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption1Id() : 0);
packet.writeD(charInfoPackage.getAugmentation() != null ? charInfoPackage.getAugmentation().getOption2Id() : 0);
// packet.writeD(charInfoPackage.getTransformId()); // Used to display Transformations
packet.writeD(0); // Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Transformation: Currently on retail when you are on character select you don't see your transformation.
packet.writeD(0); // Pet NpcId
packet.writeD(0); // Pet level
packet.writeD(0); // Pet Food