Index: E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/stat/PetStat.java =================================================================== --- E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/stat/PetStat.java (revision 1597) +++ E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/stat/PetStat.java (working copy) @@ -69,7 +69,7 @@ return levelIncreased; } - public final int getExpForLevel(int level) { return L2PetDataTable.getInstance().getPetData(getActiveChar().getNpcId(), level).getPetExp(); } + public final int getExpForLevel(int level) { return L2PetDataTable.getInstance().getPetData(getActiveChar().getNpcId(), level).getPetMaxExp(); } // ========================================================= // Method - Private @@ -95,9 +95,9 @@ public final int getMaxFeed() { return (int)getActiveChar().getPetData().getPetMaxFeed(); } - public int getMaxHp() { return (int)calcStat(Stats.MAX_HP, getActiveChar().getPetData().getPetHP(), null, null); } + public int getMaxHp() { return (int)calcStat(Stats.MAX_HP, getActiveChar().getPetData().getPetMaxHP(), null, null); } - public int getMaxMp() { return (int)calcStat(Stats.MAX_MP, getActiveChar().getPetData().getPetMP(), null, null); } + public int getMaxMp() { return (int)calcStat(Stats.MAX_MP, getActiveChar().getPetData().getPetMaxMP(), null, null); } public int getMAtk(L2Character target, L2Skill skill) { Index: E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2PetDataTable.java =================================================================== --- E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2PetDataTable.java (revision 1597) +++ E:/workspace/l2jc4/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2PetDataTable.java (working copy) @@ -20,11 +20,20 @@ import java.util.Collection; import java.util.Map; +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.logging.Logger; import javolution.util.FastMap; public class L2PetDataTable { + protected static Logger _log = Logger.getLogger(L2PetInstance.class.getName()); + + private static final int[] petList = { 12077, 12312, 12313, 12311, 12527, 12528, 12526 }; + private static L2PetDataTable _instance; private static Map> petTable; @@ -43,6 +52,80 @@ petTable = new FastMap>(); } + public void loadPetsData() + { + for (int i = 0; i < petList.length; i++) + { + int pet = petList[i]; + + L2PetData[] petLevelsList = new L2PetData[80]; + + for (int level = 1; level <= 80; level++) + { + + petLevelsList[level - 1] = new L2PetData(); + petLevelsList[level - 1].setPetID(pet); + petLevelsList[level - 1].setPetLevel(level); + + // System.out.println( " " + petLevelsList[level - 1].getPetID() + " - " + petLevelsList[level - 1].getPetLevel() ); + // starting the SQL thingie (reading stats) + java.sql.Connection conStats = null; + + try + { + conStats = L2DatabaseFactory.getInstance().getConnection(); + + PreparedStatement statementStats = conStats.prepareStatement("SELECT expMax, hpMax, mpMax, patk, pdef, matk, mdef, accuracy, evasion, critical, speed, atk_speed, cast_speed, feedMax, feedbattle, feednormal, loadMax, hpregen, mpregen FROM pets_stats WHERE typeID=? AND level=?"); + + statementStats.setInt(1, pet ); + statementStats.setInt(2, level ); + + ResultSet rsetStats = statementStats.executeQuery(); + + if (!rsetStats.next()) { return; } + + // reading sql + //petLevelsList[level - 1].setPetID(pet); + //petLevelsList[level - 1].setPetLevel(level); + //petLevelsList[level - 1].setPetExp( -1 ); + petLevelsList[level - 1].setPetMaxExp( rsetStats.getInt("expMax") ); + //petLevelsList[level - 1].setPetMaxHP( -1 ); + petLevelsList[level - 1].setPetMaxHP( rsetStats.getInt("hpMax") ); + //petLevelsList[level - 1].setPetMaxMP( -1 ); + petLevelsList[level - 1].setPetMaxMP( rsetStats.getInt("mpMax") ); + petLevelsList[level - 1].setPetPAtk( rsetStats.getInt("patk") ); + petLevelsList[level - 1].setPetPDef( rsetStats.getInt("pdef") ); + petLevelsList[level - 1].setPetMAtk( rsetStats.getInt("matk") ); + petLevelsList[level - 1].setPetMDef( rsetStats.getInt("mdef") ); + petLevelsList[level - 1].setPetAccuracy( rsetStats.getInt("accuracy") ); + petLevelsList[level - 1].setPetEvasion( rsetStats.getInt("evasion") ); + petLevelsList[level - 1].setPetCritical( rsetStats.getInt("critical") ); + petLevelsList[level - 1].setPetSpeed( rsetStats.getInt("speed") ); + petLevelsList[level - 1].setPetAtkSpeed( rsetStats.getInt("atk_speed") ); + petLevelsList[level - 1].setPetCastSpeed( rsetStats.getInt("cast_speed") ); + //petLevelsList[level - 1].setPetFeed( -1 ); + petLevelsList[level - 1].setPetMaxFeed( rsetStats.getInt("feedMax") ); + petLevelsList[level - 1].setPetFeedNormal( rsetStats.getInt("feednormal") ); + petLevelsList[level - 1].setPetFeedBattle( rsetStats.getInt("feedbattle") ); + //petLevelsList[level - 1].setPetLoad( -1 ); + petLevelsList[level - 1].setPetMaxLoad( rsetStats.getInt("loadMax") ); + petLevelsList[level - 1].setPetRegenHP( rsetStats.getInt("hpregen") ); + petLevelsList[level - 1].setPetRegenMP( rsetStats.getInt("mpregen") ); + + rsetStats.close(); + statementStats.close(); + + } catch (Exception e) { + _log.warning("Could not load pets stats: "+ e); + } finally { + try { conStats.close(); } catch (Exception e) {} + } + } + + L2PetDataTable.getInstance().addPetData(petLevelsList); + } + } + public void addPetData(L2PetData petData) { //System.out.println("looking if hashmap for id "+petData.getPetID()+" created"); @@ -54,7 +137,6 @@ statTable.put(petData.getPetLevel(), petData); //System.out.println("adding petdata for level "+petData.getPetLevel()+" created"); petTable.put(petData.getPetID(), statTable); - //System.out.println("added id: "+petData.getPetID()); } else @@ -66,24 +148,22 @@ } + /* public void addPetData(Collection list) { + System.out.println("addPetData(Collection list)"); for (L2PetData petData : list) { + System.out.println(petData); addPetData(petData); } - } - - public void addPetData(L2PetData[] list) + } */ + public void addPetData(L2PetData[] petLevelsList) { - for (int i = 0; i