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


C# Misc.DeleteTimer类代码示例

本文整理汇总了C#中Server.Misc.DeleteTimer的典型用法代码示例。如果您正苦于以下问题:C# DeleteTimer类的具体用法?C# DeleteTimer怎么用?C# DeleteTimer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DeleteTimer类属于Server.Misc命名空间,在下文中一共展示了DeleteTimer类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StopDeleteTimer

		public void StopDeleteTimer()
		{
			if ( m_DeleteTimer != null )
			{
				m_DeleteTimer.Stop();
				m_DeleteTimer = null;
			}
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:8,代码来源:BaseCreature.cs

示例2: SetControlMaster

		public bool SetControlMaster( Mobile m )
		{
			if ( m == null )
			{
				ControlMaster = null;
				Controlled = false;
				ControlTarget = null;
				ControlOrder = OrderType.None;
				Guild = null;

				Delta( MobileDelta.Noto );
			}
			else
			{
				ISpawner se = this.Spawner;
				if ( se != null && se.UnlinkOnTaming )
				{
					this.Spawner.Remove( this );
					this.Spawner = null;
				}

				if ( m.Followers + ControlSlots > m.FollowersMax )
				{
					m.SendLocalizedMessage( 1049607 ); // You have too many followers to control that creature.
					return false;
				}

				CurrentWayPoint = null;//so tamed animals don't try to go back

				ControlMaster = m;
				Controlled = true;
				ControlTarget = null;
				ControlOrder = OrderType.Come;
				Guild = null;

				if ( m_DeleteTimer != null )
				{
					m_DeleteTimer.Stop();
					m_DeleteTimer = null;
				}

				Delta( MobileDelta.Noto );
			}

			InvalidateProperties();

			return true;
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:48,代码来源:BaseCreature.cs

示例3: OnAfterDelete

		public override void OnAfterDelete()
		{
			if ( m_AI != null )
			{
				if ( m_AI.m_Timer != null )
					m_AI.m_Timer.Stop();

				m_AI = null;
			}

			if ( m_DeleteTimer != null )
			{
				m_DeleteTimer.Stop();
				m_DeleteTimer = null;
			}

			FocusMob = null;

			if ( IsAnimatedDead )
				Spells.Necromancy.AnimateDeadSpell.Unregister( m_SummonMaster, this );

			base.OnAfterDelete();
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:23,代码来源:BaseCreature.cs

示例4: BeginDeleteTimer

		public void BeginDeleteTimer()
		{
			if ( !(this is BaseEscortable) && !Summoned && !Deleted && !IsStabled )
			{
				StopDeleteTimer();
				m_DeleteTimer = new DeleteTimer( this, TimeSpan.FromDays( 3.0 ) );
				m_DeleteTimer.Start();
			}
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:9,代码来源:BaseCreature.cs

示例5: OnAfterDelete

        public override void OnAfterDelete()
        {
            if( m_AI != null )
            {
                if( m_AI.m_Timer != null )
                    m_AI.m_Timer.Stop();

                m_AI = null;
            }

            if( m_DeleteTimer != null )
            {
                m_DeleteTimer.Stop();
                m_DeleteTimer = null;
            }

            FocusMob = null;

            base.OnAfterDelete();
        }
开发者ID:ITLongwell,项目名称:Ulmeta,代码行数:20,代码来源:BaseCreature.cs

示例6: Deserialize


//.........这里部分代码省略.........

				m_ColdResistance = reader.ReadInt();
				m_ColdDamage = reader.ReadInt();

				m_PoisonResistance = reader.ReadInt();
				m_PoisonDamage = reader.ReadInt();

				m_EnergyResistance = reader.ReadInt();
				m_EnergyDamage = reader.ReadInt();
			}

			if ( version >= 8 )
				m_Owners = reader.ReadStrongMobileList();
			else
				m_Owners = new List<Mobile>();

			if ( version >= 10 )
			{
				m_IsDeadPet = reader.ReadBool();
				m_IsBonded = reader.ReadBool();
				m_BondingBegin = reader.ReadDateTime();
				m_OwnerAbandonTime = reader.ReadDateTime();
			}

			if ( version >= 11 )
				m_HasGeneratedLoot = reader.ReadBool();
			else
				m_HasGeneratedLoot = true;

			if ( version >= 12 )
				m_Paragon = reader.ReadBool();
			else
				m_Paragon = false;

			if ( version >= 13 && reader.ReadBool() )
				m_Friends = reader.ReadStrongMobileList();
			else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend )
				++m_ControlOrder;

			if ( version < 16 && Loyalty != MaxLoyalty )
				Loyalty *= 10;

			double activeSpeed = m_dActiveSpeed;
			double passiveSpeed = m_dPassiveSpeed;

			SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed );

			bool isStandardActive = false;
			for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i )
				isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] );

			bool isStandardPassive = false;
			for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
				isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] );

			if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
				m_dCurrentSpeed = activeSpeed;
			else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
				m_dCurrentSpeed = passiveSpeed;

			if ( isStandardActive && !m_Paragon )
				m_dActiveSpeed = activeSpeed;

			if ( isStandardPassive && !m_Paragon )
				m_dPassiveSpeed = passiveSpeed;

			if ( version >= 14 )
			{
				m_RemoveIfUntamed = reader.ReadBool();
				m_RemoveStep = reader.ReadInt();
			}

			TimeSpan deleteTime = TimeSpan.Zero;

			if ( version >= 17 )
				deleteTime = reader.ReadTimeSpan();

			if ( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled )
			{
				if ( deleteTime == TimeSpan.Zero )
					deleteTime = TimeSpan.FromDays( 3.0 );

				m_DeleteTimer = new DeleteTimer( this, deleteTime );
				m_DeleteTimer.Start();
			}

			if( version <= 14 && m_Paragon && Hue == 0x31 )
			{
				Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
			}

			CheckStatTimers();

			ChangeAIType(m_CurrentAI);

			AddFollowers();

			if ( IsAnimatedDead )
				Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this );
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:101,代码来源:BaseCreature.cs

