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