xdh
2019-05-30 60738f90008d8bea155d34a842c87c9e6cf0c66f
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)
    #通知客户端等级
@@ -326,6 +340,7 @@
                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)
@@ -347,47 +362,22 @@
    conditionList = ipyData.GetCondition()
    cnt = 0
    if curType == 1:
        #角色防御到XX
        cnt = PlayerControl.GetFuncDef(curPlayer)
    elif curType == 2:
        #穿戴三阶橙色1星或四阶紫色1星以上头盔
        #穿戴X阶X颜色是否套装X部位装备
        cnt = 0
        playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
        SamboSpecialUnlock = IpyGameDataPY.GetFuncEvalCfg('SamboSpecialUnlock')
        for equipIndex in xrange(playerEquip.GetCount()):
            curEquip = playerEquip.GetAt(equipIndex)
        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
            curClassLV = ItemCommon.GetItemClassLV(curEquip)
            itemColor = curEquip.GetItemColor()
            itemQuality = curEquip.GetItemQuality()
            itemID = curEquip.GetItemTypeID()
            for classlv, color, star, place in conditionList:
                if equipIndex is place and itemID in SamboSpecialUnlock:
                    cnt = 1
                    break
                if equipIndex is place and curClassLV >= classlv and itemColor >= color and itemQuality >= star:
                    cnt = 1
                    break
            if cnt:
            curItemColor = curEquip.GetItemColor()
            curIsSuite = curEquip.GetSuiteID()
            if curItemColor >= color and curIsSuite >= suite:
                cnt = 1
                break
#    elif curType == 3:
#        #全身装备X星
#        cnt = ChEquip.GetTotalEquipStars(curPlayer)
#    elif curType == 4:
#        #X阶普通、强化套装
#        suiteCntDict = {}
#        playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
#        for equipIndex in xrange(playerEquip.GetCount()):
#            curEquip = playerEquip.GetAt(equipIndex)
#            if curEquip.IsEmpty():
#                continue
#            suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, equipIndex, curEquip)
#            for suitelv, suiteType in conditionList:
#                if suiteInfo.get(suiteType, 0) >= suitelv:
#                    suiteCntDict[suiteType] = suiteCntDict.get(suiteType, 0)+1
#        cnt = max(suiteCntDict.values()) if suiteCntDict else 0
        
    else:
        return