Jump to content

Recommended Posts

Posted

I search on l2j source code and dint find it... since i have long time to use "l2 java" things i made a small automatic given castle lords crown for l2j latetest core.

 

Here you go;

 

### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java	(revision 4514)
+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -74,6 +74,7 @@
import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
import com.l2jserver.gameserver.network.serverpackets.FriendList;
import com.l2jserver.gameserver.network.serverpackets.HennaInfo;
+import com.l2jserver.gameserver.datatables.CrownTable;
import com.l2jserver.gameserver.network.serverpackets.ItemList;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.PledgeShowMemberListAll;
@@ -313,6 +314,12 @@
		// Send Skill list
		activeChar.sendSkillList();

+		if (getCrownIdForPlayer(activeChar)>0)
+			checkCrownForPlayer(activeChar);
+			else
+		giveCrownForPlayer(activeChar);
+
+		
		// Send Dye Information
		activeChar.sendPacket(new HennaInfo(activeChar));

@@ -517,6 +524,76 @@
		}
	}

+	         /* getCrown For Player
+		 * Check: isClan?, isLeader?, isCrownToInventory
+		 * Return: boolean true if Crown for Castle in Inventory
+		 */
+		
+		public int getCrownIdForPlayer(L2PcInstance player)
+		{
+			for(int crownId : CrownTable.getCrownIds())
+			{
+				if(player.getInventory().getItemByItemId(crownId)!= null)
+					return crownId;
+			}
+			return 0;
+		}
+	
+		/*
+		 *	Destroy Crowns for Invalid Data
+		 */
+	
+		public void checkCrownForPlayer(L2PcInstance player)
+		{
+			// Check Clan and Leader?
+			L2Clan clan = player.getClan();
+			// Get All Crowns
+			for(int crownId : CrownTable.getCrownIds())
+			{
+				if(player.getInventory().getItemByItemId(crownId) != null)
+			{
+					// get Count Crowns for fix hacking)
+					int CrownsCount = (int) player.getInventory().getItemByItemId(crownId).getCount();
+					if (clan != null && player.isClanLeader())
+					{
+						if (clan.getHasCastle()>0)
+						{
+	                                        	if (CrownTable.getCrownId(clan.getHasCastle()) != crownId)
+							{
+						                player.getInventory().destroyItemByItemId("Destroy Crown", crownId, CrownsCount, player, player);
+								_log.info("[EnterWorld] Check Crowns for Player ["+player.getName()+"], destroy crownId: "+crownId+", count: "+CrownsCount+" = Wrong CastleId and CrownId!");
+							}
+						}
+						else
+						{
+					                player.getInventory().destroyItemByItemId("Destroy Crown", crownId, CrownsCount, player, player);
+							_log.info("[EnterWorld] Check Crowns for Player ["+player.getName()+"], destroy crownId: "+crownId+", count: "+CrownsCount+" = is not castle!");
+						}
+					}
+					else
+					{
+				                player.getInventory().destroyItemByItemId("Destroy Crown", crownId, CrownsCount, player, player);
+						_log.info("[EnterWorld] Check Crowns for Player ["+player.getName()+"], destroy crownId: "+crownId+", count: "+CrownsCount+" = is not clan or clanLeader!");
+					}
+				}
+			}
+		}
+	
+		public boolean giveCrownForPlayer(L2PcInstance player)
+		{
+			// Check Clan and Leader?
+			L2Clan clan = player.getClan();
+			if (clan != null && player.isClanLeader())
+			{
+				if (clan.getHasCastle()>0)
+				{
+					player.getInventory().addItem("Crown",CrownTable.getCrownId(clan.getHasCastle()),1,player,player);
+					return true;
+				}	
+			}
+			return false;
+		}
+
	/**
	 * @param activeChar partnerid
	 */
Index: java/com/l2jserver/gameserver/datatables/CrownTable.java
===================================================================
--- java/com/l2jserver/gameserver/datatables/CrownTable.java	(revision 0)
+++ java/com/l2jserver/gameserver/datatables/CrownTable.java	(revision 0)
@@ -0,0 +1,75 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.datatables;
+
+/**
+ * This class has just one simple function to return the item id of a crown regarding to castleid
+ * 
+ * @author Cobra
+ */
+public final class CrownTable
+{
+        private static final int[] CROWN_IDS = { 6841, // Crown of the lord
+                6834, // Innadril
+                6835, // Dion
+                6836, // Goddard
+                6837, // Oren
+                6838, // Gludio
+                6839, // Giran
+                6840, // Aden
+                8182, // Rune
+                8183, // Schuttgart
+        };
+        
+        public static int[] getCrownIds()
+        {
+                return CROWN_IDS;
+        }
+        
+        public static int getCrownId(int castleId)
+        {
+                switch (castleId)
+                {
+                        case 1:// Gludio
+                                return 6838;
+                                
+                        case 2: // Dion
+                                return 6835;
+                                
+                        case 3: // Giran
+                                return 6839;
+                                
+                        case 4: // Oren
+                                return 6837;
+                                
+                        case 5: // Aden
+                                return 6840;
+                                
+                        case 6: // Innadril
+                                return 6834;
+                                
+                        case 7: // Goddard
+                                return 6836;
+                                
+                        case 8:// Rune
+                                return 8182;
+                                
+                        case 9: // Schuttgart
+                                return 8183;
+                }
+                
+                return 0;
+        }
+}
\ No newline at end of file

 

Since i dont have any premission to edit my post... sorry if i made any mistake.

 

How to apply patch: http://trac.l2jserver.com/wiki/ApplyingPatches

 

or add it manually.

 

p.s: If this exist on l2jfreya already let me know it :$

 

Posted

Thank you, i was see the help section and that codes they give and are shared... are harcoded.

 

Since i dont play l2...so much :$ i download the latest core... and i was searching over the code if this exist...

 

Thanks MD For hes test and told me that working properly.

 

 

Posted

Thank you, i was see the help section and that codes they give and are shared... are harcoded.

 

Since i dont play l2...so much :$ i download the latest core... and i was searching over the code if this exist...

 

Thanks MD For hes test and told me that working properly.

 

 

Αctually,Nikoloudos did.I was just watching via TV :P

Gj,bud ;)

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...