示例7: Initialize

		//----------------------------------------------------------------------
		// Initialize; this is the engine entry point (called by the core);
		//----------------------------------------------------------------------
		public static void Initialize()
		{
			m_RegionHash = new Hashtable();

			Console.Write( "Random Encounters: Initializing..." );

			if( MaybeLoadXml() )
			{
				//if (m_Debug) DumpAll();

				string intervals = "";

				for( int i = 0; i < m_Intervals.Length; i++ )
				{
					if( i != 0 ) intervals += ":";

					intervals += m_Intervals[i];
				}

				//Dungeon Wilderness Guarded House Jail

				m_EncounterTimers = new EncounterTimer[m_Intervals.Length];

				if( m_Intervals.Length >= 3 )
				{
					m_EncounterTimers[0] = new EncounterTimer( "Dungeon", m_Intervals[0] );
					m_EncounterTimers[1] = new EncounterTimer( "Wilderness", m_Intervals[1] );
					m_EncounterTimers[2] = new EncounterTimer( "Guarded", m_Intervals[2] );
				}
				if( m_Intervals.Length >= 4 )
				{
					//m_EncounterTimers[3] = new EncounterTimer( "House", m_Intervals[3] );
					Console.WriteLine( "RandomEncounters: WARNING, House Spawning not implemented yet." );
				}
				if( m_Intervals.Length == 5 )
				{
					//m_EncounterTimers[4] = new EncounterTimer( "Jail", m_Intervals[4] );
					Console.WriteLine( "RandomEncounters: WARNING, Jail Spawning not implemented yet." );
				}

				foreach( EncounterTimer timer in m_EncounterTimers ) timer.Start();

				if( m_ReinitializeTimer == null )
				{
					m_ReinitializeTimer = new ReinitializeTimer();
					m_ReinitializeTimer.Start();
				}

				//        if (cleanupList.Count>0)
				//        {
				//            DeleteEncounterTimer deleter = new DeleteEncounterTimer( m_Cleanup, cleanupList );
				//            deleter.Start();
				//        }

				m_DeleteTimer = new DeleteTimer( Cleanup, Cleanup );
				m_DeleteTimer.Start();

				Console.WriteLine( "done" );
			}
			else
			{
				Console.WriteLine( "failed!" );
			}
		}
开发者ID:greeduomacro,项目名称:hubroot,代码行数:67,代码来源:EncounterEngine.cs

