|  |  | 
 |  |  | import ItemControler | 
 |  |  | import PassiveBuffEffMng | 
 |  |  | import FBLogic | 
 |  |  | import ShareDefine | 
 |  |  | import PlayerTask | 
 |  |  |  | 
 |  |  | # 回合战斗流程状态 | 
 |  |  | ( | 
 |  |  | 
 |  |  |     if tagPlayerID: | 
 |  |  |         if playerID == tagPlayerID: | 
 |  |  |             GameWorld.DebugLog("不能打自己!", playerID) | 
 |  |  |             return | 
 |  |  |          | 
 |  |  |     fbIpyData = FBCommon.GetFBIpyData(mapID) | 
 |  |  |     fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, funcLineID) | 
 |  |  |     if fbIpyData or fbLineIpyData: | 
 |  |  |         if FBCommon.CheckCanEnterFBComm(curPlayer, mapID, funcLineID, fbIpyData, fbLineIpyData) != ShareDefine.EntFBAskRet_OK: | 
 |  |  |             return | 
 |  |  |          | 
 |  |  |     if not FBLogic.OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList): | 
 |  |  | 
 |  |  |     if overRet != None: | 
 |  |  |         needSendGameServer, awardItemList, awardWay = overRet | 
 |  |  |          | 
 |  |  |     if isWin and ipyData: | 
 |  |  |     isFirstPass = None | 
 |  |  |     if isWin and ipyData:     | 
 |  |  |         passLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBPassLineID % mapID) | 
 |  |  |         if funcLineID == passLineID + 1: | 
 |  |  |             isFirstPass = True | 
 |  |  |             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBPassLineID % mapID, funcLineID) | 
 |  |  |             FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) | 
 |  |  |         else: | 
 |  |  |             isFirstPass = False | 
 |  |  |              | 
 |  |  |         if awardWay == 1 and not awardItemList: | 
 |  |  |             # 山寨测试先默认都是首次奖励,正式后需删除 | 
 |  |  |             awardItemList = ipyData.GetAwardItemListFirst() | 
 |  |  |             awardItemList = ipyData.GetAwardItemListFirst() if isFirstPass else ipyData.GetAwardItemList() | 
 |  |  |              | 
 |  |  |     if awardItemList == None: | 
 |  |  |         awardItemList = [] | 
 |  |  |          | 
 |  |  |     GameWorld.DebugLog("奖励物品: %s" % awardItemList) | 
 |  |  |     GameWorld.DebugLog("奖励物品: %s, isFirstPass=%s" % (awardItemList, isFirstPass)) | 
 |  |  |     if awardWay == 1 and awardItemList: | 
 |  |  |         ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["TurnFight", False, {"mapID":mapID, "funcLineID":funcLineID}]) | 
 |  |  |          | 
 |  |  | 
 |  |  |     overMsg = {"isWin":isWin, "itemInfo":FBCommon.GetJsonItemList(awardItemList), "totalHurt":factionTotalHurtDict.get(1, 0)} | 
 |  |  |     playbackID and overMsg.update({"playbackID":playbackID}) | 
 |  |  |     SyncTurnFightState(curPlayer, mapID, funcLineID, tagPlayerID, FightState_Award, turnNum, turnMax, overMsg) | 
 |  |  |      | 
 |  |  |     # 其他... | 
 |  |  |     PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_FBChallenge, 1, [mapID]) | 
 |  |  |     if isWin: | 
 |  |  |         PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_FBPass) | 
 |  |  |     return | 
 |  |  |  | 
 |  |  | def GetPlayerFactionInfoByCache(playerID): | 
 |  |  | 
 |  |  |     factionA, factionB, mainRolePlace = 1, 2, 1 | 
 |  |  |     objRetA = __SummonFactionObjs(factionA, mainRolePlace, factionInfoA, sightLevel, posX, posY) | 
 |  |  |     objRetB = __SummonFactionObjs(factionB, mainRolePlace, factionInfoB, sightLevel, posX, posY) | 
 |  |  |     objA, petObjListA, factionSyncInfoA = objRetA if objRetA else (None, []) | 
 |  |  |     objB, petObjListB, factionSyncInfoB = objRetB if objRetB else (None, []) | 
 |  |  |     objA, petObjListA, factionSyncInfoA = objRetA if objRetA else (None, [], {}) | 
 |  |  |     objB, petObjListB, factionSyncInfoB = objRetB if objRetB else (None, [], {}) | 
 |  |  |     if not objA or not objB: | 
 |  |  |         fightObjList = petObjListA + [objA] + petObjListB + [objB] | 
 |  |  |         for gameObj in fightObjList: | 
 |  |  |             TurnFightObjOverReset(gameObj, tick) | 
 |  |  |         return | 
 |  |  |     playerIDA = objA.GetDictByKey(ChConfig.Def_NPC_Dict_MirrorPlayerID) # 可能为0,非玩家镜像时为0 | 
 |  |  |     playerIDB = objB.GetDictByKey(ChConfig.Def_NPC_Dict_MirrorPlayerID) # 可能为0,非玩家镜像时为0 |