| | |
| | | packData.Cnt = len(packData.InfoList)
|
| | | NetPackCommon.SendFakePack(curPlayer, packData)
|
| | | return
|
| | |
|
| | | #// B1 08 快速一键过关副本 #tagCMFBQuickPass
|
| | | #
|
| | | #struct tagCMFBQuickPass
|
| | | #{
|
| | | # tagHead Head;
|
| | | # DWORD MapID;
|
| | | # WORD LineID;
|
| | | #};
|
| | | def OnFBQuickPass(playerIndex, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(playerIndex)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | mapID = clientData.MapID
|
| | | lineID = clientData.LineID
|
| | | GameWorld.DebugLog("玩家请求快速一键过关副本: mapID=%s,lineID=%s" % (mapID, lineID), playerID)
|
| | | |
| | | fbIpyData = FBCommon.GetFBIpyData(mapID)
|
| | | fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID)
|
| | | if FBCommon.CheckCanEnterFBComm(curPlayer, mapID, lineID, fbIpyData, fbLineIpyData) != ShareDefine.EntFBAskRet_OK:
|
| | | return
|
| | | |
| | | reqRet = FBLogic.OnPlayerFBQuickPass(curPlayer, mapID, lineID)
|
| | | if not reqRet or len(reqRet) != 2:
|
| | | GameWorld.DebugLog("无法一键过关副本: mapID=%s,lineID=%s" % (mapID, lineID), playerID)
|
| | | return
|
| | | bossID, quickCnt = reqRet
|
| | | if bossID:
|
| | | npcData = GameWorld.GetGameData().FindNPCDataByID(bossID)
|
| | | if not npcData:
|
| | | return
|
| | | npcFightPower = NPCCommon.GetSuppressFightPower(npcData)
|
| | | quickNeedRatio = IpyGameDataPY.GetFuncCfg("FBQuickPass", 1)
|
| | | quickNeedFightPower = int(npcFightPower * quickNeedRatio)
|
| | | curFightPower = PlayerControl.GetFightPower(curPlayer)
|
| | | if quickNeedFightPower and curFightPower < quickNeedFightPower:
|
| | | GameWorld.DebugLog("无法一键过关副本! 战力限制: mapID=%s,lineID=%s,bossID=%s,npcFightPower=%s,quickNeedFightPower=%s > %s" |
| | | % (mapID, lineID, bossID, npcFightPower, quickNeedFightPower, curFightPower), playerID)
|
| | | return
|
| | | |
| | | #增加副本进入次数
|
| | | if fbIpyData and fbIpyData.GetDayTimes() and quickCnt:
|
| | | # 跳关超过1关的要重新验证下
|
| | | if quickCnt > 1 and FBCommon.CheckCanEnterFBComm(curPlayer, mapID, lineID, fbIpyData, fbLineIpyData, quickCnt) != ShareDefine.EntFBAskRet_OK:
|
| | | return
|
| | | FBCommon.AddEnterFBCount(curPlayer, mapID, quickCnt)
|
| | | |
| | | #扫荡结果给奖励等
|
| | | FBLogic.OnPlayerFBQuickPassResult(curPlayer, mapID, lineID)
|
| | | return
|
| | |
|