xdh
2018-08-21 80f11b590ece01d82d2af052876366bd2c1df2eb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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