当前位置: 首页>>代码示例>>C#>>正文


C# MySqlCommand.Select方法代码示例

本文整理汇总了C#中PhoenixProject.Database.MySqlCommand.Select方法的典型用法代码示例。如果您正苦于以下问题:C# MySqlCommand.Select方法的具体用法?C# MySqlCommand.Select怎么用?C# MySqlCommand.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PhoenixProject.Database.MySqlCommand的用法示例。


在下文中一共展示了MySqlCommand.Select方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Handle

        public static void Handle(byte[] Data, Client.GameState Client)
        {
            QuestInfoPacket info = new QuestInfoPacket(8);
            ushort num = BitConverter.ToUInt16(Data, 4);
            if (num == 3)
            {
                MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
                cmd.Select("heroquests").Where("hero", Client.Entity.UID).And("quest", 0xb71b2);
                PhoenixProject.Database.MySqlReader reader = new PhoenixProject.Database.MySqlReader(cmd);
                if (Client != null)
                {
                    info.Type = 3;
                    while (reader.Read())
                    {
                        info.AddQuest(reader.ReadUInt32("quest"), (QuestCompleteTypes)((ushort)reader.ReadUInt32("completeflag")));
                        HeroQuest quest2 = new HeroQuest
                        {
                            Identifier = reader.ReadUInt32("quest"),
                            DailyFinishes =  reader.ReadUInt32("dailyfinishes"),
                            CompleteFlag = (QuestCompleteTypes)((ushort) reader.ReadUInt32("completeflag"))
                        };
                        DateTime time3 = new DateTime(0x7b2, 1, 1);
                        quest2.CompleteTime = time3.ToLocalTime().AddSeconds(reader.ReadUInt32("completetime"));

                       // quest2.CompleteTime = new DateTime().FromUnix(Convert.ToUInt32(reader["completetime"]));
                        quest2.Step = reader.ReadUInt32("step");
                        HeroQuest quest = quest2;
                        Client.Quests.GetOrAdd(quest.Identifier, quest);
                    }
                    reader.Close();
                    reader.Dispose();
                }
                Client.Send((byte[])info);
                if (Client != null)
                {
                    cmd.Select("killtargets").Where("hero", Client.Entity.UID);
                    while (reader.Read())
                    {
                        QuestQuery query = new QuestQuery
                        {
                            Identifier = reader.ReadUInt32("quest"),
                            Unknown2 = reader.ReadUInt32("count")
                        };
                        Client.Send((byte[])query);
                    }
                    reader.Close();
                    reader.Dispose();
                }
            }
            else
            {
                Console.WriteLine("Unhandled QuestInfo (1134) Type "+num+"");
            }
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:54,代码来源:QuestInfo.cs

示例2: Flowers

 public static void Flowers(GameState client)
 {
     client.Entity.Flowers = new Flowers();
     if (!FlowerSystemTable.Exists(client.Entity.UID))
     {
         FlowerSystemTable.Insert(client);
     }
     MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
     cmd.Select("flowers").Where("id", (long)((ulong)client.Entity.UID));
     MySqlReader r = new MySqlReader(cmd);
     if (r.Read())
     {
         client.Entity.Flowers.id = client.Entity.UID;
         client.Entity.Flowers.RedRoses2day = 0u;
         client.Entity.Flowers.Lilies2day = 0u;
         client.Entity.Flowers.Tulips2day = 0u;
         client.Entity.Flowers.Orchads2day = 0u;
         client.Entity.Flowers.RedRoses = r.ReadUInt32("redroses");
         client.Entity.Flowers.Lilies = r.ReadUInt32("lilies");
         client.Entity.Flowers.Tulips = r.ReadUInt32("tulips");
         client.Entity.Flowers.Orchads = r.ReadUInt32("orchads");
     }
     r.Close();
     r.Dispose();
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:25,代码来源:FlowerSystemTable.cs

示例3: LoadClaimableItems

        public static void LoadClaimableItems(Client.GameState client)
        {
            MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
            cmd.Select("claimitems").Where("GainerUID", client.Entity.UID);
            MySqlReader r = new MySqlReader(cmd);
            while (r.Read())
            {
                DetainedItem item = new DetainedItem(true);
                item.ItemUID = r.ReadUInt32("ItemUID");
                item.UID = item.ItemUID;
                item.Page = (byte)DetainedItem.ClaimPage;
                item.Item = ConquerItemTable.LoadItem(item.ItemUID);
                item.ConquerPointsCost = r.ReadUInt32("ConquerPointsCost");
                item.OwnerUID = r.ReadUInt32("OwnerUID");
                item.GainerName = r.ReadString("GainerName");
                item.GainerUID = r.ReadUInt32("GainerUID");
                item.OwnerName = r.ReadString("OwnerName");
                item.Date = DateTime.FromBinary(r.ReadInt64("Date"));
                item.DaysLeft = (uint)(TimeSpan.FromTicks(DateTime.Now.Ticks).Days - TimeSpan.FromTicks(item.Date.Ticks).Days);
                if (item.OwnerUID == 500)
                {
                    item.MakeItReadyToClaim();
                    item.GainerUID = r.ReadUInt32("GainerUID");
                    item.OwnerUID = r.ReadUInt32("OwnerUID");
                }
                client.ClaimableItem.Add(item.UID, item);
            }
            r.Close();
            r.Dispose();

            /*ClaimItemCollection items = new ClaimItemCollection();
            items.LoadAndCloseReader(ClaimItem.FetchByParameter("GainerUID", client.Entity.UID));
            for (int x = 0; x < items.Count; x++)
            {
                DetainedItem item = new DetainedItem(true);
                item.ItemUID = items[x].ItemUID;
                item.UID = item.ItemUID - 1;
                item.Page = (byte)DetainedItem.ClaimPage;
                item.Item = ConquerItemTable.LoadItem(item.ItemUID);
                item.ConquerPointsCost = items[x].ConquerPointsCost;
                item.OwnerUID = items[x].OwnerUID;
                item.GainerName = items[x].GainerName;
                item.GainerUID = items[x].GainerUID;
                item.OwnerName = items[x].OwnerName;
                item.Date = DateTime.FromBinary((long)items[x].DateX);
                item.DaysLeft = (uint)(TimeSpan.FromTicks(DateTime.Now.Ticks).Days - TimeSpan.FromTicks(item.Date.Ticks).Days);
                if (item.OwnerUID == 500)
                {
                    item.MakeItReadyToClaim();
                    item.GainerUID = items[x].GainerUID;
                    item.OwnerUID = items[x].OwnerUID;
                }
                client.ClaimableItem.Add(item.UID, item);
            }*/
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:55,代码来源:ClaimItemTable.cs

示例4: MySqlCommand

        /* public static void save(Entity Entity, Statement.SubClass SubClass)
        {

             MySqlCommand Command = new MySqlCommand(MySqlCommandType.UPDATE);
            Command.Update("subclasses")
                .Set("phase", SubClass.Phase)
                .Set("level", SubClass.Level)
                .Where("id", Entity.UID)
                .And("uid", SubClass.ID)
                .Execute();

        }*/
        public static bool Contains(Entity Entity, byte id)
        {
            bool Return = false;
            MySqlCommand Command = new MySqlCommand(MySqlCommandType.SELECT);
            Command.Select("subclasses").Where("id", Entity.UID).And("uid", id);
            PhoenixProject.Database.MySqlReader Reader = new PhoenixProject.Database.MySqlReader(Command);
            if (Reader.Read())
            {
                if (Reader.ReadByte("uid") == id)
                    Return = true;
            }

            return Return;
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:26,代码来源:SubClassTable.cs

示例5: LoadArsenal

        public static void LoadArsenal(PhoenixProject.Game.ConquerStructures.Society.Guild Syn)
        {
            Syn.Arsenal = new Arsenal((ushort)Syn.ID);
            MySqlCommand Command = new MySqlCommand(MySqlCommandType.SELECT);
            Command.Select("pt_arsenal").Where("syn_id", Syn.ID).Execute();
            MySqlReader Reader = new MySqlReader(Command);
            while (Reader.Read())
            {
                PhoenixProject.Game.Features.Arsenal_State Arsenal = new PhoenixProject.Game.Features.Arsenal_State();
                Arsenal.ID = (PhoenixProject.Game.Features.Arsenal_ID)Reader.ReadByte("arsenal_id");
                Arsenal.Unlocked = (Reader.ReadByte("arsenal_unlocked") == 1);
                Arsenal.Donation = Reader.ReadUInt32("arsenal_donation");

                if (!Syn.Arsenal.Arsenals.ContainsKey(Arsenal.ID))
                    Syn.Arsenal.Arsenals.Add(Arsenal.ID, Arsenal);
            }
            if (Syn.Arsenal.Arsenals.Count > 0)
            {
                Command = new MySqlCommand(MySqlCommandType.SELECT);
                Command.Select("pt_arsenal_inscribed").Where("syn_id", Syn.ID).Execute();
                Reader = new MySqlReader(Command);
                while (Reader.Read())
                {
                    uint OWNER = Reader.ReadUInt32("uid");
                    string Name = Reader.ReadString("name");
                    uint UID = Reader.ReadUInt32("iten_id");
                    PhoenixProject.Game.Features.Arsenal_ID ID = (PhoenixProject.Game.Features.Arsenal_ID)Reader.ReadByte("iten_atype");
                    if (Syn.Arsenal.Arsenals.ContainsKey(ID))
                    {
                        if (!Syn.Arsenal.Arsenals[ID].Inscribed.ContainsKey(UID))
                        {
                            Syn.Arsenal.Arsenals[ID].Inscribed.Add(UID, new PhoenixProject.Game.Features.Arsenal_Client() { UID = OWNER, Name = Name, iUID = UID });
                        }
                    }
                }
            }
            foreach (PhoenixProject.Game.Features.Arsenal_State astate in Syn.Arsenal.Arsenals.Values)
            {
                foreach (PhoenixProject.Game.Features.Arsenal_Client ac in astate.Inscribed.Values)
                {
                    if (ac.Item == null)
                    {
                        ac.Item = ConquerItemTable.LoadItem(ac.iUID);
                    }
                }
            }
            Reader.Close();
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:48,代码来源:ArsenalTable.cs

示例6: Load

 public static void Load(Client.GameState client)
 {
     MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
      cmd.Select("reincarnation").Where("uid", client.Entity.UID);
     MySqlReader r = new MySqlReader(cmd);
     while (r.Read())
     {
         ReincarnateInfo info = new ReincarnateInfo();
         info.UID = r.ReadUInt32("uid");
         info.Level = r.ReadByte("level");
         info.Experience = r.ReadUInt64("experience");
         if (!ServerBase.Kernel.ReincarnatedCharacters.ContainsKey(info.UID))
             ServerBase.Kernel.ReincarnatedCharacters.Add(info.UID, info);
     }
     r.Close();
     r.Dispose();
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:17,代码来源:ReincarnationTable.cs

示例7: Load

        public static void Load()
        {
            MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
            cmd.Select("arena");
            MySqlReader reader = new MySqlReader(cmd);
            while (reader.Read())
            {
                Network.GamePackets.ArenaStatistic stat = new Network.GamePackets.ArenaStatistic(true);
                stat.EntityID = reader.ReadUInt32("EntityID");
                stat.Name = reader.ReadString("EntityName");
                stat.LastSeasonRank = reader.ReadUInt32("LastSeasonRank");
                stat.LastSeasonArenaPoints = reader.ReadUInt32("LastSeasonArenaPoints");
                stat.ArenaPoints = reader.ReadUInt32("ArenaPoints");
                stat.TodayWin = reader.ReadByte("TodayWin");
                stat.TodayBattles = reader.ReadByte("TodayBattles"); // doesn't exist in the DB, removed it
                stat.LastSeasonWin = reader.ReadUInt32("LastSeasonWin");
                stat.LastSeasonLose = reader.ReadUInt32("LastSeasonLose");
                stat.TotalWin = reader.ReadUInt32("TotalWin");
                stat.TotalLose = reader.ReadUInt32("TotalLose");
                stat.HistoryHonor = reader.ReadUInt32("HistoryHonor");
                stat.CurrentHonor = reader.ReadUInt32("CurrentHonor");
                stat.Level = reader.ReadByte("Level");
                stat.Class = reader.ReadByte("Class");
                stat.Model = reader.ReadUInt32("Model");
                stat.LastArenaPointFill = DateTime.FromBinary(reader.ReadInt64("ArenaPointFill"));

                if (DateTime.Now.DayOfYear != stat.LastArenaPointFill.DayOfYear)
                {
                    stat.LastSeasonArenaPoints = stat.ArenaPoints;
                    stat.LastSeasonWin = stat.TodayWin;
                    stat.LastSeasonLose = stat.TodayBattles - stat.TodayWin;
                    stat.ArenaPoints = ArenaPointFill(stat.Level);
                    stat.LastArenaPointFill = DateTime.Now;
                    stat.TodayWin = 0;
                    stat.TodayBattles = 0;
                }

                Game.ConquerStructures.Arena.ArenaStatistics.Add(stat.EntityID, stat);
            }
            reader.Close();
            reader.Dispose();
            Game.ConquerStructures.Arena.Sort();
            Game.ConquerStructures.Arena.YesterdaySort();
            Console.WriteLine("Arena information loaded.");
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:45,代码来源:ArenaTable.cs

示例8: LoadEnemy

        public static void LoadEnemy(Client.GameState client)
        {
            client.Enemy = new SafeDictionary<uint, PhoenixProject.Game.ConquerStructures.Society.Enemy>(50);
            MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
            cmd = new MySqlCommand(MySqlCommandType.SELECT);

            cmd.Select("enemy").Where("EntityID", client.Entity.UID);
            MySqlReader reader = new MySqlReader(cmd);
            reader = new MySqlReader(cmd);
            while (reader.Read())
            {
                Game.ConquerStructures.Society.Enemy enemy = new Game.ConquerStructures.Society.Enemy();
                enemy.ID = reader.ReadUInt32("EnemyID");
                enemy.Name = reader.ReadString("EnemyName");
                client.Enemy.Add(enemy.ID, enemy);
            }
            reader.Close();
            reader.Dispose();
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:19,代码来源:KnownPersons.cs

示例9: Load

 public static void Load()
 {
     MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
     command.Select("maps");
     MySqlReader reader = new MySqlReader(command);
     while (reader.Read())
     {
         MapInformation info = new MapInformation();
         info.ID = reader.ReadUInt64("id");
         info.BaseID = reader.ReadUInt64("mapdoc");
         //Console.WriteLine("id " + info.ID + "  base : " + info.BaseID + "");
         info.Status = reader.ReadUInt32("type");
         info.Weather = reader.ReadUInt32("weather");
         MapInformations.Add(info.ID, info);
     }
     reader.Close();
     reader.Dispose();
     Console.WriteLine("Map informations loaded.");
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:19,代码来源:MapsTable.cs

示例10: Load

 public static void Load()
 {
     MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
     command.Select("lottery");
     MySqlReader reader = new MySqlReader(command);
     while (reader.Read())
     {
         LotteryItem item = new LotteryItem();
         item.Rank = reader.ReadInt32("rank");
         item.Chance = reader.ReadInt32("chance");
         item.Name = reader.ReadString("prize_name");
         item.ID = reader.ReadUInt32("prize_item");
         item.Color = reader.ReadByte("color");
         item.Sockets = reader.ReadByte("hole_num");
         item.Plus = reader.ReadByte("addition_lev");
         LotteryItems.Add(item);
     }
     reader.Close();
     reader.Dispose();
     Console.WriteLine("Lottery items loaded.");
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:21,代码来源:LotteryTable.cs

示例11: GetSingleItem

        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);
            PhoenixProject.Database.MySqlReader r = new PhoenixProject.Database.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.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();
            //r.Close();
            r.Dispose();

            return item;
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:40,代码来源:ConquerItemTable.cs

示例12: Load

        public static void Load(Client.GameState client)
        {
            MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
            cmd.Select("pk_explorer").Where("uid", client.Account.EntityID);
            MySqlReader r = new MySqlReader(cmd);
            while (r.Read())
            {
                Game.PkExpeliate pk = new Game.PkExpeliate();
                pk.UID = r.ReadUInt32("killed_uid");
                pk.Name = r.ReadString("killed_name");
                pk.KilledAt = r.ReadString("killed_map");
                pk.LostExp = r.ReadUInt32("lost_exp");
                pk.Times = r.ReadUInt32("times");
                pk.Potency = r.ReadUInt32("battle_power");
                pk.Level = r.ReadByte("level");
                //client.Entity.PkExplorerValues.SafeAdd(pk.UID, pk);
                client.Entity.PkExplorerValues.Add(pk.UID, pk);

            }
            r.Close();
            r.Dispose();
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:22,代码来源:PkExpelTable.cs

示例13: PkExploitAdd

 public static void PkExploitAdd(Client.GameState client, uint UIDEnemy, Game.PkExpeliate pk)
 {
     MySqlCommand cmds = new MySqlCommand(MySqlCommandType.SELECT);
     cmds.Select("pk_explorer").Where("uid", client.Account.EntityID);
     MySqlReader rdr = new MySqlReader(cmds);
     if (rdr.Read())
     {
         MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE);
         cmd.Update("pk_explorer")
              .Set("killed_uid", UIDEnemy)
              .Set("killed_name", pk.Name).Set("killed_map", pk.KilledAt)
              .Set("lost_exp", pk.LostExp).Set("times", pk.Times++)
              .Set("battle_power", pk.Potency).Set("level", pk.Level);
         cmd.Execute();
         if (!client.Entity.PkExplorerValues.ContainsKey(pk.UID))
         {
             client.Entity.PkExplorerValues.Add(pk.UID, pk);
         }
         else
         {
             client.Entity.PkExplorerValues.Remove(pk.UID);
             client.Entity.PkExplorerValues.Add(pk.UID, pk);
         }
     }
     else
     {
         MySqlCommand cmd = new MySqlCommand(MySqlCommandType.INSERT);
         cmd.Insert("pk_explorer")
              .Insert("uid", pk.UID).Insert("killed_uid", UIDEnemy)
              .Insert("killed_name", pk.Name).Insert("killed_map", pk.KilledAt)
              .Insert("lost_exp", pk.LostExp).Insert("times", pk.Times)
              .Insert("battle_power", pk.Potency).Insert("level", pk.Level);
         cmd.Execute();
         if (!client.Entity.PkExplorerValues.ContainsKey(pk.UID))
             client.Entity.PkExplorerValues.Add(pk.UID, pk);
     }
     rdr.Close();
     rdr.Dispose();
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:39,代码来源:PkExpelTable.cs

示例14: Exists

 private static bool Exists(uint id)
 {
     bool result;
     try
     {
         MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
         cmd.Select("flowers").Where("id", (long)((ulong)id));
         MySqlReader r = new MySqlReader(cmd);
         if (r.Read())
         {
             r.Close();
             r.Dispose();
             result = true;
             return result;
         }
     }
     catch
     {
     }
     result = false;
     return result;
 }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:22,代码来源:FlowerSystemTable.cs

示例15: GetMembers

        public static void GetMembers()
        {
            foreach (KeyValuePair<uint, Game.Clans> G in PhoenixProject.ServerBase.Kernel.ServerClans)
            {
                Game.Clans clan = G.Value;
                MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
                cmd.Select("entities").Where("ClanId", clan.ClanId);
                PhoenixProject.Database.MySqlReader r = new PhoenixProject.Database.MySqlReader(cmd);
                while (r.Read())
                {

                    Game.ClanMembers member = new PhoenixProject.Game.ClanMembers();
                    member.Donation = r.ReadUInt32("ClanDonation");
                    //member.Rank = r.ReadByte("ClanRank");
                    member.UID = r.ReadUInt32("UID");
                    member.Name = r.ReadString("Name");
                    member.Class = r.ReadUInt16("Class");
                    member.Level = r.ReadByte("Level");

                    if (clan.ClanLider == member.Name)
                    {
                        member.Rank = 100;
                    }
                    else
                    {
                        member.Rank = 10;
                    }

                    if (!clan.Members.ContainsKey(member.UID))
                        clan.Members.Add(member.UID, member);
                }
                r.Close();
                //r.Close();
                r.Dispose();
                //Console.WriteLine("1818");
            }
        }
开发者ID:Mromany,项目名称:Conquista5679-TheHunterSource-,代码行数:37,代码来源:ClanTable.cs


注:本文中的PhoenixProject.Database.MySqlCommand.Select方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。