xdh
2019-06-10 a388abb4b97782c1c694a8d28d8a1e73e03a35c0
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
@@ -89,10 +89,11 @@
        ipyData = IpyGameDataPY.GetIpyGameDataByCondition('Treasure', {'FBMapID':mapID, 'FBLineID':lineID})
        if not ipyData:
            return
        mwID = ipyData.GetID()
        if curPlayer.GetLV() < ipyData.GetNeedLV():
            GameWorld.Log('通关副本激活法宝 ,等级不足!!!mwID=%s, needLV=%s' % (mwID, ipyData.GetNeedLV()))
            return
        mwID = ipyData.GetID()
        DoActiveMW(curPlayer, mwID)
    return
@@ -108,7 +109,20 @@
        else:
            sysMark = IpyGameDataPY.GetFuncEvalCfg('UnblockTreasure', 2, {}).get(mwID, 'UnblockTreasure')
            PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), mwID])
        if mwID == IpyGameDataPY.GetFuncCfg('FabaoAddPoint', 1):
            addPointDict = IpyGameDataPY.GetFuncEvalCfg("LVUPAddPoint", 1, {})
            fabaoAddPoint = IpyGameDataPY.GetFuncCfg('FabaoAddPoint', 2)
            curLV = curPlayer.GetLV()
            addFreePoint = 0
            for rangLVs, point in addPointDict.items():
                if curLV < rangLVs[0]:
                    continue
                addFreePoint += fabaoAddPoint * (min(curLV, rangLVs[1]) - rangLVs[0] + 1)
            freePoint = curPlayer.GetFreePoint()
            updFreePoint = freePoint + addFreePoint
            curPlayer.SetFreePoint(updFreePoint)
            GameWorld.DebugLog("激活法宝增加自由属性点: freePoint=%s,addFreePoint=%s,curLV=%s,updFreePoint=%s"
                               % (freePoint, addFreePoint, curLV, updFreePoint))
    EventShell.EventRespons_MagicWeaponLV(curPlayer, mwID, mwLV)
    #通知客户端等级
@@ -318,19 +332,54 @@
        #扣消耗
        ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, ChConfig.ItemDel_MagicWeapon)
    elif ipyDataList:
        ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('XBXZ', {'MWID':mwID}, True, False)
        if not ipyDataList:
            return
        for ipyData in ipyDataList:
            if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_XBXZAwardRecord, ipyData.GetID()):
                return
    elif mwID == 101: #定海神针特殊 可直接获得
        FBCommon.Notify_FB_Over(curPlayer, {FBCommon.Over_dataMapID:ChConfig.Def_FBMapID_MagicWeapon,FBCommon.Over_isPass:1})
        PlayerControl.SetCustomMap(curPlayer, 0, 0)
    else:
        return
    DoActiveMW(curPlayer, mwID)
    return
def GetXBXZAwardProgress(curPlayer, mwID):
    ##获取仙宝寻主当前达到条件的个数
    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('XBXZ', {'MWID': mwID}, True, False)
    if not ipyDataList:
        return 0
    cnt = 0
    playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
    for ipyData in ipyDataList:
        curType = ipyData.GetType()
        conditionList = ipyData.GetCondition()
        if curType == 1:
            #穿戴X阶X颜色是否套装X部位装备
            for classlv, color, suite, place in conditionList:
                equipIpyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap',classlv,place)
                if not equipIpyData:
                    continue
                gridIndex = equipIpyData.GetGridIndex()
                curEquip = playerEquip.GetAt(gridIndex)
                if curEquip.IsEmpty():
                    continue
                curItemColor = curEquip.GetItemColor()
                curIsSuite = curEquip.GetSuiteID()
                if curItemColor >= color and curIsSuite >= suite:
                    cnt += 1
                    break
        else:
            continue
    return cnt
#    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('XBXZ', {'MWID': mwID}, True, False)
#    cnt = 0
#    if ipyDataList:
#        for ipyData in ipyDataList:
#            if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_XBXZAwardRecord, ipyData.GetID()):
#                cnt += 1
#    return cnt
#-------------------------------------------------------------------------------
@@ -393,9 +442,9 @@
    SyncXBXZAwardRecord(curPlayer, [index])
    #成就
    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_XBXZ, 1, [ipyData.GetMWID()])
    EventShell.EventRespons_XBXZ(curPlayer, ipyData.GetMWID())
    GameWorld.DebugLog('    仙宝寻主领奖OK, ID=%s, cnt=%s' % (index, cnt))
    return
## 通知仙宝寻主对应奖励领奖记录
#  @param None