- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
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