| | |
| | | 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
|
| | |
| | | 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()
|
| | |
|