Jump to content

Recommended Posts

Posted

With this patch you will be able to set colors at an adjustable amount of pvp/pk points...

Name color changes depend on pvp points and title color changes on pk points

 

Index: /java/config/l2jmods.properties
===================================================================
--- /java/config/l2jmods.properties	(revision 174)
+++ /java/config/l2jmods.properties	(working copy)
@@ -161,4 +161,62 @@
#----------------------------------
EnableWarehouseSortingClan = False
EnableWarehouseSortingPrivate = False
-EnableWarehouseSortingFreight = False
\ No newline at end of file
+EnableWarehouseSortingFreight = False
+
+# ---------------------------------------
+# Section: PvP Title Color Change System by Level
+# ---------------------------------------
+# Each Amount will change the name color to the values defined here.
+# Example: PvpAmmount1 = 500, when a character's PvP counter reaches 500, their name color will change
+# according to the ColorForAmount value.
+# Note: Colors Must Use RBG format
+EnablePvPColorSystem = false
+
+# Pvp Amount & Name color level 1.
+PvpAmount1 = 500
+ColorForAmount1 = CCFF00
+
+# Pvp Amount & Name color level 2.
+PvpAmount2 = 1000
+ColorForAmount2 = 00FF00
+
+# Pvp Amount & Name color level 3.
+PvpAmount3 = 1500
+ColorForAmount3 = 00FF00
+
+# Pvp Amount & Name color level 4.
+PvpAmount4 = 2500
+ColorForAmount4 = 00FF00
+
+# Pvp Amount & Name color level 5.
+PvpAmount5 = 5000
+ColorForAmount5 = 00FF00
+
+# ---------------------------------------
+# Section: PvP Nick Color System by Level
+# ---------------------------------------
+# Same as above, with the difference that the PK counter changes the title color.
+# Example:  PkAmmount1 = 500, when a character's PK counter reaches 500, their title color will change
+# according to the Title For Amount
+# WAN: Colors Must Use RBG format
+EnablePkColorSystem = false
+
+# Pk Amount & Title color level 1.
+PkAmount1 = 500
+TitleForAmount1 = 00FF00
+
+# Pk Amount & Title color level 2.
+PkAmount2 = 1000
+TitleForAmount2 = 00FF00
+
+# Pk Amount & Title color level 3.
+PkAmount3 = 1500
+TitleForAmount3 = 00FF00
+
+# Pk Amount & Title color level 4.
+PkAmount4 = 2500
+TitleForAmount4 = 00FF00
+
+# Pk Amount & Title color level 5.
+PkAmount5 = 5000
+TitleForAmount5 = 00FF00
\ No newline at end of file
Index: /java/net/sf/l2j/Config.java
===================================================================
--- /java/net/sf/l2j/Config.java	(revision 174)
+++ /java/net/sf/l2j/Config.java	(working copy)
@@ -544,6 +546,28 @@
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_CLAN;
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE;
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT;
+	public static boolean		PVP_COLOR_SYSTEM_ENABLED;
+	public static int			PVP_AMOUNT1;
+	public static int			PVP_AMOUNT2;
+	public static int			PVP_AMOUNT3;
+	public static int			PVP_AMOUNT4;
+	public static int			PVP_AMOUNT5;
+	public static int			NAME_COLOR_FOR_PVP_AMOUNT1;
+	public static int			NAME_COLOR_FOR_PVP_AMOUNT2;
+	public static int			NAME_COLOR_FOR_PVP_AMOUNT3;
+	public static int			NAME_COLOR_FOR_PVP_AMOUNT4;
+	public static int			NAME_COLOR_FOR_PVP_AMOUNT5;
+	public static boolean		PK_COLOR_SYSTEM_ENABLED;
+	public static int			PK_AMOUNT1;
+	public static int			PK_AMOUNT2;
+	public static int			PK_AMOUNT3;
+	public static int			PK_AMOUNT4;
+	public static int			PK_AMOUNT5;
+	public static int			TITLE_COLOR_FOR_PK_AMOUNT1;
+	public static int			TITLE_COLOR_FOR_PK_AMOUNT2;
+	public static int			TITLE_COLOR_FOR_PK_AMOUNT3;
+	public static int			TITLE_COLOR_FOR_PK_AMOUNT4;
+	public static int			TITLE_COLOR_FOR_PK_AMOUNT5;
     
     /** ************************************************** **/
	/** L2JMods Settings -End                              **/
