Jump to content
  • 0

[Help] Apply Patches Question


lowrider88

Question

Ok so i looked at this guide: http://www.l2jserver.com/wiki/How_to_Apply_a_Patch

 

But i had a few questions When i get a patch that dont have any (-) or (+) it cant be added manualy right ? And i have to save this patch in my workspace  l2jserver.gameserver.datatables/PvPRewardsTable.java ?

 

package com.l2jserver.gameserver.datatables;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

import javolution.util.FastMap;

import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.util.Rnd;


/**
* @author hNoke
*
*/
public class PvPRewardsTable
{
private Map<Integer, PvPRewardItem> _rewards;

public static PvPRewardsTable getInstance()
{
	return SingletonHolder._instance;
}

public PvPRewardsTable()
{
	load();
}

public void rewardLastHit(L2PcInstance winner, L2PcInstance target)
{
	int random = Rnd.get(100000);
	int ammount;

	for(Map.Entry<Integer, PvPRewardItem> item : _rewards.entrySet())
	{
		if(item.getKey() < random)
		{
			ammount = item.getValue().getAmmount(winner);

			if(ammount > 0)
				winner.addItem("PvPReward", item.getValue().id, ammount, null, true);
		}
	}
}

public class PvPRewardItem
{
	public int id;
	public int minAmmount;
	public int maxAmmount;
	public int chance;
	public int pvpRequired;
	public int levelRequired;

	public PvPRewardItem(int id, int minAmmount, int maxAmmount, int chance, int pvpRequired, int levelRequired)
	{
		this.id = id;
		this.minAmmount = minAmmount;
		this.maxAmmount = maxAmmount;
		this.chance = chance;
		this.pvpRequired = pvpRequired;
		this.levelRequired = levelRequired;
	}

	public int getAmmount(L2PcInstance player)
	{
		if(player.getLevel() >= levelRequired && player.getPvpKills() >= pvpRequired)
			return Rnd.get(minAmmount, maxAmmount);
		else
			return 0;
	}
}

private void load()
{
	_rewards = new FastMap<Integer, PvPRewardItem>();

	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT * FROM pvp_rewards");
		ResultSet rset = statement.executeQuery();

		while (rset.next())
		{
			_rewards.put(rset.getInt("chance"), new PvPRewardItem(rset.getInt("id"), rset.getInt("minAmmount"), rset.getInt("maxAmmount"), rset.getInt("chance"), rset.getInt("pvpRequired"), rset.getInt("levelRequired")));
		}

		rset.close();
		statement.close();
	}

	catch (SQLException e)
	{
		e.printStackTrace();
	}

	finally
	{
		try
		{
			con.close();
		}

		catch (Exception e)
		{
		}
	}
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final PvPRewardsTable _instance = new PvPRewardsTable();
}
}

 

Also another question about Diff Files: i know that guide says:

@@ -99,7 +99,9 @@  = These are the lines above the edit.  Whats that mean,

 

and do i replace the --- java/com/l2jserver/gameserver/GameServer.java (revision 4402)

with the +++ java/com/l2jserver/gameserver/GameServer.java (working copy)

and put my rev in where it says "Working Copy"

 

### Eclipse Workspace Patch 1.0
#P L2j_hNoke_CORE
Index: java/com/l2jserver/gameserver/GameServer.java
===================================================================
--- java/com/l2jserver/gameserver/GameServer.java	(revision 4402)
+++ java/com/l2jserver/gameserver/GameServer.java	(working copy)
@@ -38,7 +38,9 @@
import com.l2jserver.gameserver.datatables.AdminCommandAccessRights;
import com.l2jserver.gameserver.datatables.ArmorSetsTable;
import com.l2jserver.gameserver.datatables.AugmentationData;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.datatables.CharTemplateTable;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.datatables.DoorTable;
@@ -61,9 +63,11 @@
import com.l2jserver.gameserver.datatables.NpcBufferTable;
import com.l2jserver.gameserver.datatables.NpcTable;
import com.l2jserver.gameserver.datatables.NpcWalkerRoutesTable;
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.datatables.PetSkillsTable;
+import com.l2jserver.gameserver.datatables.PvPRewardsTable;
import com.l2jserver.gameserver.datatables.ResidentialSkillTable;
import com.l2jserver.gameserver.datatables.SkillSpellbookTable;
import com.l2jserver.gameserver.datatables.SkillTable;
@@ -84,11 +88,14 @@
import com.l2jserver.gameserver.instancemanager.AirShipManager;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.BoatManager;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.instancemanager.CastleManorManager;
import com.l2jserver.gameserver.instancemanager.ClanHallManager;
import com.l2jserver.gameserver.instancemanager.CoupleManager;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
import com.l2jserver.gameserver.instancemanager.FortManager;
@@ -115,8 +122,10 @@
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.PartyMatchRoomList;
import com.l2jserver.gameserver.model.PartyMatchWaitingList;
import com.l2jserver.gameserver.model.entity.Hero;
import com.l2jserver.gameserver.model.entity.TvTManager;
import com.l2jserver.gameserver.model.olympiad.Olympiad;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.L2GamePacketHandler;
@@ -205,6 +214,7 @@
		L2World.getInstance();
		MapRegionTable.getInstance();
		Announcements.getInstance();

		printSection("Skills");
		EnchantGroupsTable.getInstance();
