| | |
| | | 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 |