Browse Source

BETA/STABLE: Core-Part for [DP8199] by Adry_85.

MELERIX 14 years ago
parent
commit
cff0b0c0c3

+ 25 - 25
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java

@@ -132,7 +132,11 @@ public class PetDataTable
 											NamedNodeMap attrs = bean.getAttributes();
 											String type = attrs.getNamedItem("name").getNodeValue();
 											String value = attrs.getNamedItem("val").getNodeValue();
-											if ("exp".equals(type))
+											if ("max_meal".equals(type))
+											{
+												stat.setPetMaxFeed(Integer.parseInt(value));
+											}
+											else if ("exp".equals(type))
 											{
 												stat.setPetMaxExp(Long.parseLong(value));
 											}
@@ -148,49 +152,45 @@ public class PetDataTable
 											{
 												stat.setPetFeedNormal(Integer.parseInt(value));
 											}
-											else if ("max_meal".equals(type))
-											{
-												stat.setPetMaxFeed(Integer.parseInt(value));
-											}
-											else if ("soulshot_count".equals(type))
+											else if ("org_pattack".equals(type))
 											{
-												stat.setPetSoulShot((short) Integer.parseInt(value));
+												stat.setPetPAtk(Float.parseFloat(value));
 											}
-											else if ("spiritshot_count".equals(type))
+											else if ("org_pdefend".equals(type))
 											{
-												stat.setPetSpiritShot((short) Integer.parseInt(value));
+												stat.setPetPDef(Float.parseFloat(value));
 											}
-											else if ("hp".equals(type))
+											else if ("org_mattack".equals(type))
 											{
-												stat.setPetMaxHP(Integer.parseInt(value));
+												stat.setPetMAtk(Float.parseFloat(value));
 											}
-											else if ("mp".equals(type))
+											else if ("org_mdefend".equals(type))
 											{
-												stat.setPetMaxMP(Integer.parseInt(value));
+												stat.setPetMDef(Float.parseFloat(value));
 											}
-											else if ("pdef".equals(type))
+											else if ("org_hp".equals(type))
 											{
-												stat.setPetPDef(Integer.parseInt(value));
+												stat.setPetMaxHP(Float.parseFloat(value));
 											}
-											else if ("mdef".equals(type))
+											else if ("org_mp".equals(type))
 											{
-												stat.setPetMDef(Integer.parseInt(value));
+												stat.setPetMaxMP(Float.parseFloat(value));
 											}
-											else if ("patk".equals(type))
+											else if ("org_hp_regen".equals(type))
 											{
-												stat.setPetPAtk(Integer.parseInt(value));
+												stat.setPetRegenHP(Float.parseFloat(value));
 											}
-											else if ("matk".equals(type))
+											else if ("org_mp_regen".equals(type))
 											{
-												stat.setPetMAtk(Integer.parseInt(value));
+												stat.setPetRegenMP(Float.parseFloat(value));
 											}
-											else if ("hpreg".equals(type))
+											else if ("soulshot_count".equals(type))
 											{
-												stat.setPetRegenHP(Integer.parseInt(value));
+												stat.setPetSoulShot((short) Integer.parseInt(value));
 											}
-											else if ("mpreg".equals(type))
+											else if ("spiritshot_count".equals(type))
 											{
-												stat.setPetRegenMP(Integer.parseInt(value));
+												stat.setPetSpiritShot((short) Integer.parseInt(value));
 											}
 										}
 									}

+ 24 - 24
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2PetLevelData.java

@@ -23,17 +23,17 @@ public class L2PetLevelData
 {
 	private int _ownerExpTaken;
 	private long _petMaxExp;
-	private int _petMaxHP;
-	private int _petMaxMP;
-	private int _petPAtk;
-	private int _petPDef;
-	private int _petMAtk;
-	private int _petMDef;
+	private float _petMaxHP;
+	private float _petMaxMP;
+	private float _petPAtk;
+	private float _petPDef;
+	private float _petMAtk;
+	private float _petMDef;
 	private int _petMaxFeed;
 	private int _petFeedBattle;
 	private int _petFeedNormal;
-	private int _petRegenHP;
-	private int _petRegenMP;
+	private float _petRegenHP;
+	private float _petRegenMP;
 	private short _petSoulShot;
 	private short _petSpiritShot;
 	
@@ -59,67 +59,67 @@ public class L2PetLevelData
 	}
 	
 	//  Max HP
-	public int getPetMaxHP()
+	public float getPetMaxHP()
 	{
 		return _petMaxHP;
 	}
 	
-	public void setPetMaxHP(int pPetMaxHP)
+	public void setPetMaxHP(float pPetMaxHP)
 	{
 		_petMaxHP = pPetMaxHP;
 	}
 	
 	//  Max Mp
