xdh
2018-10-13 fea76cc7386e6c35cfe0f4910f066d04d24061f0
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
#-------------------------------------------------------------------------------
#
##@package PlayerStore
#
# @todo:É̳Ç
# @author xdh
# @date 2018-10-09
# @version 1.0
#
#
# ÏêϸÃèÊö: É̳ÇÈ«·þÏÞ¹º´¦Àí
#
#---------------------------------------------------------------------
"""Version = 2018-10-09 17:00"""
 
import GameWorld
import PlayerUniversalGameRec
import ShareDefine
import PlayerControl
import IpyGameDataPY
 
RecType = ShareDefine.Def_UniversalGameRecType_StoreServerCntRecord
 
## Íæ¼ÒµÇ¼
#  @param None
#  @return None
def OnPlayerLogin(curPlayer):
    PlayerUniversalGameRec.SendUniversalGameRecInfo(curPlayer, RecType)
    return
 
 
## É̳ÇÈ«·þÏÞ¹º²éѯ½á¹û
#  @param curPlayer Íæ¼ÒʵÀý
#  @param msgList ÐÅÏ¢Áбí
#  @return awardID
def DoStoreServerBuyQueryResult(curPlayer, msgList):
    goodsID = msgList[0]
    serverLimitCnt = msgList[1]
    buyCount = msgList[2]
    
    curGotCnt = 0
    
    universalRecMgr = GameWorld.GetUniversalRecMgr()
    recTypeListData = universalRecMgr.GetTypeList(RecType)
    findRecData = None 
    for index in range(recTypeListData.Count()):
        recData = recTypeListData.At(index)
        curGoodsID = recData.GetValue1()
        if goodsID == curGoodsID:
            findRecData = recData
            curGotCnt = recData.GetValue2()
            break
    
    if curGotCnt + buyCount > serverLimitCnt:
        GameWorld.Log('    ¹ºÂòÉÌÆ· È«·þ¹ºÂò´ÎÊý²»¹» goodsID=%s,curGotCnt=%s,buyCount=%s,serverLimitCnt=%s'%(goodsID, curGotCnt, buyCount, serverLimitCnt))
        return
    if not findRecData:
        findRecData = recTypeListData.AddRec()
        findRecData.SetValue1(goodsID)
    findRecData.SetValue2(curGotCnt+buyCount)
    #֪ͨ
    playerManager = GameWorld.GetPlayerManager()
    for i in xrange(playerManager.GetActivePlayerCount()):
        curPlayer = playerManager.GetActivePlayerAt(i)
        if curPlayer == None or not curPlayer.GetInitOK():
            continue
        if PlayerControl.GetIsTJG(curPlayer):
            continue
        PlayerUniversalGameRec.SendUniversalGameRecSingle(curPlayer, findRecData)
    
    return msgList
 
def DoResetStoreServerBuyCnt(shopTypeList):
    '''¸ù¾ÝÉ̵êÀàÐÍÖØÖÃÈ«·þ¹ºÂò´ÎÊý'''
    universalRecMgr = GameWorld.GetUniversalRecMgr()
    recTypeListData = universalRecMgr.GetTypeList(RecType)
    
    delCnt = 0
    for index in xrange(recTypeListData.Count()):
        dataIndex = index - delCnt
        recData = recTypeListData.At(dataIndex)
        curGoodsID = recData.GetValue1()
        ipyData = IpyGameDataPY.GetIpyGameData("Store", curGoodsID)
        if not ipyData:
            continue
        if ipyData.GetShopType() not in shopTypeList:
            continue
        recTypeListData.Delete(dataIndex)
        delCnt +=1
    GameWorld.DebugLog('    ¸ù¾ÝÉ̵êÀàÐÍÖØÖÃÈ«·þ¹ºÂò´ÎÊý shopTypeList=%s'%shopTypeList)
    if delCnt:
        PlayerUniversalGameRec.SendUniversalGameRecInfo(None, RecType)
    return
 
 
def ResetFlashSaleBuyCnt(ipyData, dayIndex, state):
    #ÖØÖÃÏÞʱÇÀ¹ºÉ̵êÈ«·þ¹ºÂò´ÎÊý
    if state == 0:
        return
    shopTypeList = ipyData.GetShopTypeList()
    dayShopList = shopTypeList[dayIndex] if dayIndex < len(shopTypeList) else shopTypeList[-1]
    shopType = dayShopList[state-1] if state-1 < len(dayShopList) else dayShopList[-1]
    DoResetStoreServerBuyCnt([shopType])
    return