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.


  • Posts

    • My official facebook profile!: https://www.facebook.com/spectrumL2 Specifications: Revamped L2JACIS revision FROM the core Private project!!! Revision that has been receiving corrections for over 3 years!!! Events already installed in the revision: TVT CTF KTB PARTY FARM SPOIL EVENT CRAZY RATES TOURNAMENT TIME ZONE (INSTANCE) All working correctly!!! SIEGE ESSENTIAL FEATURES: Walls fix Gates fix Flags fix 100% functional: OLYMPIADS: Implemented settings Hero receives enchanted Weapons with equal status PvP Weapons Optional /true/false Hero can acquire all Hero Weapons Optional true/false OTHER IMPLEMENTATIONS: Teleport fixed (directly to Giran) Teleport effect classic Vip skins vip collor name Pack NPCs with effect already configured BOSES already configured Mobs already configured CLASS BALANCE SPECIAL SYSTEM We have a SPECIAL system developed for Class Balance with only 1 digit in XML %tage of configurable debuffs Player limitation system in BOSES or PvP zones BS blocking system in FLEG zones or events Among others dozens of improvements made in the review... price: 390 USD !  OBS: WE CAN CHANGE THE BANNER AND NAME OF THE SERVICE TO THE ONE OF YOUR PREFERENCE BUT THE SETTINGS MUST BE KEPT ANY CHANGES REQUIRE ADDITION        
    • Server is Online – 1,000+ Active Players! We’re excited to announce the addition of a Europe Proxy to improve connectivity for our EU players! Clans can now benefit from VIP Access to help you catch up faster. 🎯 If you're a clan leader with at least 9 active members, join our Discord and open a ticket to claim your VIP rewards!  
    • The Telegram team is rolling out a new batch of Stars-only gifts you’ll be able to mint as NFTs. Don’t miss your chance to join the next Telegram trend and earn from it! Buy Telegram Stars cheap and KYC-free 1 Star from $0.0149 (min. 50 Stars, bulk discounts available) Promo code STARS5 — 5 % off Pay any way you like: bank cards · crypto · other popular methods How to purchase: ➡Online Store — Click ➡ Telegram bot — Click Other services: ➡ SMM panel — Click Regular buyers get extra discounts and promo codes. Support: ➡ Telegram: https://t.me/solomon_bog ➡ Telegram channel: https://t.me/accsforyou_shop ➡ Discord: https://discord.gg/y9AStFFsrh ➡ WhatsApp: https://wa.me/79051904467 ➡ Email: solomonbog@socnet.store Use these contacts to discuss wholesale orders, partnerships (current list: https://socnet.bgng.io/partners) or to become a supplier. SocNet — your shop for digital goods and premium subscriptions
  • 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