Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static bool CanAttack(Entity attacker, Entity attacked, SpellInformation spell, bool melee)
- {
- if (attacked.MapID == 1584 && attacked.Spouse == attacker.Name && !attacked.ContainsFlag(576460752303423488uL))
- {
- return false;
- }
- if (attacked.ContainsFlag(576460752303423488uL))
- {
- if (attacked.MapID == 1584)
- {
- if (!(attacked.Spouse == attacker.Name))
- {
- attacker.Owner.Send(new Message("This is Not Your Spouse Pleas Go And Uncaged her", Color.Black, 2012u));
- return false;
- }
- Attack attack = new Attack(true);
- uint num = 50000u;
- attack.Effect1 = Attack.AttackEffects1.None;
- attack.Attacker = attacker.UID;
- attack.Attacked = attacked.UID;
- attack.AttackType = 2u;
- attack.Damage = 50000u;
- attack.X = attacked.X;
- attack.Y = attacked.Y;
- if (attacked.FreezLife <= 50000u)
- {
- attacked.Owner.SendScreen(attack, true);
- attacked.FrozenD = false;
- attacked.FrozenTime = 0;
- attacked.RemoveFlag(576460752303423488uL);
- GameCharacterUpdates gameCharacterUpdates = new GameCharacterUpdates(true);
- gameCharacterUpdates.UID = attacked.UID;
- gameCharacterUpdates.Remove(59u);
- attacked.Owner.SendScreen(gameCharacterUpdates, true);
- Thread.Sleep(1500);
- GameClient[] gamePool = Program.GamePool;
- for (int i = 0; i < gamePool.Length; i++)
- {
- GameClient gameClient = gamePool[i];
- if (gameClient.Entity.MapID == 1584 && gameClient != attacker.Owner && gameClient.Entity.Name != attacker.Spouse)
- {
- Calculate.Melee(attacker, gameClient.Entity, ref attack, 0);
- attack.Effect1 = Attack.AttackEffects1.None;
- attack.Damage = num;
- ushort x = gameClient.Entity.X;
- ushort y = gameClient.Entity.Y;
- Map.UpdateCoordonatesForAngle(ref x, ref y, Kernel.GetAngle(gameClient.Entity.X, gameClient.Entity.Y, attacker.X, attacker.Y));
- attacker.Shift(x, y);
- attack.X = x;
- attack.Y = y;
- attack.Damage = num;
- attack.AttackType = 45u;
- attacked.Owner.SendScreen(attack, true);
- gameClient.Entity.Die(attacker);
- Thread.Sleep(600);
- }
- }
- Thread.Sleep(1500);
- GameClient[] teammates = attacker.Owner.Team.Teammates;
- for (int j = 0; j < teammates.Length; j++)
- {
- GameClient gameClient2 = teammates[j];
- gameClient2.Entity.Teleport(1002, 301, 281);
- }
- attacker.ConquerPoints += 5000u;
- attacked.ConquerPoints += 5000u;
- }
- else
- {
- attacked.FreezLife -= num;
- attacked.Owner.SendScreen(attack, true);
- }
- }
- return false;
- }
- if (attacker.UID == attacked.UID)
- {
- return false;
- }
- if (attacker.SkillTeamWatchingElitePKMatch != null)
- {
- return false;
- }
- if (spell != null && spell.ID != 8001)
- {
- if (spell.OnlyGround && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (melee && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag == EntityFlag.Player && attacked.Owner.Team != null && attacker.Owner.Team != null && attacker.Owner.Team.EliteFighterStats != null && attacked.Owner.Team.EliteFighterStats != null && attacker.MapID == attacked.Owner.Team.EliteMatch.Map.ID && attacker.Owner.Team.EliteMatch != null)
- {
- return attacker.Owner.Team != attacked.Owner.Team;
- }
- if (Program.IsTwinCityWar && attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag == EntityFlag.Player && attacked.Away == 1)
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag == EntityFlag.Player && attacked.SwitchJiang && attacker.SwitchJiang && attacked.MapID == 1002 && attacker.MapID == 1002)
- {
- return !attacked.Dead;
- }
- if (spell != null && spell.ID == 6010 && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (spell != null && spell.ID == 10381 && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (spell != null && spell.ID == 6000 && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (spell != null && spell.ID == 5030 && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (spell == null && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (attacked.EntityFlag == EntityFlag.Monster && attacked.MonsterInfo.ID == 9879u)
- {
- return false;
- }
- if (attacked.Dead)
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacker.Owner.WatchingElitePKMatch != null)
- {
- return false;
- }
- if (attacked.EntityFlag == EntityFlag.Player && attacked.Owner.WatchingElitePKMatch != null)
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacked != null && attacked.EntityFlag == EntityFlag.Player && attacker.Owner.InTeamQualifier() && attacked.Owner.InTeamQualifier())
- {
- return !attacker.Owner.Team.IsTeammate(attacked.UID);
- }
- if (attacker.MapID == 2057 && (!CaptureTheFlag.Attackable(attacker) || !CaptureTheFlag.Attackable(attacked)))
- {
- return false;
- }
- if (attacker.MapID == 8883)
- {
- return attacker.TeamDeathMatchTeamKey != attacked.TeamDeathMatchTeamKey;
- }
- if (spell != null && spell.CanKill && attacker.EntityFlag == EntityFlag.Player && Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID) && attacked.EntityFlag == EntityFlag.Player)
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacker.Owner.WatchingGroup != null)
- {
- return false;
- }
- if (attacked == null)
- {
- return false;
- }
- if (attacked.Dead)
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag == EntityFlag.Player && ((attacker.Owner.InQualifier() && attacked.Owner.IsWatching()) || (attacked.Owner.InQualifier() && attacker.Owner.IsWatching())))
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && Time32.Now < attacker.Owner.CantAttack)
- {
- return false;
- }
- if (attacked.EntityFlag == EntityFlag.Monster)
- {
- if (attacked.Companion && Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
- {
- if (attacked.Owner == attacker.Owner)
- {
- return false;
- }
- if (attacker.PKMode != Enums.PKMode.PK && attacker.PKMode != Enums.PKMode.Team)
- {
- return false;
- }
- attacker.AddFlag(1uL);
- attacker.FlashingNameStamp = Time32.Now;
- attacker.FlashingNameTime = 10;
- return true;
- }
- else
- {
- if (!attacked.Name.Contains("Guard"))
- {
- return true;
- }
- if (attacker.PKMode != Enums.PKMode.PK && attacker.PKMode != Enums.PKMode.Team)
- {
- return false;
- }
- attacker.AddFlag(1uL);
- attacker.FlashingNameStamp = Time32.Now;
- attacker.FlashingNameTime = 10;
- return true;
- }
- }
- else
- {
- if (attacked.EntityFlag == EntityFlag.Player && !attacked.Owner.Attackable)
- {
- return false;
- }
- if (attacker.EntityFlag == EntityFlag.Player && attacker.Owner.WatchingGroup == null && attacked.EntityFlag == EntityFlag.Player && attacked.Owner.WatchingGroup != null)
- {
- return false;
- }
- if (Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
- {
- if (attacker.PKMode == Enums.PKMode.PK || attacker.PKMode == Enums.PKMode.Team || (spell != null && spell.CanKill))
- {
- attacker.Owner.Send(Constants.PKForbidden);
- attacker.AttackPacket = null;
- }
- return false;
- }
- if (attacker.PKMode == Enums.PKMode.Capture && (attacked.ContainsFlag(1uL) || attacked.PKPoints > 99))
- {
- return true;
- }
- if (attacker.PKMode == Enums.PKMode.Peace)
- {
- return false;
- }
- if (attacker.UID == attacked.UID)
- {
- return false;
- }
- if (attacker.PKMode == Enums.PKMode.Team)
- {
- if (attacker.Owner.Team != null && attacker.Owner.Team.IsTeammate(attacked.UID))
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.GuildID == attacked.GuildID && attacker.GuildID != 0)
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.ClanId == attacked.ClanId && attacker.ClanId != 0u)
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.Owner.Friends.ContainsKey(attacked.UID))
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.Owner.Guild != null && attacker.Owner.Guild.Ally != null && attacker.Owner.Guild.Ally.ContainsKey((uint)attacked.GuildID))
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (attacker.ClanId != 0u)
- {
- Clan getClan = attacker.GetClan;
- if (getClan != null && getClan.Allies.ContainsKey(attacked.ClanId))
- {
- attacker.AttackPacket = null;
- return false;
- }
- }
- }
- if (spell != null && spell.OnlyGround && attacked.ContainsFlag(134217728uL))
- {
- return false;
- }
- if (spell != null && !spell.CanKill)
- {
- return true;
- }
- if (attacker.PKMode != Enums.PKMode.PK && attacker.PKMode != Enums.PKMode.Team && attacked.PKPoints < 99)
- {
- attacker.AttackPacket = null;
- return false;
- }
- if (!attacked.ContainsFlag(1uL) && !attacked.ContainsFlag(32768uL))
- {
- if (Constants.PKFreeMaps.Contains(attacker.MapID))
- {
- return true;
- }
- if (Constants.Damage1Map.Contains(attacker.MapID))
- {
- return true;
- }
- if (attacker.Owner.Map.BaseID == 700)
- {
- return true;
- }
- attacker.AddFlag(1uL);
- attacker.FlashingNameStamp = Time32.Now;
- attacker.FlashingNameTime = 10;
- }
- return true;
- }
- }
- public static void ReceiveAttack(Entity attacker, Entity attacked, Attack attack, uint damage, SpellInformation spell)
- {
- if (attacker.MapID == 8883)
- {
- DeathMatch.Points[attacker.TeamDeathMatchTeamKey]++;
- attacker.TeamDeathMatch_Hits++;
- attacked.Hitpoints = attacked.MaxHitpoints;
- }
- if ((!attacked.Name.Contains("Guard") || attacked.EntityFlag != EntityFlag.Monster) && attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag != EntityFlag.Player && !attacked.Name.Contains("Guard"))
- {
- if (damage > attacked.Hitpoints)
- {
- if (attacker.Name != "SwordMaster" && attacker.Name != "ThrillingSpook" && attacker.Name != "LavaBeast" && attacker.Name != "SnowBanshee" && attacker.Name != "SnowBansheeSoul" && attacker.Name != "TeratoDragon")
- {
- attacker.Owner.IncreaseExperience(Calculate.CalculateExpBonus((ushort)attacker.Level, (ushort)attacked.Level, (ulong)Math.Min(damage, attacked.Hitpoints)), true);
- }
- if (spell != null)
- {
- attacker.Owner.IncreaseSpellExperience((uint)Calculate.CalculateExpBonus((ushort)attacker.Level, (ushort)attacked.Level, (ulong)Math.Min(damage, attacked.Hitpoints)), spell.ID);
- }
- }
- else
- {
- if (attacker.Name != "SwordMaster" && attacker.Name != "ThrillingSpook" && attacker.Name != "LavaBeast" && attacker.Name != "SnowBanshee" && attacker.Name != "SnowBansheeSoul" && attacker.Name != "TeratoDragon")
- {
- attacker.Owner.IncreaseExperience(Calculate.CalculateExpBonus((ushort)attacker.Level, (ushort)attacked.Level, (ulong)damage), true);
- }
- if (spell != null)
- {
- attacker.Owner.IncreaseSpellExperience((uint)Calculate.CalculateExpBonus((ushort)attacker.Level, (ushort)attacked.Level, (ulong)damage), spell.ID);
- }
- }
- }
- if (attacker.EntityFlag == EntityFlag.Monster && attacked.EntityFlag == EntityFlag.Player)
- {
- if (attacked.Action == 250)
- {
- if (attacked.Stamina > 20)
- {
- attacked.Stamina -= 20;
- }
- else
- {
- attacked.Stamina = 0;
- }
- }
- attacked.Action = 0;
- }
- if (attack.AttackType == 24u)
- {
- if (attacked.Hitpoints > damage)
- {
- if (attacked.Owner != null && attacker.Owner != null && attacked.Owner.Team != null && attacker.Owner.Team != null && attacker.Owner.Team.EliteFighterStats != null && attacked.Owner.Team.EliteFighterStats != null && attacker.MapID == attacked.Owner.Team.EliteMatch.Map.ID && attacker.Owner.Team.EliteMatch != null)
- {
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- attacked.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- }
- if (attacked.EntityFlag == EntityFlag.Monster && attacker.MapID == 6421)
- {
- Entity.UpdateDamage(attacker.Owner, attacked, damage, 0u);
- }
- attacker.Owner.UpdateQualifier(attacker.Owner, attacked.Owner, (long)((ulong)damage));
- attacked.Hitpoints -= damage;
- return;
- }
- if (attacked.EntityFlag == EntityFlag.Monster && attacker.MapID == 6421)
- {
- Entity.UpdateDamage(attacker.Owner, attacked, damage, 0u);
- }
- attacker.Owner.UpdateQualifier(attacker.Owner, attacked.Owner, (long)((ulong)attacked.Hitpoints));
- attacked.CauseOfDeathIsMagic = true;
- attacked.Die(attacker);
- attacked.IsDropped = false;
- if (attacked.Owner != null && attacker.Owner != null && attacked.Owner.Team != null && attacker.Owner.Team != null && attacker.Owner.Team.EliteFighterStats != null && attacked.Owner.Team.EliteFighterStats != null && attacker.MapID == attacked.Owner.Team.EliteMatch.Map.ID && attacker.Owner.Team.EliteMatch != null)
- {
- if (!attacked.Owner.Team.Alive)
- {
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.EliteMatch.End(attacked.Owner.Team);
- return;
- }
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- attacked.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- return;
- }
- }
- else
- {
- if (attacked.Hitpoints <= damage)
- {
- if (attacked.EntityFlag == EntityFlag.Monster && attacker.MapID == 6421)
- {
- Entity.UpdateDamage(attacker.Owner, attacked, damage, 0u);
- }
- if (attacked.EntityFlag == EntityFlag.Player)
- {
- attacker.Owner.UpdateQualifier(attacker.Owner, attacked.Owner, (long)((ulong)attacked.Hitpoints));
- attacked.Owner.SendScreen(attack, true);
- attacker.AttackPacket = null;
- }
- else
- {
- attacked.MonsterInfo.SendScreen(attack);
- }
- attacked.Die(attacker);
- if (attacked.Owner != null && attacker.Owner != null && attacked.Owner.Team != null && attacker.Owner.Team != null && attacker.Owner.Team.EliteFighterStats != null && attacked.Owner.Team.EliteFighterStats != null && attacker.MapID == attacked.Owner.Team.EliteMatch.Map.ID && attacker.Owner.Team.EliteMatch != null)
- {
- if (!attacked.Owner.Team.Alive)
- {
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.EliteMatch.End(attacked.Owner.Team);
- return;
- }
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- attacked.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- return;
- }
- }
- else
- {
- if (attacked.Owner != null && attacker.Owner != null && attacked.Owner.Team != null && attacker.Owner.Team != null && attacker.Owner.Team.EliteFighterStats != null && attacked.Owner.Team.EliteFighterStats != null && attacker.MapID == attacked.Owner.Team.EliteMatch.Map.ID && attacker.Owner.Team.EliteMatch != null)
- {
- attacker.Owner.Team.EliteFighterStats.Points += damage;
- attacker.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- attacked.Owner.Team.SendMesageTeam(attacker.Owner.Team.EliteMatch.CreateUpdate().ToArray(), 0u);
- }
- if (attacked.EntityFlag == EntityFlag.Monster && attacker.MapID == 6421)
- {
- Entity.UpdateDamage(attacker.Owner, attacked, damage, 0u);
- }
- attacked.Hitpoints -= damage;
- if (attacked.EntityFlag == EntityFlag.Player)
- {
- attacker.Owner.UpdateQualifier(attacker.Owner, attacked.Owner, (long)((ulong)damage));
- attacked.Owner.SendScreen(attack, true);
- }
- else
- {
- attacked.MonsterInfo.SendScreen(attack);
- }
- attacker.AttackPacket = attack;
- attacker.AttackStamp = Time32.Now;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement