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)
Hello everyone, we are one of the top gaming currency stores. We work exclusively with top projects.
If you are interested in anything like Adena, Coins, Equip, write to us
Discord - pchelacoin
Telegram - https://t.me/ipchelacoin
BOHPTS, KETRAWARS, EURO-PVP, L2REBORN, E-GLOBAL, LA2DREAM
TOP PRICE !!!!!!!
Question
lowrider88
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