Jump to content
  • 0

[Help] Apply Patches Question


Question

Posted

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

5 answers to this question

Recommended Posts

  • 0
Posted

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]

  • 0
Posted

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.

  • 0
Posted

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

  • 0
Posted

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

Guest
This topic is now closed to further replies.


×
×
  • Create New...