ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
@@ -17,6 +17,7 @@
import ChConfig
import GameWorld
import TurnAttack
import ShareDefine
import IpyGameDataPY
import PlayerControl
@@ -25,6 +26,7 @@
import IPY_GameWorld
import NetPackCommon
import ItemCommon
import PlayerTask
import NPCCommon
import ChEquip
import ObjPool
@@ -307,6 +309,8 @@
        
    # 刷属性
    ChEquip.RefreshRoleEquipAttr(curPlayer)
    PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_EquipColor)
    return
def __doDecomposeMainEquip(curPlayer, itemIndexList):
@@ -320,6 +324,7 @@
    
    moneyTotal = 0
    
    decomposeCnt = 0
    decomposeIndexList = []
    for itemIndex in itemIndexList:
        if itemIndex < 0 or itemIndex >= IdentifyPack.GetCount():
@@ -350,11 +355,13 @@
        
        ItemCommon.DelItem(curPlayer, curEquip, curEquip.GetCount(), True, ChConfig.ItemDel_EquipDecompose)
        decomposeIndexList.append(itemIndex)
        decomposeCnt += 1
        
    if not moneyTotal:
        return
    
    PlayerControl.GiveMoney(curPlayer, moneyType, moneyTotal, "DecomposeMainEquip", isSysHint=False)
    PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_EquipDecompose, decomposeCnt)
    return
def __doPickupMainItem(curPlayer, itemIndexList):
@@ -402,3 +409,48 @@
    clientPack.Count = len(clientPack.DropBootyList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return
def OnTurnFightOver(curPlayer, turnFight, mapID, funcLineID, overMsg):
    ## 回合战斗结束
    if not curPlayer:
        return
    #winFaction = turnFight.winFaction
    isWin = turnFight.isWin
    playerID = curPlayer.GetPlayerID()
    mainFightMgr = TurnAttack.GetMainFightMgr(curPlayer)
    chapterID, levelNum, wave = PlayerControl.GetMainLevelNowInfo(curPlayer)
    if not isWin:
        nextWave = max(1, wave - 1)
        nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, chapterID, levelNum, nextWave)
        GameWorld.DebugLog("主线小怪战斗失败,降一波! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%s"
                           % (chapterID, levelNum, wave, nextWave, nowValue), playerID)
        return
    if turnFight.haveNextLineup():
        GameWorld.DebugLog("主线小怪战斗胜利,有下一小队! chapterID=%s,levelNum=%s,wave=%s" % (chapterID, levelNum, wave), playerID)
        return
    # 获胜过波
    if wave < mainFightMgr.waveMax:
        nextWave = min(mainFightMgr.waveMax, wave + 1)
        nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, chapterID, levelNum, nextWave)
        GameWorld.DebugLog("主线小怪波战斗胜利,下一波! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%s"
                           % (chapterID, levelNum, wave, nextWave, nowValue), playerID)
    else:
        GameWorld.DebugLog("主线小怪波战斗胜利,最后一波循环刷! chapterID=%s,levelNum=%s,wave=%s" % (chapterID, levelNum, wave), playerID)
    # 小怪可能会退波,所以只在有超过已过关卡进度时才更新值
    hisPassValue = PlayerControl.GetMainLevelPassValue(curPlayer)
    curPassValue = PlayerControl.ComMainLevelValue(chapterID, levelNum, wave)
    if curPassValue > hisPassValue:
        GameWorld.DebugLog("更新当前过关进度! curPassValue=%s,hisPassValue=%s" % (curPassValue, hisPassValue), playerID)
        PlayerControl.SetMainLevelPassValue(curPlayer, curPassValue)
    else:
        GameWorld.DebugLog("未超过当前过关进度,不更新! curPassValue=%s <= hisPassValue=%s" % (curPassValue, hisPassValue), playerID)
    return