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

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

    • I tried their panel a few weeks ago mostly to test out how well it would work if you want to buy instagram followers, and it worked smoother than I expected. The delivery was quick and the followers didn’t drop off after a day or two like on some other services I’ve tried. For anyone just starting out and wanting to grow fast, it’s been a solid option so far.
    • MultiSell_begin [armor_shop_dynaa] 533 is_dutyfree = 1 selllist={ {{{[epic_dk_heavy_armor];1};{[epic_dk_heavy_legs];1};{[epic_dk_heavy_gloves];1};{[epic_dk_heavy_boots];1};{[epic_dk_heavy_helmet];1}};{{[lembrancade];1};{[stonewater];1};{[stonewind];1}}}; {{{[epic_dk_light_armor];1};{[epic_dk_light_gloves];1};{[epic_dk_light_boots];1};{[epic_dk_light_helmet];1}};{{[lembrancade];1};{[stonewater];1};{[stonewind];1}}}; {{{[epic_dk_robe_armor];1};{[epic_dk_robe_gloves];1};{[epic_dk_robe_boots];1};{[epic_dk_robe_helmet];1}};{{[lembrancade];1};{[stonewater];1};{[stonewind];1}}} } MultiSell_end try this
    • A simple script which randomizes your target from shortest -> furthest so you can farm with Rush Impact on your doombringer   Edit your skill id (Default 45179): SkillList.ByID(45159, sweep)   Edit your search range (Default 900):  Script.NewThread(@SweepThread, Pointer(900));     var bSweepFurthest: boolean; // Global state variable to track which mob to get next // This procedure now alternates between finding the furthest and nearest mob. procedure SweepThread(dist: integer); var sweep: TL2Skill; mob: TL2Npc; begin while Delay(100) do begin if (Engine.Status = lsOnline) and SkillList.ByID(45159, sweep) then begin // Decide which mob to find based on the bSweepFurthest state if (bSweepFurthest) then begin mob:= GetFurthestSweepableMob(dist); // Looking for the furthest mob end else begin mob:= GetNearestSweepableMob(dist); // Looking for the nearest mob end; if (mob <> nil) then begin if Engine.SetTarget(mob) then Delay(1); Engine.UseSkill(sweep) ; // Flip the state for the next loop iteration bSweepFurthest := not bSweepFurthest; end; end; end; end; // Corrected to check for dead mobs function GetNearestSweepableMob(dist: integer): TL2Npc; var i: integer; begin Result:= nil; for i:= 0 to NpcList.Count-1 do begin if (NpcList(i).Valid) and (User.DistTo(NpcList(i)) < dist) and not (NpcList(i).Dead) then begin // <<< Corrected: Sweepable mobs are dead Result:= NpcList(i); dist:= User.DistTo(NpcList(i)); end; end; end; // Modified to accept a distance parameter and corrected to check for dead mobs function GetFurthestSweepableMob(dist: integer): TL2Npc; var i: integer; max_dist: integer; begin Result:= nil; max_dist:= 0; for i:= 0 to NpcList.Count-1 do begin if (NpcList(i).Valid) and (User.DistTo(NpcList(i)) < dist) // <<< Changed from 400 to the 'dist' parameter and not (NpcList(i).Dead) // <<< Corrected: Sweepable mobs are dead and (User.DistTo(NpcList(i)) > max_dist) then begin Result:= NpcList(i); max_dist:= User.DistTo(NpcList(i)); end; end; end; // Main execution block begin // Initialize the state to start by finding the furthest mob first bSweepFurthest := true; // Start the thread, passing 300 as the max distance for both nearest and furthest searches Script.NewThread(@SweepThread, Pointer(900)); Delay(-1); end.  
    • 🔥 O servidor que vai mudar seu conceito de Lineage 2! ⚔️ https://L2Destruction.com.br | Chronicle C4 - Scion of Destiny Um clássico com alma moderna. Eventos inéditos, mecânicas revolucionárias e um PvP/PvE intenso como você nunca viu! ✅ Rates: XP 75 / SP 65 / Adena 75 ✅ Party Level Up ✅ Anti-bot, anti-pay-to-win ✅ Comunidade ativa e suporte dedicado 🎯 Se você busca emoção de verdade, este é o servidor! 🔗 Acesse: https://L2Destruction.com.br 🛡️ Prepare-se para o combate. O seu destino começa agora. 🔥 The server that will redefine your Lineage 2 experience! ⚔️ https://L2Destruction.com.br | Chronicle C4 - Scion of Destiny A classic reborn with modern systems. Unique events, custom mechanics, and non-stop PvP/PvE action await you! ✅ Rates: XP 75 / SP 65 / Adena 75 ✅ Party Level Up ✅ No bots, no pay-to-win ✅ Active community and dedicated support 🎯 If you want a real challenge — this is your server! 🔗 Visit: https://L2Destruction.com.br 🛡️ The battle begins now. Your destiny awaits. 🔥 ¡El servidor que va a revolucionar tu experiencia en Lineage 2! ⚔️ https://L2Destruction.com.br | Chronicle C4 - Scion of Destiny Un clásico con alma moderna. Eventos únicos, mecánicas avanzadas y acción PvP/PvE constante como nunca antes. ✅ Rates: XP 75 / SP 65 / Adena 75 ✅ Party Level Up ✅ Sin bots, sin pay-to-win ✅ Comunidad activa y soporte dedicado 🎯 Si buscas una experiencia real — este es tu servidor. 🔗 Ingresa a: https://L2Destruction.com.br 🛡️ Prepárate para la guerra. Tu destino comienza ahora!  
    • Dear friends! We are pleased to present our new Telegram bot for purchasing  Telegram Stars  Convenient and easy to use The best prices Fast, cheap, and safe Support for multiple payment methods ➡ Go to the bot to purchase Telegram Stars Useful links: Telegram bot for purchasing Telegram Stars: Go Digital goods store: Go Store’s Telegram bot: Go SMM Panel: Go Contacts and support: ➡ Telegram: https://t.me/socnet_support  ➡ Telegram channel: https://t.me/accsforyou_shop  ➡ WhatsApp: https://wa.me/79051904467  ➡ WhatsApp channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Discord: socnet_support  ➡ Discord server: https://discord.gg/y9AStFFsrh  ➡ ✉ Email: solomonbog@socnet.store  Through these contacts you can also: — get consultations on wholesale purchases — establish a partnership (current partners: https://socnet.bgng.io/partners ) — become our supplier SocNet — digital goods and premium subscriptions store 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock