Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Dictionary<uint, GameClient> BoothingAI = new Dictionary<uint, GameClient>();
- public static void LoadBoothingAI()
- {
- // AuthClient.nextID = ConquerItem.ItemUID.Now - 500000;
- Database.MySqlCommand Cmd = new Database.MySqlCommand(MySqlCommandType.SELECT);
- Cmd.Select("bots");
- MySqlReader Reader = new MySqlReader(Cmd);
- while (Reader.Read())
- {
- var ID = Reader.ReadUInt32("BotID");
- if (ID > 70000000)
- ID = (uint)Kernel.Random.Next(70000000, 999999999);
- var fClient = new GameClient(null);
- fClient.FakeLoadx(ID);
- BoothingAI.Add(ID, fClient);
- }
- // Reader.Close();
- // Reader.Dispose();
- Console.WriteLine("" + BoothingAI.Count + " BoothingAI Loaded.");
- }
- public void FakeLoadx(uint UID)
- {
- if (!Kernel.GamePool.ContainsKey(UID))
- {
- ReadyToPlay();
- this.Account = new Database.AccountTable(null);
- this.Account.EntityID = UID;
- // if (Database.EntityTable.LoadEntity(this))
- {
- #region Load Entity
- PredaTor.Database.MySqlCommand command = new PredaTor.Database.MySqlCommand(MySqlCommandType.SELECT);
- command.Select("bots").Where("BotID", (long)UID);
- MySqlReader reader = new MySqlReader(command);
- if (!reader.Read())
- {
- return;
- }
- this.Entity = new PredaTor.Game.Entity(EntityFlag.Player, false);
- this.Entity.Name = reader.ReadString("BotName");
- this.Entity.Owner = this;
- this.Entity.UID = UID;
- this.Entity.Body = reader.ReadUInt16("BotBody");
- this.Entity.Face = reader.ReadUInt16("BotFace");
- this.Entity.HairStyle = reader.ReadUInt16("BotHairStyle");
- this.Entity.Level = reader.ReadByte("BotLevel");
- this.Entity.Class = reader.ReadByte("BotClass");
- this.Entity.Reborn = reader.ReadByte("BotReborns");
- this.Entity.Titles = new System.Collections.Concurrent.ConcurrentDictionary<TitlePacket.Titles, DateTime>();
- this.Entity.MyTitle = (TitlePacket.Titles)reader.ReadUInt32("BotTitle");
- this.Entity.MapID = reader.ReadUInt16("BotMap");
- if (this.VendingDisguise == 0)
- this.VendingDisguise = 0xdf;
- this.Entity.X = reader.ReadUInt16("BotMapx");
- this.Entity.Y = reader.ReadUInt16("BotMapy");
- uint WeaponR = reader.ReadUInt32("BotWeaponR");
- uint WeaponL = reader.ReadUInt32("BotWeaponL");
- uint Armor = reader.ReadUInt32("BotArmor");
- uint Head = reader.ReadUInt32("BotHead");
- uint Garment = reader.ReadUInt32("BotGarment");
- ProjectX_V3_Game.Entities.BotType Type = (ProjectX_V3_Game.Entities.BotType)reader.ReadInt32("BotType");
- string hawkmessage = reader.ReadString("BotMessage");
- Entity.MyAchievement = new Game.Achievement(Entity);
- int count = reader.ReadInt32("BItemCount");
- string[] itemCost = reader.ReadString("BItemCost").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemID = reader.ReadString("BItemID").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemPlus = reader.ReadString("BItemPlus").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemEnchant = reader.ReadString("BItemEnchant").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemBless = reader.ReadString("BItemBless").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemSocketOne = reader.ReadString("BItemSoc1").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- string[] itemSocketTwo = reader.ReadString("BItemSoc2").Split(new string[] { "~", "@@", " " }, StringSplitOptions.RemoveEmptyEntries);
- this.ElitePKStats = new ElitePK.FighterStats(this.Entity.UID, this.Entity.Name, this.Entity.Mesh);
- if (!PredaTor.Game.ConquerStructures.Nobility.Board.TryGetValue(this.Entity.UID, out this.NobilityInformation))
- {
- this.NobilityInformation = new NobilityInformation();
- this.NobilityInformation.EntityUID = this.Entity.UID;
- this.NobilityInformation.Name = this.Entity.Name;
- this.NobilityInformation.Donation = 0L;
- this.NobilityInformation.Rank = NobilityRank.Serf;
- this.NobilityInformation.Position = -1;
- this.NobilityInformation.Gender = 1;
- this.NobilityInformation.Mesh = this.Entity.Mesh;
- if ((this.Entity.Body % 10) >= 3)
- {
- this.NobilityInformation.Gender = 0;
- }
- }
- else
- {
- this.Entity.NobilityRank = this.NobilityInformation.Rank;
- }
- Arena.ArenaStatistics.TryGetValue(this.Entity.UID, out this.ArenaStatistic);
- if ((this.ArenaStatistic == null) || (this.ArenaStatistic.EntityID == 0))
- {
- this.ArenaStatistic = new ArenaStatistic(true);
- this.ArenaStatistic.EntityID = this.Entity.UID;
- this.ArenaStatistic.Name = this.Entity.Name;
- this.ArenaStatistic.Level = this.Entity.Level;
- this.ArenaStatistic.Class = this.Entity.Class;
- this.ArenaStatistic.Model = this.Entity.Mesh;
- this.ArenaStatistic.ArenaPoints = ArenaTable.ArenaPointFill(this.Entity.Level);
- this.ArenaStatistic.LastArenaPointFill = DateTime.Now;
- ArenaTable.InsertArenaStatistic(this);
- this.ArenaStatistic.Status = 0;
- Arena.ArenaStatistics.Add(this.Entity.UID, this.ArenaStatistic);
- }
- else
- {
- this.ArenaStatistic.Level = this.Entity.Level;
- this.ArenaStatistic.Class = this.Entity.Class;
- this.ArenaStatistic.Model = this.Entity.Mesh;
- if (DateTime.Now.DayOfYear != this.ArenaStatistic.LastArenaPointFill.DayOfYear)
- {
- this.ArenaStatistic.LastSeasonArenaPoints = this.ArenaStatistic.ArenaPoints;
- this.ArenaStatistic.LastSeasonWin = this.ArenaStatistic.TodayWin;
- this.ArenaStatistic.LastSeasonLose = this.ArenaStatistic.TodayBattles - this.ArenaStatistic.TodayWin;
- this.ArenaStatistic.ArenaPoints = ArenaTable.ArenaPointFill(this.Entity.Level);
- this.ArenaStatistic.LastArenaPointFill = DateTime.Now;
- this.ArenaStatistic.TodayWin = 0;
- this.ArenaStatistic.TodayBattles = 0;
- Arena.Sort();
- Arena.YesterdaySort();
- }
- }
- TeamArena.ArenaStatistics.TryGetValue(this.Entity.UID, out this.TeamArenaStatistic);
- if (this.TeamArenaStatistic == null)
- {
- this.TeamArenaStatistic = new TeamArenaStatistic(true);
- this.TeamArenaStatistic.EntityID = this.Entity.UID;
- this.TeamArenaStatistic.Name = this.Entity.Name;
- this.TeamArenaStatistic.Level = this.Entity.Level;
- this.TeamArenaStatistic.Class = this.Entity.Class;
- this.TeamArenaStatistic.Model = this.Entity.Mesh;
- TeamArenaTable.InsertArenaStatistic(this);
- this.TeamArenaStatistic.Status = 0;
- if (TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
- {
- TeamArena.ArenaStatistics.Remove(this.Entity.UID);
- }
- TeamArena.ArenaStatistics.Add(this.Entity.UID, this.TeamArenaStatistic);
- }
- else if (this.TeamArenaStatistic.EntityID == 0)
- {
- this.TeamArenaStatistic = new TeamArenaStatistic(true);
- this.TeamArenaStatistic.EntityID = this.Entity.UID;
- this.TeamArenaStatistic.Name = this.Entity.Name;
- this.TeamArenaStatistic.Level = this.Entity.Level;
- this.TeamArenaStatistic.Class = this.Entity.Class;
- this.TeamArenaStatistic.Model = this.Entity.Mesh;
- TeamArenaTable.InsertArenaStatistic(this);
- this.TeamArenaStatistic.Status = 0;
- if (TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
- {
- TeamArena.ArenaStatistics.Remove(this.Entity.UID);
- }
- TeamArena.ArenaStatistics.Add(this.Entity.UID, this.TeamArenaStatistic);
- }
- else
- {
- this.TeamArenaStatistic.Level = this.Entity.Level;
- this.TeamArenaStatistic.Class = this.Entity.Class;
- this.TeamArenaStatistic.Model = this.Entity.Mesh;
- this.TeamArenaStatistic.Name = this.Entity.Name;
- }
- #region Champion
- Game.Champion.ChampionStats.TryGetValue(this.Entity.UID, out this.ChampionStats);
- if (this.ChampionStats == null)
- {
- this.ChampionStats = new PredaTor.Network.GamePackets.ChampionStatistic(true);
- this.ChampionStats.UID = this.Entity.UID;
- this.ChampionStats.Name = this.Entity.Name;
- this.ChampionStats.Level = this.Entity.Level;
- this.ChampionStats.Class = this.Entity.Class;
- this.ChampionStats.Model = this.Entity.Mesh;
- this.ChampionStats.Points = 0;
- this.ChampionStats.LastReset = DateTime.Now;
- ChampionTable.InsertStatistic(this);
- if (Game.Champion.ChampionStats.ContainsKey(this.Entity.UID))
- Game.Champion.ChampionStats.Remove(this.Entity.UID);
- Game.Champion.ChampionStats.Add(this.Entity.UID, this.ChampionStats);
- }
- else if (this.ChampionStats.UID == 0)
- {
- this.ChampionStats = new Network.GamePackets.ChampionStatistic(true);
- this.ChampionStats.UID = this.Entity.UID;
- this.ChampionStats.Name = this.Entity.Name;
- this.ChampionStats.Level = this.Entity.Level;
- this.ChampionStats.Class = this.Entity.Class;
- this.ChampionStats.Model = this.Entity.Mesh;
- this.ChampionStats.Points = 0;
- this.ChampionStats.LastReset = DateTime.Now;
- ArenaTable.InsertArenaStatistic(this);
- this.ArenaStatistic.Status = Network.GamePackets.ArenaStatistic.NotSignedUp;
- if (Game.Champion.ChampionStats.ContainsKey(this.Entity.UID))
- Game.Champion.ChampionStats.Remove(this.Entity.UID);
- Game.Champion.ChampionStats.Add(this.Entity.UID, this.ChampionStats);
- }
- else
- {
- this.ChampionStats.Level = this.Entity.Level;
- this.ChampionStats.Class = this.Entity.Class;
- this.ChampionStats.Model = this.Entity.Mesh;
- this.ChampionStats.Name = this.Entity.Name;
- if (this.ChampionStats.LastReset.DayOfYear != DateTime.Now.DayOfYear)
- ChampionTable.Reset(this.ChampionStats);
- }
- Game.Champion.Clear(this);
- #endregion
- DetainedItemTable.LoadDetainedItems(this);
- ClaimItemTable.LoadClaimableItems(this);
- this.Entity.LoadTopStatus();
- this.Entity.FullyLoaded = true;
- #endregion
- if (this.Entity.FullyLoaded)
- {
- VariableVault variables;
- Database.EntityVariableTable.Load(this.Account.EntityID, out variables);
- this.Variables = variables;
- if (this.BackupArmorLook != 0)
- this.SetNewArmorLook(this.BackupArmorLook);
- else
- this.SetNewArmorLook(this.ArmorLook);
- this.SetNewHeadgearLook(this.HeadgearLook);
- this.BackupArmorLook = 0;
- this.LoadData(true);
- if (this.Entity.GuildID != 0)
- this.Entity.GuildBattlePower = this.Guild.GetSharedBattlepower(this.Entity.GuildRank);
- this.ReviewMentor();
- Network.PacketHandler.LoginMessages(this);
- #region Equip
- ConquerItem item7 = null;
- ClientEquip equip = null;
- if (WeaponR > 0)
- {
- Database.ConquerItemBaseInformation CIBI = Database.ConquerItemInformation.BaseInformations[WeaponR];
- if (CIBI == null) return;
- item7 = new ConquerItem(true);
- item7.ID = WeaponR;
- item7.UID = AuthClient.nextID;
- AuthClient.nextID++;
- item7.Position = 4;
- item7.Durability = CIBI.Durability;
- item7.MaximDurability = CIBI.Durability;
- this.Equipment.Remove(4);
- if (this.Equipment.Objects[3] != null)
- {
- this.Equipment.Objects[3] = null;
- }
- this.Equipment.Add(item7);
- item7.Mode = Enums.ItemMode.Update;
- item7.Send(this);
- equip = new ClientEquip();
- equip.DoEquips(this);
- this.Send(equip);
- this.Equipment.UpdateEntityPacket();
- }
- if (WeaponL > 0)
- {
- Database.ConquerItemBaseInformation CIBI = Database.ConquerItemInformation.BaseInformations[WeaponL];
- if (CIBI == null) return;
- item7 = new ConquerItem(true);
- item7.ID = WeaponL;
- item7.UID = AuthClient.nextID;
- AuthClient.nextID++;
- item7.Position = 5;
- item7.Durability = CIBI.Durability;
- item7.MaximDurability = CIBI.Durability;
- this.Equipment.Remove(5);
- if (this.Equipment.Objects[4] != null)
- {
- this.Equipment.Objects[4] = null;
- }
- this.Equipment.Add(item7);
- item7.Mode = Enums.ItemMode.Update;
- item7.Send(this);
- equip = new ClientEquip();
- equip.DoEquips(this);
- this.Send(equip);
- this.Equipment.UpdateEntityPacket();
- }
- if (Armor > 0)
- {
- Database.ConquerItemBaseInformation CIBI = Database.ConquerItemInformation.BaseInformations[Armor];
- if (CIBI == null) return;
- item7 = new ConquerItem(true);
- item7.ID = Armor;
- item7.UID = AuthClient.nextID;
- AuthClient.nextID++;
- item7.Position = 3;
- item7.Durability = CIBI.Durability;
- item7.MaximDurability = CIBI.Durability;
- this.Equipment.Remove(3);
- if (this.Equipment.Objects[2] != null)
- {
- this.Equipment.Objects[2] = null;
- }
- this.Equipment.Add(item7);
- item7.Mode = Enums.ItemMode.Update;
- item7.Send(this);
- equip = new ClientEquip();
- equip.DoEquips(this);
- this.Send(equip);
- this.Equipment.UpdateEntityPacket();
- }
- if (Head > 0)
- {
- Database.ConquerItemBaseInformation CIBI = Database.ConquerItemInformation.BaseInformations[Head];
- if (CIBI == null) return;
- item7 = new ConquerItem(true);
- item7.ID = Head;
- item7.UID = AuthClient.nextID;
- AuthClient.nextID++;
- item7.Position = 1;
- item7.Durability = CIBI.Durability;
- item7.MaximDurability = CIBI.Durability;
- this.Equipment.Remove(1);
- if (this.Equipment.Objects[0] != null)
- {
- this.Equipment.Objects[0] = null;
- }
- this.Equipment.Add(item7);
- item7.Mode = Enums.ItemMode.Update;
- item7.Send(this);
- equip = new ClientEquip();
- equip.DoEquips(this);
- this.Send(equip);
- this.Equipment.UpdateEntityPacket();
- }
- if (Garment > 0)
- {
- Database.ConquerItemBaseInformation CIBI = Database.ConquerItemInformation.BaseInformations[Garment];
- if (CIBI == null) return;
- item7 = new ConquerItem(true);
- item7.ID = Garment;
- item7.UID = AuthClient.nextID;
- AuthClient.nextID++;
- item7.Position = 9;
- item7.Durability = CIBI.Durability;
- item7.MaximDurability = CIBI.Durability;
- this.Equipment.Remove(9);
- if (this.Equipment.Objects[8] != null)
- {
- this.Equipment.Objects[8] = null;
- }
- this.Equipment.Add(item7);
- item7.Mode = Enums.ItemMode.Update;
- item7.Send(this);
- equip = new ClientEquip();
- equip.DoEquips(this);
- this.Send(equip);
- this.Equipment.UpdateEntityPacket();
- }
- #endregion Equip
- Program.World.Register(this);
- Kernel.GamePool.Add(Entity.UID, this);
- FakeLoaded = true;
- LoggedIn = true;
- Entity.NobilityRank = NobilityInformation.Rank;
- if (Type == ProjectX_V3_Game.Entities.BotType.BoothBot)
- {
- if (this.FakeLoaded)
- {
- #region booth
- if (this.Booth == null)
- {
- this.Send(new MapStatus() { BaseID = this.Map.BaseID, ID = this.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
- this.Booth = new Game.ConquerStructures.Booth(this, new Data(true) { UID = this.Entity.UID });
- this.Send(new Data(true) { ID = Data.ChangeAction, UID = this.Entity.UID, dwParam = 0 });
- #region new multi items
- try
- {
- for (uint i = 0; i < count; i++)
- {
- for (int ii = 0; ii < itemID.Length; ii++)
- {
- Game.ConquerStructures.BoothItem item = new Game.ConquerStructures.BoothItem();
- if (itemCost[ii] != null)
- item.Cost = uint.Parse(itemCost[ii]);
- item.Item = new ConquerItem(true);
- if (itemID[ii] != null)
- item.Item.ID = uint.Parse(itemID[ii]);
- item.Item.UID = AuthClient.nextID;
- AuthClient.nextID++;
- if (itemPlus[ii] != null)
- item.Item.Plus = byte.Parse(itemPlus[ii]);
- if (itemEnchant[ii] != null)
- item.Item.Enchant = byte.Parse(itemEnchant[ii]);
- if (itemBless[ii] != null)
- item.Item.Bless = byte.Parse(itemBless[ii]);
- if (itemSocketOne[ii] != null)
- item.Item.SocketOne = (Enums.Gem)byte.Parse(itemSocketOne[ii]);
- if (itemSocketTwo[ii] != null)
- item.Item.SocketTwo = (Enums.Gem)byte.Parse(itemSocketTwo[ii]);
- Database.ConquerItemBaseInformation CIBI = null;
- CIBI = Database.ConquerItemInformation.BaseInformations[item.Item.ID];
- if (CIBI == null)
- return;
- item.Item.Durability = CIBI.Durability;
- item.Item.MaximDurability = CIBI.Durability;
- // this.Inventory.Add(item.Item, Game.Enums.ItemUse.CreateAndAdd);
- item.Item.Send(this);
- {
- ItemUsage usage = new ItemUsage(true) { ID = ItemUsage.AddItemOnBoothForConquerPoints };
- item.Cost_Type = Game.ConquerStructures.BoothItem.CostType.ConquerPoints;
- this.Booth.ItemList.Add(item.Item.UID, item);
- this.Send(usage);
- PredaTor.Network.GamePackets.BoothItem buffer = new PredaTor.Network.GamePackets.BoothItem(true);
- buffer.Fill(item, this.Booth.Base.UID);
- this.SendScreen(buffer, false);
- }
- }
- }
- }
- catch
- {
- return;
- }
- #endregion
- this.Booth.HawkMessage = new Message(hawkmessage, "ALL", this.Entity.Name, System.Drawing.Color.White, Message.HawkMessage);
- }
- #endregion
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement