Esempio n. 1
0
        public Api()
        {
            Logger = NLog.LogManager.GetCurrentClassLogger();
            Config = new Model.LoginServer();

            LoginServer = new Server.Login.Api()
            {
                IsBackground = true
            };
            GameServer = new Server.Game.Api()
            {
                IsBackground = true,
                MoveInterval = 100
            };

            LoginServer.Connected      += OnLoginConnected;
            LoginServer.ServerSelected += OnServerSelected;
            GameServer.Connected       += OnGameConnected;
            GameServer.EnterWorld      += OnEnterWorld;
            GameServer.LoggedOut       += OnLoggedOut;
            GameServer.StartMoving     += OnStartMoving;
            GameServer.FinishMoving    += OnFinishMoving;
            GameServer.ActionFailed    += OnActionFailed;
            GameServer.TargetChanged   += OnTargetChanged;
            GameServer.Attack          += OnAttack;
            GameServer.SkillStarted    += OnSkillStarted;
            GameServer.SkillLaunched   += OnSkillLaunched;
            GameServer.SkillCanceled   += OnSkillCanceled;
            GameServer.SkillReused     += OnSkillReused;
            GameServer.CreatureUpdate  += OnCreatureUpdate;
            GameServer.ItemInfo        += OnItemInfo;
            GameServer.Die             += OnDie;
            GameServer.QuestionAsked   += OnQuestionAsked;
            GameServer.ChatMessage     += OnChatMessage;
        }
Esempio n. 2
0
		public Api()
		{
			Logger = NLog.LogManager.GetCurrentClassLogger();
			Config = new Model.LoginServer();

			LoginServer = new Server.Login.Api()
			{
				IsBackground = true
			};
			GameServer = new Server.Game.Api()
			{
				IsBackground = true,
				MoveInterval = 100
			};

			LoginServer.Connected += OnLoginConnected;
			LoginServer.ServerSelected += OnServerSelected;
			GameServer.Connected += OnGameConnected;
			GameServer.EnterWorld += OnEnterWorld;
			GameServer.LoggedOut += OnLoggedOut;
			GameServer.StartMoving += OnStartMoving;
			GameServer.FinishMoving += OnFinishMoving;
			GameServer.ActionFailed += OnActionFailed;
			GameServer.TargetChanged += OnTargetChanged;
			GameServer.Attack += OnAttack;
			GameServer.SkillStarted += OnSkillStarted;
			GameServer.SkillLaunched += OnSkillLaunched;
			GameServer.SkillCanceled += OnSkillCanceled;
			GameServer.SkillReused += OnSkillReused;
			GameServer.CreatureUpdate += OnCreatureUpdate;
			GameServer.ItemInfo += OnItemInfo;
			GameServer.Die += OnDie;
			GameServer.QuestionAsked += OnQuestionAsked;
			GameServer.ChatMessage += OnChatMessage;
		}
Esempio n. 3
0
        public AutoPickup(Server.Game.Api gsApi)
            : base(gsApi)
        {
            gsApi.ItemInfo += (Model.Item item) =>
            {
                if (Enabled)
                {
                    if (OnlyMy && item.DroppedBy == gsApi.World.Me.TargetId)
                    {
                        List.Add(item);
                    }
                    else if (!OnlyMy)
                    {
                        List.Add(item);
                    }

                    Next();
                }
            };

            gsApi.ObjectRemoved += (Model.Object obj) =>
            {
                var item = obj as Model.Item;
                if (item != null)
                {
                    Pickup(item);
                }
            };

            gsApi.Pickup += (Model.Item item, Model.Creature creature, Library.Point position) =>
            {
                Pickup(item);
            };
        }
Esempio n. 4
0
        // ToDo: List
        public AutoSweep(Server.Game.Api gsApi)
            : base(gsApi)
        {
            gsApi.Die += (Model.Creature creature, Lineage.ReturnPoint? points) =>
            {
                Model.Npc npc = creature as Model.Npc;
                if (Enabled && npc != null && npc.IsSpoiled)
                {
                    bool isMyTarget = gsApi.World.Me.TargetId == npc.ObjectId;
                    if (isMyTarget)
                    {
                        gsApi.UseSkill(SKILL_SWEEP);
                    }
                    else if (!OnlyMy)
                    {
                        gsApi.Target(npc);                         // ToDo: Запоминание цели/состояния и возврат к нему
                    }
                }
            };

            gsApi.TargetChanged += (Model.Creature creature, Model.Creature target) =>
            {
                if (Enabled && creature == gsApi.World.Me)
                {
                    Model.Npc npc = target as Model.Npc;
                    if (npc != null && npc.IsAlikeDead && npc.IsSpoiled)
                    {
                        gsApi.UseSkill(SKILL_SWEEP);
                    }
                }
            };
        }
