示例#1
0
        public static void BeginTravel(Entities.GameClient client, ushort mapid, ushort x, ushort y, int secs = 40)
        {
            uint dynamicid;

            Core.Kernel.Maps.selectorCollection1[999].CreateDynamic(out dynamicid);
            client.TeleportDynamic(dynamicid, 70, 60);

            int travelTime = (secs * 1000);

            /*for (int i = 0; i < (travelTime / 1000); i++)
             * {
             *      ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(() =>
             *                                                             {
             *                                                              using (var msg = Packets.Message.MessageCore.CreateCenter(
             *                                                                      string.Format("Hitting destination in {0}", ((travelTime / 1000) - i))))
             *                                                                     {
             *                                                                      client.Send(msg);
             *                                                                     }
             *                                                              }, 1000 * i);
             * }*/

            int j = 0;

            for (int i = secs; i > 0; i--)
            {
                int    waitTime = (j * 1000);
                string message  = string.Format(Core.MessageConst.TRAVEL_TIME, i);
                ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(() =>
                {
                    using (var msg = Packets.Message.MessageCore.CreateCenter(
                               message))
                    {
                        client.Send(msg);
                    }
                }, waitTime);
                j++;
            }

            ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(() =>
            {
                using (var msg = Packets.Message.MessageCore.CreateCenter(
                           Core.MessageConst.TRAVEL_REACH))
                {
                    client.Send(msg);
                }
            }, travelTime);

            ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(() =>
            {
                client.Teleport(mapid, x, y);
                using (var str = new Packets.StringPacket(new Packets.StringPacker("autorun_end")))
                {
                    str.Action = Enums.StringAction.RoleEffect;
                    str.Data   = client.EntityUID;
                    client.Send(str);
                }
            }, travelTime);
        }
示例#2
0
        public void JoinAsWatcher(Entities.GameClient Watcher)
        {
            Watcher.CanAttack = false;
            Watchers.Add(Watcher);

            ushort[] Location = GenerateRandomLocation();
            Watcher.TeleportDynamic(DynamicID, Location[0], Location[1]);

            SendPacket();
        }
示例#3
0
        public static void OpenBattle(Entities.GameClient Opponent, int PetID, int BattleID)
        {
            //if (!Trainers.ContainsKey(BattleID))
            //	return;
            //Entities.Trainer Trainer = Trainers[BattleID];

            ArenaMatch Match = ArenaMatch.CreateMatch(Opponent, null);

            Match.FightingMatch      = false;
            Match.Started            = true;
            Match.Player1            = Opponent;
            Opponent.Battle          = Match;
            Opponent.PetBattle       = new PetBattle();
            Opponent.PetBattle.Match = Match;

            Entities.BattlePet pet1 = new ProjectX_V3_Game.Entities.BattlePet();
            pet1.EntityUID          = Core.UIDGenerators.GetMonsterUID();
            pet1.Mesh               = 332;
            pet1.Name               = "Zapdos";
            pet1.MaxHP              = 1000;
            pet1.HP                 = 1000;
            Opponent.PetBattle.Pet1 = pet1;

            Entities.BattlePet pet2 = new ProjectX_V3_Game.Entities.BattlePet();
            pet2.EntityUID          = Core.UIDGenerators.GetMonsterUID();
            pet2.Mesh               = 332;
            pet2.Name               = "Articuno";
            pet2.MaxHP              = 1000;
            pet2.HP                 = 1000;
            Opponent.PetBattle.Pet2 = pet2;

            /*Opponent.PetBattle.Pet1 = Opponent.Pets[PetID];
             * Opponent.PetBattle.Pet2 = Trainer.Pet;*/
            // JailGuard = 150001

            Entities.NPC Trainer = Core.Kernel.NPCs[150001];

            Match.ArenaMap = Core.Kernel.Maps[700].CreateDynamic(out Match.DynamicID);
            Opponent.TeleportDynamic(Match.DynamicID, 51, 58);

            Match.SendMatch();
            Match.SendCountDown(Trainer.Name, Trainer.Level, 15, 0, Trainer.EntityUID, Opponent);
            Match.SendPacket(pet1.EntityUID, pet1.Name, pet1.HP, pet2.EntityUID, pet2.Name, pet2.HP);

            Trainer.X = 51;
            Trainer.Y = 44;

            Match.ArenaMap.EnterMap(Trainer);

            Opponent.PetBattle.ShowOpponent();
            Opponent.PetBattle.SendDialog();
        }
示例#4
0
        public void BeginMatch()
        {
            ArenaQualifier.PlayerQueue.Remove(Player1);
            ArenaQualifier.PlayerQueue.Remove(Player2);

            ArenaMap = Core.Kernel.Maps[700].CreateDynamic(out DynamicID);

            ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(EndMatch, 120000, 0);

            Player1Damage = 0;
            Player2Damage = 0;

            MatchStartTime = DateTime.Now.AddMilliseconds(10000);
            Started        = true;

            Player1.HP             = Player1.MaxHP;
            Player1.Transformation = 0;
            ushort[] PlayerLoc = GenerateRandomLocation();
            Player1.TeleportDynamic(DynamicID, PlayerLoc[0], PlayerLoc[1]);

            Player1.RemoveFlag1(Enums.Effect1.Ghost);
            Player1.RemoveFlag1(Enums.Effect1.Dead);
            Player1.RemoveFlag1(Enums.Effect1.Riding);

            Player2.HP             = Player2.MaxHP;
            Player2.Transformation = 0;
            PlayerLoc = GenerateRandomLocation();
            Player2.TeleportDynamic(DynamicID, PlayerLoc[0], PlayerLoc[1]);

            Player2.RemoveFlag1(Enums.Effect1.Ghost);
            Player2.RemoveFlag1(Enums.Effect1.Dead);
            Player2.RemoveFlag1(Enums.Effect1.Riding);

            SendMatch();
            SendCountDown(Player1, Player2);
            SendCountDown(Player2, Player1);
            SendPacket();

            Player1.Battle = this;
            Player2.Battle = this;
        }