ソースを参照

BETA: Heal over time shouldn't be stored/restored on logout/login.

Zoey76 11 年 前
コミット
af108c2f5e

+ 6 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -7823,6 +7823,12 @@ public final class L2PcInstance extends L2Playable
 					}
 					
 					final L2Skill skill = info.getSkill();
+					// Do not save heals.
+					if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
+					{
+						continue;
+					}
+					
 					if (skill.isToggle())
 					{
 						continue;

+ 30 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java

@@ -66,6 +66,7 @@ import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.stats.Env;
@@ -1081,7 +1082,24 @@ public class L2PetInstance extends L2Summon
 						continue;
 					}
 					
-					L2Skill skill = info.getSkill();
+					final L2Skill skill = info.getSkill();
+					// Do not save heals.
+					if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
+					{
+						continue;
+					}
+					
+					if (skill.isToggle())
+					{
+						continue;
+					}
+					
+					// Dances and songs are not kept in retail.
+					if (skill.isDance() && !Config.ALT_STORE_DANCES)
+					{
+						continue;
+					}
+					
 					if (storedSkills.contains(skill.getReuseHashCode()))
 					{
 						continue;
@@ -1089,22 +1107,19 @@ public class L2PetInstance extends L2Summon
 					
 					storedSkills.add(skill.getReuseHashCode());
 					
-					if (!skill.isToggle())
+					ps2.setInt(1, getControlObjectId());
+					ps2.setInt(2, skill.getId());
+					ps2.setInt(3, skill.getLevel());
+					ps2.setInt(4, info.getTime());
+					ps2.setInt(5, ++buff_index);
+					ps2.execute();
+					
+					if (!SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
 					{
-						ps2.setInt(1, getControlObjectId());
-						ps2.setInt(2, skill.getId());
-						ps2.setInt(3, skill.getLevel());
-						ps2.setInt(4, info.getTime());
-						ps2.setInt(5, ++buff_index);
-						ps2.execute();
-						
-						if (!SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
-						{
-							SummonEffectsTable.getInstance().getPetEffects().put(getControlObjectId(), new FastList<SummonEffect>());
-						}
-						
-						SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).add(SummonEffectsTable.getInstance().new SummonEffect(skill, info.getTime()));
+						SummonEffectsTable.getInstance().getPetEffects().put(getControlObjectId(), new FastList<SummonEffect>());
 					}
+					
+					SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).add(SummonEffectsTable.getInstance().new SummonEffect(skill, info.getTime()));
 				}
 			}
 		}

+ 40 - 25
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java

@@ -41,6 +41,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.skills.l2skills.L2SkillSummon;
@@ -381,7 +382,24 @@ public class L2ServitorInstance extends L2Summon
 							continue;
 						}
 						
-						L2Skill skill = info.getSkill();
+						final L2Skill skill = info.getSkill();
+						// Do not save heals.
+						if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
+						{
+							continue;
+						}
+						
+						if (skill.isToggle())
+						{
+							continue;
+						}
+						
+						// Dances and songs are not kept in retail.
+						if (skill.isDance() && !Config.ALT_STORE_DANCES)
+						{
+							continue;
+						}
+						
 						if (storedSkills.contains(skill.getReuseHashCode()))
 						{
 							continue;
@@ -389,32 +407,29 @@ public class L2ServitorInstance extends L2Summon
 						
 						storedSkills.add(skill.getReuseHashCode());
 						
-						if (!skill.isToggle())
+						ps2.setInt(1, getOwner().getObjectId());
+						ps2.setInt(2, getOwner().getClassIndex());
+						ps2.setInt(3, getReferenceSkill());
+						ps2.setInt(4, skill.getId());
+						ps2.setInt(5, skill.getLevel());
+						ps2.setInt(6, info.getTime());
+						ps2.setInt(7, ++buff_index);
+						ps2.execute();
+						
+						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()))
 						{
-							ps2.setInt(1, getOwner().getObjectId());
-							ps2.setInt(2, getOwner().getClassIndex());
-							ps2.setInt(3, getReferenceSkill());
-							ps2.setInt(4, skill.getId());
-							ps2.setInt(5, skill.getLevel());
-							ps2.setInt(6, info.getTime());
-							ps2.setInt(7, ++buff_index);
-							ps2.execute();
-							
-							if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()))
-							{
-								SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>());
-							}
-							if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()))
-							{
-								SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new TIntObjectHashMap<List<SummonEffect>>());
-							}
-							if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
-							{
-								SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), new FastList<SummonEffect>());
-							}
-							
-							SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(SummonEffectsTable.getInstance().new SummonEffect(skill, info.getTime()));
+							SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>());
+						}
+						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()))
+						{
+							SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new TIntObjectHashMap<List<SummonEffect>>());
 						}
+						if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+						{
+							SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), new FastList<SummonEffect>());
+						}
+						
+						SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(SummonEffectsTable.getInstance().new SummonEffect(skill, info.getTime()));
 					}
 				}
 			}