| | |
| | | GameWorld.DebugLog("推金币抽奖: playerSign=%s,tuijinbiCnt=%s,prizeRateList=%s" % (playerSign, tuijinbiCnt, prizeRateList), playerID)
|
| | |
|
| | | addPoolPrizeInfo = {} # 增加台面奖池信息
|
| | | drawInfo = GameWorld.GetResultByRandomList(prizeRateList)
|
| | | drawIndex, drawInfo = GameWorld.GetResultIndexByRandomList(prizeRateList)
|
| | | if playerSign == Sign_NewVerPlayer and not tuijinbiCnt: # 新版本玩家首次推
|
| | | for _ in range(100):
|
| | | if drawInfo and drawInfo[0] in [PrizeType_Gold, PrizeType_Xianyu]: # 首次只能产出金币或仙玉币
|
| | | break
|
| | | drawInfo = GameWorld.GetResultByRandomList(prizeRateList)
|
| | | drawIndex, drawInfo = GameWorld.GetResultIndexByRandomList(prizeRateList)
|
| | |
|
| | | # 首次附加默认初始奖励
|
| | | initPrizeList = IpyGameDataPY.GetFuncEvalCfg("EnSuperDiscount", 5)
|
| | |
| | | if not drawInfo or len(drawInfo) != 2:
|
| | | return
|
| | | drawType, drawCount = drawInfo
|
| | | GameWorld.DebugLog("抽到: drawIndex=%s,drawInfo=%s,drawType=%s,drawCount=%s" % (drawIndex, drawInfo, drawType, drawCount), playerID)
|
| | | PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_Tuijinbi, 1, isNotify=False)
|
| | |
|
| | | # 红包,直接给奖励
|
| | | if drawType == PrizeType_Redpack:
|
| | | randMoneyList = IpyGameDataPY.GetFuncEvalCfg("PushCoin", 3)
|
| | | randMoney = random.choice(randMoneyList)
|
| | | GameWorld.DebugLog("抽到红包直接给: %s" % str(randMoney), playerID)
|
| | | GameWorld.DebugLog("红包直接给: %s" % str(randMoney), playerID)
|
| | | if randMoney and len(randMoney) == 2:
|
| | | __GiveMoney(curPlayer, randMoney[0], randMoney[1], True)
|
| | |
|
| | |
| | | elif drawType == PrizeType_Super:
|
| | | randPrizeList = IpyGameDataPY.GetFuncEvalCfg("PushCoin", 2)
|
| | | randPrize = random.choice(randPrizeList)
|
| | | GameWorld.DebugLog("抽到超级奖励: %s" % str(randPrize), playerID)
|
| | | GameWorld.DebugLog("超级奖励: %s" % str(randPrize), playerID)
|
| | | if randPrize and len(randPrize) == 2:
|
| | | randPrizeType, randValue = randPrize
|
| | | addPoolPrizeInfo[randPrizeType] = addPoolPrizeInfo.get(randPrizeType, 0) + randValue
|
| | | else:
|
| | | GameWorld.DebugLog("抽到: drawType=%s,drawCount=%s" % (drawType, drawCount), playerID)
|
| | | GameWorld.DebugLog("添加奖池: drawType=%s,drawCount=%s" % (drawType, drawCount), playerID)
|
| | | addPoolPrizeInfo[drawType] = addPoolPrizeInfo.get(drawType, 0) + drawCount
|
| | |
|
| | | for prizeType, addCnt in addPoolPrizeInfo.items():
|
| | |
| | | tuijinbiCnt += 1
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TuiJinbiCnt, tuijinbiCnt)
|
| | | GameWorld.DebugLog("更新累计推金币次数: %s" % (tuijinbiCnt), playerID)
|
| | | SyncTuijinbiInfo(curPlayer, drawType, drawCount)
|
| | | SyncTuijinbiInfo(curPlayer, drawIndex + 1)
|
| | | return
|
| | |
|
| | | def __DoGivePrize(curPlayer, prizeType, prizeCount):
|
| | |
| | | ItemControler.NotifyGiveAwardInfo(curPlayer, [], "Tuijinbi", moneyInfo={moneyType:moneyValue})
|
| | | return
|
| | |
|
| | | def SyncTuijinbiInfo(curPlayer, drawType=0, drawCount=0):
|
| | | def SyncTuijinbiInfo(curPlayer, drawNum=0):
|
| | | poolPrizeList = [] # 台面信息
|
| | | for prizeType in [PrizeType_Gold, PrizeType_Xianyu]:
|
| | | prizeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TuiJinbiPool % prizeType)
|
| | |
| | | poolPrizeList.append(poolInfo)
|
| | |
|
| | | clientPack = ChPyNetSendPack.tagMCTuijinbiInfo()
|
| | | clientPack.DrawType = drawType
|
| | | clientPack.DrawCount = drawCount
|
| | | clientPack.DrawNum = drawNum
|
| | | clientPack.PoolPrizeList = poolPrizeList
|
| | | clientPack.PoolPrizeCnt = len(clientPack.PoolPrizeList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|