hxp
2024-07-12 40673d6fac17bdead316b5aae223f7861d8d6eb7
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -36,6 +36,13 @@
import random
import time
TreasureTypeList = (
TreasureType_Jipin, # 极品寻宝 1
TreasureType_Rune, # 符印寻宝 2
TreasureType_Jueshi, # 绝世君宝 3
TreasureType_GatherTheSoul, # 聚魂猎魔 4
) = range(1, 1 + 4)
def DoTreasureOpen(curPlayer):
    ## 寻宝开启
    
@@ -93,6 +100,8 @@
    packType = ShareDefine.rptTreasure
    #if treasureType == 2:
    #    packType = ShareDefine.rptRune
    if treasureType in [TreasureType_GatherTheSoul]:
        packType = IPY_GameWorld.rptItem
        
    if not ItemCommon.CheckPackHasSpace(curPlayer, packType, True):
        GameWorld.DebugLog("对应寻宝背包没有空格子!packType=%s" % packType, playerID)
@@ -274,15 +283,14 @@
    isBind = 0 # 暂时默认不绑定
    job = curPlayer.GetJob()
    gridItemInfoDict = ipyData.GetGridItemInfo() # 格子对应物品信息 {"格子编号":[物品ID, 数量], ...}
    gridLibInfoDict = ipyData.GetGridLibInfo() # 格子对应物品信息 {"格子编号":[物品ID, 数量], ...}
    jobItemList = ipyData.GetJobItemList()
    treasureResult = []
    randItemIDDict = IpyGameDataPY.GetFuncEvalCfg("TreasureSet", 2)
    
    for gridNum in getGridResult:
        gridNum = str(gridNum)
        if gridNum not in gridItemInfoDict:
            GameWorld.ErrLog("寻宝格子不存在!treasureType=%s,gridNum=%s" % (treasureType, gridNum), playerID)
            return
        if gridNum in gridItemInfoDict:
        itemID, itemCount = gridItemInfoDict[gridNum]
        itemID = GetJobItem(job, itemID, jobItemList)
        if not itemID:
@@ -304,6 +312,27 @@
                                 % (treasureType, treasureIndex, gridNum, itemID), playerID)
                return
            itemID = random.choice(canRandItemList)
        # 根据物品库来随机
        elif gridNum in gridLibInfoDict:
            libID = gridLibInfoDict[gridNum]
            libItemList = IpyGameDataPY.GetIpyGameDataList("TreasureItemLib", libID)
            if not libItemList:
                return
            itemWeightList = []
            for libItem in libItemList:
                itemWeight, itemID, itemCount = libItem.GetItemWeight(), libItem.GetItemID(), libItem.GetItemCount()
                itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
                if not itemData:
                    continue
                itemWeightList.append([itemWeight, [itemID, itemCount]])
            if not itemWeightList:
                GameWorld.ErrLog("寻宝随机格子没有可随机的物品!treasureType=%s,treasureIndex=%s,gridNum=%s,libID=%s"
                                 % (treasureType, treasureIndex, gridNum, libID), playerID)
                return
            itemID, itemCount = GameWorld.GetResultByWeightList(itemWeightList)
        else:
            GameWorld.ErrLog("寻宝格子不存在!treasureType=%s,gridNum=%s" % (treasureType, gridNum), playerID)
            return
            
        treasureResult.append([gridNum, itemID, itemCount, isBind])
        
@@ -329,18 +358,20 @@
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), updLuck)
    PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_TreasureScore, addScore)
    
    if treasureType == 2:
    if treasureType == TreasureType_Rune:
        PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
        PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_RuneTreasure, treasureCount)
        PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RuneTreasure, treasureCount)
    elif treasureType == 1:
    elif treasureType == TreasureType_Jipin:
        PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
        PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_Treasure, treasureCount)
        PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_Treasure, treasureCount)
    elif treasureType == 3:
    elif treasureType == TreasureType_Jueshi:
        PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_JSTreasure, treasureCount)
        PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_JSTreasure, treasureCount)
        PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_JSTreasure, treasureCount)
    elif treasureType == TreasureType_GatherTheSoul:
        pass
        
    # 给物品
    mailItemList = []