@@ -251,6 +261,7 @@
			PathFinding.getInstance();

		printSection("NPCs");
		NpcTable.getInstance();
		NpcWalkerRoutesTable.getInstance();
		ZoneManager.getInstance();
@@ -400,6 +411,16 @@
			_log.log(Level.WARNING, "DynamicExtension could not be loaded and initialized", ex);
		}


+		PvPRewardsTable.getInstance();
+		
		TvTManager.getInstance();
		KnownListUpdateTaskManager.getInstance();


Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4402)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -21,6 +21,8 @@

	/**
	 * Increase the pvp kills count and send the info to the player
@@ -5817,17 +6077,175 @@
	 */
			// Add karma to attacker and increase its PK counter
			setPvpKills(getPvpKills() + 1);

+			PvPRewardsTable.getInstance().rewardLastHit(this, (L2PcInstance)target);

			// Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
			sendPacket(new UserInfo(this));
			sendPacket(new ExBrExtraUserInfo(this));
		}
	}
}


 

Thanks for any help guys, i am new and want to try to learn this stuff Thanks Again :D

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Ok so i looked at this guide: http://www.l2jserver.com/wiki/How_to_Apply_a_Patch

 

But i had a few questions When i get a patch that dont have any (-) or (+) it cant be added manualy right ? And i have to save this patch in my workspace  l2jserver.gameserver.datatables/PvPRewardsTable.java ?

 

package com.l2jserver.gameserver.datatables;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

import javolution.util.FastMap;

import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.util.Rnd;


/**
* @author hNoke
*
*/
public class PvPRewardsTable
{
private Map<Integer, PvPRewardItem> _rewards;

public static PvPRewardsTable getInstance()
{
	return SingletonHolder._instance;
}

public PvPRewardsTable()
{
	load();
}

public void rewardLastHit(L2PcInstance winner, L2PcInstance target)
{
	int random = Rnd.get(100000);
	int am-beep-t;

	for(Map.Entry<Integer, PvPRewardItem> item : _rewards.entrySet())
	{
		if(item.getKey() < random)
		{
			am-beep-t = item.getValue().getAm-beep-t(winner);

			if(am-beep-t > 0)
				winner.addItem("PvPReward", item.getValue().id, am-beep-t, null, true);
		}
	}
}

public class PvPRewardItem
{
	public int id;
	public int minAm-beep-t;
	public int maxAm-beep-t;
	public int chance;
	public int pvpRequired;
	public int levelRequired;

	public PvPRewardItem(int id, int minAm-beep-t, int maxAm-beep-t, int chance, int pvpRequired, int levelRequired)
	{
		this.id = id;
		this.minAm-beep-t = minAm-beep-t;
		this.maxAm-beep-t = maxAm-beep-t;
		this.chance = chance;
		this.pvpRequired = pvpRequired;
		this.levelRequired = levelRequired;
	}

	public int getAm-beep-t(L2PcInstance player)
	{
		if(player.getLevel() >= levelRequired && player.getPvpKills() >= pvpRequired)
			return Rnd.get(minAm-beep-t, maxAm-beep-t);
		else
			return 0;
	}
}

private void load()
{
	_rewards = new FastMap<Integer, PvPRewardItem>();

	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT * FROM pvp_rewards");
		ResultSet rset = statement.executeQuery();

		while (rset.next())
		{
			_rewards.put(rset.getInt("chance"), new PvPRewardItem(rset.getInt("id"), rset.getInt("minAm-beep-t"), rset.getInt("maxAm-beep-t"), rset.getInt("chance"), rset.getInt("pvpRequired"), rset.getInt("levelRequired")));
		}

		rset.close();
		statement.close();
	}

	catch (SQLException e)
	{
		e.printStackTrace();
	}

	finally
	{
		try
		{
			con.close();
		}

		catch (Exception e)
		{
		}
	}
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final PvPRewardsTable _instance = new PvPRewardsTable();
}
}

 

Also another question about Diff Files: i know that guide says:

@@ -99,7 +99,9 @@  = These are the lines above the edit.  Whats that mean,

 

and do i replace the --- java/com/l2jserver/gameserver/GameServer.java (revision 4402)

with the +++ java/com/l2jserver/gameserver/GameServer.java (working copy)

and put my rev in where it says "Working Copy"

 

