static public bool CanAttack(Unit A, Unit Victim) { /*if (A.IsCreature() && B.IsCreature()) * return false;*/ if (A == null || Victim == null) { return(false); } if (A.IsDisposed || Victim.IsDisposed) { return(false); } if (A == Victim) { return(false); } if (A.IsDead || Victim.IsDead) { return(false); } if (!IsEnemy(A, Victim)) { return(false); } if (!A.IsInWorld() || !Victim.IsInWorld()) { return(false); } if (!A.IsVisible || A.IsInvinsible) { return(false); } if (!Victim.IsVisible || Victim.IsInvinsible) { return(false); } if (A.IsPlayer() && Victim.IsPlayer()) { if (!Victim.CbtInterface.IsPvp) { return(false); } } return(true); }
public Unit GetNextTarget() { Unit Me = GetUnit(); Unit Target = null; if (!Me.IsPlayer()) { AggroInfo Info = GetMaxAggroHate(true); if (Info == null) { Info = GetMaxAggroHate(false); } if (Info != null) { Target = _Owner.Region.GetObject(Info.Oid) as Unit; } } else { Target = GetTarget(GameData.TargetTypes.TARGETTYPES_TARGET_ENEMY); } if (Target == null) { return(null); } if (!Target.IsInWorld()) { return(null); } if (Target.IsDead) { if (AI.State == AiState.FIGHTING) { OnTargetDie(Target); } return(null); } return(Target); }
public Unit GetNextTarget() { Unit Me = GetUnit(); Unit Target = null; if (!Me.IsPlayer()) { AggroInfo Info = GetMaxAggroHate(); if (Info != null) { Target = Obj.Region.GetObject(Info.Oid) as Unit; } } else { if (CurrentTarget.Type != GameData.TargetTypes.TARGETTYPES_TARGET_ALLY) { Target = CurrentTarget.Target; } } if (Target == null) { return(null); } if (!Target.IsInWorld()) { return(null); } if (Target.IsDead) { if (State == AiState.FIGHTING) { OnTargetDie(Target); } return(null); } return(Target); }
public virtual Unit GetNextTarget() { while (Aggros.Count > 0) { AggroInfo info = GetMaxAggroHate(); Unit target = _unit.Region.GetObject(info.Oid) as Unit; if (target == null || target.IsDead || !target.IsInWorld() || info.Hatred == 0) { Aggros.Remove(info.Oid); continue; } return(target); } return(null); }
static public bool CanAttack(Unit A, Unit B) { if (A.IsDead || B.IsDead) { return(false); } if (A == B) { return(false); } if (!IsEnemy(A, B)) { return(false); } if (!A.IsInWorld() || !B.IsInWorld()) { return(false); } return(true); }
public static bool CanAttack(Unit A, Unit B) { if (A.IsDead || B.IsDead) return false; if (A == B) return false; if (!IsEnemy(A, B)) return false; if (!A.IsInWorld() || !B.IsInWorld()) return false; return true; }
static public bool CanAttack(Unit A, Unit Victim) { /*if (A.IsCreature() && B.IsCreature()) * return false;*/ ///// GM: MOBS DONT ATTACK GM FIX \\\\\ Player Plr = Victim.GetPlayer(); if (Plr != null && Plr.GmLevel > 0) { return(false); } ///////////////////////////////// if (A == null || Victim == null) { return(false); } if (A.IsDisposed || Victim.IsDisposed) { return(false); } if (A == Victim) { return(false); } if (A.IsDead || Victim.IsDead) { return(false); } if (!IsEnemy(A, Victim)) { return(false); } if (!A.IsInWorld() || !Victim.IsInWorld()) { return(false); } if (!A.IsVisible || A.IsInvinsible) { return(false); } if (!Victim.IsVisible || Victim.IsInvinsible) { return(false); } if (A.IsPlayer() && Victim.IsPlayer()) { if (!Victim.CbtInterface.IsPvp) { return(false); } } return(true); }
public static bool CanAttack(Unit attacker, Unit victim) { if (attacker == null || victim == null) { return(false); } if (victim is GameObject && victim.GetGameObject().IsAttackable == 0) { return(false); } if (victim is GameObject && (victim.Realm == Realms.REALMS_REALM_NEUTRAL || victim.Realm == attacker.Realm)) { return(false); } if (victim is GameObject && attacker is Creature && !(attacker is Pet) && !(attacker is Siege)) { return(false); } if (attacker.IsDisposed || victim.IsDisposed) { return(false); } if (attacker == victim) { return(false); } if (attacker.IsDead || victim.IsDead) { return(false); } if (!IsEnemy(attacker, victim)) { return(false); } if (!attacker.IsInWorld() || !victim.IsInWorld()) { return(false); } if (!attacker.IsVisible || attacker.IsInvulnerable) { return(false); } if (!victim.IsVisible || victim.IsInvulnerable) { return(false); } Player player = victim as Player; return(player == null || attacker.CbtInterface.CanAttackPlayer(player)); }
static public bool CanAttack(Unit A, Unit Victim) { /*if (A.IsCreature() && B.IsCreature()) return false;*/ if (A == null || Victim == null) return false; if (A.IsDisposed || Victim.IsDisposed) return false; if (A == Victim) return false; if (A.IsDead || Victim.IsDead) return false; if (!IsEnemy(A, Victim)) return false; if (!A.IsInWorld() || !Victim.IsInWorld()) return false; if (!A.IsVisible || A.IsInvinsible) return false; if (!Victim.IsVisible || Victim.IsInvinsible) return false; if (A.IsPlayer() && Victim.IsPlayer()) { if (!Victim.CbtInterface.IsPvp) return false; } return true; }