Esempio n. 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);
        }
Esempio n. 2
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();
        }
Esempio n. 3
0
        public void JoinAsWatcher(Entities.GameClient Watcher)
        {
            Watcher.CanAttack = false;
            Watchers.Add(Watcher);

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

            SendPacket();
        }