xdh
2018-11-07 d70324d5963b2c4832f3696e08825999b3848822
2306 【1.2】【BUG】老号的封魔之魂次数满了无法领取
1个文件已修改
10 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
@@ -939,6 +939,9 @@
        multiple = 1 #倍数
        if singleValue:
            gotValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWSoulGotValue % privilege)
            maxValue = privilegeIpyData.GetMaxValue()
            if maxValue:
                gotValue = min(maxValue, gotValue)
            multiple = gotValue/singleValue
        for attid, attnum in attrInfo.items():
            addAttr[int(attid)] = attnum * multiple
@@ -970,14 +973,19 @@
        GameWorld.DebugLog('领取法宝之魂奖励,对应法宝之魂未激活,或未配置 privilege=%s'%privilege)
        return
    singleValue = ipyData.GetSingleValue()
    maxValue = ipyData.GetMaxValue()
    if singleValue:
        #达到进度则可领取属性
        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWSoulCurValue % privilege)
        gotValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWSoulGotValue % privilege)
        if gotValue >= curValue:
            return
        canGetCnt = (curValue - gotValue) / singleValue
        if canGetCnt <= 0 and maxValue and curValue >= maxValue:
            canGetCnt = 1 #已达到次数上限,最后一次不管是否满足都让领(一般是因为配置错误或者变更导致)
        if canGetCnt <= 0:
            return
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MWSoulGotValue % privilege, gotValue+canGetCnt*singleValue)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MWSoulGotValue % privilege, min(maxValue, gotValue+canGetCnt*singleValue))
        CalcMagicWeaponSoulAttr(curPlayer)
        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()