5076 【后端】【1.3】增加通关冰晶矿脉副本(任意副本、任意星数)的触发任务条件
1个文件已修改
25 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
@@ -29,6 +29,7 @@
import ItemCommon
import ItemControler
import EventReport
import EventShell
import ChPyNetSendPack
import NetPackCommon
import BuffSkill
@@ -111,19 +112,26 @@
            return
    starCnt, lineList = GetIceLodeAllStarCnt(curPlayer)
    if not lineList:
        __RandomLine(curPlayer)
        __RandomLine(curPlayer, lineList)
    SyncIceLoddInfo(curPlayer)
    return
def __RandomLine(curPlayer):
def __RandomLine(curPlayer, oldlineList):
    # 随机今日玩法
    maxCnt, randomCnt = IpyGameDataPY.GetFuncEvalCfg('IceLodeCfg', 2)
    lineList = range(maxCnt)
    random.shuffle(lineList)
    for i, lineID in enumerate(lineList):
        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_IceLoadLineID, lineID, 0 if i >= randomCnt else 1)
    newlineList = list(set(lineList) - set(oldlineList))
    if len(newlineList) < randomCnt:
        random.shuffle(oldlineList)
        newlineList += oldlineList[:randomCnt-len(newlineList)]
    else:
        random.shuffle(newlineList)
        newlineList = newlineList[:randomCnt]
    #random.shuffle(lineList)
    for lineID in lineList:
        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_IceLoadLineID, lineID, 1 if lineID in newlineList else 0)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeDayLV, curPlayer.GetLV())
    GameWorld.DebugLog('    随机冰晶矿脉今日玩法 lineList =%s'%(lineList[:randomCnt]), curPlayer.GetID())
    GameWorld.DebugLog('    随机冰晶矿脉今日玩法 oldlineList=%s, newlineList =%s'%(oldlineList, newlineList), curPlayer.GetID())
    return
## 是否能够通过活动查询进入
@@ -577,6 +585,7 @@
        
        jsonItemList = FBCommon.GetJsonItemList(itemList)
        overDict[FBCommon.Over_itemInfo] = jsonItemList
        EventShell.EventRespons_FBEvent(curPlayer, 'icelode')
    # 通知结果
    __SendIceLodeOverInfo(curPlayer, overDict)
    
@@ -732,7 +741,7 @@
        if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_IceLoadLineID, i):
            starCnt += GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, i, False, [ChConfig.Def_FBMapID_IceLode])
            lineList.append(i)
    if len(lineList) != randomCnt:
    if lineList and len(lineList) != randomCnt:
        GameWorld.ErrLog('    冰晶矿脉获取当前总星数,当前线路数量异常!lineList=%s'%lineList)
    return starCnt, lineList[:randomCnt]
@@ -774,7 +783,7 @@
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeStarAwardRecord, 0)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeHasSweep, 0)
    #随机今日玩法
    __RandomLine(curPlayer)
    __RandomLine(curPlayer, lineList)
    #֪ͨ
    SyncIceLoddInfo(curPlayer)
    return True