|
private void AutoAttackCallback(GameState client, int time)
{
if (!Valid(client)) return;
Time32 Now = new Time32(time);
#region WaniacDance
if (client.Player.EpicWarrior() && client.Player.ContainsFlag3(Update.Flags3.WaniacDance))
{
var spell = Database.SpellTable.GetSpell(12700, client);
SpellUse suse = new SpellUse(true);
suse.Attacker = client.Player.UID;
suse.SpellID = 12700;
suse.X = client.Player.X;
suse.Y = client.Player.Y;
foreach (var obj in client.Screen.Objects)
{
if (obj == null) continue;
var attacked = obj as Entity;
if (attacked == null) continue;
if (Kernel.GetDistance(client.Player.X, client.Player.Y, attacked.X, attacked.Y) < 6)
{
if (Game.Attacking.Handle.CanAttack(client.Player, attacked, null, true))
{
var attack = new Attack(true);
attack.Attacker = client.Player.UID;
attack.Attacked = attacked.UID;
uint damage = Game.Attacking.Calculate.Melee(client.Player, attacked, spell, ref attack);
attack.Damage = damage;
attack.SpellID = 12700;
suse.Effect1 = attack.Effect1;
Game.Attacking.Handle.ReceiveAttack(client.Player, attacked, attack, ref damage, spell);
suse.AddTarget(attacked, damage, attack);
}
}
}
client.SendScreen(suse, true);
}
#endregion
if (client.Player.AttackPacket != null || client.Player.VortexPacket != null)
{
try
{
if (client.Player.ContainsFlag(Network.GamePackets.Update.Flags.ShurikenVortex))
{
if (client.Player.VortexPacket != null && client.Player.VortexPacket.ToArray() != null)
{
if (Now > client.Player.VortexAttackStamp.AddMilliseconds(1))
{
client.Player.VortexAttackStamp = Now;
client.Player.VortexPacket.AttackType = Attack.Magic;
new Game.Attacking.Handle(client.Player.VortexPacket, client.Player, null);
}
}
}
else
{
var AttackPacket = client.Player.AttackPacket;
if (AttackPacket != null && AttackPacket.ToArray() != null)
{
uint AttackType = AttackPacket.AttackType;
if (AttackType == Network.GamePackets.Attack.Magic || AttackType == Network.GamePackets.Attack.Melee || AttackType == Network.GamePackets.Attack.Ranged)
{
if (AttackType == Network.GamePackets.Attack.Magic)
{
if (Now > client.Player.AttackStamp.AddSeconds(2))
{
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 != 12570 &&
AttackPacket.Damage != 12210)
{
new Game.Attacking.Handle(AttackPacket, client.Player, null);
}
}
}
else
{
int decrease = -300;
if (client.Player.ContainsFlag4(Update.Flags4.xFreezingPelter)) decrease += 1000;
if (client.Player.OnCyclone())
decrease = 700;
if (client.Player.OnSuperman())
decrease = 200;
if (Now > client.Player.AttackStamp.AddMilliseconds((1000 - client.Player.Agility - decrease) * (int)(AttackType == Network.GamePackets.Attack.Ranged ? 1 : 1)))
{
new Game.Attacking.Handle(AttackPacket, client.Player, null);
}
}
}
}
}
}
catch (Exception e)
{
Program.SaveException(e);
client.Player.AttackPacket = null;
client.Player.VortexPacket = null;
}
}
}
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
مشكله بسيطه ارجو الحل | محمد مسعد | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2021-09-03 12:59 PM |
ارجو الحل | Bayoumi | مشكلات السيرفيرات كونكر الشخصيه | 4 | 2020-03-31 07:08 PM |
ارجو الحل للمشكلتين دول يجماعه | taha | مشكلات السيرفيرات كونكر الشخصيه | 2 | 2019-12-03 06:43 AM |
مشكله واحده فقط بس ارجو الحل | anwer1 | مشكلات السيرفيرات كونكر الشخصيه | 22 | 2019-07-09 07:45 AM |
ارجو الحل الباتش مش راضى يتعدله على | moaz500 | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2019-04-30 09:40 AM |