@@ -1654,6 +1678,34 @@
                 L2JMOD_ENABLE_WAREHOUSESORTING_CLAN     = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingClan", "False"));
                 L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE  = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingPrivate", "False"));
                 L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT  = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingFreight", "False"));
+                
+    			// PVP Name Color System configs - Start
+    			PVP_COLOR_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("EnablePvPColorSystem", "false"));
+    			PVP_AMOUNT1 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount1", "500"));
+    			PVP_AMOUNT2 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount2", "1000"));
+    			PVP_AMOUNT3 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount3", "1500"));
+    			PVP_AMOUNT4 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount4", "2500"));
+    			PVP_AMOUNT5 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount5", "5000"));
+    			NAME_COLOR_FOR_PVP_AMOUNT1 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount1", "00FF00"));
+    			NAME_COLOR_FOR_PVP_AMOUNT2 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount2", "00FF00"));
+    			NAME_COLOR_FOR_PVP_AMOUNT3 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount3", "00FF00"));
+    			NAME_COLOR_FOR_PVP_AMOUNT4 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount4", "00FF00"));
+    			NAME_COLOR_FOR_PVP_AMOUNT5 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount4", "00FF00"));
+    			// PvP Name Color System configs - End
+    			
+    			// PK Title Color System configs - Start
+    			PK_COLOR_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("EnablePkColorSystem", "false"));
+    			PK_AMOUNT1 = Integer.parseInt(L2JModSettings.getProperty("PkAmount1", "500"));
+    			PK_AMOUNT2 = Integer.parseInt(L2JModSettings.getProperty("PkAmount2", "1000"));
+    			PK_AMOUNT3 = Integer.parseInt(L2JModSettings.getProperty("PkAmount3", "1500"));
+    			PK_AMOUNT4 = Integer.parseInt(L2JModSettings.getProperty("PkAmount4", "2500"));
+    			PK_AMOUNT5 = Integer.parseInt(L2JModSettings.getProperty("PkAmount5", "5000"));
+    			TITLE_COLOR_FOR_PK_AMOUNT1 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount1", "00FF00"));
+    			TITLE_COLOR_FOR_PK_AMOUNT2 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount2", "00FF00"));
+    			TITLE_COLOR_FOR_PK_AMOUNT3 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount3", "00FF00"));
+    			TITLE_COLOR_FOR_PK_AMOUNT4 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount4", "00FF00"));
+    			TITLE_COLOR_FOR_PK_AMOUNT5 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount5", "00FF00"));
+    			//PK Title Color System configs - End

                 if (TVT_EVENT_PARTICIPATION_NPC_ID == 0)
                 {
Index: /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java
===================================================================
--- /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java	(revision 174)
+++ /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java	(working copy)
@@ -177,6 +177,16 @@
         Quest.playerEnter(activeChar);
         activeChar.sendPacket(new QuestList());
         loadTutorial(activeChar);
+
+        // =================================================================================
+        // Color System checks - Start =====================================================
+        // Check if the custom PvP and PK color systems are enabled and if so ==============
+        // check the character's counters and apply any color changes that must be done. ===
+        if (activeChar.getPvpKills()>=(Config.PVP_AMOUNT1) && (Config.PVP_COLOR_SYSTEM_ENABLED)) activeChar.updatePvPColor(activeChar.getPvpKills());
+        if (activeChar.getPkKills()>=(Config.PK_AMOUNT1) && (Config.PK_COLOR_SYSTEM_ENABLED)) activeChar.updatePkColor(activeChar.getPkKills());
+        // Color System checks - End =======================================================
+        // =================================================================================
+        
         
         if (Config.PLAYER_SPAWN_PROTECTION > 0)
             activeChar.setProtection(true);
@@ -3660,7 +3661,75 @@
         	DuelManager.getInstance().broadcastToOppositTeam(this, update);
         }
	}
