//计算属性 public int Calculate(BuffList _this, ObjCharacter obj, eAttributeType type, ref double dBili) { var value = 0; foreach (var i in _this.mData) { if (i.GetActive() == false) { continue; } var tbBuff = i.mBuff; var effectCount = tbBuff.effectid.Length; for (var j = 0; j != effectCount; ++j) { var param = tbBuff.effectparam; if (tbBuff.effectid[j] != (int)eEffectType.RefAttr) { continue; } if (type != (eAttributeType)param[j, 0]) { continue; } value += param[j, 3] * i.GetLayer(); if (param[j, 1] == -1) { continue; } if (param[j, 1] != param[j, 0]) { value += (int) (obj.Attr.GetDataValue((eAttributeType)param[j, 1]) * ((double)param[j, 2] * i.GetLayer() / 10000)); } else { dBili = dBili * (10000 + param[j, 2] * i.GetLayer()) / 10000; } } } return(value); }
private int GetWillAttrPoint(eAttributeType type) { return(PlayerAttr.Instance.GetTryDataValue(type) - PlayerAttr.Instance.GetDataValue(type)); }
//计算属性 public int Calculate(ObjCharacter obj, eAttributeType type, ref double dBili) { return(mImpl.Calculate(this, obj, type, ref dBili)); }
public int GetPetAttribut(eAttributeType attrId) { var tbPet = Table.GetPet(GetId()); if (tbPet == null) { return(-1); } var tbCharacter = Table.GetCharacterBase(tbPet.CharacterID); if (tbCharacter == null) { return(-1); } if (attrId < eAttributeType.Level || attrId > eAttributeType.HitRecovery) { return(-1); } var value = tbCharacter.Attr[(int)attrId]; //var tbAttrRef = Table.GetAttrRef(tbPet.AttrRef); //if (tbAttrRef == null) return value; //int index = GetAttrRef_Id2Index((int)attrId); //if (index < 0) return value; var level = GetExdata(0); //value += tbAttrRef.Attr[index] * (level - 1); for (var i = 1; i != 4; ++i) { var skillId = tbCharacter.InitSkill[i]; var tbSkil = Table.GetSkill(skillId); if (tbSkil == null) { continue; } if (tbSkil.CastType != 3) { continue; } var tbBuff = Table.GetBuff(tbSkil.CastParam[0]); if (tbBuff == null) { continue; } for (var j = 0; j < tbBuff.effectid.Length; j++) { var effectId = tbBuff.effectid[j]; if (effectId != 2) { continue; } if (tbBuff.effectparam[j, 0] != (int)attrId) { continue; } var skillUp = Table.GetSkillUpgrading(tbBuff.effectparam[j, 3] - 10000000); if (skillUp == null) { continue; } value += skillUp.GetSkillUpgradingValue(level - 1); } } return(value); }