ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -15,298 +15,10 @@
#------------------------------------------------------------------------------ 
#"""Version = 2017-10-30 16:00"""
#---------------------------------------------------------------------
import GameWorld
import PlayerControl
import ChConfig
import GameObj
import IPY_PlayerDefine
import ShareDefine
#生物属性接口,顺序对应ChConfig.TYPE_Calc_AttrList
#同个属性Get, Set 写在一起,方便维护 [Get, Set, 属性类型, 是否通知自身, 是否通知周围玩家]
ObjProperty_AttrByIndex = [
   [lambda curObj:PlayerControl.GetMetal(curObj), lambda curObj, value:PlayerControl.SetMetal(curObj, value), ShareDefine.CDBPlayerRefresh_Mater, 1, 0], # 金
   [lambda curObj:PlayerControl.GetWood(curObj), lambda curObj, value:PlayerControl.SetWood(curObj, value), ShareDefine.CDBPlayerRefresh_Wood, 1, 0], # ľ
   [lambda curObj:PlayerControl.GetWater(curObj), lambda curObj, value:PlayerControl.SetWater(curObj, value), ShareDefine.CDBPlayerRefresh_Water, 1, 0], # ˮ
   [lambda curObj:PlayerControl.GetFire(curObj), lambda curObj, value:PlayerControl.SetFire(curObj, value), ShareDefine.CDBPlayerRefresh_Fire, 1, 0], # 火
   [lambda curObj:GameObj.GetHP(curObj), lambda curObj, value:GameObj.SetHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_HP, 1, 1],  # 当前血量
   [lambda curObj:curObj.GetMP(), lambda curObj, value:curObj.SetMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MP, 0, 0],            # 当前魔量
   [lambda curObj:GameObj.GetMaxHP(curObj), lambda curObj, value:GameObj.SetMaxHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_MaxHP, 1, 1],      # 最大血量
   [lambda curObj:curObj.GetMaxMP(), lambda curObj, value:curObj.SetMaxMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MaxMP, 0, 0],      # 最大魔量
   [lambda curObj:curObj.GetMinAtk(), lambda curObj, value:curObj.SetMinAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MINATK, 1, 0],    # 最小攻击力
   [lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MAXATK, 1, 0],    # 最大攻击力
   [lambda curObj:PlayerControl.GetEarth(curObj), lambda curObj, value:PlayerControl.SetEarth(curObj, value), ShareDefine.CDBPlayerRefresh_Earth, 1, 0], # 土
   [lambda curObj:curObj.GetLuckValue(), lambda curObj, value:curObj.SetLuckValue(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckValue, 1, 0], # 气运
   [lambda curObj:curObj.GetDef(), lambda curObj, value:curObj.SetDef(value), IPY_PlayerDefine.CDBPlayerRefresh_DEF, 1, 0],          # 防御力
   [lambda curObj:curObj.GetHit(), lambda curObj, value:curObj.SetHit(value), IPY_PlayerDefine.CDBPlayerRefresh_HIT, 1, 0],          # 命中
   [lambda curObj:curObj.GetMiss(), lambda curObj, value:curObj.SetMiss(value), IPY_PlayerDefine.CDBPlayerRefresh_Miss, 1, 0],        # 闪避
   #[lambda curObj:curObj.GetMAtkMin(), lambda curObj, value:curObj.SetMAtkMin(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMin, 0, 0],  # 最小魔攻
   #[lambda curObj:curObj.GetMAtkMax(), lambda curObj, value:curObj.SetMAtkMax(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMax, 0, 0],  # 最大魔攻
   [lambda curObj:PlayerControl.GetSpeedNotBuff(curObj), lambda curObj, value:PlayerControl.SetSpeedNotBuff(curObj, value), 0, 0, 0],  # 移动速度
   [lambda curObj:GameObj.GetAtkSpeed(curObj), lambda curObj, value:GameObj.SetAtkSpeed(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx1, 1, 1],  # 攻击速度
   [lambda curObj:curObj.GetSuperHitRate(), lambda curObj, value:curObj.SetSuperHitRate(value), IPY_PlayerDefine.CDBPlayerRefresh_SuperHitRate, 1, 0],     # 暴击概率
   [lambda curObj:curObj.GetSuperHit(), lambda curObj, value:curObj.SetSuperHit(value), IPY_PlayerDefine.CDBPlayerRefresh_SuperHit, 1, 0],                 # 暴击伤害固定值
   [lambda curObj:GameObj.GetSuperHitRateReduce(curObj), lambda curObj, value:GameObj.SetSuperHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, 1, 0],# 暴击概率抗性
   [lambda curObj:GameObj.GetSuperHitReduce(curObj), lambda curObj, value:GameObj.SetSuperHitReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitReduce, 1, 0],  # 暴击伤害抗性固定值
   [lambda curObj:curObj.GetGreatHitRate(), lambda curObj, value:curObj.SetGreatHitRate(value), 0, 0, 0],                                        # 卓越一击几率
   [lambda curObj:curObj.GetGreatHitVal(), lambda curObj, value:curObj.SetGreatHitVal(value), 0, 0, 0],                                          # 卓越一击伤害倍率
   [lambda curObj:PlayerControl.GetGreatHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetGreatHitRateReduce(curObj, value), 0, 0, 0],# 卓越一击概率抗性
   [lambda curObj:PlayerControl.GetGreatHitReducePer(curObj), lambda curObj, value:PlayerControl.SetGreatHitReducePer(curObj, value), 0, 0, 0],  # 卓越一击伤害减免
   [lambda curObj:curObj.GetLuckyHitRate(), lambda curObj, value:curObj.SetLuckyHitRate(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckyHitRate, 1, 0],  # 会心一击几率
   [lambda curObj:curObj.GetLuckyHitVal(), lambda curObj, value:curObj.SetLuckyHitVal(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckyHitVal, 1, 0],  # 会心一击伤害固定值
   [lambda curObj:PlayerControl.GetLuckyHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetLuckyHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitRateReduce, 1, 0],# 会心一击概率抗性
   [lambda curObj:PlayerControl.GetLuckyHitReduce(curObj), lambda curObj, value:PlayerControl.SetLuckyHitReduce(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitReduce, 1, 0],  # 会心一击伤害减免固定值
   [lambda curObj:curObj.GetIgnoreDefRate(), lambda curObj, value:curObj.SetIgnoreDefRate(value), IPY_PlayerDefine.CDBPlayerRefresh_IgnoreDefRate, 1, 0],   # 无视防御几率
   [lambda curObj:PlayerControl.GetIgnoreDefRateReduce(curObj), lambda curObj, value:PlayerControl.SetIgnoreDefRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_IgnoreDefRateReduce, 1, 0],  # 无视防御概率抗性
   [lambda curObj:PlayerControl.GetIgnoreDefReducePer(curObj), lambda curObj, value:PlayerControl.SetIgnoreDefReducePer(curObj, value), 0, 0, 0],    # 无视防御伤害减免
   [lambda curObj:curObj.GetIceAtk(), lambda curObj, value:curObj.SetIceAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_ICEATK, 1, 0],            # 冰攻
   [lambda curObj:curObj.GetFireAtk(), lambda curObj, value:curObj.SetFireAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_FIREATK, 1, 0],          # 火攻
   [lambda curObj:curObj.GetPoisionAtk(), lambda curObj, value:curObj.SetPoisionAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_POISIONATK, 1, 0],    # 毒攻
   [lambda curObj:curObj.GetThunderAtk(), lambda curObj, value:curObj.SetThunderAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_THUNDERATK, 1, 0],    # 雷攻
   [lambda curObj:curObj.GetWindAtk(), lambda curObj, value:curObj.SetWindAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_WINDATK, 1, 0],          # 风攻
   [lambda curObj:curObj.GetIceDef(), lambda curObj, value:curObj.SetIceDef(value), IPY_PlayerDefine.CDBPlayerRefresh_ICEDEF, 1, 0],            # 冰防
   [lambda curObj:curObj.GetFireDef(), lambda curObj, value:curObj.SetFireDef(value), IPY_PlayerDefine.CDBPlayerRefresh_FIREDEF, 1, 0],          # 火防
   [lambda curObj:curObj.GetPoisionDef(), lambda curObj, value:curObj.SetPoisionDef(value), IPY_PlayerDefine.CDBPlayerRefresh_POISIONDEF, 1, 0],    # 毒防
   [lambda curObj:curObj.GetThunderDef(), lambda curObj, value:curObj.SetThunderDef(value), IPY_PlayerDefine.CDBPlayerRefresh_THUNDERDEF, 1, 0],    # 雷防
   [lambda curObj:curObj.GetWindDef(), lambda curObj, value:curObj.SetWindDef(value), IPY_PlayerDefine.CDBPlayerRefresh_WINDDEF, 1, 0],          # 风防
   [lambda curObj:curObj.GetFightExpRate(), lambda curObj, value:curObj.SetFightExpRate(value), 0, 0, 0],                            # 杀怪经验倍率
   [lambda curObj:curObj.GetGameEventExpRate(), lambda curObj, value:curObj.SetGameEventExpRate(value), 0, 0, 0],                    # 娱乐事件经验倍率
   [lambda curObj:curObj.GetFightPetExpRate(), lambda curObj, value:curObj.SetFightPetExpRate(value), 0, 0, 0],                      # 宠物经验倍率
   [lambda curObj:PlayerControl.GetDropEquipPer(curObj), lambda curObj, value:PlayerControl.SetDropEquipPer(curObj, value), 0, 0, 0],# 装备掉率
   [lambda curObj:curObj.GetGoldFoundRate(), lambda curObj, value:curObj.SetGoldFoundRate(value), IPY_PlayerDefine.CDBPlayerRefresh_GoldFoundRate, 1, 0],                          # 掉落金钱值增加
   [lambda curObj:PlayerControl.GetPetMinAtk(curObj), lambda curObj, value:PlayerControl.SetPetMinAtk(curObj, value), 0, 0, 0],      # 宠物最小攻击
   [lambda curObj:PlayerControl.GetPetMaxAtk(curObj), lambda curObj, value:PlayerControl.SetPetMaxAtk(curObj, value), 0, 0, 0],      # 宠物最大攻击
   [lambda curObj:GameObj.GetPetDamPer(curObj), lambda curObj, value:GameObj.SetPetDamPer(curObj, value), ShareDefine.CDBPlayerRefresh_PetDamPer, 1, 0],      # 宠物伤害百分比提升
   [lambda curObj:PlayerControl.GetPerLVAtk(curObj), lambda curObj, value:PlayerControl.SetPerLVAtk(curObj, value), 0, 0, 0],        # 每1级+%s攻击, 数值取万分率,支持小数算法
   [lambda curObj:PlayerControl.GetPerLVMaxHP(curObj), lambda curObj, value:PlayerControl.SetPerLVMaxHP(curObj, value), 0, 0, 0],    # 每1级+%s生命, 数值为固定值
   [lambda curObj:PlayerControl.GetMaxProDef(curObj), lambda curObj, value:PlayerControl.SetMaxProDef(curObj, value), ShareDefine.CDBPlayerRefresh_MaxProDef, 1, 0],  # 最大防护值
   [lambda curObj:PlayerControl.GetProDefHPPer(curObj), lambda curObj, value:PlayerControl.SetProDefHPPer(curObj, value), ShareDefine.CDBPlayerRefresh_ProDefHPPer, 1, 0], # 生命上限换算为防护值的百分比
   [lambda curObj:PlayerControl.GetProDefAbsorb(curObj), lambda curObj, value:PlayerControl.SetProDefAbsorb(curObj, value), ShareDefine.CDBPlayerRefresh_ProDefAbsorb, 1, 0],            # 防护值吸收伤害比率
   [lambda curObj:curObj.GetDamageBackRate(), lambda curObj, value:curObj.SetDamageBackRate(value), IPY_PlayerDefine.CDBPlayerRefresh_DamageBackRate, 1, 0],                                    # 反伤百分比
   [lambda curObj:PlayerControl.GetDamChanceDef(curObj), lambda curObj, value:PlayerControl.SetDamChanceDef(curObj, value), ShareDefine.CDBPlayerRefresh_DamChanceDef, 1, 0],            # 20%的概率抵御伤害比率
   [lambda curObj:PlayerControl.GetShieldMPCostRate(curObj), lambda curObj, value:PlayerControl.SetShieldMPCostRate(curObj, value), 0, 0, 0],    # 魔法盾伤害吸收蓝耗比率
   [lambda curObj:GameObj.GetFaintRate(curObj), lambda curObj, value:GameObj.SetFaintRate(curObj, value), ShareDefine.CDBPlayerRefresh_FaintRate, 1, 0],                  # 触发击晕
   [lambda curObj:GameObj.GetFaintDefRate(curObj), lambda curObj, value:GameObj.SetFaintDefRate(curObj, value), ShareDefine.CDBPlayerRefresh_FaintDefRate, 1, 0],            # 击晕抵抗
   [lambda curObj:PlayerControl.GetAtkerFreezed(curObj), lambda curObj, value:PlayerControl.SetAtkerFreezed(curObj, value), 0, 0, 0],            # 触发定身
   [lambda curObj:PlayerControl.GetAddAngry(curObj), lambda curObj, value:PlayerControl.SetAddAngry(curObj, value), 0, 0, 0],                    # 攻击增加额外仇恨
   [lambda curObj:GameObj.GetComboRate(curObj), lambda curObj, value:GameObj.SetComboRate(curObj, value), ShareDefine.CDBPlayerRefresh_ComboRate, 0, 0],                  # 连击几率
   [lambda curObj:GameObj.GetComboDamPer(curObj), lambda curObj, value:GameObj.SetComboDamPer(curObj, value), ShareDefine.CDBPlayerRefresh_ComboDamPer, 0, 0],              # 连击伤害
   [lambda curObj:curObj.GetHPRestorePer(), lambda curObj, value:curObj.SetHPRestorePer(value), IPY_PlayerDefine.CDBPlayerRefresh_HPRestorePer, 1, 0],                                    # 自动回复生命
   [lambda curObj:curObj.GetKillBackHP(), lambda curObj, value:curObj.SetKillBackHP(value), 0, 0, 0],                                        # 击杀回血
   [lambda curObj:curObj.GetKillBackMP(), lambda curObj, value:curObj.SetKillBackMP(value), 0, 0, 0],                                        # 击杀回蓝
   [lambda curObj:PlayerControl.GetAtkBackHPPer(curObj), lambda curObj, value:PlayerControl.SetAtkBackHPPer(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx2, 1, 0],        # 攻击回复血量固定值
   [lambda curObj:PlayerControl.GetAtkBackMPPer(curObj), lambda curObj, value:PlayerControl.SetAtkBackMPPer(curObj, value), 0, 0, 0],        # 攻击回复蓝量比率
   [lambda curObj:PlayerControl.GetAddBackHPPer(curObj), lambda curObj, value:PlayerControl.SetAddBackHPPer(curObj, value), 0, 0, 0],        # 暂无用
   [lambda curObj:PlayerControl.GetReduceBackHPPer(curObj), lambda curObj, value:PlayerControl.SetReduceBackHPPer(curObj, value), 0, 0, 0],  # 暂无用
   [lambda curObj:PlayerControl.GetXPRestorePer(curObj), lambda curObj, value:PlayerControl.SetXPRestorePer(curObj, value), 0, 0, 0],        # 自动恢复XP值比率
   [lambda curObj:PlayerControl.GetReduceSkillCDPer(curObj), lambda curObj, value:PlayerControl.SetReduceSkillCDPer(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx3, 1, 0],  # 减技能CD比例
   [lambda curObj:curObj.GetSkillAtkRate(), lambda curObj, value:curObj.SetSkillAtkRate(value), IPY_PlayerDefine.CDBPlayerRefresh_SkillAtkRate, 1, 0],                                        # 技能攻击比例加成
   [lambda curObj:PlayerControl.GetSkillAtkRateReduce(curObj), lambda curObj, value:PlayerControl.SetSkillAtkRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, 1, 0],# 技能攻击比例减少
   [lambda curObj:PlayerControl.GetDamagePVP(curObj), lambda curObj, value:PlayerControl.SetDamagePVP(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVP, 1, 0],     # PVP固定伤害
   [lambda curObj:PlayerControl.GetDamagePVPReduce(curObj), lambda curObj, value:PlayerControl.SetDamagePVPReduce(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVPReduce, 1, 0],  # PVP固定减伤
   [lambda curObj:PlayerControl.GetHurtPer(curObj), lambda curObj, value:PlayerControl.SetHurtPer(curObj, value), 0, 0, 0],                      # 受伤计算百分比
   [lambda curObj:PlayerControl.GetBleedDamage(curObj), lambda curObj, value:PlayerControl.SetBleedDamage(curObj, value), ShareDefine.CDBPlayerRefresh_BleedDamage, 1, 0],              # 流血伤害
   [lambda curObj:PlayerControl.GetFinalHurt(curObj), lambda curObj, value:PlayerControl.SetFinalHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurt, 1, 0],                  # 最终固定伤害增加
   [lambda curObj:PlayerControl.GetFinalHurtReduce(curObj), lambda curObj, value:PlayerControl.SetFinalHurtReduce(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtReduce, 1, 0],      # 最终固定伤害减少
   [lambda curObj:PlayerControl.GetDamagePerPVP(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVP(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePerPVP, 1, 0],            # 伤害输出计算百分比PVP
   [lambda curObj:PlayerControl.GetDamagePerPVPReduce(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVPReduce(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePerPVPReduce, 1, 0],# 伤害输出计算百分比PVP减少
   [lambda curObj:PlayerControl.GetDamagePVE(curObj), lambda curObj, value:PlayerControl.SetDamagePVE(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVE, 1, 0],            # 伤害输出计算固定值PVE
   [lambda curObj:PlayerControl.GetNPCHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetNPCHurtAddPer(curObj, value), ShareDefine.CDBPlayerRefresh_NPCHurtAddPer, 1, 0],          # 对怪物伤害加成
   [lambda curObj:PlayerControl.GetJobAHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetJobAHurtAddPer(curObj, value), 0, 0, 0],        # 目标战士伤害加成
   [lambda curObj:PlayerControl.GetJobBHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetJobBHurtAddPer(curObj, value), 0, 0, 0],        # 目标法师伤害加成
   [lambda curObj:PlayerControl.GetJobCHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetJobCHurtAddPer(curObj, value), 0, 0, 0],        # 目标弓手伤害加成
   [lambda curObj:PlayerControl.GetNPCAtkReducePer(curObj), lambda curObj, value:PlayerControl.SetNPCAtkReducePer(curObj, value), 0, 0, 0],      # NPC攻击伤害减免
   [lambda curObj:PlayerControl.GetJobAAtkReducePer(curObj), lambda curObj, value:PlayerControl.SetJobAAtkReducePer(curObj, value), 0, 0, 0],    # 战士攻击伤害减免
   [lambda curObj:PlayerControl.GetJobBAtkReducePer(curObj), lambda curObj, value:PlayerControl.SetJobBAtkReducePer(curObj, value), 0, 0, 0],    # 法师攻击伤害减免
   [lambda curObj:PlayerControl.GetJobCAtkReducePer(curObj), lambda curObj, value:PlayerControl.SetJobCAtkReducePer(curObj, value), 0, 0, 0],    # 弓手攻击伤害减免
   [lambda curObj:PlayerControl.GetCommMapExpRate(curObj), lambda curObj, value:PlayerControl.SetCommMapExpRate(curObj, value), 0, 0, 0],    # 常规地图经验倍率加成
   [lambda curObj:GameObj.GetFinalHurtPer(curObj), lambda curObj, value:GameObj.SetFinalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtPer, 1, 0],        # 最终伤害百分比
   [lambda curObj:PlayerControl.GetFuhaoHitRate(curObj), lambda curObj, value:PlayerControl.SetFuhaoHitRate(curObj, value), 0, 0, 0],        # 富豪一击概率
   [lambda curObj:PlayerControl.GetBossIDHurt(curObj), lambda curObj, value:PlayerControl.SetBossIDHurt(curObj, value), 0, 0, 0],            # 对指定boss伤害加成固定值
   [lambda curObj:PlayerControl.GetBossIDHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetBossIDHurtAddPer(curObj, value), 0, 0, 0],# 对指定boss伤害加成倍率
   [lambda curObj:PlayerControl.GetDropEquipDoCount(curObj), lambda curObj, value:PlayerControl.SetDropEquipDoCount(curObj, value), 0, 0, 0],    # 装备掉落执行次数加成万分率
   [lambda curObj:PlayerControl.GetBaseAtkAddPer(curObj), lambda curObj, value:PlayerControl.SetBaseAtkAddPer(curObj, value), 0, 0, 0],          # 基础攻击百分比
   [lambda curObj:PlayerControl.GetBaseMaxHPAddPer(curObj), lambda curObj, value:PlayerControl.SetBaseMaxHPAddPer(curObj, value), 0, 0, 0],      # 基础生命百分比
   [lambda curObj:PlayerControl.GetBaseDefAddPer(curObj), lambda curObj, value:PlayerControl.SetBaseDefAddPer(curObj, value), 0, 0, 0],          # 基础防御百分比
   [lambda curObj:PlayerControl.GetBaseHitAddPer(curObj), lambda curObj, value:PlayerControl.SetBaseHitAddPer(curObj, value), 0, 0, 0],          # 基础命中百分比
   [lambda curObj:PlayerControl.GetBaseMissAddPer(curObj), lambda curObj, value:PlayerControl.SetBaseMissAddPer(curObj, value), 0, 0, 0],        # 基础闪避百分比
   [lambda curObj:PlayerControl.GetGodWeaponMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetGodWeaponMaxHPPer(curObj, value), 0, 0, 0],  # 神兵生命百分比
   [lambda curObj:PlayerControl.GetGodWeaponAtkPer(curObj), lambda curObj, value:PlayerControl.SetGodWeaponAtkPer(curObj, value), 0, 0, 0],      # 神兵攻击百分比
   [lambda curObj:PlayerControl.GetStoneMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetStoneMaxHPPer(curObj, value), 0, 0, 0],          # 宝石生命百分比
   [lambda curObj:PlayerControl.GetStoneAtkPer(curObj), lambda curObj, value:PlayerControl.SetStoneAtkPer(curObj, value), 0, 0, 0],              # 宝石攻击百分比
   [lambda curObj:PlayerControl.GetHPCureEnhance(curObj), lambda curObj, value:PlayerControl.SetHPCureEnhance(curObj, value), 0, 0, 0],          # 血瓶恢复效果增强
   [lambda curObj:PlayerControl.GetOnlyFinalHurt(curObj), lambda curObj, value:PlayerControl.SetOnlyFinalHurt(curObj, value), 0, 0, 0],          # 额外输出伤害
   [lambda curObj:PlayerControl.GetPVPAtkBackHP(curObj), lambda curObj, value:PlayerControl.SetPVPAtkBackHP(curObj, value), 0, 0, 0],          # PVP攻击回血
   [lambda curObj:PlayerControl.GetHitSucessRate(curObj), lambda curObj, value:PlayerControl.SetHitSucessRate(curObj, value), 0, 0, 0],          # 命中成功率
   [lambda curObj:PlayerControl.GetMissSucessRate(curObj), lambda curObj, value:PlayerControl.SetMissSucessRate(curObj, value), 0, 0, 0],          # 命中成功率
   [lambda curObj:curObj.GetAtkInterval(), lambda curObj, value:curObj.SetAtkInterval(value), IPY_PlayerDefine.CDBPlayerRefresh_AtkInterval, 0, 0],          # NPC攻击频率
   [lambda curObj:PlayerControl.GetFuncDef(curObj), lambda curObj, value:PlayerControl.SetFuncDef(curObj, value), ShareDefine.CDBPlayerRefresh_FuncDef, 1, 0], # 功能层防御
   [lambda curObj:PlayerControl.GetCurePer(curObj), lambda curObj, value:PlayerControl.SetCurePer(curObj, value), 0, 0, 0],          # 治疗加成百分比 默认百分百
   [lambda curObj:PlayerControl.GetBeHurtPer(curObj), lambda curObj, value:PlayerControl.SetBeHurtPer(curObj, value), 0, 0, 0],      # 加深受到伤害百分比
   [lambda curObj:PlayerControl.GetHorseAtkPer(curObj), lambda curObj, value:PlayerControl.SetHorseAtkPer(curObj, value), 0, 0, 0],      # 坐骑攻击百分比
   [lambda curObj:PlayerControl.GetStoneBasePer(curObj), lambda curObj, value:PlayerControl.SetStoneBasePer(curObj, value), 0, 0, 0],      # 宝石基础属性百分比
   [lambda curObj:PlayerControl.GetRealmBasePer(curObj), lambda curObj, value:PlayerControl.SetRealmBasePer(curObj, value), 0, 0, 0],      # 境界基础属性百分比
   [lambda curObj:PlayerControl.GetPetSkillAtkRate(curObj), lambda curObj, value:PlayerControl.SetPetSkillAtkRate(curObj, value), 0, 0, 0],      # 宠物技能伤害比例
   [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],  # 当前防护值
   [lambda curObj:PlayerControl.GetNormalHurt(curObj), lambda curObj, value:PlayerControl.SetNormalHurt(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurt, 1, 0],  # 属性普通攻击增伤
   [lambda curObj:PlayerControl.GetNormalHurtPer(curObj), lambda curObj, value:PlayerControl.SetNormalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurtPer, 1, 0],  # 属性普通攻击加成
   [lambda curObj:PlayerControl.GetFabaoHurt(curObj), lambda curObj, value:PlayerControl.SetFabaoHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurt, 1, 0],  # 属性法宝技能增伤
   [lambda curObj:PlayerControl.GetFabaoHurtPer(curObj), lambda curObj, value:PlayerControl.SetFabaoHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurtPer, 1, 0],  # 属性法宝技能加成
   [lambda curObj:GameObj.GetFinalHurtReducePer(curObj), lambda curObj, value:GameObj.SetFinalHurtReducePer(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, 1, 0],      # 最终伤害减少百分比
   [lambda curObj:PlayerControl.GetLostYinjiTime(curObj), lambda curObj, value:PlayerControl.SetLostYinjiTime(curObj, value), ShareDefine.CDBPlayerRefresh_YinjiTime, 1, 0],    # 每X秒自动消失一个印记 毫秒
   [lambda curObj:PlayerControl.GetTheFBSkillsCD(curObj), lambda curObj, value:PlayerControl.SetTheFBSkillsCD(curObj, value), 0, 0, 0],    # 减少指定技能组CD XX%
   [lambda curObj:PlayerControl.GetBurnValue(curObj), lambda curObj, value:PlayerControl.SetBurnValue(curObj, value), 0, 0, 0],    # 灼烧固定伤害
   [lambda curObj:PlayerControl.GetBurnTimePer(curObj), lambda curObj, value:PlayerControl.SetBurnTimePer(curObj, value), 0, 0, 0],    # 延长灼烧时间百分比
   [lambda curObj:PlayerControl.GetSubSpeedPer(curObj), lambda curObj, value:PlayerControl.SetSubSpeedPer(curObj, value), 0, 0, 0],    # 减移动速度百分比
   [lambda curObj:PlayerControl.GetSkillAddPer1(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer1(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer1, 1, 0],    # 技能伤害增强1
   [lambda curObj:PlayerControl.GetSkillAddPer2(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer2(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer2, 1, 0],    # 技能伤害增强2
   [lambda curObj:PlayerControl.GetSkillAddPer3(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer3(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer3, 1, 0],    # 技能伤害增强3
   [lambda curObj:PlayerControl.GetSkillAddPer4(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer4(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer4, 1, 0],    # 技能伤害增强4
   [lambda curObj:PlayerControl.GetSkillAddPer5(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer5(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer5, 1, 0],    # 技能伤害增强5
   [lambda curObj:PlayerControl.GetSkillAddPer6(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer6(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer6, 1, 0],    # 技能伤害增强6
   [lambda curObj:PlayerControl.GetSkillAddPer7(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer7(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer7, 1, 0],    # 技能伤害增强7
   [lambda curObj:PlayerControl.GetSkillReducePer1(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer1(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer1, 1, 0],    # 受到技能伤害减少1
   [lambda curObj:PlayerControl.GetSkillReducePer2(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer2(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer2, 1, 0],    # 受到技能伤害减少2
   [lambda curObj:PlayerControl.GetSkillReducePer3(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer3(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer3, 1, 0],    # 受到技能伤害减少3
   [lambda curObj:PlayerControl.GetSkillReducePer4(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer4(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer4, 1, 0],    # 受到技能伤害减少4
   [lambda curObj:PlayerControl.GetSkillReducePer5(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer5(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer5, 1, 0],    # 受到技能伤害减少5
   [lambda curObj:PlayerControl.GetSkillReducePer6(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer6(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer6, 1, 0],    # 受到技能伤害减少6
   [lambda curObj:PlayerControl.GetSkillReducePer7(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer7(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer7, 1, 0],    # 受到技能伤害减少7
   [lambda curObj:PlayerControl.GetZhuXianRate(curObj), lambda curObj, value:PlayerControl.SetZhuXianRate(curObj, value), 0, 0, 0],    # 诛仙一击: 概率直接减少BOSS当前10%血量
   [lambda curObj:PlayerControl.GetZhuXianReducePer(curObj), lambda curObj, value:PlayerControl.SetZhuXianReducePer(curObj, value), 0, 0, 0],    # 诛仙护体: 受到BOSS伤害减免 万分率
   [lambda curObj:PlayerControl.GetHorseMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetHorseMaxHPPer(curObj, value), 0, 0, 0],      # 坐骑生命加成
   [lambda curObj:PlayerControl.GetPetAtkPer(curObj), lambda curObj, value:PlayerControl.SetPetAtkPer(curObj, value), 0, 0, 0],      # 灵宠攻击加成
   [lambda curObj:PlayerControl.GetHorseTrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetHorseTrainAttrPer(curObj, value), 0, 0, 0],      # 坐骑培养属性加成
   [lambda curObj:PlayerControl.GetPetTrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetPetTrainAttrPer(curObj, value), 0, 0, 0],      # 灵宠培养属性加成
   [lambda curObj:PlayerControl.GetGuardTrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetGuardTrainAttrPer(curObj, value), 0, 0, 0],      # 守护培养属性加成
   [lambda curObj:PlayerControl.GetWingTrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetWingTrainAttrPer(curObj, value), 0, 0, 0],      # 翅膀培养属性加成
   [lambda curObj:PlayerControl.GetPeerlessWeaponTrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetPeerlessWeaponTrainAttrPer(curObj, value), 0, 0, 0],      # 灭世培养属性加成
   [lambda curObj:PlayerControl.GetPeerlessWeapon2TrainAttrPer(curObj), lambda curObj, value:PlayerControl.SetPeerlessWeapon2TrainAttrPer(curObj, value), 0, 0, 0],      # 弑神培养属性加成
   [lambda curObj:PlayerControl.GetLianTiAttrPer(curObj), lambda curObj, value:PlayerControl.SetLianTiAttrPer(curObj, value), 0, 0, 0],      # 炼体属性属性加成
   [lambda curObj:PlayerControl.GetAttr160(curObj), lambda curObj, value:PlayerControl.SetAttr160(curObj, value), 0, 0, 0],      # 160
   [lambda curObj:PlayerControl.GetAffairSpeedPer(curObj), lambda curObj, value:PlayerControl.SetAffairSpeedPer(curObj, value), 0, 0, 0],      # 仙盟事务速度加成
   [lambda curObj:PlayerControl.GetFamilyBossHurtPer(curObj), lambda curObj, value:PlayerControl.SetFamilyBossHurtPer(curObj, value), 0, 0, 0],      # 仙盟BOSS伤害加成
   [lambda curObj:PlayerControl.GetFamilyWarHPPer(curObj), lambda curObj, value:PlayerControl.SetFamilyWarHPPer(curObj, value), 0, 0, 0],      # 仙盟联赛生命加成
   [lambda curObj:PlayerControl.GetFamilyWarAtkPer(curObj), lambda curObj, value:PlayerControl.SetFamilyWarAtkPer(curObj, value), 0, 0, 0],      # 仙盟联赛攻击加成
   [lambda curObj:PlayerControl.GetFamilySitExpPer(curObj), lambda curObj, value:PlayerControl.SetFamilySitExpPer(curObj, value), 0, 0, 0],      # 仙盟打坐经验加成
   [lambda curObj:GameObj.GetComboDefRate(curObj), lambda curObj, value:GameObj.SetComboDefRate(curObj, value), ShareDefine.CDBPlayerRefresh_ComboDefRate, 1, 0],    # 抗连击概率
   [lambda curObj:GameObj.GetAtkBackRate(curObj), lambda curObj, value:GameObj.SetAtkBackRate(curObj, value), ShareDefine.CDBPlayerRefresh_AtkBackRate, 1, 0],    # 反击概率
   [lambda curObj:GameObj.GetAtkBackDefRate(curObj), lambda curObj, value:GameObj.SetAtkBackDefRate(curObj, value), ShareDefine.CDBPlayerRefresh_AtkBackDefRate, 1, 0],    # 抗反击概率
   [lambda curObj:GameObj.GetSuckHPPer(curObj), lambda curObj, value:GameObj.SetSuckHPPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuckHPPer, 1, 0],    # 吸血比率
   [lambda curObj:GameObj.GetSuckHPDefPer(curObj), lambda curObj, value:GameObj.SetSuckHPDefPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuckHPDefPer, 1, 0],    # 抗吸血比率
   [lambda curObj:GameObj.GetCureDefPer(curObj), lambda curObj, value:GameObj.SetCureDefPer(curObj, value), ShareDefine.CDBPlayerRefresh_CureDefPer, 1, 0],          # 弱化对方治疗
   [lambda curObj:GameObj.GetPetStrengthenPer(curObj), lambda curObj, value:GameObj.SetPetStrengthenPer(curObj, value), ShareDefine.CDBPlayerRefresh_PetStrengthenPer, 1, 0],          # 强化灵兽
   [lambda curObj:GameObj.GetPetWeakenPer(curObj), lambda curObj, value:GameObj.SetPetWeakenPer(curObj, value), ShareDefine.CDBPlayerRefresh_PetWeakenPer, 1, 0],          # 弱化灵兽
   [lambda curObj:GameObj.GetSuperHitHurtPer(curObj), lambda curObj, value:GameObj.SetSuperHitHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitHurtPer, 1, 0],          # 强化暴伤
   [lambda curObj:GameObj.GetSuperHitHurtDefPer(curObj), lambda curObj, value:GameObj.SetSuperHitHurtDefPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitHurtDefPer, 1, 0],          # 弱化暴伤
   [lambda curObj:PlayerControl.GetBossFinalHurtPer(curObj), lambda curObj, value:PlayerControl.SetBossFinalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_BossFinalHurtPer, 1, 0],        # Boss最终伤害百分比
   [lambda curObj:PlayerControl.GetFaQiMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetFaQiMaxHPPer(curObj, value), 0, 0, 0],  # 法器生命百分比
   [lambda curObj:PlayerControl.GetFaQiAtkPer(curObj), lambda curObj, value:PlayerControl.SetFaQiAtkPer(curObj, value), 0, 0, 0],  # 法器攻击百分比
   [lambda curObj:PlayerControl.GetFaQiDefPer(curObj), lambda curObj, value:PlayerControl.SetFaQiDefPer(curObj, value), 0, 0, 0],  # 法器防御百分比
   [lambda curObj:PlayerControl.GetHorseSkinMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetHorseSkinMaxHPPer(curObj, value), 0, 0, 0],  # 坐骑幻化生命加成
   [lambda curObj:PlayerControl.GetHorseSkinAtkPer(curObj), lambda curObj, value:PlayerControl.SetHorseSkinAtkPer(curObj, value), 0, 0, 0],  # 坐骑幻化攻击加成
   [lambda curObj:PlayerControl.GetHorseSkinDefPer(curObj), lambda curObj, value:PlayerControl.SetHorseSkinDefPer(curObj, value), 0, 0, 0],  # 坐骑幻化防御加成
   [lambda curObj:PlayerControl.GetTitleMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetTitleMaxHPPer(curObj, value), 0, 0, 0],  # 称号生命加成
   [lambda curObj:PlayerControl.GetTitleAtkPer(curObj), lambda curObj, value:PlayerControl.SetTitleAtkPer(curObj, value), 0, 0, 0],  # 称号攻击加成
   [lambda curObj:PlayerControl.GetTitleDefPer(curObj), lambda curObj, value:PlayerControl.SetTitleDefPer(curObj, value), 0, 0, 0],  # 称号防御加成
   [lambda curObj:PlayerControl.GetFaceMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetFaceMaxHPPer(curObj, value), 0, 0, 0],  # 头像生命加成
   [lambda curObj:PlayerControl.GetFaceAtkPer(curObj), lambda curObj, value:PlayerControl.SetFaceAtkPer(curObj, value), 0, 0, 0],  # 头像攻击加成
   [lambda curObj:PlayerControl.GetFaceDefPer(curObj), lambda curObj, value:PlayerControl.SetFaceDefPer(curObj, value), 0, 0, 0],  # 头像防御加成
   [lambda curObj:PlayerControl.GetFacePicMaxHPPer(curObj), lambda curObj, value:PlayerControl.SetFacePicMaxHPPer(curObj, value), 0, 0, 0],  # 头像框生命加成
   [lambda curObj:PlayerControl.GetFacePicAtkPer(curObj), lambda curObj, value:PlayerControl.SetFacePicAtkPer(curObj, value), 0, 0, 0],  # 头像框攻击加成
   [lambda curObj:PlayerControl.GetFacePicDefPer(curObj), lambda curObj, value:PlayerControl.SetFacePicDefPer(curObj, value), 0, 0, 0],  # 头像框防御加成
]
## 通过索引获得属性值
#  @param curObj 当前对象
#  @param effIndex 属性索引
#  @return 指定属性值
def GetValueByEffIndex(curObj, effIndex):
    if effIndex <= 0 or effIndex > len(ObjProperty_AttrByIndex):
        GameWorld.ErrLog("查找对象属性失败, Index = %s" % (effIndex))
        return
    return ObjProperty_AttrByIndex[effIndex - 1][0](curObj)
## 设置属性
#  @param curObj 当前对象
#  @param effIndex 属性索引
#  @param effectValue ֵ
#  @return None
def GetValueByEffIndex(curObj, effIndex): return 0
def SetValueByEffIndex(curObj, effIndex, effectValue):
    if effectValue < 0:
        effectValue = 0
    if effIndex <= 0 or effIndex > len(ObjProperty_AttrByIndex):
        GameWorld.ErrLog("设置对象属性失败, Index = %s" % (effIndex))
        return
    if effIndex not in ChConfig.TYPE_BIGVALUE_ATTR:
        effectValue = min(effectValue, ChConfig.Def_UpperLimit_DWord)
    return ObjProperty_AttrByIndex[effIndex - 1][1](curObj, effectValue)
## 通过索引获得属性值和通知信息
#  @param curObj 当前对象
#  @param effIndex 属性索引
#  @return 指定属性值
def GetValueByEffIndexEx(curObj, effIndex):
    if effIndex <= 0 or effIndex > len(ObjProperty_AttrByIndex):
        GameWorld.ErrLog("查找对象属性失败, Index = %s" % (effIndex))
        return
    return ObjProperty_AttrByIndex[effIndex - 1][0](curObj), \
            ObjProperty_AttrByIndex[effIndex - 1][2],\
            ObjProperty_AttrByIndex[effIndex - 1][3],\
            ObjProperty_AttrByIndex[effIndex - 1][4]
# 缓存功能属性的刷新结果,用于BUFF属性单独刷新
def CopyPlayerFuncAttr(curPlayer):
    for i in xrange(len(ObjProperty_AttrByIndex)):
        # Get
        effIndex = i + 1
        if effIndex in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]:
            continue
        value = ObjProperty_AttrByIndex[i][0](curPlayer)
        if value == 0 and GetCopyFuncAttrValue(curPlayer, effIndex) == 0:
            continue
        SetCopyFuncAttrValue(curPlayer, effIndex, value)
    return
# 恢复缓存功能属性的刷新结果,用于BUFF属性单独刷新
def RestorePlayerFuncAttr(curPlayer):
    for i in xrange(len(ObjProperty_AttrByIndex)):
        effIndex = i + 1
        if effIndex in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]:
            continue
        ObjProperty_AttrByIndex[i][1](curPlayer, GetCopyFuncAttrValue(curPlayer, effIndex))
    return
def GetCopyFuncAttrValue(curPlayer, effIndex):
    value = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr % effIndex)
    valueEx = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttrEx % effIndex)
    return valueEx * ShareDefine.Def_PerPointValue + value
def SetCopyFuncAttrValue(curPlayer, effIndex, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttr % effIndex, value % ShareDefine.Def_PerPointValue)
    curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttrEx % effIndex, value / ShareDefine.Def_PerPointValue)
    return