Example #1
0
        public RtBufData(int bufNum, int bufId, int fromNpcId, int toNpcId, OriginOfBuff o, int initLayer, float duration = -1F, int level = 0)
        {
            BeginFunc = new List <Action <RtBufData> >();
            CycleFunc = new List <Action <RtBufData> >();
            EndFunc   = new List <Action <RtBufData> >();
            TriFunc   = new List <Action <RtBufData> >();

            SkBufferModel bfModel = Core.Data.getIModelConfig <SkBufferModel>();

            BuffCfg = bfModel.get(bufNum);

            Utils.Assert(BuffCfg == null, "RtBufData can't get buff config. buf num = " + bufNum);

            if (BuffCfg.ScriptStart > 0)
            {
                OnStartSkill = new RtSkData(BuffCfg.ScriptStart, -1);
            }

            if (BuffCfg.ScriptCycle > 0)
            {
                onCycleskill = new RtSkData(BuffCfg.ScriptCycle, -1);
            }

            if (BuffCfg.ScriptEnd > 0)
            {
                OnEndSkill = new RtSkData(BuffCfg.ScriptEnd, -1);
            }

            //初始层数
            curLayers = BuffCfg.Stacks > initLayer ? initLayer : BuffCfg.Stacks;

            alive        = 0;
            coolDown     = BuffCfg.DelayTime;
            castRightNow = BuffCfg.DelayTime <= 0F;

            curCastTime = 0;

            origin = o;
            Cycle  = false;

            ID = bufId;

            CastorNpcID = fromNpcId;
            HangUpNpcID = toNpcId;

            if (duration <= 0F)
            {
                curDuration = BuffCfg.Duration;
            }
            else
            {
                curDuration = duration;
            }

            isInFinity = curDuration == -1;
        }
Example #2
0
        //Level is ignore now
        //索引值index 如果是人物身上的技能,则填写响应的位置,否则可以填写-1,
        public RtSkData(int skId, short index, int level = 0)
        {
            SkillModel    skMo = Core.Data.getIModelConfig <SkillModel>();
            EffectModel   efMo = Core.Data.getIModelConfig <EffectModel>();
            SkBufferModel buMo = Core.Data.getIModelConfig <SkBufferModel>();

            skillCfg = skMo.get(skId);
            Utils.Assert(skillCfg == null, "Can't find skill configure. Skill Id = " + skId);

            effectCfgDic = new Dictionary <int, EffectConfigData>();
            if (skillCfg.EffectID != null)
            {
                int length = skillCfg.EffectID.Length;
                for (int i = 0; i < length; ++i)
                {
                    int EffectId = skillCfg.EffectID[i];
                    if (EffectId <= 0)
                    {
                        continue;
                    }

                    EffectConfigData ecd = efMo.get(EffectId);
                    Utils.Assert(ecd == null, "Can't find effect configure. Effect Id = " + EffectId + ". Skill Id = " + skillCfg.ID);
                    effectCfgDic[ecd.ID] = ecd;
                }
            }
            else
            {
                ConsoleEx.DebugLog("Can't find skill effect. Skill Id = " + skId, ConsoleEx.YELLOW);
            }

            ChannelBuff = buMo.get(skillCfg.ChannelBuff);
            PassiveBuff = buMo.get(skillCfg.PassiveBuff);

            coolDown = 0F;
            //UI 的索引值
            pos = index;
        }