public static Interfaces.IConquerItem GetSingleItem(uint UID) { Interfaces.IConquerItem item = new Network.GamePackets.ConquerItem(true); MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT); cmd.Select("items").Where("UID", UID); MySqlReader r = new MySqlReader(cmd); if (r.Read()) { item.ID = r.ReadUInt32("ID"); item.UID = r.ReadUInt32("UID"); item.Durability = r.ReadUInt16("Durability"); item.MaximDurability = r.ReadUInt16("MaximDurability"); item.Position = r.ReadUInt16("Position"); item.SocketProgress = r.ReadUInt32("SocketProgress"); item.PlusProgress = r.ReadUInt32("PlusProgress"); item.SocketOne = (Game.Enums.Gem)r.ReadByte("SocketOne"); item.SocketTwo = (Game.Enums.Gem)r.ReadByte("SocketTwo"); item.Effect = (Game.Enums.ItemEffect)r.ReadByte("Effect"); item.Mode = Game.Enums.ItemMode.Default; item.Plus = r.ReadByte("Plus"); item.Bless = r.ReadByte("Bless"); item.Bound = r.ReadBoolean("Bound"); item.Enchant = r.ReadByte("Enchant"); item.Lock = r.ReadByte("Locked"); item.UnlockEnd = DateTime.FromBinary(r.ReadInt64("UnlockEnd")); item.Suspicious = r.ReadBoolean("Suspicious"); item.RefineryPart = r.ReadUInt32("RefineryPart"); item.RefineryLevel = r.ReadUInt32("RefineryLevel"); item.RefineryPercent = r.ReadUInt16("RefineryPercent"); item.RefineryStarted = DateTime.FromBinary(r.ReadInt64("RefineryStarted")); item.SuspiciousStart = DateTime.FromBinary(r.ReadInt64("SuspiciousStart")); item.Color = (Game.Enums.Color)r.ReadByte("Color"); item.Warehouse = r.ReadUInt16("Warehouse"); if (item.Lock == 2) if (DateTime.Now >= item.UnlockEnd) item.Lock = 0; } r.Close(); return item; }
public static bool LoadEntity(Client.GameState client) { MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT); cmd.Select("entities").Where("UID", client.Account.EntityID); MySqlReader r = new MySqlReader(cmd); if (r.Read()) { client.Entity = new Game.Entity(Game.EntityFlag.Player, false); client.Entity.Name = r.ReadString("Name"); client.Entity.Spouse = r.ReadString("Spouse"); client.Entity.Owner = client; client.WarehousePW = r.ReadString("WarehousePW"); client.MoneySave = r.ReadUInt32("MoneySave"); client.Entity.Experience = r.ReadUInt64("Experience"); client.Entity.Money = r.ReadUInt32("Money"); client.Entity.boundCPs = r.ReadUInt32("BoundCPs"); client.Entity.ConquerPoints = (uint)r.ReadUInt32("ConquerPoints"); client.Entity.UID = r.ReadUInt32("UID"); client.Entity.Hitpoints = r.ReadUInt32("Hitpoints"); client.Entity.QuizPoints = r.ReadUInt32("QuizPoints"); client.Entity.Body = r.ReadUInt16("Body"); client.Entity.Face = r.ReadUInt16("Face"); client.Entity.Strength = r.ReadUInt16("Strength"); client.Entity.Agility = r.ReadUInt16("Agility"); client.Entity.Spirit = r.ReadUInt16("Spirit"); client.Entity.Vitality = r.ReadUInt16("Vitality"); client.Entity.Atributes = r.ReadUInt16("Atributes"); client.VirtuePoints = r.ReadUInt32("VirtuePoints"); client.Entity.Mana = r.ReadUInt16("Mana"); client.Entity.HairStyle = r.ReadUInt16("HairStyle"); client.Entity.MapID = r.ReadUInt16("MapID"); client.VendingDisguise = r.ReadUInt16("VendingDisguise"); if (client.VendingDisguise == 0) client.VendingDisguise = 223; client.Entity.X = r.ReadUInt16("X"); client.Entity.Y = r.ReadUInt16("Y"); client.BlessTime = r.ReadUInt32("BlessTime"); client.Entity.TopTrojan = r.ReadUInt16("TopTrojan"); client.Entity.TopWarrior = r.ReadUInt16("TopWarrior"); client.Entity.TopNinja = r.ReadUInt16("TopNinja"); client.Entity.TopWaterTaoist = r.ReadUInt16("TopWaterTaoist"); client.Entity.TopArcher = r.ReadUInt16("TopArcher"); client.Entity.TopGuildLeader = r.ReadUInt16("TopGuildLeader"); client.Entity.TopFireTaoist = r.ReadUInt16("TopFireTaoist"); client.Entity.TopDeputyLeader = r.ReadUInt16("TopDeputyLeader"); client.Entity.WeeklyPKChampion = r.ReadUInt16("WeeklyPKChampion"); client.Entity.TopMonk = r.ReadUInt16("TopMonk"); client.Entity.TopGuildLeader = r.ReadUInt16("TopGuildLeader"); client.Entity.QQ1 = r.ReadUInt16("QQ1"); client.Entity.QQ2 = r.ReadUInt16("QQ2"); client.Entity.QQ3 = r.ReadUInt16("QQ3"); client.LotteryEntries2 = r.ReadByte("LotteryEntries2");//not fond //client.Entity.TitlePacket = new Network.GamePackets.TitlePacket(true); //client.Entity.TitlePacket.UID = client.Entity.UID; //client.Entity.TitlePacket.Type = 4; //client.Entity.TitlePacket.dwParam = 1; //client.Entity.TitlePacket.dwParam2 = r.ReadByte("My_Title"); client.ChatBanTime = DateTime.FromBinary(r.ReadInt64("ChatBanTime")); client.ChatBanLasts = r.ReadUInt32("ChatBanLasts"); client.ChatBanned = r.ReadBoolean("ChatBanned"); client.HeadgearClaim = r.ReadBoolean("HeadgearClaim"); client.NecklaceClaim = r.ReadBoolean("NecklaceClaim"); client.ArmorClaim = r.ReadBoolean("ArmorClaim"); client.WeaponClaim = r.ReadBoolean("WeaponClaim"); client.RingClaim = r.ReadBoolean("RingClaim"); client.BootsClaim = r.ReadBoolean("BootsClaim"); client.FanClaim = r.ReadBoolean("FanClaim"); client.TowerClaim = r.ReadBoolean("TowerClaim"); client.HeadgearClaim = r.ReadBoolean("HeadgearClaim"); client.InLottery = r.ReadBoolean("InLottery"); client.LotteryEntries = r.ReadByte("LotteryEntries"); // client.OldSkillsLoad = r.ReadBoolean("OldLoadSkills"); client.Entity.SubClass = r.ReadByte("SubClass"); client.Entity.SubClassLevel = r.ReadByte("SubClassLevel"); //if (client.OldSkillsLoad) //{ // new MySqlCommand(MySqlCommandType.UPDATE).Update("entities").Set("OldLoadSkills", 0).Where("UID", client.Entity.UID).Execute(); // var cmdd = new MySqlCommand(MySqlCommandType.INSERT); // cmdd.Insert("n_skills").Insert("EntityID", client.Entity.UID); // cmdd.Execute(); //} client.LastLotteryEntry = DateTime.FromBinary(r.ReadInt64("LastLotteryEntry")); if (client.Entity.MapID >= 7008) { client.Entity.MapID = 1002; client.Entity.X = 430; client.Entity.Y = 380; } client.Entity.ReincarnationLev = r.ReadByte("ReincarnationLev"); client.Entity.PreviousMapID = r.ReadUInt16("PreviousMapID"); client.Entity.PKPoints = r.ReadUInt16("PKPoints"); client.Entity.Class = r.ReadByte("Class"); client.Entity.Reborn = r.ReadByte("Reborn"); client.Entity.Level = r.ReadByte("Level"); client.Entity.FirstRebornClass = r.ReadByte("FirstRebornClass"); client.Entity.SecondRebornClass = r.ReadByte("SecondRebornClass"); client.Entity.FirstRebornLevel = r.ReadByte("FirstRebornLevel"); client.Entity.SecondRebornLevel = r.ReadByte("SecondRebornLevel"); client.LastDragonBallUse = DateTime.FromBinary(r.ReadInt64("LastDragonBallUse")); client.LastResetTime = DateTime.FromBinary(r.ReadInt64("LastResetTime")); client.Entity.EnlightenPoints = r.ReadUInt16("EnlightenPoints"); client.Entity.EnlightmentTime = r.ReadUInt16("EnlightmentWait"); if (client.Entity.EnlightmentTime > 0) { if (client.Entity.EnlightmentTime % 20 > 0) { client.Entity.EnlightmentTime -= (ushort)(client.Entity.EnlightmentTime % 20); client.Entity.EnlightmentTime += 20; } } client.Entity.ReceivedEnlightenPoints = r.ReadByte("EnlightsReceived"); client.Entity.DoubleExperienceTime = r.ReadUInt16("DoubleExpTime"); client.DoubleExpToday = r.ReadBoolean("DoubleExpToday"); client.Entity.HeavenBlessing = r.ReadUInt32("HeavenBlessingTime"); client.Entity.VIPLevel = r.ReadByte("VIPLevel"); client.Entity.PrevX = r.ReadUInt16("PreviousX"); client.Entity.Guild_points = r.ReadUInt32("GuildPoints"); client.Entity.PrevY = r.ReadUInt16("PreviousY"); client.ExpBalls = r.ReadByte("ExpBalls"); client.Entity.AddFlower = r.ReadUInt16("Flower"); // client.Entity.VotsPoints = r.ReadUInt16("VotsPoints"); // long timer = r.ReadInt64("TimerVot"); //// if (timer == 0) //// { // client.Entity.TimerVot = DateTime.Now; // client.Entity.SaveTimeVot(); // } // client.Entity.TimerVot = DateTime.FromBinary(timer); if (client.Entity.MapID == 601) client.OfflineTGEnterTime = DateTime.FromBinary(r.ReadInt64("OfflineTGEnterTime")); if (ServerBase.Kernel.Guilds.ContainsKey(r.ReadUInt16("GuildID"))) { client.Guild = ServerBase.Kernel.Guilds[r.ReadUInt16("GuildID")]; if (client.Guild.Members.ContainsKey(client.Entity.UID)) { client.AsMember = client.Guild.Members[client.Entity.UID]; if (client.AsMember.GuildID == 0) { client.AsMember = null; client.Guild = null; } else { client.Entity.GuildID = (ushort)client.Guild.ID; client.Entity.GuildRank = (ushort)client.AsMember.Rank; } } else client.Guild = null; } if (!Game.ConquerStructures.Nobility.Board.TryGetValue(client.Entity.UID, out client.NobilityInformation)) { client.NobilityInformation = new Conquer_Online_Server.Game.ConquerStructures.NobilityInformation(); client.NobilityInformation.EntityUID = client.Entity.UID; client.NobilityInformation.Name = client.Entity.Name; client.NobilityInformation.Donation = 0; client.NobilityInformation.Rank = Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Serf; client.NobilityInformation.Position = -1; client.NobilityInformation.Gender = 1; client.NobilityInformation.Mesh = client.Entity.Mesh; if (client.Entity.Body % 10 >= 3) client.NobilityInformation.Gender = 0; } else client.Entity.NobilityRank = client.NobilityInformation.Rank; if (DateTime.Now.DayOfYear != client.LastResetTime.DayOfYear) { if (client.Entity.Level >= 90) { client.Entity.EnlightenPoints = 100; if (client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Knight || client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Baron) client.Entity.EnlightenPoints += 100; else if (client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Earl || client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Duke) client.Entity.EnlightenPoints += 200; else if (client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.Prince) client.Entity.EnlightenPoints += 300; else if (client.Entity.NobilityRank == Conquer_Online_Server.Game.ConquerStructures.NobilityRank.King) client.Entity.EnlightenPoints += 400; if (client.Entity.VIPLevel != 0) { if (client.Entity.VIPLevel <= 3) client.Entity.EnlightenPoints += 100; else if (client.Entity.VIPLevel <= 5) client.Entity.EnlightenPoints += 200; else if (client.Entity.VIPLevel == 6) client.Entity.EnlightenPoints += 300; } } client.Entity.ReceivedEnlightenPoints = 0; client.DoubleExpToday = false; client.ExpBalls = 0; client.Entity.AddFlower = 1; client.LastResetTime = DateTime.Now; } Game.ConquerStructures.Arena.ArenaStatistics.TryGetValue(client.Entity.UID, out client.ArenaStatistic); if (client.ArenaStatistic == null || client.ArenaStatistic.EntityID == 0) { client.ArenaStatistic = new Conquer_Online_Server.Network.GamePackets.ArenaStatistic(true); client.ArenaStatistic.EntityID = client.Entity.UID; client.ArenaStatistic.Name = client.Entity.Name; client.ArenaStatistic.Level = client.Entity.Level; client.ArenaStatistic.Class = client.Entity.Class; client.ArenaStatistic.Model = client.Entity.Mesh; client.ArenaStatistic.ArenaPoints = ArenaTable.ArenaPointFill(client.Entity.Level); client.ArenaStatistic.LastArenaPointFill = DateTime.Now; ArenaTable.InsertArenaStatistic(client); client.ArenaStatistic.Status = Network.GamePackets.ArenaStatistic.NotSignedUp; Game.ConquerStructures.Arena.ArenaStatistics.Add(client.Entity.UID, client.ArenaStatistic); } else { client.ArenaStatistic.Level = client.Entity.Level; client.ArenaStatistic.Class = client.Entity.Class; client.ArenaStatistic.Model = client.Entity.Mesh; if (DateTime.Now.DayOfYear != client.ArenaStatistic.LastArenaPointFill.DayOfYear) { client.ArenaStatistic.LastSeasonArenaPoints = client.ArenaStatistic.ArenaPoints; client.ArenaStatistic.LastSeasonWin = client.ArenaStatistic.TodayWin; client.ArenaStatistic.LastSeasonLose = client.ArenaStatistic.TodayBattles - client.ArenaStatistic.TodayWin; client.ArenaStatistic.ArenaPoints = ArenaTable.ArenaPointFill(client.Entity.Level); client.ArenaStatistic.LastArenaPointFill = DateTime.Now; client.ArenaStatistic.TodayWin = 0; client.ArenaStatistic.TodayBattles = 0; Game.ConquerStructures.Arena.Sort(); Game.ConquerStructures.Arena.YesterdaySort(); } } if (r.ReadUInt32("ClanID") != 0) { if (Conquer_Online_Server.ServerBase.Kernel.ServerClans.ContainsKey(r.ReadUInt32("ClanID"))) { client.Entity.ClanId = r.ReadUInt32("ClanID"); client.Entity.Myclan = Conquer_Online_Server.ServerBase.Kernel.ServerClans[r.ReadUInt32("ClanID")]; client.Entity.ClanName = client.Entity.Myclan.ClanName; client.Entity.ClanRank = (byte)client.Entity.Myclan.Members[client.Entity.UID].Rank; } } // client.Entity.SubClasses.Active = client.Entity.SubClass; client.Entity.SubClasses.StudyPoints = r.ReadUInt64("StudyPoints"); r.Close(); SubClassTable.Load(client.Entity); SkillTable.LoadProficiencies(client); SkillTable.LoadSpells(client); KnownPersons.LoadKnownPersons(client); ConquerItemTable.LoadItems(client); DetainedItemTable.LoadClaimableItems(client); DetainedItemTable.LoadDetainedItems(client); Database.EntityTable.LoadTop2(client); EliteTournament.LoginClient2(client); client.Entity.FullyLoaded = true; } else return false; return true; }
public static void LoadItems(Client.GameState client) { MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT); cmd.Select("items").Where("EntityID", client.Entity.UID); MySqlReader r = new MySqlReader(cmd); while (r.Read()) { Interfaces.IConquerItem item = new Network.GamePackets.ConquerItem(true); item.ID = r.ReadUInt32("ID"); item.UID = r.ReadUInt32("UID"); item.Durability = r.ReadUInt16("Durability"); item.MaximDurability = r.ReadUInt16("MaximDurability"); item.Durability = item.MaximDurability; item.Position = r.ReadUInt16("Position"); item.SocketProgress = r.ReadUInt32("SocketProgress"); item.PlusProgress = r.ReadUInt32("PlusProgress"); item.SocketOne = (Game.Enums.Gem)r.ReadByte("SocketOne"); item.SocketTwo = (Game.Enums.Gem)r.ReadByte("SocketTwo"); item.Effect = (Game.Enums.ItemEffect)r.ReadByte("Effect"); item.Mode = Game.Enums.ItemMode.Default; item.Plus = r.ReadByte("Plus"); item.Bless = r.ReadByte("Bless"); item.Bound = r.ReadBoolean("Bound"); item.Enchant = r.ReadByte("Enchant"); item.Lock = r.ReadByte("Locked"); item.UnlockEnd = DateTime.FromBinary(r.ReadInt64("UnlockEnd")); item.Suspicious = r.ReadBoolean("Suspicious"); item.RefineryPart = r.ReadUInt32("RefineryPart"); item.RefineryLevel = r.ReadUInt32("RefineryLevel"); item.RefineryPercent = r.ReadUInt16("RefineryPercent"); item.RefineryStarted = DateTime.FromBinary(r.ReadInt64("RefineryStarted")); item.SuspiciousStart = DateTime.FromBinary(r.ReadInt64("SuspiciousStart")); item.Color = (Game.Enums.Color)r.ReadByte("Color"); item.Warehouse = r.ReadUInt16("Warehouse"); item.Inscribed = (r.ReadByte("Inscribed") == 1 ? true : false); item.StackSize = r.ReadUInt16("StackSize"); item.MaxStackSize = r.ReadUInt16("MaxStackSize"); if (item.Lock == 2) if (DateTime.Now >= item.UnlockEnd) item.Lock = 0; ItemAddingTable.GetAddingsForItem(item); if (item.Warehouse == 0) { switch (item.Position) { case 0: client.Inventory.Add(item, Game.Enums.ItemUse.None); break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 15: case 16: case 17: case 18: if (client.Equipment.Free((byte)item.Position)) { client.Equipment.Add(item, Game.Enums.ItemUse.None); } else { if (client.Inventory.Count < 40) { item.Position = 0; client.Inventory.Add(item, Game.Enums.ItemUse.None); if (client.Warehouses[Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID.StoneCity].Count < 60) client.Warehouses[Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID.StoneCity].Add(item); UpdatePosition(item, client); } } break; } } else { client.Warehouses[(Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID)item.Warehouse].Add(item); } if (item.ID == 720828) { string agate = r.ReadString("agate"); uint count = 0; string[] maps = agate.Split('#'); foreach (string one in maps) { if (one.Length > 6) { item.Agate_map.Add(count, one); count++; } } } } r.Close(); }
public static void Load() { MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT); command.Select("spells"); MySqlReader reader = new MySqlReader(command); while (reader.Read()) { SpellInformation spell = new SpellInformation(); spell.ID = reader.ReadUInt16("type"); spell.Sort = reader.ReadByte("sort"); spell.CanKill = reader.ReadBoolean("crime"); spell.OnlyGround = reader.ReadBoolean("ground"); spell.Multi = reader.ReadBoolean("multi"); spell.Target = reader.ReadByte("target"); spell.Level = reader.ReadByte("level"); spell.UseMana = reader.ReadUInt16("use_mp"); spell.UseStamina = reader.ReadByte("use_ep"); spell.UseArrows = reader.ReadByte("use_item_num"); spell.Power = reader.ReadUInt16("power"); spell.PowerPercent = (float)(reader.ReadUInt16("power") % 1000) / 100; if (spell.Power > 13000) spell.Power = 0; spell.Percent = reader.ReadByte("percent"); spell.Duration = reader.ReadInt32("step_secs"); spell.Range = reader.ReadUInt16("range"); spell.Sector = spell.Range * 20; spell.Distance = reader.ReadUInt16("distance"); if (spell.Distance >= 4) spell.Distance--; spell.Status = reader.ReadUInt64("status"); spell.NeedExperience = reader.ReadUInt32("need_exp"); spell.NeedLevel = reader.ReadByte("need_level"); spell.WeaponSubtype = spell.OnlyWithThisWeaponSubtype = reader.ReadUInt16("weapon_subtype"); spell.NextSpellID = reader.ReadUInt16("next_magic"); spell.NeedXP = reader.ReadByte("use_xp"); if (SpellInformations.ContainsKey(spell.ID)) { SpellInformations[spell.ID].Add(spell.Level, spell); } else { SpellInformations.Add(spell.ID, new SafeDictionary<byte, SpellInformation>(10)); SpellInformations[spell.ID].Add(spell.Level, spell); } if (spell.Distance > 17) spell.Distance = 17; if (spell.WeaponSubtype != 0) { switch (spell.ID) { case 5010: case 7020: case 1290: case 1260: case 5030: case 5040: case 7000: case 7010: case 7030: case 7040: case 1250: case 5050: case 5020: case 10490: case 1300: if (spell.Distance >= 3) spell.Distance = 3; if (spell.Range > 3) spell.Range = 3; if (!WeaponSpells.ContainsKey(spell.WeaponSubtype)) { WeaponSpells.Add(spell.WeaponSubtype, spell.ID); } break; } } } reader.Close(); Console.WriteLine("Spells information loaded."); }