示例8: Deserialize

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch( version )
            {

                case 2:
                    {
                        alignment = (Alignment)reader.ReadInt();
                        goto case 1;
                    }

                case 1:
                    {
                        TimeSpan deleteTime = TimeSpan.Zero;

                        if( version >= 1 )
                            deleteTime = reader.ReadTimeSpan();

                        if( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled )
                        {
                            if( deleteTime <= TimeSpan.Zero || deleteTime > TimeSpan.FromDays(3.0) )
                                deleteTime = TimeSpan.FromDays(3.0);

                            m_DeleteTimer = new DeleteTimer(this, deleteTime);
                            m_DeleteTimer.Start();
                        }

                        goto case 0;
                    }

                case 0:
                    {
                        m_CurrentAI = (AIType)reader.ReadInt();
                        m_DefaultAI = (AIType)reader.ReadInt();

                        m_iRangePerception = reader.ReadInt();
                        m_iRangeFight = reader.ReadInt();
                        m_iRangeHome = reader.ReadInt();

                        m_iTeam = reader.ReadInt();

                        m_dActiveSpeed = reader.ReadDouble();
                        m_dPassiveSpeed = reader.ReadDouble();
                        m_dCurrentSpeed = reader.ReadDouble();

                        if( m_iRangePerception == OldRangePerception )
                            m_iRangePerception = DefaultRangePerception;

                        m_pHome.X = reader.ReadInt();
                        m_pHome.Y = reader.ReadInt();
                        m_pHome.Z = reader.ReadInt();

                        int i, iCount;

                        iCount = reader.ReadInt();
                        for( i = 0; i < iCount; i++ )
                        {
                            string str = reader.ReadString();
                            Type type = Type.GetType(str);

                            if( type != null )
                            {
                                m_arSpellAttack.Add(type);
                            }
                        }

                        iCount = reader.ReadInt();
                        for( i = 0; i < iCount; i++ )
                        {
                            string str = reader.ReadString();
                            Type type = Type.GetType(str);

                            if( type != null )
                            {
                                m_arSpellDefense.Add(type);
                            }
                        }

                        m_FightMode = (FightMode)reader.ReadInt();
                        m_bControlled = reader.ReadBool();
                        m_ControlMaster = reader.ReadMobile();
                        m_ControlTarget = reader.ReadMobile();
                        m_ControlDest = reader.ReadPoint3D();
                        m_ControlOrder = (OrderType)reader.ReadInt();
                        m_dMinTameSkill = reader.ReadDouble();
                        m_bTamable = reader.ReadBool();
                        m_bSummoned = reader.ReadBool();

                        if( m_bSummoned )
                        {
                            m_SummonEnd = reader.ReadDeltaTime();
                            new UnsummonTimer(m_ControlMaster, this, m_SummonEnd - DateTime.Now).Start();
                        }

                        m_iControlSlots = reader.ReadInt();
                        m_Loyalty = reader.ReadInt();
//.........这里部分代码省略.........
开发者ID:ITLongwell,项目名称:Ulmeta,代码行数:101,代码来源:BaseCreature.cs

示例9: Deserialize


//.........这里部分代码省略.........
				isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] );

			bool isStandardPassive = false;
			for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
				isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] );

			if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
				m_dCurrentSpeed = activeSpeed;
			else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
				m_dCurrentSpeed = passiveSpeed;

			if ( isStandardActive && !m_Paragon && !m_Corrupt)
				m_dActiveSpeed = activeSpeed;

            if (isStandardPassive && !m_Paragon && !m_Corrupt)
				m_dPassiveSpeed = passiveSpeed;

			if ( version >= 14 )
			{
				m_RemoveIfUntamed = reader.ReadBool();
				m_RemoveStep = reader.ReadInt();
			}

			TimeSpan deleteTime = TimeSpan.Zero;

			if ( version >= 17 )
				deleteTime = reader.ReadTimeSpan();

			if ( ( deleteTime > TimeSpan.Zero || LastOwner != null ) && !Controlled && !IsStabled )
			{
				if ( deleteTime == TimeSpan.Zero )
					deleteTime = TimeSpan.FromDays( 3.0 );

				m_DeleteTimer = new DeleteTimer( this, deleteTime );
				m_DeleteTimer.Start();
			}

			if ( version >= 18 )
				m_StabledDate = reader.ReadDeltaTime();