-	public int getPetMaxMP()
+	public float getPetMaxMP()
 	{
 		return _petMaxMP;
 	}
 	
-	public void setPetMaxMP(int pPetMaxMP)
+	public void setPetMaxMP(float pPetMaxMP)
 	{
 		_petMaxMP = pPetMaxMP;
 	}
 	
 	//  PAtk
-	public int getPetPAtk()
+	public float getPetPAtk()
 	{
 		return _petPAtk;
 	}
 	
-	public void setPetPAtk(int pPetPAtk)
+	public void setPetPAtk(float pPetPAtk)
 	{
 		_petPAtk = pPetPAtk;
 	}
 	
 	//  PDef
-	public int getPetPDef()
+	public float getPetPDef()
 	{
 		return _petPDef;
 	}
 	
-	public void setPetPDef(int pPetPDef)
+	public void setPetPDef(float pPetPDef)
 	{
 		_petPDef = pPetPDef;
 	}
 	
 	//  MAtk
-	public int getPetMAtk()
+	public float getPetMAtk()
 	{
 		return _petMAtk;
 	}
 	
-	public void setPetMAtk(int pPetMAtk)
+	public void setPetMAtk(float pPetMAtk)
 	{
 		_petMAtk = pPetMAtk;
 	}
 	
 	//  MDef
-	public int getPetMDef()
+	public float getPetMDef()
 	{
 		return _petMDef;
 	}
 	
-	public void setPetMDef(int pPetMDef)
+	public void setPetMDef(float pPetMDef)
 	{
 		_petMDef = pPetMDef;
 	}
@@ -158,23 +158,23 @@ public class L2PetLevelData
 	}
 	
 	//  Regen HP
-	public int getPetRegenHP()
+	public float getPetRegenHP()
 	{
 		return _petRegenHP;
 	}
 	
-	public void setPetRegenHP(int pPetRegenHP)
+	public void setPetRegenHP(float pPetRegenHP)
 	{
 		_petRegenHP = pPetRegenHP;
 	}
 	
 	//  Regen MP
-	public int getPetRegenMP()
+	public float getPetRegenMP()
 	{
 		return _petRegenMP;
 	}
 	
-	public void setPetRegenMP(int pPetRegenMP)
+	public void setPetRegenMP(float pPetRegenMP)
 	{
 		_petRegenMP = pPetRegenMP;
 	}

+ 24 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/skills/Formulas.java

@@ -34,6 +34,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Summon;
+import com.l2jserver.gameserver.model.actor.instance.L2BabyPetInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2CubicInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -264,13 +265,17 @@ public final class Formulas
 					env.value -= 13;
 				env.value *= BaseStats.MEN.calcBonus(env.player) * env.player.getLevelMod();
 			}
-			else if (env.player instanceof L2PetInstance)
+			else if ((env.player instanceof L2PetInstance) || (env.player instanceof L2BabyPetInstance))
 			{
 				if (env.player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_NECK) != 0)
 				{
-					env.value *= BaseStats.MEN.calcBonus(env.player);
-					return;
+					env.value -= 13;
+					env.value *= BaseStats.MEN.calcBonus(env.player) * ((level + 89) / 100);
 				}
+				else
+				{
+					env.value *= BaseStats.MEN.calcBonus(env.player) * ((level + 89) / 100);
+				}					
 			}
 			else
 			{
@@ -1045,6 +1050,22 @@ public final class Formulas
 			cha.addStatFunc(FuncPAtkSpeed.getInstance());
 			cha.addStatFunc(FuncMAtkSpeed.getInstance());
 		}
+		else if (cha instanceof L2BabyPetInstance)
+		{
+			cha.addStatFunc(FuncMaxHpMul.getInstance());
+			cha.addStatFunc(FuncMaxMpMul.getInstance());
+			cha.addStatFunc(FuncPAtkMod.getInstance());
+			cha.addStatFunc(FuncMAtkMod.getInstance());
+			cha.addStatFunc(FuncPDefMod.getInstance());
+			cha.addStatFunc(FuncMDefMod.getInstance());
+			cha.addStatFunc(FuncAtkCritical.getInstance());
+			cha.addStatFunc(FuncMAtkCritical.getInstance());
+			cha.addStatFunc(FuncAtkAccuracy.getInstance());
+			cha.addStatFunc(FuncAtkEvasion.getInstance());
+			cha.addStatFunc(FuncMoveSpeed.getInstance());
+			cha.addStatFunc(FuncPAtkSpeed.getInstance());
+			cha.addStatFunc(FuncMAtkSpeed.getInstance());
+		}
 		else if (cha instanceof L2Summon)
 		{
 			//cha.addStatFunc(FuncMultRegenResting.getInstance(Stats.REGENERATE_HP_RATE));