| | |
| | | PyGameData.g_needRefreshMapServerState = True # 有玩家离开地图设置需要刷新
|
| | |
|
| | | PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick)
|
| | | |
| | | playerID = curPlayer.GetPlayerID()
|
| | | if not isDisconnect:
|
| | | CrossPlayerData.ClearCrossSyncDataCache(curPlayer)
|
| | | |
| | | PyGameData.g_fbBuyBuffTimeDict.pop(playerID, None)
|
| | | #清除地图玩家缓存
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | PyGameData.g_zhuXianSkillAddPerDict.pop(playerID, None)
|
| | | PyGameData.g_zhuXianSkillReducePerDict.pop(playerID, None)
|
| | | PyGameData.g_playerFuncAttrDict.pop(playerID, None)
|
| | |
| | | NotifyCode(curPlayer, "SingleEnterPK", [mapID])
|
| | | return
|
| | |
|
| | | fbIpyData = FBCommon.GetFBIpyData(mapID)
|
| | | if fbIpyData:
|
| | | fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID, False)
|
| | | if not fbLineIpyData:
|
| | | GameWorld.DebugLog("副本表找不到副本对应功能线路!mapID=%s,lineID=%s" % (mapID, lineID))
|
| | | return
|
| | | ret = FBCommon.CheckCanEnterFBComm(curPlayer, mapID, lineID, fbIpyData, fbLineIpyData)
|
| | | if ret != ShareDefine.EntFBAskRet_OK:
|
| | | return
|
| | | |
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | | for mapIDList in ChConfig.Def_FB_MapID.values():
|
| | | if mapID not in mapIDList:
|
| | | continue
|
| | | if not FBLogic.OnEnterFBEvent(curPlayer, mapID, lineID, tick):
|
| | | NotifyCode(curPlayer, "SingleEnterDefaul")
|
| | | return
|
| | | break
|
| | | |
| | | # 需要动态分布线路的地图,发送到跨服服务器进行分配
|
| | | if mapID in ChConfig.Def_CrossDynamicLineMap:
|
| | | extendInfo = {}
|
| | | if mapID == ChConfig.Def_FBMapID_CrossDemonKing:
|
| | | bossID = GameLogic_CrossDemonKing.GetCurFBLineBOSSID(lineID)
|
| | | bossID = GameLogic_CrossDemonKing.GetCurFBLineBOSSID(mapID, lineID)
|
| | | if not bossID:
|
| | | return
|
| | | extendInfo["BossID"] = bossID
|
| | |
|
| | | msgDict = {"PlayerID":curPlayer.GetPlayerID(), "DataMapID":mapID, "FuncLineID":lineID}
|
| | | msgDict = {"PlayerID":curPlayer.GetPlayerID(), "MapID":mapID, "FuncLineID":lineID}
|
| | | if extendInfo:
|
| | | msgDict.update(extendInfo)
|
| | | GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_EnterFB, msgDict)
|
| | | return
|
| | |
|
| | | GY_Query_CrossRealmReg.RegisterEnterCrossServer(curPlayer, mapID)
|
| | | GY_Query_CrossRealmReg.RegisterEnterCrossServer(curPlayer, mapID, lineID=lineID)
|
| | | return
|
| | |
|
| | | ##玩家进入副本
|
| | |
| | | if enterCnt >= FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss):
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhuXianBossHelpCnt):
|
| | | extendParamList = [bossID, curPlayer.GetFamilyID()]
|
| | | elif mapID == ChConfig.Def_FBMapID_DemonKing:
|
| | | bossID = GameLogic_CrossDemonKing.GetCurFBLineBOSSID(mapID, lineID)
|
| | | extendParamList = [bossID]
|
| | |
|
| | | SendToGameServerEnterFB(curPlayer, mapID, lineID, tick, extendParamList)
|
| | | return
|
| | |
| | | curLV = curPlayer.GetLV()
|
| | | if curLV < openLV:
|
| | | return 0
|
| | | # 初始点+升级点+境界点
|
| | | setFreePoint = IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 2)
|
| | | |
| | | addPointDict = IpyGameDataPY.GetFuncEvalCfg("LVUPAddPoint", 1, {})
|
| | | initFreePoint = IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 2)
|
| | | setFreePoint = initFreePoint
|
| | | for lv in xrange(openLV, curLV+1):
|
| | | setFreePoint += GameWorld.GetDictValueByRangeKey(addPointDict, lv, 0)
|
| | | for rangLVs, point in addPointDict.items():
|
| | | if curLV < rangLVs[0]:
|
| | | continue
|
| | | setFreePoint += point * (min(curLV, rangLVs[1]) - rangLVs[0] + 1)
|
| | | |
| | | #境界提升点数
|
| | | setFreePoint += curPlayer.GetOfficialRank() * IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 3)
|
| | | return setFreePoint
|
| | |
|
| | | def DoAddPointOpen(curPlayer):
|
| | | '''加点功能开启 处理给自由属性点及老号处理 |
| | | 清除老服玩家未加点的点数(清零),以前加的加点属性不清除,属性不变,战力不减, 根据最新的加点开启等级和老服玩家的当前等级,相差的差值给予玩家对应的加点点数'''
|
| | | '''加点功能开启'''
|
| | | beforeFreePoint = curPlayer.GetFreePoint()
|
| | |
|
| | | setFreePoint = GetAllPointByLV(curPlayer)
|
| | |
| | | def ClearAttr(self):
|
| | | for attrIndex in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
|
| | | value = 0
|
| | | # if attrIndex == ChConfig.TYPE_Calc_SuperHit:
|
| | | # value = ChConfig.Def_SuperHitPercent # 默认最低暴击倍值
|
| | | setattr(self, self.__AttrName % attrIndex, value)
|
| | | for attrIndex in self.__NolineAttrList:
|
| | | setattr(self, self.__AttrNameNoline % attrIndex, 0)
|
| | |
| | | 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) # 暴击率
|
| | | SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害倍率
|
| | | SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReducePer) * fpParam.GetCftSuperHitReduce() # 暴击伤害减免
|
| | | 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) # 会心一击
|
| | | LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害倍率
|
| | | 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) # 会心一击伤害固定减伤
|
| | | SkillAtkRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRate) * fpParam.GetCftSkillAtkRate() # 技能攻击比例加成
|
| | | SkillAtkRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRateReduce) * fpParam.GetCftSkillAtkRateReduce() # 技能攻击比例减少
|
| | | DamagePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePer) * fpParam.GetCftDamagePer() # 伤害输出计算百分比
|
| | | DamReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrDamReduce) * fpParam.GetCftDamReduce() # 伤害输出计算百分比减少, 伤害吸收
|
| | | DamagePVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVP) * fpParam.GetCftDamagePer() # PVP固定伤害
|
| | | DamagePVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVPReduce) * fpParam.GetCftDamReduce() # PVP固定减伤
|
| | | DamagePVE = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVE) * fpParam.GetCftDamagePer() # PVE固定伤害
|
| | | HPRestore = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_HPRestorePer) # 自动回复血量,固定值
|
| | | DamBackPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamBackPer) * fpParam.GetCftDamBackPer() # 反伤百分比
|
| | | SpeedValue = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrSpeed) # 移动速度值
|
| | |
| | | FaintDefRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintDefRate) * fpParam.GetCftFaintDefRate() # 击晕抵抗
|
| | | FinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurt) # 最终固定伤害增加
|
| | | FinalHurtReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReduce) # 最终固定伤害减少
|
| | | FinalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtPer) # 最终伤害万分率
|
| | | FinalHurtReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReducePer) # 最终伤害减少万分率
|
| | | DamagePerPVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVP) * fpParam.GetCftDamagePerPVP() # 伤害输出计算百分比PVP
|
| | | DamagePerPVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVPReduce) * fpParam.GetCftDamagePerPVPReduce() # 伤害输出计算百分比PVP减少
|
| | | JobAHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobAHurtAddPer) * fpParam.GetCftJobAHurtAddPer() # 对目标战士伤害加成
|
| | |
| | | JobAAtkReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobAAtkReducePer) * fpParam.GetCftJobAAtkReducePer() # 战士攻击伤害减免
|
| | | JobBAtkReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobBAtkReducePer) * fpParam.GetCftJobBAtkReducePer() # 法师攻击伤害减免
|
| | | JobCAtkReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobCAtkReducePer) * fpParam.GetCftJobCAtkReducePer() # 弓箭攻击伤害减免
|
| | | |
| | | NormalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurt) |
| | | NormalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurtPer) |
| | | FabaoHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurt)
|
| | | FabaoHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurtPer)
|
| | | Luck = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_Luck)
|
| | |
|
| | | ComboRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_ComboRate) # 连击几率
|
| | | ComboDamPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_ComboDamPer) # 连击伤害
|
| | |
| | | # @remarks 玩家升级 加点 2010-05-26 adaws修改 原来有加技能点 现将升级加技能提出
|
| | | def __DoLVUPAddPoint(self):
|
| | | curPlayer = self.__Player
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_AddPoint):
|
| | | # 未开启前不可加点,因为DoAddPointOpen会一次性补齐,避免意外情况多加了点数
|
| | | return
|
| | |
|
| | | curFreePoint = curPlayer.GetFreePoint()
|
| | | addPoint = GetLvUp_AddPoint(curPlayer)
|
| | |
| | | pointFuncInfo[1](curPlayer, curPQLV)
|
| | | if not curPQLV:
|
| | | continue
|
| | | pqAttrID = ipyData.GetPointQualityAttrID()
|
| | | pqAttrValueList = ipyData.GetPointQualityAttrValueList()
|
| | | pqAttrIDDict = ipyData.GetPointQualityAttrIDDict()
|
| | | pqAttrID = pqAttrIDDict[curPlayer.GetJob()]
|
| | | pqAttrValueDict = ipyData.GetPointQualityAttrValueDict()
|
| | | pqAttrValueList = pqAttrValueDict[str(curPlayer.GetJob())]
|
| | | pqAttrValue = 0 if curPQLV > len(pqAttrValueList) else pqAttrValueList[curPQLV - 1]
|
| | | CalcAttrDict_Type(pqAttrID, pqAttrValue, lingGenQualityAttrList)
|
| | | #GameWorld.DebugLog(" 属性点(%s)品阶等级属性: curPQLV=%s,pqAttrID=%s,pqAttrValue=%s" % (pointAttrID, curPQLV, pqAttrID, pqAttrValue))
|
| | |
| | | setAttrDict[ChConfig.AttrName_DefRate] = int(lvIpyData.GetReMiss() * attrPer) # 闪避
|
| | | setAttrDict[ChConfig.AttrName_AtkSpeed] = int(lvIpyData.GetReAtkSpeed() * attrPer) # 攻击速度
|
| | | setAttrDict[ChConfig.AttrName_SkillAtkRate] = int(lvIpyData.GetReSkillAtkRate() * attrPer) # 技能伤害比例
|
| | | setAttrDict[ChConfig.AttrName_DamagePer] = int(lvIpyData.GetReDamagePer() * attrPer) # 增加伤害
|
| | | setAttrDict[ChConfig.AttrName_DamReducePer] = int(lvIpyData.GetReDamReduce() * attrPer) # 减少伤害
|
| | | setAttrDict[ChConfig.AttrName_DamagePVP] = int(lvIpyData.GetReDamagePer() * attrPer) # PVP固定伤害
|
| | | setAttrDict[ChConfig.AttrName_DamagePVPReduce] = int(lvIpyData.GetReDamReduce() * attrPer) # PVP固定减伤
|
| | | setAttrDict[ChConfig.AttrName_IgnoreDefRate] = int(lvIpyData.GetReIgnoreDefRate() * attrPer) # 无视防御比例
|
| | | setAttrDict[ChConfig.AttrName_LuckyHitRate] = int(lvIpyData.GetReLuckyHitRate() * attrPer) # 会心一击率
|
| | | setAttrDict[ChConfig.AttrName_LuckyHit] = int(lvIpyData.GetReLuckyHit() * attrPer) # 会心一击伤害
|
| | |
| | | ChConfig.TYPE_Calc_HitSucessRate:ChConfig.Def_MaxRateValue,
|
| | | ChConfig.TYPE_Calc_CurePer:ChConfig.Def_MaxRateValue,
|
| | |
|
| | | #ChConfig.TYPE_Calc_SuperHit:ChConfig.Def_SuperHitPercent,
|
| | | #ChConfig.TYPE_Calc_GreatHit:ChConfig.Def_GreatHitVal,
|
| | | #ChConfig.TYPE_Calc_LuckyHit:ChConfig.Def_LuckyHitVal,
|
| | | }
|
| | |
|
| | | for i in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
|
| | |
| | | def SetJobCAtkReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_JobCAtkReducePer, value)
|
| | |
|
| | | #---特殊伤害减免---
|
| | | ## 会心一击伤害减免
|
| | | def GetLuckyHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReducePer)
|
| | | def SetLuckyHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReducePer, value)
|
| | | ## 会心一击伤害减免固定值
|
| | | def GetLuckyHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReduce)
|
| | | def SetLuckyHitReduce(curPlayer, value): |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReduce, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitReduce, value, False)
|
| | | |
| | | ## 卓越一击伤害减免
|
| | | def GetGreatHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitReducePer)
|
| | | def SetGreatHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitReducePer, value)
|
| | | ## 致命一击伤害减免
|
| | | def GetSuperHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReducePer)
|
| | | def SetSuperHitReducePer(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReducePer, value)
|
| | | ## 暴击伤害减免
|
| | | def GetSuperHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
|
| | | def SetSuperHitReduce(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitReduce, value, False)
|
| | | ## 无视防御伤害减免
|
| | | def GetIgnoreDefReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefReducePer)
|
| | |
| | | ## 抗卓越一击概率
|
| | | def GetGreatHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitRateReduce)
|
| | | def SetGreatHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitRateReduce, value)
|
| | | ## 抗致命一击概率
|
| | | ## 抗暴击概率
|
| | | def GetSuperHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitRateReduce)
|
| | | def SetSuperHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
|
| | | def SetSuperHitRateReduce(curPlayer, value): |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, value, False)
|
| | | ## 抗无视防御概率
|
| | | def GetIgnoreDefRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefRateReduce)
|
| | | def SetIgnoreDefRateReduce(curPlayer, value):
|
| | |
| | | def SetFinalHurtPer(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtPer, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtPer, value, False)
|
| | | |
| | | ## 最终伤害减免百分比
|
| | | def GetFinalHurtReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtReducePer)
|
| | | def SetFinalHurtReducePer(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtReducePer, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, value, False)
|
| | | |
| | | ## 最终固定伤害增加
|
| | | def GetFinalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurt)
|
| | | def SetFinalHurt(curPlayer, value):
|
| | |
| | | def SetSkillAtkRateReduce(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAtkRateReduce, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, value, False)
|
| | | #---伤害输出计算百分比----
|
| | | def GetDamagePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePer)
|
| | | def SetDamagePer(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePer, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePer, value, False)
|
| | | #---伤害输出计算百分比对NPC附加----
|
| | | def GetDamagePerPVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVE)
|
| | | def SetDamagePerPVE(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePerPVE, value)
|
| | |
|
| | | #---PVP固定伤害----
|
| | | def GetDamagePVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVP)
|
| | | def SetDamagePVP(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVP, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVP, value, False)
|
| | | #---PVP固定伤害减少----
|
| | | def GetDamagePVPReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVPReduce)
|
| | | def SetDamagePVPReduce(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVPReduce, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVPReduce, value, False)
|
| | | #---伤害输出固定值计算对NPC附加----
|
| | | def GetDamagePVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVE)
|
| | | def SetDamagePVE(curPlayer, value): |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVE, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVE, value, False)
|
| | | |
| | | #---伤害输出计算百分比对玩家附加----
|
| | | def GetDamagePerPVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVP)
|
| | | def SetDamagePerPVP(curPlayer, value):
|