|
private void AutoAttackCallback
if (Now > client.Player.VortexAttackStamp.AddMilliseconds(150))
AutoAttackCallback
autoattackcallback
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;
}
}
}
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) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
حل مشكلة الوحوش مش بيندرب فيها وا بيجيلك ايرور في القنصل الحل هنا | ElSaher | تطوير سيرفرات كونكر | 20 | 2024-08-29 09:11 AM |
ارجوا الحل فى اسرع وقت ممكن | koko1 | مشكلات السيرفيرات كونكر الشخصيه | 6 | 2020-04-20 09:22 PM |
مشكلة بخصوص الجناح ارجو الحل ضروري جدا بعد اذنكم | Abod ayman | مشكلات السيرفيرات كونكر الشخصيه | 5 | 2020-04-04 08:10 PM |
ضرورى من فضلكم مشكلة فى اتاك الكتانا بتاعة النينجا | ViORX | مشكلات السيرفيرات كونكر الشخصيه | 15 | 2019-09-05 05:59 PM |
مشكلة فى الاتاك كله بايظ خالص من فضلكم محتاج الحل ضرورى | ViORX | مشكلات السيرفيرات كونكر الشخصيه | 9 | 2019-09-03 05:20 PM |