| | |
| | |
|
| | | if not tagObjList:
|
| | | # 可扩展其他目标选择,如复活技能没有死亡单位时则使用另外的效果
|
| | | GameWorld.DebugLog("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s" % (skillID, turnFight.mapID, turnFight.funcLineID), turnFight.playerID)
|
| | | GameWorld.DebugLog("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s" % (skillID, turnFight.mapID, turnFight.funcLineID), turnFight.getReqPlayerID())
|
| | | if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive:
|
| | | otherEff = useSkill.GetEffectByID(ChConfig.SkillEff_ReviveNoUse)
|
| | | if otherEff:
|
| | |
| | |
|
| | | oneActionUseCnt = turnFight.GetOneActionUseSkillCnt(objID)
|
| | | if oneActionUseCnt >= 20:
|
| | | GameWorld.ErrLog("单次行动累计使用技能达到上限! objID=%s,oneActionUseCnt=%s" % (objID, oneActionUseCnt), turnFight.playerID)
|
| | | GameWorld.ErrLog("单次行动累计使用技能达到上限! objID=%s,oneActionUseCnt=%s" % (objID, oneActionUseCnt), turnFight.getReqPlayerID())
|
| | | return
|
| | | oneActionUseCnt = turnFight.SetOneActionUseSkillCnt(objID, oneActionUseCnt + 1)
|
| | |
|
| | |
| | | if useSkill.GetCoolDownTime():
|
| | | useSkill.SetRemainTime(useSkill.GetCoolDownTime())
|
| | |
|
| | | __doCostZhanchui(turnFight, curBatObj, useSkill) # 先扣除再同步技能
|
| | | |
| | | # 需先技能使用 - 前端按顺序优先表现技能释放内容,前端需要动作或有伤血则通知
|
| | | if IsNeedSyncSkill(useSkill):
|
| | | Sync_UseSkill(turnFight, curBatObj, useSkill)
|
| | |
|
| | | __doCostZhanchui(turnFight, curBatObj, useSkill)
|
| | | __doSkillUserAnger(turnFight, curBatObj, useSkill)
|
| | |
|
| | | DoBeAttackResult(turnFight, curBatObj, useSkill)
|
| | |
| | | curBatObj.SetXP(0)
|
| | | elif SkillCommon.isTurnNormalSkill(useSkill) and useSkill.GetBatType() == ChConfig.TurnBattleType_Normal:
|
| | | addXP = IpyGameDataPY.GetFuncCfg("AngerXP", 3)
|
| | | AddTurnFightXP(curBatObj, addXP, "skillID:%s" % useSkill.GetSkillID())
|
| | | AddFightXP(curBatObj, addXP, "skillID:%s" % useSkill.GetSkillID())
|
| | | return
|
| | |
|
| | | def __doSkillHurtAnger(batObj, lostHP, useSkill):
|
| | |
| | | addXP = IpyGameDataPY.GetFuncCfg("AngerXP", 4)
|
| | | if addXP <= 0:
|
| | | return
|
| | | AddTurnFightXP(batObj, addXP, "skillID:%s" % useSkill.GetSkillID())
|
| | | AddFightXP(batObj, addXP, "skillID:%s" % useSkill.GetSkillID())
|
| | | return
|
| | |
|
| | | def AddTurnFightXP(gameObj, addXP, reason=""):
|
| | | def AddFightXP(gameObj, addXP, reason=""):
|
| | | ## 回合战斗增加XP
|
| | | if addXP <= 0 or not addXP:
|
| | | #GameWorld.DebugLog(" 没有增加XP! curID=%s" % (gameObj.GetID()))
|
| | |
| | | dPursueDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPerDef)
|
| | |
|
| | | aPVPDamPer, dPVPDamPerDef = 0, 0 # PVP
|
| | | if turnFight.getPVPPlayerID() > 0:
|
| | | if turnFight.isPVP() > 0:
|
| | | aPVPDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PVPDamPer)
|
| | | dPVPDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_PVPDamPerDef)
|
| | | GameWorld.DebugLog("PVP aPVPDamPer=%s,dPVPDamPerDef=%s" % (aPVPDamPer, dPVPDamPerDef))
|
| | |
| | | if hurtHP <= 1:
|
| | | return
|
| | |
|
| | | if not atkObj.IsAlive():
|
| | | # dot施法者已死亡不再吸血
|
| | | return
|
| | | |
| | | aSuckHPPer = atkObj.GetBatAttrValue(ChConfig.AttrID_SuckHPPer)
|
| | | aCurePer = atkObj.GetBatAttrValue(ChConfig.AttrID_CurePer)
|
| | |
|