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