public static void Load()
        {
            Ini ini = new Ini(Program.QuestInfo2);
            int num = ini.ReadInt32("TotalMission", "TotalMission");
            for (int i = 0; i <= num; i++)
            {

                Quest quest = new Quest
                {
                    Type = (QuestTypes)((byte)ini.ReadInt32(i.ToString(), "TypeId")),
                    CompleteFlag = ini.ReadInt32(i.ToString(), "CompleteFlag"),
                    ActivityType = ini.ReadInt32(i.ToString(), "ActivityType"),
                    Identifier = ini.ReadUInt32(i.ToString(), "MissionId"),
                    Name = ini.Read(i.ToString(), "Name"),
                    MinLevel = ini.ReadUInt16(i.ToString(), "Lv_min"),
                    MaxLevel = ini.ReadUInt16(i.ToString(), "Lv_max"),
                    Auto = Convert.ToBoolean(ini.ReadByte(i.ToString(), "Auto")),
                    First = Convert.ToBoolean(ini.ReadByte(i.ToString(), "First"))
                };
                string source = ini.Read(i.ToString(), "Prequest");
                if (source.Contains<char>('|'))
                {
                    foreach (string str2 in source.Split(new char[] { '|' }))
                    {
                        quest.Prerequests.Add(Convert.ToUInt32(str2));
                    }
                }
                else if ((source != "0") && (source != string.Empty))
                {
                    quest.Prerequests.Add(Convert.ToUInt32(source));
                }
                quest.Map = ini.ReadUInt32(i.ToString(), "Map");
                string str3 = ini.Read(i.ToString(), "Profession");
                if (str3.Contains<char>(','))
                {
                    foreach (string str2 in str3.Split(new char[] { ',' }))
                    {
                        quest.Professions.Add((PhoenixProject.Network.GamePackets.Quest.Quest.ClassNames)Convert.ToByte(str2));
                    }
                }
                else if ((source != "0") && (source != string.Empty))
                {
                    quest.Professions.Add((PhoenixProject.Network.GamePackets.Quest.Quest.ClassNames)Convert.ToByte(str3));
                }
                quest.Sex = ini.ReadUInt16(i.ToString(), "Sex");
                quest.FinishTime = ini.Read(i.ToString(), "FinishTime");
                quest.ActivityBeginTime = ini.Read(i.ToString(), "ActivityBeginTime");
                quest.ActivityEndTime = ini.Read(i.ToString(), "ActivityEndTime");
                string str4 = ini.Read(i.ToString(), "Prize");
                string str5 = str4;
                string str6 = string.Empty;
                if (str4.Contains<char>('['))
                {
                    str5 = str4.Remove(str4.IndexOf('['));
                    str6 = str4.Remove(0, str4.IndexOf('[')).Replace(' ', ':').Replace(']', ' ').Replace("[", "");
                }
                IEnumerable<string> first = str5.Contains<char>(' ') ? ((IEnumerable<string>)str5.Split(new char[] { ' ' })) : ((IEnumerable<string>)new string[] { str5 });
                if (str6 != string.Empty)
                {
                    first = first.Union<string>(str6.Split(new char[] { ' ' }));
                }
                foreach (string str7 in first)
                {
                    string[] strArray;
                    Dictionary<QuestPrize, uint> dictionary;
                    if (str7.Contains<char>(':'))
                    {
                        strArray = str7.ToLower().Split(new char[] { ':' });
                        string str8 = strArray[0];
                        if (str8 != null)
                        {
                            if (!(str8 == "exp"))
                            {
                                if (str8 == "gold")
                                {
                                    goto Label_048B;
                                }
                                if (str8 == "cp")
                                {
                                    goto Label_04B2;
                                }
                                if (str8 == "item")
                                {
                                    goto Label_04D9;
                                }
                            }
                            else
                            {
                                (dictionary = quest.Prizes)[QuestPrize.Exp] = dictionary[QuestPrize.Exp] + Convert.ToUInt32(strArray[1]);
                            }
                        }
                    }
                    continue;
                Label_048B:
                    (dictionary = quest.Prizes)[QuestPrize.Gold] = dictionary[QuestPrize.Gold] + Convert.ToUInt32(strArray[1]);
                    continue;
                Label_04B2:
                    (dictionary = quest.Prizes)[QuestPrize.CP] = dictionary[QuestPrize.CP] + Convert.ToUInt32(strArray[1]);
                    continue;
                Label_04D9: ;
                    string[] strArray2 = strArray[1].Split(new char[] { ',' });
                    BoothItem2 item = new BoothItem2
                    {
                        Identifier = 0,
                        ItemID = Convert.ToUInt32(strArray2[0]),
                        Plus = Convert.ToByte(strArray2[1]),
                        SocketOne = Convert.ToByte(strArray2[2]),
                        SocketTwo = Convert.ToByte(strArray2[3]),
                        Color = (uint)(Enums.Color)Convert.ToByte(strArray2[4]),
                        Enchant = Convert.ToByte(strArray2[5]),
                        Bless = Convert.ToByte(strArray2[6])
                    };

                    quest.ItemPrizes.Add(item);
                }
                ServerBase.Kernel.Quest.TryAdd(quest.Identifier, quest);
            }
        }