|  |  |  | 
|---|
|  |  |  | [lambda curObj:PlayerControl.GetWingHPPer(curObj), lambda curObj, value:PlayerControl.SetWingHPPer(curObj, value), 0, 0, 0],      # 翅膀生命百分比 | 
|---|
|  |  |  | [lambda curObj:PlayerControl.GetSuiteBasePer(curObj), lambda curObj, value:PlayerControl.SetSuiteBasePer(curObj, value), 0, 0, 0],      # 套装基础属性百分比 | 
|---|
|  |  |  | [lambda curObj:PlayerControl.GetPlusBaseAtkPer(curObj), lambda curObj, value:PlayerControl.SetPlusBaseAtkPer(curObj, value), 0, 0, 0],      # 强化基础攻击百分比 | 
|---|
|  |  |  | [lambda curObj:PlayerControl.GetProDef(curObj), lambda curObj, value:PlayerControl.SetProDef(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_ExAttr4, 1, 0],  # 当前防护值 | 
|---|
|  |  |  | ] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 通过索引获得属性值 | 
|---|
|  |  |  | 
|---|
|  |  |  | def CopyPlayerFuncAttr(curPlayer): | 
|---|
|  |  |  | for i in xrange(len(ObjProperty_AttrByIndex)): | 
|---|
|  |  |  | # Get | 
|---|
|  |  |  | if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP]: | 
|---|
|  |  |  | if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | value = ObjProperty_AttrByIndex[i][0](curPlayer) | 
|---|
|  |  |  | if value == 0 and curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr%i) == 0: | 
|---|
|  |  |  | 
|---|
|  |  |  | # 恢复缓存功能属性的刷新结果,用于BUFF属性单独刷新 | 
|---|
|  |  |  | def RestorePlayerFuncAttr(curPlayer): | 
|---|
|  |  |  | for i in xrange(len(ObjProperty_AttrByIndex)): | 
|---|
|  |  |  | if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP]: | 
|---|
|  |  |  | if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | ObjProperty_AttrByIndex[i][1](curPlayer, | 
|---|
|  |  |  | curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr%i)) | 
|---|