Versus Posted October 24, 2009 Posted October 24, 2009 I made this while i was bored, i haven't tested it, so if anyone can test it and reply would be really helpful. What it does is rewarding players with levels from their pvps amount. I used levels from 85 to 100 but of course you can & should change them. Idea=> you can increase the maximum level, allow the players to level up till 85 with mobs and then from 85 to 100 with this system. Index: I:/workspace/L2_GameServer/java/config/pvp.properties =================================================================== --- I:/workspace/L2_GameServer/java/config/pvp.properties (revision 3645) +++ I:/workspace/L2_GameServer/java/config/pvp.properties (working copy) @@ -57,4 +57,39 @@ # Length one stays in PvP mode after hitting a purple player (in ms) # Default: 60000 -PvPVsPvPTime = 60000 \ No newline at end of file +PvPVsPvPTime = 60000 + +# Allow pvp level system, a system which awards players with levels from their pvps +# system is auto enabled only after level 85 & 100% +AllowPvPLevelSystem = false + +# Ammount for 1st level +PvPLevelAmmount1 = 300 +# Ammount for 2nd level +PvPLevelAmmount2 = 400 +# Ammount for 3nd level +PvPLevelAmmount3 = 500 +# Ammount for 4th level +PvPLevelAmmount4 = 600 +# Ammount for 5th level +PvPLevelAmmount5 = 700 +# Ammount for 6th level +PvPLevelAmmount6 = 800 +# Ammount for 7th level +PvPLevelAmmount7 = 900 +# Ammount for 8th level +PvPLevelAmmount8 = 1000 +# Ammount for 9th level +PvPLevelAmmount9 = 1100 +# Ammount for 10th level +PvPLevelAmmount10 = 1200 +# Ammount for 11th level +PvPLevelAmmount11 = 1300 +# Ammount for 12th level +PvPLevelAmmount12 = 1400 +# Ammount for 13th level +PvPLevelAmmount13 = 1500 +# Ammount for 14th level +PvPLevelAmmount14 = 1600 +# Ammount for 15th level +PvPLevelAmmount15 = 2000 \ No newline at end of file Index: I:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- I:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 3645) +++ I:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -5656,6 +5656,96 @@ } /** + * PvP counts as xp after level 85. + * + */ + public void increaseLevelFromPvPs(int pvpKills) + { + if (getLevel() <= 85) + return; + { + if (Config.ALLOW_PVP_LEVEL_SYSTEM && getLevel() >= 86 && getLevel() < 101) + { + if ((getLevel() == 86 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT1)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT2))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT1 +" pvps and leveled up!"); + } + else if ((getLevel() == 87 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT2)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT3))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT2 +" pvps and leveled up!"); + } + else if ((getLevel() == 88 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT3)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT4))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT3 +" pvps and leveled up!"); + } + else if ((getLevel() == 89 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT4)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT5))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT4 +" pvps and leveled up!"); + } + else if ((getLevel() == 90 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT5)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT6))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT5 +" pvps and leveled up!"); + } + else if ((getLevel() == 91 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT6)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT7))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT6 +" pvps and leveled up!"); + } + else if ((getLevel() == 92 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT7)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT8))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT7 +" pvps and leveled up!"); + } + else if ((getLevel() == 93 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT8)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT9))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT8 +" pvps and leveled up!"); + } + else if ((getLevel() == 94 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT9)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT10))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT9 +" pvps and leveled up!"); + } + else if ((getLevel() == 95 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT10)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT11))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT10 +" pvps and leveled up!"); + } + else if ((getLevel() == 96 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT11)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT12))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT11 +" pvps and leveled up!"); + } + else if ((getLevel() == 97 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT12)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT13))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT12 +" pvps and leveled up!"); + } + else if ((getLevel() == 98 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT13)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT14))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT13 +" pvps and leveled up!"); + } + else if ((getLevel() == 99 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT14)) && (pvpKills < (Config.PVP_LEVEL_AMMOUNT15))) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT14 +" pvps and leveled up!"); + } + else if (getLevel() == 100 && pvpKills >= (Config.PVP_LEVEL_AMMOUNT15)) + { + addExpAndSp(Experience.LEVEL[getLevel() + 1], 0); + sendMessage("You reached " + Config.PVP_LEVEL_AMMOUNT15 +" pvps and leveled up!"); + } + } + } + } + + /** * Increase the pvp kills count and send the info to the player * */ @@ -5664,6 +5754,9 @@ // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); + increaseLevelFromPvPs(getPvpKills()); + broadcastUserInfo(); + // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this)); Index: I:/workspace/L2_GameServer/java/net/sf/l2j/Config.java =================================================================== --- I:/workspace/L2_GameServer/java/net/sf/l2j/Config.java (revision 3645) +++ I:/workspace/L2_GameServer/java/net/sf/l2j/Config.java (working copy) @@ -793,6 +793,24 @@ public static String DATAPACK_VERSION; public static int PVP_NORMAL_TIME; public static int PVP_PVP_TIME; + public static boolean ALLOW_PVP_LEVEL_SYSTEM; + public static int PVP_LEVEL_AMMOUNT1; + public static int PVP_LEVEL_AMMOUNT2; + public static int PVP_LEVEL_AMMOUNT3; + public static int PVP_LEVEL_AMMOUNT4; + public static int PVP_LEVEL_AMMOUNT5; + public static int PVP_LEVEL_AMMOUNT6; + public static int PVP_LEVEL_AMMOUNT7; + public static int PVP_LEVEL_AMMOUNT8; + public static int PVP_LEVEL_AMMOUNT9; + public static int PVP_LEVEL_AMMOUNT10; + public static int PVP_LEVEL_AMMOUNT11; + public static int PVP_LEVEL_AMMOUNT12; + public static int PVP_LEVEL_AMMOUNT13; + public static int PVP_LEVEL_AMMOUNT14; + public static int PVP_LEVEL_AMMOUNT15; public static enum IdFactoryType { Compaction, @@ -2454,6 +2472,24 @@ else if (pName.equalsIgnoreCase("PvPVsNormalTime")) PVP_NORMAL_TIME = Integer.parseInt(pValue); else if (pName.equalsIgnoreCase("PvPVsPvPTime")) PVP_PVP_TIME = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("AllowPvPLevelSystem")) ALLOW_PVP_LEVEL_SYSTEM = Boolean.parseBoolean(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount1")) PVP_LEVEL_AMMOUNT1 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount2")) PVP_LEVEL_AMMOUNT2 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount3")) PVP_LEVEL_AMMOUNT3 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount4")) PVP_LEVEL_AMMOUNT4 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount5")) PVP_LEVEL_AMMOUNT5 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount6")) PVP_LEVEL_AMMOUNT6 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount7")) PVP_LEVEL_AMMOUNT7 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount8")) PVP_LEVEL_AMMOUNT8 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount9")) PVP_LEVEL_AMMOUNT9 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount10")) PVP_LEVEL_AMMOUNT10 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount11")) PVP_LEVEL_AMMOUNT11 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount12")) PVP_LEVEL_AMMOUNT12 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount13")) PVP_LEVEL_AMMOUNT13 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount14")) PVP_LEVEL_AMMOUNT14 = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("PvPLevelAmmount15")) PVP_LEVEL_AMMOUNT15 = Integer.parseInt(pValue); else if (pName.equalsIgnoreCase("GlobalChat")) DEFAULT_GLOBAL_CHAT = pValue; else if (pName.equalsIgnoreCase("TradeChat")) DEFAULT_TRADE_CHAT = pValue; else if (pName.equalsIgnoreCase("GMAdminMenuStyle")) GM_ADMIN_MENU_STYLE = pValue; Note: lvl 101 means 100 & 100% With the following you can stop people from receiving exp & sp after lvl 85. Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Attackable.java =================================================================== --- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Attackable.java (revision 4250) +++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Attackable.java (working copy) @@ -704,7 +704,7 @@ } // Distribute the Exp and SP between the L2PcInstance and its L2Summon - if (!attacker.isDead()) + if (!attacker.isDead() && attacker.getLevel() <= 85) { long addexp = Math.round(attacker.calcStat(Stats.EXPSP_RATE, exp, null, null)); int addsp = (int)attacker.calcStat(Stats.EXPSP_RATE, sp, null, null); Quote
Kяaσh Posted October 24, 2009 Posted October 24, 2009 LOOOOOOOOOOOOOOL Awesome +1 From me btw i dont like gracia client but i will test this right now :) wait for test results :D Quote
Vazelos Posted October 24, 2009 Posted October 24, 2009 LOL? wtf? Nice idea! Thanks. I am wating feedback. Quote
Versus Posted October 24, 2009 Author Posted October 24, 2009 LOOOOOOOOOOOOOOL Awesome +1 From me btw i dont like gracia client but i will test this right now :) wait for test results :D LOL? wtf? Nice idea! Thanks. I am wating feedback. Thanks guys, i really appreciate your words. It's made in gracia l2jserver core but it will work on any other client. Quote
SySt3MGaM3RFr3aKs Posted October 24, 2009 Posted October 24, 2009 Great Share !! I Would Give + 1 But Someone Already Did ! Good Shares Must Be Rewarded !! Thanks Quote
Kяaσh Posted October 24, 2009 Posted October 24, 2009 Thanks guys, i really appreciate your words. It's made in gracia l2jserver core but it will work on any other client. you mean will be work in IL? Quote
Versus Posted October 24, 2009 Author Posted October 24, 2009 you mean will be work in IL? Sure! Just the Config.java is not the same with gracia, so you can't apply the patch. All the other besides the Config are the same for IL. Quote
Frank Posted October 24, 2009 Posted October 24, 2009 Gratz for this share Fakoykas. I am really proud of you (generally) Quote
RammS Posted October 24, 2009 Posted October 24, 2009 its not smth new, l2racesupremacy have this features from years. lol gz for a "perfect copy" Quote
Kяaσh Posted October 24, 2009 Posted October 24, 2009 its not smth new, l2racesupremacy have this features from years. lol gz for a "perfect copy" im sure you are crazy look the patch!!!!is copy? are you sure? Quote
Versus Posted October 24, 2009 Author Posted October 24, 2009 its not smth new, l2racesupremacy have this features from years. lol gz for a "perfect copy" I never copied anything from your server, never played your server, never heard of your server. Thanks for all your comments, i love you all 8) Quote
RammS Posted October 24, 2009 Posted October 24, 2009 ah the idea was your right ? ahhhah grow up Quote
Kяaσh Posted October 24, 2009 Posted October 24, 2009 ah the idea was your right ? ahhhah grow up man you must grow up.. Quote
Coyote™ Posted October 24, 2009 Posted October 24, 2009 So easy for you, but fascinating lool! 100 lvl maximum, sounds extremely nice! ah the idea was your right ? ahhhah grow up The fact that you got the idea first, has nothing to do with fakoy's code. If I code special name colours (for example), and your server uses this faction, it means that I have copied your code or your idea? :o Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.