-    
+
+	// Custom PVP Color System - Start
+	public void updatePvPColor(int pvpKillAmount)
+	{
+		if (Config.PVP_COLOR_SYSTEM_ENABLED)
+		{
+			//Check if the character has GM access and if so, let them be.
+			if (isGM())
+				return;
+			{
+				if ((pvpKillAmount >= (Config.PVP_AMOUNT1)) && (pvpKillAmount <= (Config.PVP_AMOUNT2)))
+				{
+					getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT1);
+				}
+				else if ((pvpKillAmount >= (Config.PVP_AMOUNT2)) && (pvpKillAmount <= (Config.PVP_AMOUNT3)))
+				{
+					getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT2);
+				}
+				else if ((pvpKillAmount >= (Config.PVP_AMOUNT3)) && (pvpKillAmount <= (Config.PVP_AMOUNT4)))
+				{
+					getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT3);
+				}
+				else if ((pvpKillAmount >= (Config.PVP_AMOUNT4)) && (pvpKillAmount <= (Config.PVP_AMOUNT5)))
+				{
+					getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT4);
+				}
+				else if (pvpKillAmount >= (Config.PVP_AMOUNT5))
+				{
+					getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT5);
+				}
+			}
+		}
+	}
+	//Custom PVP Color System - End
+	
+	// Custom Pk Color System - Start
+	public void updatePkColor(int pkKillAmount)
+	{
+		if (Config.PK_COLOR_SYSTEM_ENABLED)
+		{
+			//Check if the character has GM access and if so, let them be, like above.
+			if (isGM())
+				return;
+			{
+				if ((pkKillAmount >= (Config.PK_AMOUNT1)) && (pkKillAmount <= (Config.PVP_AMOUNT2)))
+				{
+					getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT1);
+				}
+				else if ((pkKillAmount >= (Config.PK_AMOUNT2)) && (pkKillAmount <= (Config.PVP_AMOUNT3)))
+				{
+					getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT2);
+				}
+				else if ((pkKillAmount >= (Config.PK_AMOUNT3)) && (pkKillAmount <= (Config.PVP_AMOUNT4)))
+				{
+					getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT3);
+				}
+				else if ((pkKillAmount >= (Config.PK_AMOUNT4)) && (pkKillAmount <= (Config.PVP_AMOUNT5)))
+				{
+					getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT4);
+				}
+				else if (pkKillAmount >= (Config.PK_AMOUNT5))
+				{
+					getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT5);
+				}
+			}
+		}
+	}
+	//Custom Pk Color System - End
+	
     @Override
     public final void updateEffectIcons(boolean partyOnly)
     {
@@ -4996,6 +5065,10 @@
         // Add karma to attacker and increase its PK counter
         setPvpKills(getPvpKills() + 1);

+      //Update the character's name color if they reached any of the 5 PvP levels.
+        updatePvPColor(getPvpKills());
+        broadcastUserInfo();
+
         // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
         sendPacket(new UserInfo(this));
     }
@@ -5047,6 +5120,10 @@
         setPkKills(getPkKills() + 1);
         setKarma(getKarma() + newKarma);

+        //Update the character's title color if they reached any of the 5 PK levels.
+        updatePkColor(getPkKills());
+        broadcastUserInfo();
+        
         // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
         sendPacket(new UserInfo(this));
     }

 

Once again..if you dont know how to complie or how to apply a patch this isnt the right place for you! Get out of this topic and go find a guide for compling xD

 

Credits to sauron3256 from L2J forum

Posted

annoying .. after 50 + errors on cmd .. my eyes get burned :D

 

