302 【公会】BOSS讨伐-服务端(布阵不受最大层数限制,最大层数仅对实际效果层数有效;)
1个文件已修改
88 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyTaofa.py 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyTaofa.py
@@ -145,45 +145,45 @@
    PlayerFamily.SendFamilyActionInfo(curPlayer, familyID, ActionType)
    return
def RefreshFamilyBuZhenInfo(family):
    ## 刷新公会公共布阵信息
    familyID = family.GetID()
    curTime = int(time.time())
    bzDuration = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 4) * 60 # 有效时长秒
    maxLayer = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 3)
    gLayer = 0
    gEndTime = 0
    gActionData = None
    familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ActionType)
    for index in range(0, familyAction.Count()):
        actionData = familyAction.At(index)
        dataID = GetFAPlayerID(actionData)
        if dataID == ActionGlobalID:
            gActionData = actionData
            continue
        bzTime = GetFABuzhenTime(actionData)
        if not bzTime:
            continue
        endTime = bzTime + bzDuration
        if endTime <= curTime:
            continue
        if not maxLayer or gLayer < maxLayer:
            gLayer += 1
        if gEndTime < endTime:
            gEndTime = endTime
    GameWorld.DebugLog("刷新公会公共布阵信息: familyID=%s,gLayer=%s,gEndTime=%s" % (familyID, gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)))
    if not gActionData:
        gActionData = familyAction.AddAction()
        SetFAPlayerID(gActionData, ActionGlobalID)
    SetFABuzhenEndTime(gActionData, gEndTime)
    SetFABuzhenLayer(gActionData, gLayer)
    PlayerFamily.SendFamilyAction(gActionData)
    return
#def RefreshFamilyBuZhenInfo(family):
#    ## 刷新公会公共布阵信息
#    familyID = family.GetID()
#    curTime = int(time.time())
#    bzDuration = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 4) * 60 # 有效时长秒
#    maxLayer = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 3)
#
#    gLayer = 0
#    gEndTime = 0
#    gActionData = None
#    familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ActionType)
#    for index in range(0, familyAction.Count()):
#        actionData = familyAction.At(index)
#        dataID = GetFAPlayerID(actionData)
#        if dataID == ActionGlobalID:
#            gActionData = actionData
#            continue
#        bzTime = GetFABuzhenTime(actionData)
#        if not bzTime:
#            continue
#        endTime = bzTime + bzDuration
#        if endTime <= curTime:
#            continue
#
#        if not maxLayer or gLayer < maxLayer:
#            gLayer += 1
#
#        if gEndTime < endTime:
#            gEndTime = endTime
#
#    GameWorld.DebugLog("刷新公会公共布阵信息: familyID=%s,gLayer=%s,gEndTime=%s" % (familyID, gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)))
#    if not gActionData:
#        gActionData = familyAction.AddAction()
#        SetFAPlayerID(gActionData, ActionGlobalID)
#
#    SetFABuzhenEndTime(gActionData, gEndTime)
#    SetFABuzhenLayer(gActionData, gLayer)
#    PlayerFamily.SendFamilyAction(gActionData)
#    return
def RefreshPlayerAwardBoxCnt(family, curPlayer=None, unSyncIDList=[]):
    ## 刷新玩家可领取的宝箱数
@@ -322,11 +322,11 @@
        return
    gLayer, gActionData = GetFamilyBuzhenLayer(familyID)
    bzDuration = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 4) * 60 # 有效时长秒
    maxLayer = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 3)
    gEndTime = int(time.time()) + bzDuration # 直接覆盖更新
    if not maxLayer or gLayer < maxLayer:
        gLayer += 1
    gLayer += 1 # 布阵不限制次数,直接加
    #if not maxLayer or gLayer < maxLayer:
    #    gLayer += 1
    GameWorld.DebugLog("公会讨伐布阵: gLayer=%s,gEndTime=%s" % (gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)), playerID)
    # 公共信息
    SetFABuzhenEndTime(gActionData, gEndTime)
@@ -369,6 +369,8 @@
    
    # 计算属性
    gLayer, _ = GetFamilyBuzhenLayer(familyID)
    maxLayer = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 3)
    gLayer = min(gLayer, maxLayer) # 限制生效的最大布阵层数
    fightPower = PlayerControl.GetFightPower(curPlayer)
    superRate = IpyGameDataPY.GetFuncCfg("FamilyTaofaBuzhen", 1)
    superRatio = IpyGameDataPY.GetFuncCfg("FamilyTaofaAtk", 3) # 暴击伤害倍值