| | |
| | |
|
| | | import FBCommon
|
| | | import GameWorld
|
| | | import PlayerControl
|
| | | import IpyGameDataPY
|
| | | import ItemControler
|
| | | import NPCCommon
|
| | | import ChConfig
|
| | |
|
| | | ## 是否能够通过活动查询进入
|
| | |
| | | ## 是否需要做进入副本通用检查条件逻辑,默认需要检查
|
| | | def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID):
|
| | | ## 进行中的不需要重复检查,防止断线重连被禁止进入
|
| | | if FBCommon.GetCustomMapStep(curPlayer, mapID, lineID) == ChConfig.CustomMapStep_Fight:
|
| | | GameWorld.DebugLog("通用养成副本已经在进行中,本次进入不需要重新检查! mapID=%s,lineID=%s" % (mapID, lineID))
|
| | | return False
|
| | | return True
|
| | |
|
| | | ## 客户端进入自定义场景
|
| | | def OnEnterCustomScene(curPlayer, mapID, lineID):
|
| | | return
|
| | |
|
| | | ## 判断可否召唤木桩怪
|
| | | def OnCanSummonPriWoodPile(curPlayer, mapID, lineID, npcID, count):
|
| | | |
| | | if FBCommon.GetCustomMapStep(curPlayer, mapID, lineID) != ChConfig.CustomMapStep_Fight:
|
| | | FBCommon.SetCustomMapStep(curPlayer, mapID, lineID, ChConfig.CustomMapStep_Fight)
|
| | | |
| | | npcIDList = GetGeneralTrainNPCIDList(mapID, lineID)
|
| | | if not npcIDList or npcID not in npcIDList:
|
| | | GameWorld.DebugLog("通用养成副本该NPC不能召唤! mapID=%s,lineID=%s,npcID=%s not in %s" % (mapID, lineID, npcID, npcIDList))
|
| | | return False
|
| | | |
| | | return True
|
| | |
|
| | | def OnCustomSceneProcess(curPlayer, mapID, lineID, tick):
|
| | | return
|
| | |
|
| | | def GetGeneralTrainNPCIDList(mapID, lineID):
|
| | | npcIDList = []
|
| | |
| | | if not ipyData:
|
| | | return 0
|
| | | return ipyData.GetBossNPCID()
|
| | |
|
| | | ## 自定义场景副本击杀NPC
|
| | | def DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID):
|
| | | |
| | | npcID = curNPC.GetNPCID()
|
| | | bossID = GetGeneralTrainBossID(mapID, lineID)
|
| | | GameWorld.DebugLog("击杀副本NPC: mapID=%s,lineID=%s,npcID=%s,bossID=%s" % (mapID, lineID, npcID, bossID), curPlayer.GetPlayerID())
|
| | | if npcID != bossID:
|
| | | return
|
| | | |
| | | if FBCommon.GetCustomMapStep(curPlayer, mapID, lineID) != ChConfig.CustomMapStep_Fight:
|
| | | return
|
| | | |
| | | ipyData = IpyGameDataPY.GetIpyGameData('FBGeneralTrain', mapID, lineID)
|
| | | if not ipyData:
|
| | | return
|
| | | |
| | | passLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBPassLineID % mapID)
|
| | | if lineID > passLineID:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBPassLineID % mapID, lineID)
|
| | | |
| | | #增加进入次数
|
| | | FBCommon.AddEnterFBCount(curPlayer, mapID)
|
| | | |
| | | giveItemList = ipyData.GetPassAwardItemList()
|
| | | GameWorld.DebugLog("通用养成副本过关! mapID=%s,lineID=%s,giveItemList=%s" % (mapID, lineID, giveItemList))
|
| | | |
| | | NPCCommon.DoGiveItemByVirtualDrop(curPlayer, giveItemList, bossID)
|
| | | |
| | | FBCommon.SetCustomMapStep(curPlayer, mapID, lineID, ChConfig.CustomMapStep_Over)
|
| | | |
| | | isPass = 1
|
| | | overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}
|
| | | FBCommon.NotifyFBOver(curPlayer, mapID, lineID, isPass, overDict)
|
| | | return
|
| | |
|
| | | ## 可否扫荡
|
| | | def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx):
|