i am using ct1.5 core 1.1.2A and i got 8 errors !

 

http://rapidshare.com/files/128976782/EnterWorld.java.html

 

this is the EnterWorld.java and the errors are the below

 

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[250,2] illegal start of expression

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[250,9] illegal start of expression

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[250,28] ';' expected

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[250,46] ';' expected

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[286,2] illegal start of expression

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[286,9] illegal start of expression

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[286,27] ';' expected

C:\workspace\Core Version 1.1.2A\src\main\java\com\l2jfree\gameserver\network\cl
ientpackets\EnterWorld.java:[286,44] ';' expected

 

if you can help i would appreciate that !

Posted

Well this is for l2j ... Youre using l2jfree...so you need few touches... I'll try that event I dont use l2jfree :D

  • 2 weeks later...
Posted

The Errors i get WHEN USING L2J ^^ not l2jfree or whateva

 

compile:
    [javac] Compiling 1353 source files to C:\Dokumente und Einstellungen\Elke the sheep\workspace\L2_GameServer\build\classes
    [javac] C:\Dokumente und Einstellungen\Elke the sheep\workspace\L2_GameServer\java\net\sf\l2j\gameserver\clientpackets\EnterWorld.java:191: cannot find symbol
    [javac] symbol  : method updatePvPColor(int)
    [javac] location: class net.sf.l2j.gameserver.model.actor.instance.L2PcInstance
    [javac]         if (activeChar.getPvpKills()>=(Config.PVP_AMOUNT1) && (Config.PVP_COLOR_SYSTEM_ENABLED)) activeChar.updatePvPColor(activeChar.getPvpKills());
    [javac]                                                                                                            ^
    [javac] C:\Dokumente und Einstellungen\Elke the sheep\workspace\L2_GameServer\java\net\sf\l2j\gameserver\clientpackets\EnterWorld.java:192: cannot find symbol
    [javac] symbol  : method updatePkColor(int)
    [javac] location: class net.sf.l2j.gameserver.model.actor.instance.L2PcInstance
    [javac]         if (activeChar.getPkKills()>=(Config.PK_AMOUNT1) && (Config.PK_COLOR_SYSTEM_ENABLED)) activeChar.updatePkColor(activeChar.getPkKills());
    [javac]                                                                                                         ^
    [javac] 2 errors

BUILD FAILED
C:\Dokumente und Einstellungen\Elke the sheep\workspace\L2_GameServer\build.xml:73: Compile failed; see the compiler error output for details.

