|  |  | 
 |  |  |    [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))
 |