From 9ba8221ffc65a8a9f4e447b4cb6c7db08b1589dd Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 07 九月 2021 15:18:54 +0800 Subject: [PATCH] 8585 【主干】【BT3】【bt3_1.100.1】【后端】竞技场(新增玩家初始积分设置;优化赛季重置玩家积分重置逻辑) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py | 85 +++++++++++++++++++++++++++++++----------- 1 files changed, 63 insertions(+), 22 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py index 28d4073..268f375 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py @@ -47,10 +47,10 @@ [lambda curObj:PlayerControl.GetSpeedNotBuff(curObj), lambda curObj, value:PlayerControl.SetSpeedNotBuff(curObj, value), 0, 0, 0], # 移动速度 [lambda curObj:PlayerControl.GetAtkSpeed(curObj), lambda curObj, value:PlayerControl.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:PlayerControl.GetSuperHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetSuperHitRateReduce(curObj, value), 0, 0, 0],# 暴击概率抗性 - [lambda curObj:PlayerControl.GetSuperHitReducePer(curObj), lambda curObj, value:PlayerControl.SetSuperHitReducePer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitReduce, 1, 0], # 暴击抗性 + [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:PlayerControl.GetSuperHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetSuperHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, 0, 0],# 暴击概率抗性 + [lambda curObj:PlayerControl.GetSuperHitReduce(curObj), lambda curObj, value:PlayerControl.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], # 卓越一击伤害倍率 @@ -58,9 +58,9 @@ [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: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.GetLuckyHitReducePer(curObj), lambda curObj, value:PlayerControl.SetLuckyHitReducePer(curObj, value), 0, 0, 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], # 无视防御概率抗性 @@ -110,18 +110,18 @@ [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.GetReduceSkillCD(curObj), lambda curObj, value:PlayerControl.SetReduceSkillCD(curObj, value), 0, 0, 0], # 减技能CD值 + [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.GetDamagePer(curObj), lambda curObj, value:PlayerControl.SetDamagePer(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePer, 1, 0], # 伤害输出计算百分比 - [lambda curObj:curObj.GetDamageReduceRate(), lambda curObj, value:curObj.SetDamageReduceRate(value), IPY_PlayerDefine.CDBPlayerRefresh_DamageReduceRate, 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.GetDamagePerPVE(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVE(curObj, value), 0, 0, 0], # 伤害输出计算百分比PVE + [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], # 目标法师伤害加成 @@ -132,7 +132,7 @@ [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:PlayerControl.GetFinalHurtPer(curObj), lambda curObj, value:PlayerControl.SetFinalHurtPer(curObj, value), 0, 0, 0], # 最终伤害百分比 + [lambda curObj:PlayerControl.GetFinalHurtPer(curObj), lambda curObj, value:PlayerControl.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伤害加成倍率 @@ -148,8 +148,8 @@ [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], # 血瓶恢复效果增强 + [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攻击频率 @@ -168,6 +168,36 @@ [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:PlayerControl.GetFinalHurtReducePer(curObj), lambda curObj, value:PlayerControl.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), ShareDefine.CDBPlayerRefresh_YinjiTime, 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], # 弑神培养属性加成 ] ## 通过索引获得属性值 @@ -195,7 +225,8 @@ GameWorld.ErrLog("设置对象属性失败, Index = %s" % (effIndex)) return - effectValue = min(effectValue, ChConfig.Def_UpperLimit_DWord) + if effIndex not in ChConfig.TYPE_BIGVALUE_ATTR: + effectValue = min(effectValue, ChConfig.Def_UpperLimit_DWord) return ObjProperty_AttrByIndex[effIndex - 1][1](curObj, effectValue) @@ -217,22 +248,32 @@ def CopyPlayerFuncAttr(curPlayer): for i in xrange(len(ObjProperty_AttrByIndex)): # Get - if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]: + 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 curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr%i) == 0: + if value == 0 and GetCopyFuncAttrValue(curPlayer, effIndex) == 0: continue - curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttr%i, ObjProperty_AttrByIndex[i][0](curPlayer)) + SetCopyFuncAttrValue(curPlayer, effIndex, value) return # 恢复缓存功能属性的刷新结果,用于BUFF属性单独刷新 def RestorePlayerFuncAttr(curPlayer): for i in xrange(len(ObjProperty_AttrByIndex)): - if i+1 in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]: + effIndex = i + 1 + if effIndex 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)) + 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 + \ No newline at end of file -- Gitblit v1.8.0