hxp
2024-02-06 81d4c82d07f4d5aff78c40579049ae70a94163d5
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1825,7 +1825,7 @@
#  @param tick 当前时间
#  @return None
#  @remarks 设置玩家属性消耗,如魔法,XP点,HP
def SetSkillLostAttr(curPlayer, curSkill, tick):
def SetSkillLostAttr(curObj, curSkill, tick):
    #===========================================================================
    # #-----------扣魔法
    # lostMPValue = curSkill.GetMP()
@@ -1840,31 +1840,26 @@
    #    #自动回魔
    #    PlayerControl.PlayerAutoRestoreMP(curPlayer, tick)
    # 
    # #----------扣XP点
    # lostXPValue = curSkill.GetXP()
    # curPlayerXP = curPlayer.GetXP()
    #
    # if curPlayerXP < lostXPValue:
    #    GameWorld.ErrLog('释放技能 = %s异常, XP点 = %s不足 = %s' % (
    #                        curSkill.GetSkillTypeID(), curPlayerXP, lostXPValue))
    #
    # if lostXPValue > 0:
    #    remain = curPlayer.GetXP() - lostXPValue
    #    remain = max(0, remain)
    #    curPlayer.SetDict(ChConfig.Def_PlayerKey_RecordXPValue, remain)
    #    curPlayer.SetXP(remain)
    #===========================================================================
    #----------扣XP点
    lostXPValue = curSkill.GetXP()
    curXP = GameObj.GetXP(curObj)
    if curXP < lostXPValue:
        GameWorld.ErrLog('释放技能扣除XP异常! skillID=%s,curXP=%s < lostXPValue=%s' % (curSkill.GetSkillID(), curXP, lostXPValue))
    if lostXPValue > 0:
        GameObj.SetXP(curObj, max(0, curXP - lostXPValue))
    #----------扣HP点
    lostHPValue = curSkill.GetHP()
    curPlayerHP = GameObj.GetHP(curPlayer)
    curPlayerHP = GameObj.GetHP(curObj)
    
    if curPlayerHP < lostHPValue:
        GameWorld.ErrLog('释放技能 = %s异常, HP点 = %s不足 = %s' % (
                            curSkill.GetSkillTypeID(), curPlayerHP, lostHPValue))
    
    if lostHPValue > 0:
        GameObj.SetHP(curPlayer, GameObj.GetHP(curPlayer) - lostHPValue)
        GameObj.SetHP(curObj, GameObj.GetHP(curObj) - lostHPValue)
        
    return
@@ -1915,6 +1910,9 @@
    if curSkill:
        skillTypeID = curSkill.GetSkillTypeID()
        
        #扣属性,如魔法,XP点
        SetSkillLostAttr(curNPC, curSkill, tick)
        #技能使用成功
        curNPCSkill = curNPC.GetSkillManager().FindSkillBySkillTypeID(skillTypeID)