public override bool GetActorStaticSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
 {
     skillData.TheActorMeta = actorMeta;
     skillData.SkillSlot    = skillSlot;
     ActorStaticDataProviderBase.ActorSkillDataBuilder actorSkillDataBuilder = null;
     this._actorSkillDataBuilder.TryGetValue((uint)actorMeta.ActorType, out actorSkillDataBuilder);
     return(actorSkillDataBuilder != null && actorSkillDataBuilder(ref actorMeta, skillSlot, ref skillData));
 }
Exemplo n.º 2
0
        public override bool GetActorServerSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorServerSkillData skillData)
        {
            skillData.TheActorMeta = actorMeta;
            ListView <COMDT_CHOICEHERO> inSearchList = null;

            if (!this._serverCachedInfo.TryGetValue(actorMeta.PlayerId, ref inSearchList))
            {
                return(false);
            }
            int configId = actorMeta.ConfigId;

            return(this.ConvertServerHeroSkillInfo(ref skillData, skillSlot, this.Find(inSearchList, (COMDT_CHOICEHERO hero) => (ulong)hero.stBaseInfo.stCommonInfo.dwHeroID == (ulong)((long)configId))));
        }
        protected virtual bool BuildHeroSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey((uint)skillData.TheActorMeta.ConfigId);

            if (dataByKey == null)
            {
                base.ErrorMissingHeroConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataByKey.astSkill.Length)
            {
                return(false);
            }
            skillData.PassiveSkillId = dataByKey.astSkill[(int)skillSlot].iPassiveSkillID;
            skillData.SkillId        = dataByKey.astSkill[(int)skillSlot].iSkillID;
            return(skillData.SkillId > 0);
        }
        protected virtual bool BuildOrganSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResOrganCfgInfo dataCfgInfoByCurLevelDiff = OrganDataHelper.GetDataCfgInfoByCurLevelDiff(skillData.TheActorMeta.ConfigId);

            if (dataCfgInfoByCurLevelDiff == null)
            {
                base.ErrorMissingOrganConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataCfgInfoByCurLevelDiff.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfoByCurLevelDiff.SkillIDs[(int)skillSlot];
            skillData.PassiveSkillId = 0;
            return(skillData.SkillId > 0);
        }
Exemplo n.º 5
0
        protected virtual bool BuildMonsterSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            int index = (int)skillSlot;
            ResMonsterCfgInfo dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, skillData.TheActorMeta.Difficuty);

            if (dataCfgInfo == null)
            {
                base.ErrorMissingMonsterConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (index >= dataCfgInfo.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfo.SkillIDs[index];
            skillData.PassiveSkillId = dataCfgInfo.PassiveSkillID[index];
            return((skillData.SkillId > 0) || (skillData.PassiveSkillId > 0));
        }
        protected virtual bool BuildMonsterSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResMonsterCfgInfo dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, (int)skillData.TheActorMeta.Difficuty);

            if (dataCfgInfo == null)
            {
                dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, 1);
            }
            if (dataCfgInfo == null)
            {
                base.ErrorMissingMonsterConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataCfgInfo.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfo.SkillIDs[(int)skillSlot];
            skillData.PassiveSkillId = dataCfgInfo.PassiveSkillID[(int)skillSlot];
            return(skillData.SkillId > 0 || skillData.PassiveSkillId > 0);
        }
Exemplo n.º 7
0
 public virtual bool GetActorStaticSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
 {
     return(false);
 }
Exemplo n.º 8
0
 internal bool ConvertServerHeroSkillInfo(ref ActorServerSkillData serverData, ActorSkillSlot skillSlot, COMDT_CHOICEHERO serverHeroInfo)
 {
     if (skillSlot >= ActorSkillSlot.SlotMaxCount)
     {
         return(false);
     }
     serverData.SkillSlot  = skillSlot;
     serverData.IsUnlocked = (serverHeroInfo.stBaseInfo.stCommonInfo.stSkill.astSkillInfo[(int)((UIntPtr)skillSlot)].bUnlocked != 0);
     serverData.SkillLevel = (uint)serverHeroInfo.stBaseInfo.stCommonInfo.stSkill.astSkillInfo[(int)((UIntPtr)skillSlot)].wLevel;
     return(true);
 }