Jump to content
  • 0

[help]when char becomes castle lord don't take cirlet


Thelasthero

Question

4 answers to this question

Recommended Posts

  • 0

I got this at l2jfree pack, Interlude.

CrownManager.getInstance().checkCrowns(clan);

 

Check that. And see if it's needed to recode.

where is it in? what java file?

Link to comment
Share on other sites

  • 0

Index: /Server/GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java
===================================================================
--- /Server/GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java (revision 26)
+++ /Server/GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java (revision 40)
@@ -34,4 +34,5 @@
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.instancemanager.CastleManager;
+import net.sf.l2j.gameserver.instancemanager.CrownManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
@@ -263,4 +264,7 @@
     	broadcastToOnlineMembers(sm);
     	sm = null;
+    	
+    	CrownManager.getInstance().checkCrowns(exLeader);
+    	CrownManager.getInstance().checkCrowns(newLeader);
	}
	/**
Index: /Server/GameServer/java/net/sf/l2j/gameserver/model/entity/Castle.java
===================================================================
--- /Server/GameServer/java/net/sf/l2j/gameserver/model/entity/Castle.java (revision 2)
+++ /Server/GameServer/java/net/sf/l2j/gameserver/model/entity/Castle.java (revision 40)
@@ -38,4 +38,5 @@
import net.sf.l2j.gameserver.instancemanager.CastleManager;
import net.sf.l2j.gameserver.instancemanager.CastleManorManager;
+import net.sf.l2j.gameserver.instancemanager.CrownManager;
import net.sf.l2j.gameserver.instancemanager.CastleManorManager.CropProcure;
import net.sf.l2j.gameserver.instancemanager.CastleManorManager.SeedProduction;
@@ -278,4 +279,5 @@
				oldOwner.setHasCastle(0);												// Unset has castle flag for old owner
         		new Announcements().announceToAll(oldOwner.getName() + " has lost " + getName() + " castle!");
+        		CrownManager.getInstance().checkCrowns(oldOwner);                       // Delete old crowns
			}
	    }
@@ -617,5 +619,5 @@
     		    new Announcements().announceToAll(clan.getName() + " has taken " + getName() + " castle!");
     		    clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
-
+    		    CrownManager.getInstance().checkCrowns(clan);                                           // Give Crowns To New Owner
     		    ThreadPoolManager.getInstance().scheduleGeneral(new CastleUpdater(clan, 1), 3600000);	// Schedule owner tasks to start running
             }

 

make new file CrownManager.java in instancemanager folder and place :

/*
* 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 net.sf.l2j.gameserver.instancemanager;

import net.sf.l2j.gameserver.datatables.CrownTable;
import net.sf.l2j.gameserver.model.L2Clan;
import net.sf.l2j.gameserver.model.L2ClanMember;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.entity.Castle;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
* @author evill33t
* Reworked by NB4L1
*/
public class CrownManager
{
private static final Log	_log	= LogFactory.getLog(CrownManager.class.getName());
private static CrownManager	_instance;

public static final CrownManager getInstance()
{
	if (_instance == null)
		_instance = new CrownManager();
	return _instance;
}

public CrownManager()
{
	_log.info("CrownManager: initialized");
}

public void checkCrowns(L2Clan clan)
{
	if (clan == null)
		return;

	for (L2ClanMember member : clan.getMembers())
	{
		if (member != null && member.isOnline() && member.getPlayerInstance() != null)
		{
			checkCrowns(member.getPlayerInstance());
		}
	}
}

public void checkCrowns(L2PcInstance activeChar)
{
	if (activeChar == null)
		return;

	boolean isLeader = false;
	int crownId = -1;

	L2Clan activeCharClan = activeChar.getClan();
	//L2EMU_EDIT_BEGIN
	L2ClanMember activeCharClanLeader;
	if (activeCharClan != null)
		activeCharClanLeader = activeChar.getClan().getLeader();
	else
		activeCharClanLeader = null;
	//L2EMU_EDIT_END
	if (activeCharClan != null)
	{
		Castle activeCharCastle = CastleManager.getInstance().getCastleByOwner(activeCharClan);

		if (activeCharCastle != null)
		{
			crownId = CrownTable.getCrownId(activeCharCastle.getCastleId());
		}

		//L2EMU_EDIT
		if (activeCharClanLeader != null && activeCharClanLeader.getObjectId() == activeChar.getObjectId())
		//L2EMU_EDIT
		{
			isLeader = true;
		}
	}

	if (crownId > 0)
	{
		if (isLeader && activeChar.getInventory().getItemByItemId(6841) == null)
		{
			activeChar.addItem("Crown", 6841, 1, activeChar, true);
			activeChar.getInventory().updateDatabase();
		}

		if (activeChar.getInventory().getItemByItemId(crownId) == null)
		{
			activeChar.addItem("Crown", crownId, 1, activeChar, true);
			activeChar.getInventory().updateDatabase();
		}
	}

	boolean alreadyFoundCirclet = false;
	boolean alreadyFoundCrown = false;
	for (L2ItemInstance item : activeChar.getInventory().getItems())
	{
		if (CrownTable.getCrownList().contains(item.getItemId()))
		{
			if (crownId > 0)
			{
				if (item.getItemId() == crownId)
				{
					if (!alreadyFoundCirclet)
					{
						alreadyFoundCirclet = true;
						continue;
					}
				}
				else if (item.getItemId() == 6841 && isLeader)
				{
					if (!alreadyFoundCrown)
					{
						alreadyFoundCrown = true;
						continue;
					}
				}
			}

			activeChar.destroyItem("Removing Crown", item, activeChar, true);
			activeChar.getInventory().updateDatabase();
		}
	}
}
}

 

have fun :D

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...