8710 【开发】【主干】【BT2】根据世界等级配置奖励(集字活动支持按世界等级配置不同奖励);
4个文件已修改
51 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActCollectWords.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -588,11 +588,14 @@
        sendMapServerMsgDict = mapServerInfoDict.get(actName, {})
        
        dbOperationActIDKey = PlayerDBGSEvent.Def_OperationActID % actName
        curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID)
        dbActID = PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey)
        curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID, 0)
        dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
        if curActID and PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey) != curActID:
            GameWorld.Log("    dbActID变更,dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
        if dbActID != curActID:
            GameWorld.Log("    dbActID变更: dbActID=%s,curActID=%s" % (dbActID, curActID))
            PlayerDBGSEvent.SetDBGSTrig_ByKey(dbOperationActIDKey, curActID)
            if curActID:
            if actName in ShareDefine.NeedWorldLVOperationActNameList:
                #记录开启时世界等级
                worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
@@ -618,12 +621,12 @@
                #dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
                PlayerStore.ResetFlashSaleBuyCnt(ipyData)
        else:
            GameWorld.Log("    dbActID不变或无活动: dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
            GameWorld.Log("    dbActID不变: dbActID=%s,curActID=%s" % (dbActID, curActID))
            
        if actName in ShareDefine.NeedWorldLVOperationActNameList:
            actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName)
            sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV
            GameWorld.Log("    活动开始时世界等级: actWorldLV=%s" % (actWorldLV))
            GameWorld.Log("    活动世界等级: actWorldLV=%s" % (actWorldLV))
            
        if actName == ShareDefine.OperationActionName_ExpRate:
            if isReload and ipyData:
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -245,6 +245,7 @@
                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
                                   OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
                                   OperationActionName_WeekParty,
                                   OperationActionName_CollectWords, OperationActionName_CollectWords2,
                                   ]
#跨服运营活动表名定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActCollectWords.py
@@ -76,19 +76,20 @@
        GameWorld.DebugLog("集字活动ID不变,不处理!actNum=%s,actID=%s" % (actNum, actID), curPlayer.GetPlayerID())
        return
    
    templateID = 0
    cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
    if cfgID:
    actIpyData = IpyGameDataPY.GetIpyGameData(actName, cfgID)
    templateID = 0 if not actIpyData else actIpyData.GetTemplateID()
    exchangeList = IpyGameDataPY.GetIpyGameDataList("CollectWordsExchange", templateID)
    if not exchangeList:
        GameWorld.ErrLog("集字兑换找不到兑换模板配置!actNum=%s,cfgID=%s,templateID=%s" % (actNum, cfgID, templateID), playerID)
        return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CollectWordsID % actNum, actID)
        else:
    for exchangeIpyData in exchangeList:
        exchangeNum = exchangeIpyData.GetExchangeNum()
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CollectWordsExchangeCount % (actNum, exchangeNum), 0)
        
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CollectWordsID % actNum, actID)
    GameWorld.DebugLog("集字活动重置! actNum=%s,cfgID=%s,templateID=%s,actID=%s" % (actNum, cfgID, templateID, actID), playerID)
    
    if state:
@@ -250,7 +251,7 @@
                           % (templateID, exchangeNum, curExchangeCount, exchangeCountMax))
        return
    
    exchangeItemInfo = findIpyData.GetExchangeItemInfo()
    exchangeItemInfo = __GetExchangeItemInfo(findIpyData.GetExchangeItemInfo(), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
    if len(exchangeItemInfo) != 3:
        return
    exchangeItemID = exchangeItemInfo[0]
@@ -285,6 +286,11 @@
        
    return
def __GetExchangeItemInfo(cfgExchangeItemInfo, worldLV):
    if isinstance(cfgExchangeItemInfo, dict):
        return GameWorld.GetDictValueByRangeKey(cfgExchangeItemInfo, worldLV, [])
    return cfgExchangeItemInfo
def SyncCollectWordsActionInfo(curPlayer, actNum):
    ## 同步活动信息
    
@@ -309,18 +315,18 @@
        return
    
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
    actInfo = ChPyNetSendPack.tagMCActCollectWordsInfo()
    actInfo.ActNum = actNum
    actInfo.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
    actInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
    actInfo.LimitLV = ipyData.GetLVLimit()
    actInfo.LastDayOnlyExchange = ipyData.GetLastDayOnlyExchange()
    actInfo.ExchangeItemList = []
    clientPack = ChPyNetSendPack.tagMCActCollectWordsInfo()
    clientPack.ActNum = actNum
    clientPack.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
    clientPack.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
    clientPack.LimitLV = ipyData.GetLVLimit()
    clientPack.LastDayOnlyExchange = ipyData.GetLastDayOnlyExchange()
    clientPack.ExchangeItemList = []
    
    exchangeList = IpyGameDataPY.GetIpyGameDataList("CollectWordsExchange", templateID)
    if exchangeList:
        for exchangeIpyData in exchangeList:
            itemID, itemCount, isBind = exchangeIpyData.GetExchangeItemInfo()
            itemID, itemCount, isBind = __GetExchangeItemInfo(exchangeIpyData.GetExchangeItemInfo(), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
            needItemList = exchangeIpyData.GetNeedItemList()
            
            exchangeItem = ChPyNetSendPack.tagMCActCollectWordsExchangeItem()
@@ -338,10 +344,10 @@
                exchangeItem.NeedItemList.append(needItem)
            exchangeItem.NeedItemCount = len(exchangeItem.NeedItemList)
            
            actInfo.ExchangeItemList.append(exchangeItem)
            clientPack.ExchangeItemList.append(exchangeItem)
            
    actInfo.ExchangeCount = len(actInfo.ExchangeItemList)
    NetPackCommon.SendFakePack(curPlayer, actInfo)
    clientPack.ExchangeCount = len(clientPack.ExchangeItemList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return
def SyncCollectWordsPlayerInfo(curPlayer, actNum, exchangeNum=0):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -245,6 +245,7 @@
                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
                                   OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
                                   OperationActionName_WeekParty,
                                   OperationActionName_CollectWords, OperationActionName_CollectWords2,
                                   ]
#跨服运营活动表名定义