Changeset 2256
- Timestamp:
- 07/10/08 12:58:48 (3 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2CubicInstance.java
r2168 r2256 433 433 enemy = null; 434 434 435 if ( _owner.getPvpFlag() > 0|| _owner.isInsideZone(L2Character.ZONE_SIEGE) || _owner.isInsideZone(L2Character.ZONE_PVP))435 if ((_owner.getPvpFlag() > 0 && !_owner.isInsideZone(L2Character.ZONE_PEACE)) || _owner.isInsideZone(L2Character.ZONE_SIEGE) || _owner.isInsideZone(L2Character.ZONE_PVP)) 436 436 { 437 437 if (_owner.getTarget() instanceof L2Summon) … … 453 453 if (enemy != null) 454 454 { 455 boolean TargetIt = true; 455 boolean targetIt = true; 456 456 457 if (_owner.getParty() != null) 457 458 { 458 459 if (_owner.getParty().getPartyMembers().contains(enemy)) 459 TargetIt = false; 460 targetIt = false; 461 else if (_owner.getParty().getCommandChannel() != null) 462 { 463 if (_owner.getParty().getCommandChannel().getMembers().contains(enemy)) 464 targetIt = false; 465 } 460 466 } 461 else if (_owner.getClan() != null && !_owner.isInsideZone(L2Character.ZONE_PVP)) 462 { 467 if (_owner.getClan() != null && !_owner.isInsideZone(L2Character.ZONE_PVP)) 463 468 if (_owner.getClan().isMember(enemy.getCharId())) 464 TargetIt = false; 465 } 466 else if (enemy.getPvpFlag() == 0 && !enemy.isInsideZone(L2Character.ZONE_SIEGE) && !enemy.isInsideZone(L2Character.ZONE_PVP)) 467 TargetIt = false; 468 else if (_owner.getSiegeState() == enemy.getSiegeState() && _owner.getSiegeState() > 0) 469 TargetIt = false; 470 471 if (TargetIt) 469 targetIt = false; 470 if (enemy.getPvpFlag() == 0 && !enemy.isInsideZone(L2Character.ZONE_SIEGE) && !enemy.isInsideZone(L2Character.ZONE_PVP)) 471 targetIt = false; 472 if (enemy.isInsideZone(L2Character.ZONE_PEACE)) 473 targetIt = false; 474 if (_owner.getSiegeState() == enemy.getSiegeState() && _owner.getSiegeState() > 0) 475 targetIt = false; 476 477 if (targetIt) 472 478 { 473 479 _target = (L2Character) _owner.getTarget(); … … 480 486 List<L2Character> potentialTarget = new FastList<L2Character>(); 481 487 List<L2Character> potentialPvPTarget = new FastList<L2Character>(); 482 Collection<L2Character> KnownTarget = _owner.getKnownList().getKnownCharactersInRadius(MAX_MAGIC_RANGE);488 Collection<L2Character> knownTarget = _owner.getKnownList().getKnownCharactersInRadius(MAX_MAGIC_RANGE); 483 489 484 for (L2Character TgMob : KnownTarget)490 for (L2Character tgMob : knownTarget) 485 491 { 486 492 // get the mobs which have aggro on the owner or his/her summon 487 if ( TgMob instanceof L2Attackable)493 if (tgMob instanceof L2Attackable) 488 494 { 489 if (((L2Attackable) TgMob).isDead()) continue;490 if (((L2Attackable) TgMob).getAggroListRP().get(_owner) != null)491 potentialTarget.add( TgMob);495 if (((L2Attackable)tgMob).isDead()) continue; 496 if (((L2Attackable)tgMob).getAggroListRP().get(_owner) != null) 497 potentialTarget.add(tgMob); 492 498 if (_owner.getPet() != null) 493 if (((L2Attackable) TgMob).getAggroListRP().get(_owner.getPet()) != null)494 potentialTarget.add( TgMob);499 if (((L2Attackable)tgMob).getAggroListRP().get(_owner.getPet()) != null) 500 potentialTarget.add(tgMob); 495 501 } 496 502 // get enemy pvp targets 497 else if ( _owner.getPvpFlag() > 0|| _owner.isInsideZone(L2Character.ZONE_SIEGE) || _owner.isInsideZone(L2Character.ZONE_PVP))503 else if ((_owner.getPvpFlag() > 0 && !_owner.isInsideZone(L2Character.ZONE_PEACE)) || _owner.isInsideZone(L2Character.ZONE_SIEGE) || _owner.isInsideZone(L2Character.ZONE_PVP)) 498 504 { 499 505 enemy = null; 500 if ( TgMob instanceof L2Summon)506 if (tgMob instanceof L2Summon) 501 507 { 502 if (!((L2Summon) TgMob).isDead())503 enemy = ((L2Summon) TgMob).getOwner();508 if (!((L2Summon)tgMob).isDead()) 509 enemy = ((L2Summon)tgMob).getOwner(); 504 510 } 505 else if ( TgMob instanceof L2Trap)511 else if (tgMob instanceof L2Trap) 506 512 { 507 if (!((L2Trap) TgMob).isDead())508 enemy = ((L2Trap) TgMob).getOwner();513 if (!((L2Trap)tgMob).isDead()) 514 enemy = ((L2Trap)tgMob).getOwner(); 509 515 } 510 else if ( TgMob instanceof L2PcInstance)516 else if (tgMob instanceof L2PcInstance) 511 517 { 512 if (!((L2PcInstance) TgMob).isDead())513 enemy = (L2PcInstance) TgMob;518 if (!((L2PcInstance)tgMob).isDead()) 519 enemy = (L2PcInstance) tgMob; 514 520 } 515 521 516 522 if (enemy != null) 517 523 { 518 boolean TargetIt = true;524 boolean targetIt = true; 519 525 if (_owner.getParty() != null) 520 526 { 521 527 if (_owner.getParty().getPartyMembers().contains(enemy)) 522 TargetIt = false; 528 targetIt = false; 529 else if (_owner.getParty().getCommandChannel() != null) 530 { 531 if (_owner.getParty().getCommandChannel().getMembers().contains(enemy)) 532 targetIt = false; 533 } 523 534 } 524 else if (_owner.getClan() != null && !_owner.isInsideZone(L2Character.ZONE_PVP))525 {535 536 if (_owner.getClan() != null && !_owner.isInsideZone(L2Character.ZONE_PVP)) 526 537 if (_owner.getClan().isMember(enemy.getCharId())) 527 TargetIt = false; 528 } 529 else if (enemy.getPvpFlag() == 0 && !enemy.isInsideZone(L2Character.ZONE_SIEGE) && !enemy.isInsideZone(L2Character.ZONE_PVP)) 530 TargetIt = false; 531 else if (_owner.getSiegeState() == enemy.getSiegeState() && _owner.getSiegeState() > 0) 532 TargetIt = false; 533 534 if (TargetIt) 535 potentialPvPTarget.add(TgMob); 538 targetIt = false; 539 if (enemy.getPvpFlag() == 0 && !enemy.isInsideZone(L2Character.ZONE_SIEGE) && !enemy.isInsideZone(L2Character.ZONE_PVP)) 540 targetIt = false; 541 if (enemy.isInsideZone(L2Character.ZONE_PEACE)) 542 targetIt = false; 543 if (_owner.getSiegeState() == enemy.getSiegeState() && _owner.getSiegeState() > 0) 544 targetIt = false; 545 546 if (targetIt) 547 potentialPvPTarget.add(tgMob); 536 548 } 537 549 } … … 754 766 if (partyMember.getPet() != null) 755 767 { 756 if ( !partyMember.getPet().isDead()) continue;768 if (partyMember.getPet().isDead()) continue; 757 769 758 770 //if party member's pet not dead, check if it is in castrange of heal cubic 759 if ( isInCubicRange(_owner,partyMember.getPet())) continue;771 if (!isInCubicRange(_owner,partyMember.getPet())) continue; 760 772 761 773 // member's pet is in cubic casting range, check if he need heal and if he have the lowest HP … … 779 791 } 780 792 if (_owner.getPet() != null) 781 if ((percentleft > (_owner.getPet().getCurrentHp() / _owner.getPet().getMaxHp())) 782 && !(_owner.getPet().isDead()) && isInCubicRange(_owner,_owner.getPet())) 793 if (!_owner.getPet().isDead() && _owner.getPet().getCurrentHp() < _owner.getPet().getMaxHp() 794 && percentleft > (_owner.getPet().getCurrentHp() / _owner.getPet().getMaxHp()) 795 && isInCubicRange(_owner,_owner.getPet())) 783 796 { 784 797 target = _owner.getPet(); … … 786 799 } 787 800 } 788 if (percentleft == 100.0) 789 _target = null; 790 else 791 _target = target; 792 return; 801 802 _target = target; 793 803 } 794 804 … … 833 843 { 834 844 CubicTargetForHeal(); 835 if (_target != null && !_target.isDead()) 845 L2Character target = _target; 846 if (target != null && !target.isDead()) 836 847 { 837 double percentleft = _target.getCurrentHp() / _target.getMaxHp();848 double percentleft = (target.getCurrentHp() / target.getMaxHp())* 100.0; 838 849 839 850 int typeHeal = 1; //1 = 60%+; 2= 30-60%; 3=30%- … … 855 866 } 856 867 857 if (Rnd.get(1,100) < chance){ 858 L2Character[] targets = {_target}; 868 if (Rnd.get(1,100) < chance) 869 { 870 L2Character[] targets = {target}; 859 871 ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); 860 872 if (handler != null) … … 866 878 skill.useSkill(_owner, targets); 867 879 } 868 MagicSkillUse msu = new MagicSkillUse(_owner, _target, skill.getId(), 869 skill.getLevel(), 0, 0); 880 881 MagicSkillUse msu = new MagicSkillUse(_owner, target, skill.getId(), 882 skill.getLevel(), 0, 0); 870 883 _owner.broadcastPacket(msu); 871 884 }
