Synced presumably forgotten changes from Summon to SummonMulti effect.
This commit is contained in:
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||||
@@ -53,6 +54,12 @@ public class SummonMulti extends AbstractEffect
|
|||||||
_summonPoints = params.getInt("summonPoints", 0);
|
_summonPoints = params.getInt("summonPoints", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.SUMMON;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -62,7 +69,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
if (!effector.isPlayer())
|
if (!effected.isPlayer())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -72,6 +79,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
|
||||||
final Servitor summon = new Servitor(template, player);
|
final Servitor summon = new Servitor(template, player);
|
||||||
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;
|
||||||
@@ -84,21 +92,21 @@ public class SummonMulti extends AbstractEffect
|
|||||||
summon.setItemConsume(_consumeItem);
|
summon.setItemConsume(_consumeItem);
|
||||||
summon.setItemConsumeInterval(consumeItemInterval);
|
summon.setItemConsumeInterval(consumeItemInterval);
|
||||||
|
|
||||||
if (summon.getLevel() >= ExperienceData.getInstance().getMaxLevel())
|
final int maxPetLevel = ExperienceData.getInstance().getMaxPetLevel();
|
||||||
|
if (summon.getLevel() >= maxPetLevel)
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxLevel() - 1));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(maxPetLevel - 1));
|
||||||
LOGGER.warning(getClass().getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxLevel() + ". Please rectify.");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxLevel()));
|
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % maxPetLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summons must have their master buffs upon spawn.
|
// Summons must have their master buffs upon spawn.
|
||||||
for (BuffInfo effect : player.getEffectList().getEffects())
|
for (BuffInfo effect : player.getEffectList().getEffects())
|
||||||
{
|
{
|
||||||
final Skill sk = effect.getSkill();
|
final Skill sk = effect.getSkill();
|
||||||
if (!sk.isBad())
|
if (!sk.isBad() && !sk.isTransformation() && skill.isSharedWithSummon())
|
||||||
{
|
{
|
||||||
sk.applyEffects(player, summon, false, effect.getTime());
|
sk.applyEffects(player, summon, false, effect.getTime());
|
||||||
}
|
}
|
||||||
@@ -112,7 +120,7 @@ public class SummonMulti extends AbstractEffect
|
|||||||
player.addServitor(summon);
|
player.addServitor(summon);
|
||||||
|
|
||||||
summon.setShowSummonAnimation(true);
|
summon.setShowSummonAnimation(true);
|
||||||
summon.setRunning();
|
|
||||||
summon.spawnMe();
|
summon.spawnMe();
|
||||||
|
summon.setRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user