private static void SkillFuncChangeSkillCDImpl(ref SSkillFuncContext inContext, int changeType, int slotMask, int value)
        {
            PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj;

            if (inTargetObj != 0)
            {
                SkillComponent skillControl = inTargetObj.handle.SkillControl;
                if (skillControl != null)
                {
                    SkillSlot slot = null;
                    for (int i = 0; i < 7; i++)
                    {
                        if (((((slotMask == 0) && (i != 0)) && ((i != 4) && (i != 5))) || ((slotMask & (((int)1) << i)) > 0)) && (skillControl.TryGetSkillSlot((SkillSlotType)i, out slot) && (slot != null)))
                        {
                            if (changeType == 0)
                            {
                                slot.ChangeSkillCD(value);
                            }
                            else
                            {
                                slot.ChangeMaxCDRate(value);
                            }
                        }
                    }
                }
            }
        }
        public override void Leave(Action _action, Track _track)
        {
            base.Leave(_action, _track);
            this.targetActor = _action.GetActorHandle(this.targetId);
            if (!this.targetActor)
            {
                if (ActionManager.Instance.isPrintLog)
                {
                }
                return;
            }
            this.skillControl = this.targetActor.handle.SkillControl;
            if (this.skillControl == null)
            {
                if (ActionManager.Instance.isPrintLog)
                {
                }
                return;
            }
            SkillSlot skillSlot = null;

            if (!this.useSlotType)
            {
                this.StartSkillContextCD(_action, ref skillSlot);
            }
            else
            {
                this.StartSkillSlotCD(ref skillSlot);
            }
            if (skillSlot != null && this.bAbortReduce && _track.curTime <= base.End && !_track.Loop)
            {
                skillSlot.ChangeSkillCD(this.abortReduceTime);
            }
        }
        private static void SkillFuncChangeSkillCDImpl(ref SSkillFuncContext inContext, int changeType, int slotMask, int value)
        {
            PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj;

            if (inTargetObj)
            {
                SkillComponent skillControl = inTargetObj.get_handle().SkillControl;
                if (skillControl != null)
                {
                    SkillSlot skillSlot = null;
                    for (int i = 0; i < 10; i++)
                    {
                        if (((slotMask == 0 && i != 0 && i != 4 && i != 5 && i != 7) || (slotMask & 1 << i) > 0) && skillControl.TryGetSkillSlot((SkillSlotType)i, out skillSlot) && skillSlot != null)
                        {
                            if (changeType == 0)
                            {
                                skillSlot.ChangeSkillCD(value);
                            }
                            else
                            {
                                skillSlot.ChangeMaxCDRate(value);
                            }
                        }
                    }
                }
            }
        }