10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(大本营单次批量捐献大量经验支持连续升级;)
1个文件已修改
25 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py
@@ -352,26 +352,29 @@
        updCampLV = campLV
        
        # 满级了也不限制捐献,让玩家可以继续消耗多余的道具
        campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", campLV)
        if campIpyData and campIpyData.GetLVUPNeedExp():
            lvupNeedExp = campIpyData.GetLVUPNeedExp()
            if updCampExp >= lvupNeedExp and IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", campLV + 1):
                updCampExp -= lvupNeedExp
                updCampLV = campLV + 1
        campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", updCampLV)
        lvupNeedExp = campIpyData.GetLVUPNeedExp() if campIpyData else 0
        nextIpyData = IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", updCampLV + 1)
        GameWorld.DebugLog("增加大本营经验: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,lvupNeedExp=%s"
                           % (self.familyID, playerID, addCampExp, campLV, campExp, updCampLV, updCampExp, lvupNeedExp))
        while lvupNeedExp > 0 and updCampExp >= lvupNeedExp and nextIpyData:
            updCampLV += 1
            updCampExp -= lvupNeedExp
            campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", updCampLV)
            lvupNeedExp = campIpyData.GetLVUPNeedExp() if campIpyData else 0
            nextIpyData = IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", updCampLV + 1)
            GameWorld.DebugLog("    大本营升级: updCampLV=%s,updCampExp=%s,lvupNeedExp=%s" % (updCampLV, updCampExp, lvupNeedExp))
        self.campLV = updCampLV
        self.campExp = updCampExp
        self.memAddCampExpInfo[playerID] = self.memAddCampExpInfo.get(playerID, 0) + addCampExp
        GameWorld.DebugLog("增加大本营经验: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,playerAddExpTotal=%s"
                           % (self.familyID, playerID, addCampExp, campLV, campExp, updCampLV, updCampExp, self.memAddCampExpInfo[playerID]))
        
        # 升级了
        defMemIDList = [] # 加经验默认不通知防守成员属性
        isLVUP = False
        if campLV != updCampLV:
            isLVUP = True
            GameWorld.DebugLog("大本营升级了! familyID=%s,campLV=%s to %s" % (self.familyID, campLV, updCampLV))
            GameWorld.DebugLog("大本营等级变更! familyID=%s,campLV=%s to %s" % (self.familyID, campLV, updCampLV))
            if self.RefreshFamilyAttr(False):
                defMemIDList = None # 升级后成功刷成员属性后,额外附带所有防守成员信息,战斗阶段属性是锁定的