.png)
اول حاجة حاتفتح
بعد كده ضور على
ضيف ده فوقو
Screen.cs
public bool Remove(Interfaces.IMapObject _object)
private static void guardsCallback(GameClient client, int time)
{
if (!client.Socket.Alive)
{
client.Screen.DisposeTimers();
return;
}
if (client.Entity == null)
return;
if (client.Map == null)
return;
if (client.Map.FreezeMonsters)
return;
Time32 Now = new Time32(time);
foreach (IMapObject obj in client.Screen.Objects)
{
if (obj != null)
{
if (obj.MapObjType == MapObjectType.Monster)
{
Entity monster = obj as Entity;
if (monster.Companion) continue;
if (monster.Dead || monster.Killed) continue;
if (monster.MonsterInfo.Guard)
{
if (Now >= monster.MonsterInfo.LastMove.AddMilliseconds(monster.MonsterInfo.MinimumSpeed))
{
if (monster.MonsterInfo.InSight == 0)
{
if (monster.X != monster.MonsterInfo.BoundX || monster.Y != monster.MonsterInfo.BoundY)
{
monster.X = monster.MonsterInfo.BoundX;
monster.Y = monster.MonsterInfo.BoundY;
TwoMovements jump = new TwoMovements();
jump.X = monster.MonsterInfo.BoundX;
jump.Y = monster.MonsterInfo.BoundY;
jump.EntityCount = 1;
jump.FirstEntity = monster.UID;
jump.MovementType = TwoMovements.Jump;
client.SendScreen(jump, true);
}
if (monster.MonsterInfo.Type != 2)
client.Send(new Network.GamePackets.Message("Source Coded By KarimCoder #38", client.Entity.Name, monster.MonsterInfo.Name, System.Drawing.Color.White, Message.Talk));
client.Send(new Network.GamePackets.Message("Source Coded By KarimCoder #38", client.Entity.Name, monster.Name, System.Drawing.Color.White, Message.Talk));
if (client.Entity.ContainsFlag(Update.Flags.FlashingName))
monster.MonsterInfo.InSight = client.Entity.UID;
}
else
{
if (client.Entity.ContainsFlag(Update.Flags.FlashingName))
{
if (monster.MonsterInfo.InSight == client.Entity.UID)
{
if (!client.Entity.Dead)
{
if (Now >= monster.MonsterInfo.LastMove.AddMilliseconds(monster.MonsterInfo.AttackSpeed))
{
short distance = Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y);
if (distance <= monster.MonsterInfo.AttackRange)
{
monster.MonsterInfo.LastMove = Time32.Now;
new Game.Attacking.Handle(null, monster, client.Entity);
}
else
{
if (distance <= monster.MonsterInfo.ViewRange)
{
TwoMovements jump = new TwoMovements();
jump.X = client.Entity.X;
jump.Y = client.Entity.Y;
monster.X = client.Entity.X;
monster.Y = client.Entity.Y;
jump.EntityCount = 1;
jump.FirstEntity = monster.UID;
jump.MovementType = TwoMovements.Jump;
client.SendScreen(jump, true);
}
}
}
}
}
}
else
{
if (monster.MonsterInfo.InSight == client.Entity.UID)
{
monster.MonsterInfo.InSight = 0;
}
}
}
foreach (IMapObject obj2 in client.Screen.Objects)
{
if (obj2 == null) continue;
if (obj2.MapObjType == MapObjectType.Monster)
{
Entity monster2 = obj2 as Entity;
if (monster2 == null) continue;
if (monster2.Dead) continue;
if (Now >= monster.MonsterInfo.LastMove.AddMilliseconds(monster.MonsterInfo.AttackSpeed))
{
if (!monster2.MonsterInfo.Guard && (!monster2.Companion || monster2.Owner.Entity.ContainsFlag(Update.Flags.FlashingName)))
{
short distance = Kernel.GetDistance(monster.X, monster.Y, monster2.X, monster2.Y);
if (distance <= monster.MonsterInfo.AttackRange)
{
monster.MonsterInfo.LastMove = Time32.Now;
new Game.Attacking.Handle(null, monster, monster2);
}
}
}
}
}
}
}
}
}
}
}
هل أعجبك الموضوع؟! ↓

0 التعليقات