Total time: 21 seconds

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • Hello guys I wanna buy some  Lessons for an L2J Developer
    • Let me give you something for inspiration and get you addicted to bot AI     And a siege 😛     What I have notice helps a lot the LLM to act real, is to give it a real-persons background. So for each LLM in the context beggining, besides the L2 facts, give it a real-life back story "You are a 67 years old retired nurse who plays Lineage 2 while her husband reads his newspaper, you are calm, collected but get mad if insulted". But that makes for a creative bot but its repetitive. So what you can also do, is pick random 20 news sites and for each bot every 2-3 days, initialize a context that is affected by the "news" the bot reads in the "real world".  So for example there's Iran - US war ok ? You take the news, put it in an LLM and ask it, extract the "abstract feelings" that this news piece invokes into you without mentioning anything related to the news. Then you take the result and inject it to the bots LLM prompt after its backstory.  This leads to some VERY human-like behavior from bots. 
    • 🚀 Telonyx Contest Platform Telegram Native Giveaway & Contest System for Modern Communities 💎 White-Label • Self-Hosted • Telegram Mini App • Monetization Ready 🧠 Product Overview Telonyx Contest Platform is a production-ready Telegram Mini App system designed for running modern contests, giveaways and engagement campaigns directly inside Telegram. It replaces outdated bot-based mechanics with a fully interactive application experience — no commands, no chat spam, no external websites. Users interact with a clean, fast and mobile-first interface inside Telegram. ⚡ Core Experience Participants can: • 🚀 instantly join contests inside Telegram Mini App • 🎁 view prizes and participation rules • 📊 track real-time contest status • ✅ verify task completion automatically • 🏆 receive winner results and notifications • 💰 participate in free or paid campaigns Everything is fully native to Telegram. 🧩 Key Platform Capabilities 🎯 Contest Engine • advanced contest creation system • multiple winners and reward tiers • scheduled launches and auto-finish logic • contest duplication and templates • real-time participant tracking • flexible rule configuration 📱 Mini App Interface • modern Telegram Mini App UX • mobile-first optimized layout • fast loading and smooth transitions • participant counter & live status • prize showcase system • one-click participation flow 🔎 Task Verification System Automated validation of participation rules: • Telegram channel subscriptions • sponsor channel requirements • multi-channel verification logic • YouTube subscription checks • TikTok task validation ❌ Zero manual moderation required 🛡 Anti-Fraud & Security Layer • duplicate entry prevention • bot detection system • CAPTCHA integration • rule enforcement engine • participation integrity checks 🏆 Automated Winner Selection • fully automated draw system • transparent winner selection logic • instant result publishing • winner notification system • historical archive of all contests 💎 Telegram Stars Monetization • optional paid participation via Telegram Stars • native Telegram checkout integration • flexible entry pricing per campaign • direct monetization of engagement traffic 🌍 Multi-Language Architecture Built with localization in mind. Supported out of the box: • 🇬🇧 English • 🇷🇺 Russian • 🇺🇦 Ukrainian • 🇹🇷 Turkish • 🇪🇸 Spanish • 🇵🇹 Portuguese • ➕ extensible language system for custom localization All UI layers, notifications and admin panel can be fully translated per deployment. 🎯 Ideal Use Cases 🎮 Gaming Projects / Lineage II Servers • pre-launch hype campaigns • donation reward giveaways • VIP / premium account distribution • promo code campaigns • server opening events 🎥 Streamers & Creators • subscriber engagement campaigns • live stream giveaways • audience growth funnels • partnership promotions 🌐 Communities & Brands • automated engagement systems • viral marketing campaigns • audience retention mechanics 🏗 Architecture & Deployment • Telegram Mini App frontend • FastAPI backend architecture • PostgreSQL database layer • Redis caching system • Docker-based deployment • WebSocket real-time updates • REST API integration layer 📦 Self-hosted deployment — full control over infrastructure and data 🎨 White-Label & Customization Each installation can be fully customized: • complete UI/UX rebranding • project-specific visual identity • custom engagement mechanics • referral & viral systems • loyalty & progression systems • seasonal campaign modules • custom API integrations   💡 Why This Platform Traditional contest bots are limited, noisy and inefficient. Telonyx Contest Platform is a modern engagement layer for Telegram ecosystems — combining UX, automation and monetization in one system. ✔ Higher participation rate ✔ Lower friction ✔ Direct revenue via Telegram Stars ✔ Full control via self-hosted deployment 💼 Commercial Model • Single License (Self-Hosted Deployment) • White-Label Branding Rights • Optional Custom Development • Installation & Setup Service 📩 Contact For demo access, licensing details or custom implementation: @se1dhe @telonyx_dev  
    • https://discord.gg/acvqx9rbhy Added intelligent agent that reads scripts and config and provides infos to players regarding gameplay Like where to farm/max enchants etc etc   Added auto translate to En/ES/BR htmls without api
    • The core strength of Novproxy Perfectly unlock overseas AI large models: 100% pure residential IP, perfectly bypassing various strict risk controls such as ChatGPT, Claude, Midjourney, etc. This is an essential tool for parents to train AI on weekends and during work! Available in 195+ countries/regions worldwide: covering an extremely wide range. Whether it's setting up accounts for cross-border e-commerce, conducting overseas web crawling, or conducting network gray-scale tests, it can all be handled easily. Ultra-fast concurrency: Real residential network, stable and non-blocking, high-concurrency business can also run at full capacity.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..