hxp
2024-12-13 82913849bb18101c411c39bd14df207f656dd49d
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuperDiscount.py
@@ -152,12 +152,12 @@
    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)
@@ -168,13 +168,14 @@
    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)
            
@@ -182,12 +183,12 @@
    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():
@@ -199,7 +200,7 @@
    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):
@@ -231,7 +232,7 @@
        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)
@@ -243,8 +244,7 @@
        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)