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