### Eclipse Workspace Patch 1.0
#P L2j_hNoke_CORE
Index: java/com/l2jserver/gameserver/GameServer.java
===================================================================
--- java/com/l2jserver/gameserver/GameServer.java	(revision 4402)
+++ java/com/l2jserver/gameserver/GameServer.java	(working copy)
@@ -38,7 +38,9 @@
import com.l2jserver.gameserver.datatables.AdminCommandAccessRights;
import com.l2jserver.gameserver.datatables.ArmorSetsTable;
import com.l2jserver.gameserver.datatables.AugmentationData;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.datatables.CharTemplateTable;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.datatables.DoorTable;
@@ -61,9 +63,11 @@
import com.l2jserver.gameserver.datatables.NpcBufferTable;
import com.l2jserver.gameserver.datatables.NpcTable;
import com.l2jserver.gameserver.datatables.NpcWalkerRoutesTable;
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.datatables.PetSkillsTable;
+import com.l2jserver.gameserver.datatables.PvPRewardsTable;
import com.l2jserver.gameserver.datatables.ResidentialSkillTable;
import com.l2jserver.gameserver.datatables.SkillSpellbookTable;
import com.l2jserver.gameserver.datatables.SkillTable;
@@ -84,11 +88,14 @@
import com.l2jserver.gameserver.instancemanager.AirShipManager;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.BoatManager;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.instancemanager.CastleManorManager;
import com.l2jserver.gameserver.instancemanager.ClanHallManager;
import com.l2jserver.gameserver.instancemanager.CoupleManager;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
import com.l2jserver.gameserver.instancemanager.FortManager;
@@ -115,8 +122,10 @@
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.PartyMatchRoomList;
import com.l2jserver.gameserver.model.PartyMatchWaitingList;
import com.l2jserver.gameserver.model.entity.Hero;
import com.l2jserver.gameserver.model.entity.TvTManager;
import com.l2jserver.gameserver.model.olympiad.Olympiad;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.L2GamePacketHandler;
@@ -205,6 +214,7 @@
		L2World.getInstance();
		MapRegionTable.getInstance();
		Announcements.getInstance();

		printSection("Skills");
		EnchantGroupsTable.getInstance();
@@ -251,6 +261,7 @@
			PathFinding.getInstance();

		printSection("NPCs");
		NpcTable.getInstance();
		NpcWalkerRoutesTable.getInstance();
		ZoneManager.getInstance();
@@ -400,6 +411,16 @@
			_log.log(Level.WARNING, "DynamicExtension could not be loaded and initialized", ex);
		}


+		PvPRewardsTable.getInstance();
+		
		TvTManager.getInstance();
		KnownListUpdateTaskManager.getInstance();


Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4402)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -21,6 +21,8 @@

	/**
	 * Increase the pvp kills count and send the info to the player
@@ -5817,17 +6077,175 @@
	 */
			// Add karma to attacker and increase its PK counter
			setPvpKills(getPvpKills() + 1);

+			PvPRewardsTable.getInstance().rewardLastHit(this, (L2PcInstance)target);

			// Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
			sendPacket(new UserInfo(this));
			sendPacket(new ExBrExtraUserInfo(this));
		}
	}
}


 

Thanks for any help guys, i am new and want to try to learn this stuff Thanks Again :D

when you see a patch without + or - it's because the author creates a new class.

example,if you see in a code without + or - this:

package com.l2jserver.gameserver.datatables;

you 'll understand that you will have to create a new class in this specific package,now about the name you'll just have to see what's the name of the class,here:

public class PvPRewardsTable

so PvPRewardsTable will be the name of the class.

 

in order to create a class,you'll have to right click -> new -> class.

 

about the 2nd part of your question,just read some tuts/guides in the forum [use search button and you'll be k]

Link to comment
Share on other sites

  • 0

Your first c/p isn't a diff patch at all, whatever is its current extension. Calling a cat a dog won't help it bark. Create a new class in datatable folder, named 'PvPRewardsTable.java' and c/p the content of your 1st c/p on it.

 

The second c/p is a diff patch, as you can see - and + on it. +++ / --- you haven't to care about it's revision. Simply add 'PvPRewardsTable.getInstance();' before tvt crap, save the file which will automatically import the import and you're done.

Link to comment
Share on other sites

  • 0

ok so heres what i got so far lol, i am trying to apply this patch i go to team>Apply Patch  then i get this: what does the red x mean, and i cant click next, if i click finish will it apply my patch...or do i have to do this manuly,  Thanks again guys

 

error.jpg

Link to comment
Share on other sites

  • 0

ok so heres what i got so far lol, i am trying to apply this patch i go to team>Apply Patch  then i get this: what does the red x mean, and i cant click next, if i click finish will it apply my patch...or do i have to do this manuly,  Thanks again guys

 

error.jpg

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • 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