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); }
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(); }
public void JoinAsWatcher(Entities.GameClient Watcher) { Watcher.CanAttack = false; Watchers.Add(Watcher); ushort[] Location = GenerateRandomLocation(); Watcher.TeleportDynamic(DynamicID, Location[0], Location[1]); SendPacket(); }