Fixed restoring summons on login.

This commit is contained in:
MobiusDev
2018-04-02 13:44:23 +00:00
parent 711581a2bc
commit 40558fe87b
6 changed files with 48 additions and 30 deletions

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }

View File

@@ -197,18 +197,21 @@ public class CharSummonTable
final int time = rs.getInt("time"); final int time = rs.getInt("time");
skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId)); skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
if ((skill == null) || !activeChar.hasServitor(summonObjId)) if (skill == null)
{ {
removeServitor(activeChar, summonObjId);
return; return;
} }
removeServitor(activeChar, summonObjId);
skill.applyEffects(activeChar, activeChar); skill.applyEffects(activeChar, activeChar);
final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId); final L2ServitorInstance summon = (L2ServitorInstance) activeChar.getServitor(summonObjId);
summon.setCurrentHp(curHp); if (summon != null)
summon.setCurrentMp(curMp); {
summon.setLifeTimeRemaining(time); summon.setCurrentHp(curHp);
summon.setCurrentMp(curMp);
summon.setLifeTimeRemaining(time);
}
} }
} }
} }