| | |
| | | StrValue3:lotteryInfo 分区信息|大奖信息|中奖玩家账号
|
| | | '''
|
| | |
|
| | | Def_SyncBuyRec_Count = 50
|
| | |
|
| | | class LuckyCloudBuyNum():
|
| | | ''' 幸运云购购买号码记录
|
| | | '''
|
| | |
| | | zoneLotteryInfo = {zoneID:[lotteryRec.GetString()]}
|
| | | dataMsg = {"syncType":"New", "zoneLotteryInfo":zoneLotteryInfo}
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_LuckyCloudBuyLottery, dataMsg)
|
| | | |
| | | maxBuyCount = IpyGameDataPY.GetFuncCfg("LuckyCloudBuySet", 2)
|
| | | dataMsg = {"syncType":"All", "zoneID":zoneID, "zoneBuyNumList":[], "remainCount":maxBuyCount}
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_LuckyCloudBuyNum, dataMsg)
|
| | | return True
|
| | |
|
| | | def Sync_LuckyCloudBuyDataToClientServer(tick, serverGroupID=0):
|
| | |
| | | for zoneID in PyGameData.g_luckyCloudBuyLotteryDict.keys():
|
| | | zoneBuyNumList = []
|
| | | buyRecList = PyGameData.g_luckyCloudBuyNumDict.get(zoneID, [])
|
| | | for buyRec in buyRecList:
|
| | | for buyRec in buyRecList[-Def_SyncBuyRec_Count:]:
|
| | | zoneBuyNumList.append(buyRec.GetString())
|
| | |
|
| | | dataMsg = {"syncType":"All", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList}
|
| | | maxBuyCount = IpyGameDataPY.GetFuncCfg("LuckyCloudBuySet", 2)
|
| | | remainCount = max(0, maxBuyCount - len(buyRecList))
|
| | | dataMsg = {"syncType":"All", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList, "remainCount":remainCount}
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_LuckyCloudBuyNum, dataMsg)
|
| | |
|
| | | return
|
| | |
| | | DataRecordPack.SendEventPack("LuckyCloudBuyNum", dataDict)
|
| | |
|
| | | # 通知子服
|
| | | dataMsg = {"syncType":"New", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList, "buyPlayer":[serverGroupID, playerID, roundID, buyCount]}
|
| | | remainCount -= buyCount
|
| | | dataMsg = {"syncType":"New", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList, "buyPlayer":[serverGroupID, playerID, roundID, buyCount], "remainCount":remainCount}
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_LuckyCloudBuyNum, dataMsg)
|
| | |
|
| | | # 结算开奖
|
| | | if remainCount == buyCount:
|
| | | if remainCount <= 0:
|
| | | DoLuckyCloudBuyLottery(lotteryRec, False, "SoldOut")
|
| | |
|
| | | return
|
| | |
| | | zoneBuyNumList.append(buyRec.GetString())
|
| | |
|
| | | # 通知子服
|
| | | dataMsg = {"syncType":"New", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList}
|
| | | remainCount -= buyCount
|
| | | dataMsg = {"syncType":"New", "zoneID":zoneID, "zoneBuyNumList":zoneBuyNumList, "remainCount":remainCount}
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_LuckyCloudBuyNum, dataMsg)
|
| | |
|
| | | # 结算开奖
|
| | | if remainCount == buyCount:
|
| | | if remainCount <= 0:
|
| | | DoLuckyCloudBuyLottery(lotteryRec, False, "SoldOut")
|
| | | return
|
| | |
|
| | |
| | | syncType = msgData["syncType"] # All New
|
| | | zoneID = msgData["zoneID"]
|
| | | zoneBuyNumList = msgData["zoneBuyNumList"]
|
| | | remainCount = msgData["remainCount"]
|
| | |
|
| | | curServerGroupID = GameWorld.GetServerGroupID()
|
| | | actInfo = CrossActionControl.GetCrossActInfoByServerGroupID(ShareDefine.CrossActName_LuckyCloudBuy, curServerGroupID)
|
| | |
| | | GameWorld.DebugLog("不是本服务器分区的云购记录不处理! curServerGroupID=%s,serverZoneID(%s) != zoneID(%s)"
|
| | | % (curServerGroupID, serverZoneID, zoneID))
|
| | | return
|
| | | |
| | | PyGameData.g_luckyCloudBuyRemainCountDict[zoneID] = remainCount
|
| | |
|
| | | if syncType == "All":
|
| | | PyGameData.g_luckyCloudBuyNumDict = {}
|
| | |
| | | lotteryRec = None if not lotteryRecList else lotteryRecList[-1] # 取最新一期的
|
| | | if not lotteryRec:
|
| | | return
|
| | | syncRecList = buyRecList[-50:]
|
| | | |
| | | maxBuyCount = IpyGameDataPY.GetFuncCfg("LuckyCloudBuySet", 2)
|
| | | syncRecList = buyRecList[-Def_SyncBuyRec_Count:]
|
| | |
|
| | | clientPack = ChPyNetSendPack.tagGCLuckyCloudBuyNumRecInfo()
|
| | | clientPack.RemainCount = max(0, maxBuyCount - len(buyRecList))
|
| | | clientPack.RemainCount = PyGameData.g_luckyCloudBuyRemainCountDict.get(zoneID, 0)
|
| | | clientPack.BuyNumRecList = []
|
| | | for buyRec in syncRecList:
|
| | | buyNumInfo = ChPyNetSendPack.tagGCLuckyCloudBuyNumRec()
|