Jump to content

[Share] PvP Level System


Versus

Recommended Posts

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);

Link to comment
Share on other sites

LOOOOOOOOOOOOOOL Awesome +1 From me

btw i dont like gracia client but i will test this right now :)

wait for test results :D

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?
Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...