From b56df043e01be629f731c5d52ecb64cc7f7f2b60 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 27 五月 2019 20:05:19 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py index 9492c61..bd5cfad 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -3570,7 +3570,7 @@ attrName = self.__AttrName % attrIndex setattr(self, attrName, getattr(self, attrName) + value) - def GetModuleFightPower(self, fpParam, job): + def GetModuleFightPower(self, fpParam, curPlayer): MaxHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrMaxHP) # 最大血量 MinAtk = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrATKMin) # 最小攻击 MaxAtk = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrATKMax) # 最大攻击 @@ -3578,11 +3578,11 @@ Hit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrHit) * fpParam.GetCftHit() # 命中值 Miss = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrMiss) * fpParam.GetCftMiss() # 闪避值 AtkSpeed = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrAtkSpeed) # 攻击速度(数值非攻击间隔) - SuperHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRate) # 暴击率 + SuperHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRate) * fpParam.GetCftSuperHitRate() # 暴击率 SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) # 暴击概率抗性 SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害固定值 SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) * fpParam.GetCftSuperHitReduce() # 暴击固定减伤 - LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) # 会心一击 + LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) * fpParam.GetCftLuckyHitRate() # 会心一击 LuckyHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRateReduce) * fpParam.GetCftLuckyHitRateReduce() # 会心一击概率抗性 LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害固定值 LuckyHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitReduce) # 会心一击伤害固定减伤 @@ -3640,6 +3640,11 @@ AtkSpeedParameter = fpParam.GetCftAtkSpeed() LuckyHitParameter = fpParam.GetCftLuckyHit() + #取总属性的 + SuperHitRateTotal = curPlayer.GetSuperHitRate() + LuckyHitRateTotal = curPlayer.GetLuckyHitRate() + + job = curPlayer.GetJob() diffAttrDict = self.__GetAttrFightPowerParamDiff(job) for paramName, diffValue in diffAttrDict.items(): exec("%s = max(0, %s - %s)" % (paramName, paramName, diffValue)) @@ -4035,6 +4040,7 @@ if aftLV > befLV: curPlayer.SetLV(aftLV, False) # 这里不再通知GameServer PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_HeroLV, aftLV) + PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_LVUP, aftLV - befLV) if aftFreePoint > befFreePoint: curPlayer.SetFreePoint(aftFreePoint) #NotifyCode(curPlayer, "ObtainAttributeDot", [aftFreePoint - befFreePoint]) @@ -4081,6 +4087,7 @@ OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_LV, curPlayer.GetLV()) #神秘限购 FunctionNPCCommon.MysticalLimitShopOpen(curPlayer, befLV, aftLV) + #不需要做升级任务, 设置玩家经验 SetPlayerTotalExp(curPlayer, curTotalExp) return @@ -4531,6 +4538,7 @@ curLV = curPlayer.GetLV() fpParam = IpyGameDataPY.GetIpyGameData("FightPowerParam", curLV) mfpDict = {} # 模块战斗力 + mfpObjDict = {} for mfpType, attrFuncIndexList in ChConfig.MFPTypeAttrFuncIndexDict.items(): mfpAttrList = [{} for _ in range(4)] mfpAttrExDict = {} @@ -4556,8 +4564,11 @@ mfpObj.SetCalcMFPBattleAttr(mfpAttrList) for attrIndex, value in mfpAttrExDict.items(): mfpObj.AddCalcMFPAttr(attrIndex, value) - - mfpValue = 0 if not fpParam else mfpObj.GetModuleFightPower(fpParam, curPlayer.GetJob()) + mfpObjDict[mfpType] = mfpObj + + # 因为计算战力需要取到总属性,所以等各功能点属性累加完后再计算 + for mfpType, mfpObj in mfpObjDict.items(): + mfpValue = 0 if not fpParam else mfpObj.GetModuleFightPower(fpParam, curPlayer) mfpSkill = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MFPSkill % mfpObj.mfpType) mfpEx = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MFPEx % mfpObj.mfpType) mfpTotal = mfpValue + mfpSkill + mfpEx @@ -6285,7 +6296,9 @@ # addAttrList[ChConfig.CalcAttr_BattleNoline] = {} # return addAttrList #=============================================================================== - +def GetTotalLingGenPoint(curPlayer): + # 总灵根点数(金木水火土+自由点数) + return GetMetal(curPlayer) + GetWood(curPlayer) + GetWater(curPlayer) + GetFire(curPlayer) + GetEarth(curPlayer) + curPlayer.GetFreePoint() # 灵根 - 金木水火土 def GetMetal(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_Metal) -- Gitblit v1.8.0