1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java
index 94b6ec6491..38870a6107 100644
--- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java
@@ -1078,9 +1078,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2400,9 +2402,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java
index 0b5fc606d4..29aba6fd23 100644
--- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java
@@ -1085,9 +1085,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2416,9 +2418,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java
index 172fa3d68b..a1321aec2d 100644
--- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java
@@ -1093,9 +1093,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2431,9 +2433,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java
index a252a8190e..1d3fa51439 100644
--- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java
@@ -1086,9 +1086,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2417,9 +2419,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_5.0_Salvation/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_5.0_Salvation/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java
index a252a8190e..1d3fa51439 100644
--- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java
@@ -1086,9 +1086,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2417,9 +2419,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_5.5_EtinasFate/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java
index a252a8190e..1d3fa51439 100644
--- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java
@@ -1086,9 +1086,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2417,9 +2419,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_6.0_Fafurion/dist/game/config/Custom/CommunityBoard.ini
index 52b2ea02c3..47213a2af2 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java
index 5ec68f923e..04c841bba8 100644
--- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java
@@ -1092,9 +1092,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED;
@@ -2428,9 +2430,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/CommunityBoard.ini
index cb26af3544..7bf4d44198 100644
--- a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while in combat.
# Default: True
CommunityCombatDisabled = True
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/navigation.html
index c679dcdb5e..226194a809 100644
--- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 8c019f6dd4..62d897dc06 100644
--- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -73,7 +74,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
public static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -255,6 +257,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java
index 2ff75acd08..fa2c333834 100644
--- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java
@@ -1265,9 +1265,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_COMBAT_DISABLED;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
@@ -2730,9 +2732,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_COMBAT_DISABLED = CommunityBoard.getBoolean("CommunityCombatDisabled", true);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini
index d39ebfbc71..2b0aba438e 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java
index 99aecead17..f87324192e 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java
@@ -1030,9 +1030,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_COMBAT_DISABLED;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
@@ -2312,9 +2314,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/CommunityBoard.ini
index d39ebfbc71..2b0aba438e 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/Config.java b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/Config.java
index 26317cab80..7532372ef3 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/Config.java
@@ -1034,9 +1034,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_COMBAT_DISABLED;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
@@ -2319,9 +2321,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Custom/CommunityBoard.ini
index d39ebfbc71..2b0aba438e 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/Config.java b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/Config.java
index 26317cab80..7532372ef3 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/Config.java
@@ -1034,9 +1034,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_COMBAT_DISABLED;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
@@ -2319,9 +2321,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Custom/CommunityBoard.ini
index d39ebfbc71..2b0aba438e 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Custom/CommunityBoard.ini
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/Custom/CommunityBoard.ini
@@ -26,6 +26,10 @@ CommunityEnableBuffs = True
# Default: True
CommunityEnableHeal = True
+# Enable delevel.
+# Default: False
+CommunityEnableDelevel = False
+
# Price for Teleports.
# Default: 0 (free)
CommunityTeleportPrice = 0
@@ -38,6 +42,10 @@ CommunityBuffPrice = 0
# Default: 0 (free)
CommunityHealPrice = 0
+# Price for Delevel.
+# Default: 0 (free)
+CommunityDelevelPrice = 0
+
# Disable Community Board while player has Karma.
# Default: True
CommunityKarmaDisabled = True
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
new file mode 100644
index 0000000000..d858eb400a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/ask.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delevel your character?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
new file mode 100644
index 0000000000..1bb44eeb17
--- /dev/null
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/complete.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!Your level was decreased!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/main.html b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
new file mode 100644
index 0000000000..e527032c0a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/delevel/main.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+ %navigation%
+
+
+
+
+
+
+
+
+
Delevel Manager
+
+
+
+
+
+
+
+
+
+
1. Make sure this is the character you want to delevel.
+
2. Deleveling is irreversible.
+
3. Your skill levels will be decreased or removed accordingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proceed with character delevel.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In case you want to disable any experience gains
+
+ try entering the following command in chat
+
+ .expoff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
LINEAGE II - COMMUNITY BOARD
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/navigation.html b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/navigation.html
index 0892c63763..8afc437ef0 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/navigation.html
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/CommunityBoard/Custom/navigation.html
@@ -17,6 +17,9 @@
+
+
+
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
index 1f5572ec39..357584411a 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java
@@ -34,6 +34,7 @@ import com.l2jmobius.commons.database.DatabaseFactory;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.ClanTable;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
+import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
import com.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -74,7 +75,8 @@ public final class HomeBoard implements IParseBoardHandler
Config.COMMUNITYBOARD_ENABLE_MULTISELLS ? "_bbssell" : null,
Config.COMMUNITYBOARD_ENABLE_TELEPORTS ? "_bbsteleport" : null,
Config.COMMUNITYBOARD_ENABLE_BUFFS ? "_bbsbuff" : null,
- Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null
+ Config.COMMUNITYBOARD_ENABLE_HEAL ? "_bbsheal" : null,
+ Config.COMMUNITYBOARD_ENABLE_DELEVEL ? "_bbsdelevel" : null
};
private static final BiPredicate COMBAT_CHECK = (command, activeChar) ->
@@ -263,6 +265,29 @@ public final class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/" + page + ".html");
}
+ else if (command.equals("_bbsdelevel"))
+ {
+ if (activeChar.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < Config.COMMUNITYBOARD_DELEVEL_PRICE)
+ {
+ activeChar.sendMessage("Not enough currency!");
+ }
+ else if (activeChar.getLevel() == 1)
+ {
+ activeChar.sendMessage("You are at minimum level!");
+ }
+ else
+ {
+ activeChar.destroyItemByItemId("CB_Delevel", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_DELEVEL_PRICE, activeChar, true);
+ final int newLevel = activeChar.getLevel() - 1;
+ activeChar.setExp(ExperienceData.getInstance().getExpForLevel(newLevel));
+ activeChar.getStat().setLevel((byte) newLevel);
+ activeChar.setCurrentHpMp(activeChar.getMaxHp(), activeChar.getMaxMp());
+ activeChar.setCurrentCp(activeChar.getMaxCp());
+ activeChar.broadcastUserInfo();
+ activeChar.checkPlayerSkills(); // Adjust skills according to new level.
+ returnHtml = HtmCache.getInstance().getHtm(activeChar, "data/html/CommunityBoard/Custom/delevel/complete.html");
+ }
+ }
else if (command.startsWith("_bbspremium"))
{
final String fullBypass = command.replace("_bbspremium;", "");
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/Config.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/Config.java
index 26317cab80..7532372ef3 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/Config.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/Config.java
@@ -1034,9 +1034,11 @@ public final class Config
public static boolean COMMUNITYBOARD_ENABLE_TELEPORTS;
public static boolean COMMUNITYBOARD_ENABLE_BUFFS;
public static boolean COMMUNITYBOARD_ENABLE_HEAL;
+ public static boolean COMMUNITYBOARD_ENABLE_DELEVEL;
public static int COMMUNITYBOARD_TELEPORT_PRICE;
public static int COMMUNITYBOARD_BUFF_PRICE;
public static int COMMUNITYBOARD_HEAL_PRICE;
+ public static int COMMUNITYBOARD_DELEVEL_PRICE;
public static boolean COMMUNITYBOARD_COMBAT_DISABLED;
public static boolean COMMUNITYBOARD_KARMA_DISABLED;
public static boolean COMMUNITYBOARD_CAST_ANIMATIONS;
@@ -2319,9 +2321,11 @@ public final class Config
COMMUNITYBOARD_ENABLE_TELEPORTS = CommunityBoard.getBoolean("CommunityEnableTeleports", true);
COMMUNITYBOARD_ENABLE_BUFFS = CommunityBoard.getBoolean("CommunityEnableBuffs", true);
COMMUNITYBOARD_ENABLE_HEAL = CommunityBoard.getBoolean("CommunityEnableHeal", true);
+ COMMUNITYBOARD_ENABLE_DELEVEL = CommunityBoard.getBoolean("CommunityEnableDelevel", false);
COMMUNITYBOARD_TELEPORT_PRICE = CommunityBoard.getInt("CommunityTeleportPrice", 0);
COMMUNITYBOARD_BUFF_PRICE = CommunityBoard.getInt("CommunityBuffPrice", 0);
COMMUNITYBOARD_HEAL_PRICE = CommunityBoard.getInt("CommunityHealPrice", 0);
+ COMMUNITYBOARD_DELEVEL_PRICE = CommunityBoard.getInt("CommunityDelevelPrice", 0);
COMMUNITYBOARD_KARMA_DISABLED = CommunityBoard.getBoolean("CommunityKarmaDisabled", true);
COMMUNITYBOARD_CAST_ANIMATIONS = CommunityBoard.getBoolean("CommunityCastAnimations", false);
COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false);