129 【战斗】战斗系统-服务端(修复5003效果消耗buff层持续伤害扣血bug;)
| | |
| | | import GameFuncComm
|
| | | import ChConfig
|
| | | import ShareDefine
|
| | | import PlayerOnline
|
| | |
|
| | | ## GM命令执行入口
|
| | | # @param curPlayer 当前玩家
|
| | |
| | | else:
|
| | | openFuncID = cmdList[1] if len(cmdList) > 1 else 0
|
| | | DoGMOpenFunc(curPlayer, openFuncID)
|
| | | |
| | | PlayerOnline.GetOnlinePlayer(curPlayer).ReCalcAllAttr()
|
| | | |
| | | PrintFuncOpenState(curPlayer)
|
| | | return
|
| | |
|
| | |
| | | remainLayer = max(0, effBuff.GetLayer() - 1)
|
| | | effBuff.SetLayer(remainLayer)
|
| | |
|
| | | TurnBuff.DoBuffProcess(turnFight, batObj, effBuff)
|
| | | TurnBuff.DoBuffProcess(turnFight, batObj, effBuff, costLayer=1)
|
| | |
|
| | | if remainLayer <= 0:
|
| | | TurnBuff.DoBuffDel(turnFight, batObj, effBuff)
|
| | |
| | | dMaxHP = defObj.GetMaxHP()
|
| | | GameWorld.DebugLog("结算dot: atkID=%s,defID=%s,buffID=%s,skillID=%s,ownerID=%s,hurtValue=%s,hurtTypes=%s,dHP=%s/%s"
|
| | | % (atkID, defID, buffID, skillID, ownerID, hurtValue, hurtTypes, dHP, dMaxHP))
|
| | | costLayer = kwargs.get("costLayer")
|
| | | layer = curBuff.GetLayer()
|
| | | if layer > 0:
|
| | | hurtValue *= layer
|
| | | GameWorld.DebugLog(" 多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
|
| | | if costLayer > 0:
|
| | | hurtValue *= min(costLayer, max(1, layer))
|
| | | GameWorld.DebugLog(" 消耗buff层伤害: hurtValue=%s,costLayer=%s,layer=%s" % (hurtValue, costLayer, layer))
|
| | | else:
|
| | | if layer > 0:
|
| | | hurtValue *= layer
|
| | | GameWorld.DebugLog(" 多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
|
| | | if "FinalDamPer" in kwargs:
|
| | | FinalDamPer = kwargs["FinalDamPer"]
|
| | | hurtValue *= (10000 + FinalDamPer) / 10000.0
|