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.




  • Posts

    • ??? error   https://ibb.co/Srn4LsX No support  :S   No support : S ? :S
    • I also think this feature would bring more harm than good... another example is a dwarf rushing against your mobs so he takes priority, then he plays fake death and proceeds to grief the shit out of you. A minimum damage threshold is necessary, which would basically converge to what is the default feature (i.e. biggest damage dealer)
    • I bought the premium to watch the video and it's private. 😢
    • For some Majestic reason OP can't edit their topics anymore?    Let me update the potential offers, I got up to 2 spots to fill.   CONTACT TELEGRAM ONLY: https://t.me/asupport_g1     A credible team that SGuard represents is looking for java developers.    These positions is full time only i.e. your time is mostly dedicated within the team and team tasks, side gigs are fine, as long as you are able to combine your gig and main.  All necessary tools are provided.  The team is consistent with > 10 team members and the team is looking to expand to meet various goals. A decent Lineage 2 Essense OR Main (GOD) knowledge is needed.  Experience with l2r/l2p/l2s. mobius is fine too for referrence only. The team is friendly and goal oriented, very active and resourceful.   Requirements are standard, java knowledge is optional.  Multi language is a plus but not necessary (English/Russian), any is accepted.   Terms and conditions including compensation are reasonable and considered to be up for the industry standards. Details are negotiable with suitable candidates.   You will need to have a headset and a mic just for the initial processing, there're no team meetings or conferences after that. There's a small 30min interview process to demonstrate knowledge and just to meet each other.   The team has decided it is in their best interest to not publish their information at this time. Details will be available only for suitable candidates.   CONTACT TELEGRAM ONLY: https://t.me/asupport_g1
    • Thanks for the detailed info. I also have some ideas in mind but the execution may be hard. Thanks again!
  • Topics

×
×
  • Create New...