| #!/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  | 
|   | 
|   | 
|   | 
|   | 
|   |