TargetPartyOther.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. *
  3. */
  4. package handlers.targethandlers;
  5. import com.l2jserver.gameserver.handler.ISkillTargetTypeHandler;
  6. import com.l2jserver.gameserver.model.L2Object;
  7. import com.l2jserver.gameserver.model.L2Skill;
  8. import com.l2jserver.gameserver.model.L2Skill.SkillTargetType;
  9. import com.l2jserver.gameserver.model.actor.L2Character;
  10. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  11. import com.l2jserver.gameserver.network.SystemMessageId;
  12. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  13. /**
  14. * @author UnAfraid
  15. *
  16. */
  17. public class TargetPartyOther implements ISkillTargetTypeHandler
  18. {
  19. @Override
  20. public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
  21. {
  22. if (target != null && target != activeChar
  23. && activeChar.isInParty() && target.isInParty()
  24. && activeChar.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())
  25. {
  26. if (!target.isDead())
  27. {
  28. if (target instanceof L2PcInstance)
  29. {
  30. switch (skill.getId())
  31. {
  32. // FORCE BUFFS may cancel here but there should be a proper condition
  33. case 426:
  34. if (!((L2PcInstance) target).isMageClass())
  35. return new L2Character[] { target };
  36. else
  37. return _emptyTargetList;
  38. case 427:
  39. if (((L2PcInstance) target).isMageClass())
  40. return new L2Character[] { target };
  41. else
  42. return _emptyTargetList;
  43. }
  44. }
  45. return new L2Character[] { target };
  46. }
  47. else
  48. return _emptyTargetList;
  49. }
  50. else
  51. {
  52. activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
  53. return _emptyTargetList;
  54. }
  55. }
  56. @Override
  57. public Enum<SkillTargetType> getTargetType()
  58. {
  59. return SkillTargetType.TARGET_PARTY_OTHER;
  60. }
  61. }