5002 【主干】【BT】【BT2】【BTZF】吸血超过20e报错(吸血超20E防范;添加buff异常防范)
2个文件已修改
61 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -3049,10 +3049,10 @@
# 血量变化飘血通知
def ChangeHPView(curObj, srcObj,skillID, changeHP, changType):
def ChangeHPView(curObj, srcObj, skillID, changeHP, changType):
    srcID, srcType = 0, 0
    if srcObj:
        srcID, srcType = srcObj.GetID(), srcObj.GetGameObjType()
    HPEx = 0 if not hasattr(curObj, "GetHPEx") else curObj.GetHPEx()
    curObj.ChangeHPView(skillID, changeHP, changType, srcID, srcType, curObj.GetHP(), HPEx)
    curObj.ChangeHPView(skillID, min(changeHP, ChConfig.Def_UpperLimit_DWord), changType, srcID, srcType, curObj.GetHP(), HPEx)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -1000,32 +1000,35 @@
    return DelBuffBySkillID(curObj, skillID, tick)
def PYSync_RefreshBuff(gameObj, curBuff, buffType, notifyAll=True, owner = None):
    sendPack = ChNetSendPack.tagObjAddBuff()
    if not curBuff:
        return
    if not hasattr(curBuff, "GetSkill"):
        return
    curSkill = curBuff.GetSkill()
    if not curSkill or not hasattr(curSkill, "GetSkillID"):
        return
    skillID = curSkill.GetSkillID()
    if GameObj.GetHP(gameObj) <= 0 or AttackCommon.GetIsDead(gameObj):
        return
    sendPack.ObjType = gameObj.GetGameObjType()
    sendPack.ObjID = gameObj.GetID();
    sendPack.SkillID = skillID;
    sendPack.LastTime = curBuff.GetRemainTime();
    sendPack.BuffType = buffType;
    sendPack.Value = curBuff.GetValue();
    sendPack.Value1 = curBuff.GetValue1();
    sendPack.Value2 = curBuff.GetValue2();
    sendPack.Layer = curBuff.GetLayer();
    if owner:
        sendPack.OwnerID = owner.GetID()
        sendPack.OwnerType = owner.GetGameObjType()
    if notifyAll or gameObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
        gameObj.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength());
    else:
        PlayerControl.PyNotifyAll(gameObj, sendPack, notifySelf=True, notifyCnt=-1)
    try:
        sendPack = ChNetSendPack.tagObjAddBuff()
        if not curBuff:
            return
        if not hasattr(curBuff, "GetSkill"):
            return
        curSkill = curBuff.GetSkill()
        if not curSkill or not hasattr(curSkill, "GetSkillID"):
            return
        skillID = curSkill.GetSkillID()
        if GameObj.GetHP(gameObj) <= 0 or AttackCommon.GetIsDead(gameObj):
            return
        sendPack.ObjType = gameObj.GetGameObjType()
        sendPack.ObjID = gameObj.GetID();
        sendPack.SkillID = skillID;
        sendPack.LastTime = curBuff.GetRemainTime();
        sendPack.BuffType = buffType;
        sendPack.Value = curBuff.GetValue();
        sendPack.Value1 = curBuff.GetValue1();
        sendPack.Value2 = curBuff.GetValue2();
        sendPack.Layer = curBuff.GetLayer();
        if owner:
            sendPack.OwnerID = owner.GetID()
            sendPack.OwnerType = owner.GetGameObjType()
        if notifyAll or gameObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
            gameObj.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength());
        else:
            PlayerControl.PyNotifyAll(gameObj, sendPack, notifySelf=True, notifyCnt=-1)
    except:
        pass