diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Summon.java index dd71829d12..3c32eb4d37 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Summon.java index dd71829d12..3c32eb4d37 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Summon.java index dd71829d12..3c32eb4d37 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java index 16b07a0b82..3f5830eddb 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java index 16b07a0b82..3f5830eddb 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Summon.java index ab407dcd52..08dcfef04f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -629,7 +629,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -656,8 +656,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java index d98ba4e031..9f7d426f27 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -646,7 +646,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -673,8 +673,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java index 77fbd4e8b0..8ea3fd358a 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -646,7 +646,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -673,8 +673,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java index d4cb3598d6..fe96afb100 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -646,7 +646,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -673,8 +673,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java index d4cb3598d6..fe96afb100 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -646,7 +646,7 @@ public abstract class Summon extends Playable } // Get the target for the skill - final WorldObject target; + WorldObject target; if (skill.getTargetType() == TargetType.OWNER_PET) { target = _owner; @@ -673,8 +673,16 @@ public abstract class Summon extends Playable // Check the validity of the target if (target == null) { - sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); - return false; + if (!isMovementDisabled()) + { + setTarget(_owner.getTarget()); + target = skill.getTarget(this, forceUse, dontMove, false); + } + if (target == null) + { + sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND); + return false; + } } // Check if this skill is enabled (e.g. reuse time) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java index a228079092..742bda718f 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/RequestMagicSkillUse.java @@ -18,7 +18,9 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.SkillData; +import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -54,18 +56,40 @@ public class RequestMagicSkillUse implements IClientIncomingPacket Skill skill = player.getKnownSkill(_magicId); if (skill == null) { - if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) // - || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree + if ((_magicId == CommonSkill.HAIR_ACCESSORY_SET.getId()) || ((_magicId > 1565) && (_magicId < 1570))) // subClass change SkillTree { skill = SkillData.getInstance().getSkill(_magicId, 1); } - else + else // Check for known pet skill. + { + Playable pet = null; + if (player.hasServitors()) + { + for (Summon summon : player.getServitors().values()) + { + skill = summon.getKnownSkill(_magicId); + if (skill != null) + { + pet = summon; + break; + } + } + } + if ((skill == null) && player.hasPet()) + { + pet = player.getPet(); + skill = pet.getKnownSkill(_magicId); + } + if ((skill != null) && (pet != null)) + { + player.onActionRequest(); + pet.useMagic(skill, null, _ctrlPressed, false); + return; + } + } + if (skill == null) { player.sendPacket(ActionFailed.STATIC_PACKET); - // if (_magicId > 0) - // { - // PacketLogger.warning("Skill Id " + _magicId + " not found in player: " + player); - // } return; } } @@ -86,7 +110,6 @@ public class RequestMagicSkillUse implements IClientIncomingPacket } player.onActionRequest(); - player.useMagic(skill, null, _ctrlPressed, _shiftPressed); } }