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)); }
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); }
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); }
public virtual bool GetActorStaticSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData) { return(false); }
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); }