#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GameWorldLogic.FBProcess.GameLogic_PersonalBoss # # @todo:¸öÈËBoss¡¢VIPBoss # @author hxp # @date 2019-05-23 # @version 1.0 # # ÏêϸÃèÊö: ¸öÈËBoss¡¢VIPBoss # ±¾¸±±¾×öǰ¶Ë×Ô¶¨Ò峡¾°´¦Àí£¬ºó¶ËÎÞʵ¼ÊµØÍ¼ # #------------------------------------------------------------------------------- #"""Version = 2019-05-23 17:30""" #------------------------------------------------------------------------------- import FBCommon import GameWorld import PlayerBossReborn import PlayerNewFairyCeremony import PlayerActGarbageSorting import PlayerFairyCeremony import PlayerFeastTravel import IpyGameDataPY import ChConfig def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList): ## »ØºÏÕ½¶·ÇëÇó - µØÍ¼ÑéÖ¤ # Ö»ÄÜÒ»¹Ø¹ØÌôÕ½ passLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBPassLineID % mapID) if funcLineID != passLineID + 1: GameWorld.ErrLog("Ö»ÄÜÌôÕ½ÏÂÒ»¹Ø! mapID=%s,funcLineID=%s,passLineID=%s,nextLineID=%s" % (mapID, funcLineID, passLineID, passLineID + 1), curPlayer.GetPlayerID()) return ipyData = IpyGameDataPY.GetIpyGameData("PersonalBoss", funcLineID) if not ipyData: return bossID = ipyData.GetNPCID() if tagID != bossID or tagType != ChConfig.TurnBattle_TagType_NPC: GameWorld.ErrLog("Ä¿±êbossID´íÎó£¬ÎÞ·¨ÌôÕ½! mapID=%s,funcLineID=%s,bossID=%s,tagType=%s,tagID=%s" % (mapID, funcLineID, bossID, tagType, tagID), curPlayer.GetPlayerID()) return return True def OnTurnFightOver(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet): ## »ØºÏÕ½¶·½áÊø # @return: ÊÇ·ñÐèҪͬ²½GameServer, ½±ÀøÁбí, ͬ²½½á¹ûÐÅÏ¢ needSendGameServer = False overInfoEx = {} isWin = fightRet[0] GameWorld.DebugLog("¸±±¾½áËã: mapID=%s,funcLineID=%s,isWin=%s" % (mapID, funcLineID, isWin)) ipyData = IpyGameDataPY.GetIpyGameData("PersonalBoss", funcLineID) if not ipyData: return OnFBJoin(curPlayer, mapID, funcLineID) if not isWin: return awardItemList = ipyData.GetFirstAwardItemList() isFree = True #Ôö¼Ó½øÈë´ÎÊý FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_PersonalBoss, isFree=isFree) #ÉèÖÃÐǼ¶£¬¼æÈݾÍÂß¼­ grade = 5 GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, funcLineID, grade, False, [mapID]) OnFBPass(curPlayer, mapID, funcLineID, awardItemList) return needSendGameServer, awardItemList, overInfoEx ## ¿É·ñɨµ´ def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx): passLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBPassLineID % mapID) if passLineID < lineID: GameWorld.DebugLog("δ»÷ɱ²»ÄÜɨµ´! mapID=%s,lineID=%s > passLineID(%s)" % (mapID, lineID, passLineID)) return return True ## ɨµ´½á¹û def OnPlayerFBSweepResult(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx): GameWorld.DebugLog("ɨµ´: mapID=%s,lineID=%s,sweepCnt=%s" % (mapID, lineID, sweepCnt), curPlayer.GetPlayerID()) ipyData = IpyGameDataPY.GetIpyGameData("PersonalBoss", lineID) if not ipyData: return awardItemList = [] for itemID, itemCount, isAuctionItem in ipyData.GetSweepAwardItemList(): awardItemList.append([itemID, itemCount * sweepCnt, isAuctionItem]) OnFBJoin(curPlayer, mapID, lineID, sweepCnt) OnFBPass(curPlayer, mapID, lineID, awardItemList, sweepCnt, True) return True def OnFBJoin(curPlayer, mapID, funcLineID, joinCount=1): ## ¸±±¾²ÎÓë FBCommon.OnFBJoin(curPlayer, mapID, funcLineID, joinCount) return def OnFBPass(curPlayer, mapID, funcLineID, awardItemList=None, passCount=1, isSweep=False): ## ¸±±¾¹ý¹Ø FBCommon.OnFBPass(curPlayer, mapID, funcLineID, awardItemList, passCount) PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_VIPBOSS, passCount) PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_VIPBoss, passCount) PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_VIPBoss, passCount) PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_VIPBoss, passCount) PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_KillBoss, passCount) isPass = 1 overDict = {FBCommon.Over_itemInfo:awardItemList} if isSweep: overDict.update({FBCommon.Over_isSweep:1}) FBCommon.NotifyFBOver(curPlayer, mapID, funcLineID, isPass, overDict) return