#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Player.RemoteQuery.GY_Query_MergePKAward # # @todo:ÁìÈ¡¿ç·þÆ¥ÅäPK½±Àø # @author hxp # @date 2016-12-20 # @version 1.0 # # ÏêϸÃèÊö: ÁìÈ¡¿ç·þÆ¥ÅäPK½±Àø # #------------------------------------------------------------------------------- #"""Version = 2016-12-20 17:30""" #------------------------------------------------------------------------------- import GameWorld import ChConfig import ItemControler import IPY_GameWorld import DataRecordPack import PlayerMergePK import ShareDefine #--------------------------------------------------------------------- ## Ö´Ðнá¹û # @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò # @param callFunName ¹¦ÄÜÃû³Æ # @param funResult ²éѯµÄ½á¹û # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def DoResult(curPlayer, callFunName, funResult, tick): playerID = curPlayer.GetPlayerID() curPlayer.SetTickByType(ChConfig.TYPE_Player_Tick_MergePKAward, 0) GameWorld.Log("GY_Query_MergePKAward funResult=%s" % funResult, playerID) if not funResult: return try: awardType, awardIndex, awardInfoList = eval(funResult) except: GameWorld.ErrLog("GY_Query_MergePKAward() %s eval Error" % funResult, playerID) return drNameDict = {ShareDefine.Def_MergePKAward_DayPKCnt:"MergePKDayPKCnt", ShareDefine.Def_MergePKAward_DayWinCnt:"MergePKDayWinCnt", ShareDefine.Def_MergePKAward_SeasonGrade:"MergePKSeasonGrade", ShareDefine.Def_MergePKAward_SeasonRank:"MergePKSeasonRank", ShareDefine.Def_MergePKAward_FirstWinCnt:"MergePKFirstWinCnt", } if awardType not in drNameDict: return DR_Name = drNameDict[awardType] # Ê×´ÎʤÀû´ÎÊý½±ÀøÐèÒª¶îÍâÅжϵØÍ¼´æ´¢µÄÁ콱״̬ if awardType == ShareDefine.Def_MergePKAward_FirstWinCnt: firstWinCntReward = PlayerMergePK.__GetMergePKPDictValue(curPlayer, ChConfig.Def_PDict_MergePK_FirstWinCntReward) if firstWinCntReward&pow(2,awardIndex): GameWorld.DebugLog(" ÒÑÁìÈ¡¹ý¸Ã½±Àø£¡") return firstWinCntReward = firstWinCntReward|pow(2, awardIndex) PlayerMergePK.__SetMergePKPDictValue(curPlayer, ChConfig.Def_PDict_MergePK_FirstWinCntReward, firstWinCntReward) PlayerMergePK.Sync_MergePKAwardRecord(curPlayer) for itemID, itemCnt, isBind, isAppoint in awardInfoList: if itemCnt <= 0: continue recordData = {'AwardIndex':awardIndex} if isAppoint: if not ItemControler.GivePlayerAppointItem(curPlayer, itemID, isBind, True, True, event=[DR_Name, True, recordData]): GameWorld.Log("¸ø¿ç·þPK½±ÀøÎïÆ·Ê§°Ü! itemID=%s,itemCnt=%s,isBind=%s,isAppoint=%s" % (itemID, itemCnt, isBind, isAppoint), playerID) continue else: packList = [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere] if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, packList, True, showSysInfo=True, event=[DR_Name, True, recordData]): GameWorld.Log("¸ø¿ç·þPK½±ÀøÎïÆ·Ê§°Ü! itemID=%s,itemCnt=%s,isBind=%s,isAppoint=%s" % (itemID, itemCnt, isBind, isAppoint), playerID) continue #addDataDict = {"awardType":awardType, "awardIndex":awardIndex, "awardInfoList":awardInfoList} #DataRecordPack.DR_SetPlayerItem(curPlayer, DR_Name, itemID, 1, addDataDict) return