Esempio n. 5
0
        public SkillChain(Server.Game.Api gsApi)
            : base(gsApi)
        {
            throw new NotImplementedException();

            //gsApi.SkillReused
            //gsApi.SkillLaunch
        }
Esempio n. 6
0
 public Base(Server.Game.Api gsApi)
 {
     if (gsApi != null)
     {
         this.gsApi = gsApi;
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Esempio n. 7
0
 public SimpleRoute(Server.Game.Api gsApi)
     : base(gsApi)
 {
     gsApi.FinishMoving += (Model.Creature creature) =>
     {
         if (gsApi.World.Me == creature && Queue != null)
         {
             Next();
         }
     };
 }
Esempio n. 8
0
        static void Main(string[] args)
        {
            NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("NLog.config");

            lsApi = new Server.Login.Api()
            {
                IsBackground = false
            };
            gsApi = new Server.Game.Api()
            {
                IsBackground = false,
                MoveInterval = 100
            };

            Setup(Parse(args));
        }
Esempio n. 9
0
 public FullFollow(Server.Game.Api gsApi)
     : base(gsApi)
 {
     gsApi.StartMoving += (Model.Creature creature) =>
     {
         if (creature == Leader)
         {
             if (!gsApi.World.Me.IsMoving)                     // Бот обошёл все точки и стоит рядом с персонажем
             {
                 Last = creature.Destination;
                 Next();
             }
             else if (Queue.Count == 0 && !Last.HasValue)                     // Бот бежит к месту назначения персонажа
             {
                 Queue.Enqueue(creature.Position);
                 Last = creature.Destination;
                 Next();
             }
             else                     // Бот ещё обходит очередь
             {
                 Queue.Enqueue(creature.Position);
                 Last = creature.Destination;
             }
         }
     };
     gsApi.FinishMoving += (Model.Creature creature) =>
     {
         if (creature == gsApi.World.Me)
         {
             Next();
         }
         else if (creature == Leader)
         {
             Queue.Enqueue(creature.Position);
             if (!gsApi.World.Me.IsMoving)
             {
                 Next();
             }
         }
     };
 }
Esempio n. 10
0
        public OnGraph(Server.Game.Api gsApi)
            : base(gsApi)
        {
            gsApi.FinishMoving += (Model.Creature creature) =>
            {
                if (gsApi.World.Me == creature)
                {
                    var current = Target;
                    if (current.Nigh.Count > 1)
                    {
                        var variants = new List <Model.Graph.Node>();
                        foreach (var node in current.Nigh)
                        {
                            if (!node.Equals(Previous))
                            {
                                variants.Add(node);
                            }
                        }
                        var index = Random.Next(variants.Count);
                        foreach (var node in variants)
                        {
                            if (index-- == 0)
                            {
                                Target = node;
                                break;
                            }
                        }
                    }
                    else
                    {
                        Target = current.Nigh.First();
                    }
                    Previous = current;

                    gsApi.MoveTo(Target.Point);
                }
            };
        }
Esempio n. 11
0
 public AutoSpoil(Server.Game.Api gsApi)
     : base(gsApi)
 {
     throw new NotImplementedException();
 }
Esempio n. 12
0
 public Info(Server.Game.Api gsApi, string[] args, string name)
 {
     Api  = gsApi;
     Args = args;
     Name = name;
 }
Esempio n. 13
0
 public Travel(Server.Game.Api gsApi)
     : base(gsApi)
 {
     Program = new SimpleRoute(gsApi);
 }
Esempio n. 14
0
 public Base(string command, string args, Model.Creature author, Server.Game.Api gsApi)         // ?
 {
     throw new NotImplementedException();
 }
Esempio n. 15
0
 public SmoothRoute(Server.Game.Api gsApi)
     : base(gsApi)
 {
     throw new NotImplementedException();
 }
Esempio n. 16
0
 public FastFollow(Server.Game.Api gsApi)
     : base(gsApi)
 {
     gsApi.StartMoving  += Catch;
     gsApi.FinishMoving += Catch;
 }