| | |
| | | import ShareDefine
|
| | | import PlayerActivity
|
| | | import NPCCustomRefresh
|
| | | import ItemControler
|
| | | import PlayerWeekParty
|
| | | import EventReport
|
| | | import NPCCommon
|
| | | import GameObj
|
| | |
| | | if not state:
|
| | | if GameWorld.GetGameFB().GetFBStep() == FB_Step_Fighting:
|
| | | GameWorld.GetGameFB().SetGameFBDict(FBDict_IsOver, tick)
|
| | | __DoLogicHorsePetBossOver(0, tick)
|
| | | __DoLogicHorsePetBossOver(0, tick, 0, 0)
|
| | | return
|
| | |
|
| | | ## 进副本
|
| | |
| | | if not hadDelTicket:
|
| | | FBCommon.SetHadDelTicket(curPlayer)
|
| | | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_HorsePetBoss, 1)
|
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_HorsePetBoss, 1)
|
| | | EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_HorsePetBoss, 0, ChConfig.CME_Log_Start)
|
| | | EventShell.EventRespons_HorsePetBoss(curPlayer)
|
| | | if fbStep == FB_Step_Open:
|
| | |
| | | return playerHurtList
|
| | |
|
| | |
|
| | | def __DoLogicHorsePetBossOver(isPass, tick):
|
| | | def __DoLogicHorsePetBossOver(isPass, tick, dropPosX, dropPosY):
|
| | | #结算
|
| | | FBCommon.SetFBStep(FB_Step_Over, tick)
|
| | |
|
| | |
| | | auctionItemList, itemList = __GetHorsePetBossAward(lineID, rank, worldLV)
|
| | | else:
|
| | | auctionItemList, itemList = [], []
|
| | | GameWorld.Log('auctionItemList=%s,itemList=%s'%(auctionItemList, itemList))
|
| | | GameWorld.Log('auctionItemList=%s,itemList=%s, rank=%s'%(auctionItemList, itemList, rank), playerID)
|
| | | giveItemList = auctionItemList+itemList
|
| | | player = playerManager.FindPlayerByID(playerID)
|
| | | if player:
|
| | |
| | | if itemList:
|
| | | overDict[FBCommon.Over_itemInfo] = FBCommon.GetJsonItemList(itemList)
|
| | | if giveItemList:
|
| | | NPCCommon.DoGiveItemByVirtualDrop(player, giveItemList, bossID, mailTypeKey='QCBOSS1')
|
| | | #ItemControler.GivePlayerItemOrMail(player, giveItemList, 'QCBOSS1', event)
|
| | | NPCCommon.DoGiveItemByVirtualDrop(player, giveItemList, bossID, dropPosX, dropPosY, mailTypeKey='QCBOSS1')
|
| | |
|
| | | player.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
|
| | | FBCommon.NotifyFBOver(player, ChConfig.Def_FBMapID_HorsePetBoss, lineID, isPass, overDict)
|
| | | elif giveItemList:
|
| | |
| | | if len(itemInfo) != 3:
|
| | | GameWorld.ErrLog('骑宠Boss奖励表 配置错误 itemInfo=%s' % itemInfo)
|
| | | continue
|
| | | if not itemInfo[0]:
|
| | | continue
|
| | | if itemInfo[2]:
|
| | | auctionItemList.append(itemInfo)
|
| | | else:
|
| | | itemList.append(itemInfo)
|
| | |
|
| | | for doCnt, awardPieRateList in awardPieRateDict.items():
|
| | | for _ in xrange(doCnt):
|
| | | resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
|
| | | if len(resultItem) != 3:
|
| | | GameWorld.ErrLog('骑宠Boss奖励表配置错误 itemInfo=%s' % resultItem)
|
| | | continue
|
| | | if resultItem[2]:
|
| | | auctionItemList.append(resultItem)
|
| | | else:
|
| | | itemList.append(resultItem)
|
| | | for awardPieRateList in awardPieRateDict:
|
| | | resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
|
| | | if len(resultItem) != 3:
|
| | | GameWorld.ErrLog('骑宠Boss奖励表配置错误 itemInfo=%s' % resultItem)
|
| | | continue
|
| | | if not resultItem[0]:
|
| | | continue
|
| | | if resultItem[2]:
|
| | | auctionItemList.append(resultItem)
|
| | | else:
|
| | | itemList.append(resultItem)
|
| | | return auctionItemList, itemList
|
| | |
|
| | |
|
| | |
| | | if curNPC.GetNPCID() != bossID:
|
| | | return
|
| | |
|
| | | dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY()
|
| | | |
| | | #结束 设置BOSS死亡
|
| | | FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 0)
|
| | | GameWorld.DebugLog('结束 设置BOSS死亡 lineID=%s' % lineID)
|
| | |
|
| | | __DoLogicHorsePetBossOver(1, tick)
|
| | | __DoLogicHorsePetBossOver(1, tick, dropPosX, dropPosY)
|
| | | GameWorld.GetGameFB().SetGameFBDict(FBDict_IsOver, tick)
|
| | | return
|
| | |
|