5200 【后端】【1.3.100】骑宠争夺boss每只boss伤害降低,增加灵宠的灵宠也要跟着降低
6个文件已修改
45 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1875,13 +1875,14 @@
        
    else:
        aIgnoreDefRate = 0  # 无视防御比率
        aFinalHurtPer = GameObj.GetPetDamPer(atkObj) # 最外层伤害加成, 可能为负值
        aSkillAtkRate = NPCCommon.GetSkillAtkRate(atkObj)   # 技能攻击力加成
        if atkObjType == IPY_GameWorld.gotNPC and atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet:
            aSkillAtkRate += atkObj.GetSkillAtkRate()
        aNPCHurtAddPer = 0  # PVE伤害加成
        aDamagePer = 0      # 外层伤害加成
        aDamagePerPVP = 0   # 外层PVP伤害加成
        aFinalHurtPer = 0 # 最外层伤害加成, 可能为负值
        aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害
        aFightPower = NPCCommon.GetSuppressFightPower(atkObj)
        
@@ -1960,10 +1961,22 @@
            suppressFormulaKeyRealm = "PVESuppressValueRealm"
            if suppressFormulaKeyRealm in hurtDist:
                SuppressValueRealmRate = int(eval(FormulaControl.GetCompileFormula(suppressFormulaKeyRealm, hurtDist[suppressFormulaKeyRealm])))
    # 骑宠争夺最终伤害衰减
    if defObjType == IPY_GameWorld.gotNPC and FamilyRobBoss.IsHorsePetRobBoss(defObj.GetNPCID()):
        ownerPlayer = None
        # 召唤兽和宠物需要从人物获取状态
        if atkObj.GetGameObjType() == IPY_GameWorld.gotNPC:
            if atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet:
                ownerPlayer = PetControl.GetPetOwner(atkObj)
            elif atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
                ownerPlayer = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, atkObj)
        else:
            ownerPlayer = atkObj
            
        # 骑宠争夺最终伤害衰减
        if FamilyRobBoss.IsHorsePetRobBoss(defObj.GetNPCID()):
            findBuff = SkillCommon.FindBuffByID(atkObj, ChConfig.Def_SkillID_HorsePetRobBossKillCntBuff)[0]
        if ownerPlayer:
            findBuff = SkillCommon.FindBuffByID(ownerPlayer, ChConfig.Def_SkillID_HorsePetRobBossKillCntBuff)[0]
            if findBuff:
                reduceFinalHurtPer = findBuff.GetSkill().GetEffect(0).GetEffectValue(0)
                aFinalHurtPer -= reduceFinalHurtPer
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -86,3 +86,9 @@
    state = curState & pow(2, pyState) 
    return state
def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
def SetPetDamPer(gameObj, value):
    gameObj.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
        gameObj.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
@@ -381,6 +381,7 @@
    rolePet.SetMinAtk(PlayerControl.GetPetMinAtk(curPlayer))
    rolePet.SetMaxAtk(PlayerControl.GetPetMaxAtk(curPlayer))
    rolePet.SetSkillAtkRate(PlayerControl.GetPetSkillAtkRate(curPlayer))
    GameObj.SetPetDamPer(rolePet, GameObj.GetPetDamPer(curPlayer))
    #rolePet.SetMAtkMin(curPlayer.GetMAtkMin())
    #rolePet.SetMAtkMax(curPlayer.GetMAtkMax())
    rolePet.SetHit(curPlayer.GetHit())
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6542,11 +6542,13 @@
def GetPetMaxAtk(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetMaxAtk)
def SetPetMaxAtk(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetMaxAtk, value)
#---宠物伤害百分比提升----
def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
def SetPetDamPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)
#---宠物伤害百分比提升----移到GameObj下
#===============================================================================
# def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
# def SetPetDamPer(curPlayer, value):
#    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
#    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)
#===============================================================================
#---宠物技能伤害百分比提升----
def GetPetSkillAtkRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PetSkillAtkRate)
def SetPetSkillAtkRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_PetSkillAtkRate, value)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py
@@ -52,6 +52,7 @@
import ChEquip
import QuestCommon
import random
import GameObj
# 可吞噬的装备位
Def_EatItem_EquipPlace = [
@@ -326,7 +327,7 @@
    aSkillAtkRate = curPlayer.GetSkillAtkRate()    # 技能攻击力加成
    petMinAtk = PlayerControl.GetPetMinAtk(curPlayer)   #灵宠最小攻击
    petMaxAtk = PlayerControl.GetPetMaxAtk(curPlayer)   #灵宠最大攻击
    petDamPer = PlayerControl.GetPetDamPer(curPlayer)   #灵宠增加伤害
    petDamPer = GameObj.GetPetDamPer(curPlayer)   #灵宠增加伤害
    atkSpeed = PlayerControl.GetAtkSpeed(curPlayer) # 攻击速度
    aIgnoreDefRate = curPlayer.GetIgnoreDefRate()  # 无视防御比率
    aLuckyHit = curPlayer.GetLuckyHitVal()  # 会心一击
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -81,7 +81,7 @@
   [lambda curObj:curObj.GetGoldFoundRate(), lambda curObj, value:curObj.SetGoldFoundRate(value), IPY_PlayerDefine.CDBPlayerRefresh_GoldFoundRate, 1, 0],                          # 掉落金钱值增加
   [lambda curObj:PlayerControl.GetPetMinAtk(curObj), lambda curObj, value:PlayerControl.SetPetMinAtk(curObj, value), 0, 0, 0],      # 宠物最小攻击
   [lambda curObj:PlayerControl.GetPetMaxAtk(curObj), lambda curObj, value:PlayerControl.SetPetMaxAtk(curObj, value), 0, 0, 0],      # 宠物最大攻击
   [lambda curObj:PlayerControl.GetPetDamPer(curObj), lambda curObj, value:PlayerControl.SetPetDamPer(curObj, value), 0, 0, 0],      # 宠物伤害百分比提升
   [lambda curObj:GameObj.GetPetDamPer(curObj), lambda curObj, value:GameObj.SetPetDamPer(curObj, value), 0, 0, 0],      # 宠物伤害百分比提升
   [lambda curObj:PlayerControl.GetPerLVAtk(curObj), lambda curObj, value:PlayerControl.SetPerLVAtk(curObj, value), 0, 0, 0],        # 每1级+%s攻击, 数值取万分率,支持小数算法
   [lambda curObj:PlayerControl.GetPerLVMaxHP(curObj), lambda curObj, value:PlayerControl.SetPerLVMaxHP(curObj, value), 0, 0, 0],    # 每1级+%s生命, 数值为固定值