private void AutoAttackCallback(GameState client, int time)
} private void AutoAttackCallback(GameState client, int time) { if (!Valid(client)) return; Time32 Now = new Time32(time); if (client.Entity.AttackPacket != null || client.Entity.VortexAttackStamp != null) { try { if (client.Entity.ContainsFlag((ulong)Update.Flags.ShurikenVortex)) { if (client.Entity.VortexPacket != null && client.Entity.VortexPacket.ToArray() != null) { if (Now > client.Entity.VortexAttackStamp.AddMilliseconds(1400)) { client.Entity.VortexAttackStamp = Now; new Game.Attacking.Handle(client.Entity.VortexPacket, client.Entity, null); } } } else { client.Entity.VortexPacket = null; var AttackPacket = client.Entity.AttackPacket; if (AttackPacket != null && AttackPacket.ToArray() != null) { uint AttackType = AttackPacket.AttackType; if (AttackType == Attack.Magic || AttackType == Attack.Melee || AttackType == Attack.Ranged) { if (AttackType == Attack.Magic) { if (Now > client.Entity.AttackStamp.AddSeconds(1)) { if (AttackPacket.Damage != 12160 && AttackPacket.Damage != 12170 && AttackPacket.Damage != 12120 && AttackPacket.Damage != 12130 && AttackPacket.Damage != 12140 && AttackPacket.Damage != 12320 && AttackPacket.Damage != 12330 && AttackPacket.Damage != 12340 && AttackPacket.Damage != 12210) new Game.Attacking.Handle(AttackPacket, client.Entity, null); } } else { int decrease = -300; if (client.Entity.OnCyclone()) decrease = 700; if (client.Entity.OnSuperman()) decrease = 200; if (Now > client.Entity.AttackStamp.AddMilliseconds((1000 - client.Entity.Agility - decrease) * (int)(AttackType == Attack.Ranged ? 1 : 1))) { new Game.Attacking.Handle(AttackPacket, client.Entity, null); } } } } } } catch (Exception e) { Program.SaveException(e); client.Entity.AttackPacket = null; client.Entity.VortexPacket = null; } } }