hxp
2019-01-21 c1b3a0b95ee7e09e434389120e35cc73893b9ae4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -220,11 +220,12 @@
def PlayerLoginMergeServerSkillLogic(curPlayer, tick):
    playerID = curPlayer.GetPlayerID()
    if not GameWorld.IsMergeServer():
    if not GameWorld.IsCrossServer():
        GameWorld.DebugLog("非跨服服务器上线不清除buff...", playerID)
        return
    
    ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID")
    #ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID")
    ClearBuffSkillTypeIDList = []
    # 跨服服务器上线清除增益/减益buff
    GameWorld.Log("跨服服务器上线清除buff...", playerID)
    clearBuffList = [] # 先汇总再清除,不然索引会变更
@@ -279,6 +280,15 @@
            curSkill.SetRemainTime(0)
            GameWorld.DebugLog("        SetRemainTime 0 skillName=%s,skillTypeID=%s" 
                               % (curSkill.GetSkillName(), curSkill.GetSkillTypeID()), playerID)
    return
def ResetAllSkillCD(curPlayer):
    skillManager = curPlayer.GetSkillManager()
    for i in xrange(skillManager.GetSkillCount()):
        skill = skillManager.GetSkillByIndex(i)
        if skill.GetRemainTime() != 0:
            skill.SetRemainTime(0)
            skill.Sync_Skill()
    return
## 刷新玩家所有技能的剩余时间(上线)
@@ -1206,6 +1216,11 @@
        GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID))
        return
    
    if not curObj.GetCanAttack():
        # 无敌不掉血
        ## 后续有其他情况也应考虑进来,如镖车是否某状态不掉血
        return
    #lostValue = GetGoblinLostHP(curObj, lostValue)
    curObjType = curObj.GetGameObjType()
    curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
@@ -1217,9 +1232,12 @@
    
    notifyLostValue = lostValue
    curObjHP_BeforeAttack = GameObj.GetHP(curObj)
    if curObjHP_BeforeAttack == 0:
        # 没有血量不能再触发
        return
    
    if reduceHP :
        lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue)
        lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue, curSkill, tick)
        # 血盾 
        lostValue = AttackCommon.CalcBloodShield(buffOwner, curObj, lostValue)