|
@@ -18,7 +18,7 @@ namespace XmdsCommonServer.Plugin.Units
|
|
|
{
|
|
|
public class XmdsInstancePet : InstancePet
|
|
|
{
|
|
|
- private XmdsCommon.Plugin.XmdsPetConifg.XmdsPetFollowMode mCurFollowMode = XmdsCommon.Plugin.XmdsPetConifg.XmdsPetFollowMode.ActiveAtk;
|
|
|
+ private XmdsCommon.Plugin.XmdsPetConifg.XmdsPetFollowMode mCurFollowMode = XmdsCommon.Plugin.XmdsPetConifg.XmdsPetFollowMode.ActiveAtk;
|
|
|
|
|
|
|
|
|
private BattleStatus mMasterCombatStatus;
|
|
@@ -100,8 +100,8 @@ namespace XmdsCommonServer.Plugin.Units
|
|
|
|
|
|
|
|
|
|
|
|
- if (CurrentState is StateIdle
|
|
|
- && this.Master.mLastDamageTime + XmdsVirtual.Coefficient_OutOfCombatTime < CommonLang.CUtils.localTimeMS)*/)
|
|
|
+ if (CurrentState is StateIdle || (this.Master.mLastHitOtherTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS
|
|
|
+ && this.Master.mLastDamageTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS))
|
|
|
{
|
|
|
mCurAtkUnit = null;
|
|
|
|
|
@@ -394,49 +394,49 @@ namespace XmdsCommonServer.Plugin.Units
|
|
|
{
|
|
|
bool ret = false;
|
|
|
|
|
|
- using (var list = ListObjectPool<InstanceUnit>.AllocAutoRelease())
|
|
|
- {
|
|
|
-
|
|
|
- Parent.getObjectsRoundRange<InstanceUnit>(Collider.Object_BlockBody_TouchRound, X, Y, Info.GuardRange, list , AoiStatus);
|
|
|
- DoAndRemoveCollection.UpdateAndRemove<InstanceUnit>(list, (InstanceUnit u) =>
|
|
|
- {
|
|
|
- return !u.IsActive;
|
|
|
- });
|
|
|
-
|
|
|
- if (list != null && list.Count > 0)
|
|
|
- {
|
|
|
- list.Sort((a, b) =>
|
|
|
- {
|
|
|
-
|
|
|
- float da = CMath.getDistanceSquare(a.X, a.Y, this.X, this.Y);
|
|
|
- float db = CMath.getDistanceSquare(b.X, b.Y, this.X, this.Y);
|
|
|
- return (int)(da - db);
|
|
|
- });
|
|
|
-
|
|
|
- foreach (SkillState skill in SkillStatus)
|
|
|
- {
|
|
|
- if (skill.LaunchSkill.AutoLaunch && skill.TryLaunch())
|
|
|
- {
|
|
|
- foreach (InstanceUnit u in list)
|
|
|
- {
|
|
|
- if (this.IsCanAttack(u) && Parent.IsAttackable(this, u, skill.Data.ExpectTarget, AttackReason.Attack, skill.Data))
|
|
|
- {
|
|
|
-
|
|
|
- if (CheckInAtkRange(u, this.Info.GuardRange + skill.Data.AttackRange))
|
|
|
- {
|
|
|
-
|
|
|
- if (tryAutoLaunch(skill, u))
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|