hxp
2023-09-22 8495b01a0c80894ce04f04b9e37c96479aedcefc
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -65,13 +65,75 @@
def OpenRealmFB(index, clientData, tick):
    return
    
def GetXXZLAward(curPlayer, taskID):
    ## 领取修仙之路奖励
    awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmXXZLAward)
    if awardState&pow(2, taskID):
        GameWorld.DebugLog("已领取过境界修仙之路该奖励, taskID=%s" % taskID, curPlayer.GetPlayerID())
        return
    ipyData = IpyGameDataPY.GetIpyGameData("RealmXXZL", taskID)
    if not ipyData:
        return
    taskType = ipyData.GetTaskType()
    needValue = ipyData.GetNeedValue()
    curValue= 0
    #1. 得到 XXX法宝, 所需值为法宝ID
    if taskType == 1:
        magicWeaponID = needValue
        if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponLV % magicWeaponID) >= 1:
            curValue = needValue
    #2. 通关天星塔X层
    elif taskType == 2:
        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_SkyTowerFloor)
    #3. 击杀世界BOSSX只
    elif taskType == 3:
        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Boss_KillCntTotal % ShareDefine.Def_Boss_Func_World)
    #4. 活跃修炼X次
    elif taskType == 4:
        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityCountTotal)
    #5. 击杀个人BOSS:xxx,所需之为个人boss表对应线路id
    elif taskType == 5:
        mapID = ChConfig.Def_FBMapID_PersonalBoss
        lineID = needValue
        if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID]):
            curValue = needValue
    #6. 通关宗门试炼x次
    elif taskType == 6:
        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntTotal % ChConfig.Def_FBMapID_MunekadoTrial)
    #7. 获得X点灵根点
    elif taskType == 7:
        curValue = PlayerControl.GetTotalLingGenPoint(curPlayer)
    if curValue < needValue:
        GameWorld.DebugLog("境界修仙之路当前任务所需值不满足,无法领奖, taskID=%s,taskType=%s,curValue=%s < %s"
                           % (taskID, taskType, curValue, needValue), curPlayer.GetPlayerID())
        return
    awardItemList = ipyData.GetAwardItemList()
    if not ItemCommon.GiveAwardItem(curPlayer, awardItemList):
        return
    updAwardState = awardState|pow(2, taskID)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmXXZLAward, updAwardState)
    GameWorld.DebugLog("领取境界修仙之路奖励, awardID=%s,updAwardState=%s" % (taskID, updAwardState), curPlayer.GetPlayerID())
    SyncRealmFBState(curPlayer)
    return
def SyncRealmFBState(curPlayer):
    #通知客户端渡劫副本是否开启
    if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
        return
    #if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
    #    return
    sendPack = ChPyNetSendPack.tagMCSyncRealmInfo()
    sendPack.IsPass = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
    sendPack.XXZLAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmXXZLAward)
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    return