/*
			if( version <= 14 && m_Paragon && Hue == 0x31 )
			{
				Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
			}
*/
			if ( version >= 19 )
				m_HomeMap = reader.ReadMap();

			if ( version >= 20 )
				m_CorpseNameOverride = reader.ReadString();

            if (version == 21 || version == 22) // NO LONGER USED!
            {
                m_KillCriminals = reader.ReadBool();
                m_KillMurderers = reader.ReadBool();
                m_InnocentDefault = reader.ReadBool();
                m_Pseu_KeepKillCredit = reader.ReadBool();
                m_PoisonCustomChance = reader.ReadDouble();
                m_PoisonCustomImmune = Poison.GetPoison(reader.ReadInt());
                m_PoisonCustomHit = Poison.GetPoison(reader.ReadInt());
                m_CanBreathCustom = reader.ReadBool();
                m_BreathDamageCustom = reader.ReadInt();
                m_BreathCustomDelay = reader.ReadDouble();
                m_Pseu_SpellDelay = reader.ReadTimeSpan();
                m_BardImmuneCustom = reader.ReadBool();
                m_Pseu_EQPlayerAllowed = reader.ReadBool();
开发者ID:greeduomacro,项目名称:UO-Forever,代码行数:67,代码来源:BaseCreature.cs

示例10: Initialize

    //----------------------------------------------------------------------
    // Initialize; this is the engine entry point (called by the core);
    //----------------------------------------------------------------------
    public static void Initialize()
    {
        m_RegionHash = new Hashtable();

        if (MaybeLoadXml())
        {
            //if (m_Debug) DumpAll();

            string intervals = "";

            for( int i=0; i < m_Intervals.Length; i++ )
            {
                if( i!=0 ) intervals += ":";

                intervals += m_Intervals[i];
            }

            Console.WriteLine(
                "RE: **WE'RE LIVE, BABY***..."
                );
            Console.WriteLine(
                "    [picker={0} language={1} skiphidden={2} delay={3} intervals={4} cleanup={5} grace={6} debug={7} animateDebug={8}]",
                m_Picker,
                m_Language,
                m_SkipHidden,
                m_Delay,
                intervals,
                m_Cleanup,
                m_CleanupGrace,
                m_Debug,
                m_DebugEffect
                );

            //Dungeon Wilderness Guarded House Jail

            m_EncounterTimers = new EncounterTimer[m_Intervals.Length];

            if( m_Intervals.Length >= 3 )
            {
                m_EncounterTimers[0] = new EncounterTimer( "Dungeon", m_Intervals[0] );
                m_EncounterTimers[1] = new EncounterTimer( "Wilderness", m_Intervals[1] );
                m_EncounterTimers[2] = new EncounterTimer( "Guarded", m_Intervals[2] );
            }
            if ( m_Intervals.Length >= 4 )
            {
                //m_EncounterTimers[3] = new EncounterTimer( "House", m_Intervals[3] );
                Console.WriteLine("RE: WARNING, House Spawning not implemented yet.");
            }
            if ( m_Intervals.Length == 5 )
            {
                //m_EncounterTimers[4] = new EncounterTimer( "Jail", m_Intervals[4] );
                Console.WriteLine("RE: WARNING, Jail Spawning not implemented yet.");
            }

            foreach( EncounterTimer timer in m_EncounterTimers ) timer.Start();

            if( m_ReinitializeTimer==null )
            {
                m_ReinitializeTimer = new ReinitializeTimer();
                m_ReinitializeTimer.Start();
            }

//        if (cleanupList.Count>0)
//        {
//            DeleteEncounterTimer deleter = new DeleteEncounterTimer( m_Cleanup, cleanupList );
//            deleter.Start();
//        }

            m_DeleteTimer = new DeleteTimer( Cleanup, Cleanup );
            m_DeleteTimer.Start();
        }
        else
        {
            Console.WriteLine("##### RE: ***FAILED INITIALIZATION***!");
        }
    }
开发者ID:greeduomacro,项目名称:annox,代码行数:79,代码来源:EncounterEngine.cs

示例11: StopDeleteTimer

 public void StopDeleteTimer()
 {
     if (this.m_DeleteTimer != null)
     {
         this.m_DeleteTimer.Stop();
         this.m_DeleteTimer = null;
     }
 }
开发者ID:m309,项目名称:ForkUO,代码行数:8,代码来源:BaseCreature.cs

示例12: OnDragDrop

        public override bool OnDragDrop(Mobile m, Item t)
        {
            if (m_Done) return false;

            Container pack = Backpack;

            if (t is BaseClothing)
            {
                Emote("*Puts the clothing on*");
                pack.DropItem(t);
                AddItem(t);
                return true;
            }

            if (t is Food)
            {
                Emote("*Eats the food*");
                PlaySound(Utility.Random(0x3A, 3));
                pack.DropItem(t);
                AddItem(t);
                return true;
            }

            if (t is Gold)
            {
                if (CheckTeachingMatch(m))
                {
                    if (Teach(m_Teaching, m, t.Amount, true))
                    {
                        t.Delete();
                        return true;
                    }
                }

                pack.DropItem(t);
                // Karma gain is 1% of gold with max gain of 25
                int newKarma = (t.Amount > 2500) ? 25 : (t.Amount / 100);
                Titles.AwardKarma(m, newKarma, true);
                Direction = GetDirectionTo(m.Location);

                Animate(32, 5, 1, true, false, 0); // Bow

                if (t.Amount < 50)
                    Say("Thanks.");

                else if ((t.Amount >= 50) && (t.Amount < 100))
                    Say("Thank you for the gold!");

                else if ((t.Amount >= 100) && (t.Amount < 500))
                    Say("Thank you! The pockets are nice and heavy now!");

                else if ((t.Amount >= 500) && (t.Amount < 1000))
                    Say("What a generous sum of gold! Thank you!");

                else if ((t.Amount >= 1000) && (t.Amount < 5000))
                    Say("I owe you my life! Without this money I could not feed or clothe my children!");

                else Say("I am no longer a pauper!");  // t.Amount >= 5000  

                if (TotalGold > 5000)
                {
                    DeleteTimer d = new DeleteTimer(this, m);
                    d.Start();
                }

                return true;
            }

            Say("eh? Whats this for?");
            return false;
        }
开发者ID:FreeReign,项目名称:imaginenation,代码行数:71,代码来源:Beggar.cs

示例13: Deserialize


//.........这里部分代码省略.........
            m_Sound2 = reader.ReadInt();
            m_Sound3 = reader.ReadInt();
            m_Sound4 = reader.ReadInt();
            m_Sound5 = reader.ReadInt();
            m_Sound6 = reader.ReadInt();
            m_Sound7 = reader.ReadInt();
            m_Sound8 = reader.ReadInt();
            m_Sound9 = reader.ReadInt();
            m_UsesForm1 = reader.ReadBool();
            m_UsesForm2 = reader.ReadBool();
            m_UsesForm3 = reader.ReadBool();
            m_UsesForm4 = reader.ReadBool();
            m_UsesForm5 = reader.ReadBool();
            m_UsesForm6 = reader.ReadBool();
            m_UsesForm7 = reader.ReadBool();
            m_UsesForm8 = reader.ReadBool();
            m_UsesForm9 = reader.ReadBool();
            m_F0 = reader.ReadBool();
            m_F1 = reader.ReadBool();
            m_F2 = reader.ReadBool();
            m_F3 = reader.ReadBool();
            m_F4 = reader.ReadBool();
            m_F5 = reader.ReadBool();
            m_F6 = reader.ReadBool();
            m_F7 = reader.ReadBool();
            m_F8 = reader.ReadBool();
            m_F9 = reader.ReadBool();
            m_RoarAttack = reader.ReadInt();
            m_PetPoisonAttack = reader.ReadInt();
            m_FireBreathAttack = reader.ReadInt();


            if (version >= 18)
            {
                m_CanFlying = (bool)reader.ReadBool();
                m_IsFlying = (bool)reader.ReadBool();
                m_IsTakingOff = (bool)reader.ReadBool();
                m_IsLanding = (bool)reader.ReadBool();
                m_FlyingUp = (bool)reader.ReadBool();
                m_FlyingDown = (bool)reader.ReadBool();
                i_Ceiling = (int)reader.ReadInt();
                i_Ground = (int)reader.ReadInt();
                i_LeftSide = (int)reader.ReadInt();
                i_RightSide = (int)reader.ReadInt();
                i_TopSide = (int)reader.ReadInt();
                i_BottomSide = (int)reader.ReadInt();
                i_Direction = (int)reader.ReadInt();
                i_FlyStam = (int)reader.ReadInt();
                i_FlyStamMax = (int)reader.ReadInt();
                i_FlyAnim = (int)reader.ReadInt();
                i_FlyCnt = (int)reader.ReadInt();
            }

            TimeSpan deleteTime = TimeSpan.Zero;

            if (version >= 18)
                deleteTime = reader.ReadTimeSpan();

            if (deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled)
            {
                if (deleteTime <= TimeSpan.Zero || deleteTime > TimeSpan.FromDays(3.0))///////////////////////////////////////
                    deleteTime = TimeSpan.FromDays(3.0);

                m_DeleteTimer = new DeleteTimer(this, deleteTime);
                m_DeleteTimer.Start();
            }

            #region Mondain's Legacy version 15
            if (version >= 19)
                m_Allured = reader.ReadBool();
            #endregion

            // Version 21, FSATS addon
            if (version >= 21)
            {
                m_IcyWindAttack = reader.ReadInt();
                m_ShockAttack = reader.ReadInt();
            }
            else
            {
                m_IcyWindAttack = 0;
                m_ShockAttack = 0;
            }

            if (version <= 14 && m_Paragon && Hue == 0x31)
            {
                Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
            }

            CheckStatTimers();

            ChangeAIType(m_CurrentAI);

            AddFollowers();

            if (IsAnimatedDead)
                Spells.Necromancy.AnimateDeadSpell.Register(m_SummonMaster, this);

            SetGhostDeletionTimer(true);
        }
开发者ID:greeduomacro,项目名称:cov-shard-svn-1,代码行数:101,代码来源:BaseCreature.cs


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