| | |
| | | import PlayerControl
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import IpyGameDataPY
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | #逻辑实现
|
| | |
| | | # @remarks 函数详细说明.
|
| | | def OnExec(curPlayer, cmdList):
|
| | | if not cmdList:
|
| | | GameWorld.DebugAnswer(curPlayer, "重置所有部位洗练信息: SetEquipWash 0")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置所有部位洗练信息: SetEquipWash 洗练等级 当前等级洗练属性百分比")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置指定部位洗练信息: SetEquipWash 装备位 洗练等级 当前等级洗练属性百分比")
|
| | | __GMHelpAnswer(curPlayer)
|
| | | return
|
| | |
|
| | | placeList = Operate_EquipWash.GetAllEquipWashPlace()
|
| | | classLV = 0
|
| | | allIndexList = Operate_EquipWash.GetAllEquipWashPlace()
|
| | | syncPlace = -1
|
| | | if len(cmdList) == 1 and cmdList[0] == 0:
|
| | | for place in placeList:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (place), 0)
|
| | | for index in allIndexList:
|
| | | Operate_EquipWash.SetEquipWashLV(curPlayer, index, 0)
|
| | | for attrNum in range(1, Operate_EquipWash.Def_EquipWashMaxAttrCount + 1):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (place, attrNum), 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (place, attrNum), 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (index, attrNum), 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (index, attrNum), 0)
|
| | | GameWorld.DebugLog("重置所有洗练数据")
|
| | |
|
| | | elif len(cmdList) == 2:
|
| | | isSync = False
|
| | | washLV, attrPer = cmdList
|
| | | for place in placeList:
|
| | | maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, place)
|
| | | if maxWashLV < 1:
|
| | | for equipPackindex in allIndexList:
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'GridIndex':equipPackindex})
|
| | | if not ipyData:
|
| | | continue
|
| | | __SetEquipPlaceWashLV(curPlayer, place, washLV, attrPer, maxWashLV)
|
| | | equipPlace = ipyData.GetEquipPlace()
|
| | | maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, equipPackindex, equipPlace)
|
| | | #if maxWashLV < 1:
|
| | | # continue
|
| | | __SetEquipPlaceWashLV(curPlayer, equipPackindex, equipPlace, washLV, attrPer, maxWashLV)
|
| | | isSync = True
|
| | | if not isSync:
|
| | | return
|
| | |
|
| | | elif len(cmdList) == 3:
|
| | | place, washLV, attrPer = cmdList
|
| | | if place not in placeList:
|
| | | elif len(cmdList) == 4:
|
| | | classLV, place, washLV, attrPer = cmdList
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, place)
|
| | | if not ipyData:
|
| | | return
|
| | | syncPlace = place
|
| | | maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, place)
|
| | | if maxWashLV < 1:
|
| | | return
|
| | | __SetEquipPlaceWashLV(curPlayer, place, washLV, attrPer, maxWashLV)
|
| | | |
| | | gridIndex = ipyData.GetGridIndex()
|
| | | syncPlace = gridIndex
|
| | | maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, gridIndex, place)
|
| | | #if maxWashLV < 1:
|
| | | # return
|
| | | __SetEquipPlaceWashLV(curPlayer, gridIndex, place, washLV, attrPer, maxWashLV)
|
| | |
|
| | | else:
|
| | | __GMHelpAnswer(curPlayer)
|
| | | return
|
| | |
|
| | | Operate_EquipWash.RefreshEquipWashAttr(curPlayer)
|
| | | Operate_EquipWash.RefreshEquipWashAttr(curPlayer, classLV)
|
| | | Operate_EquipWash.Sycn_EquipWashInfo(curPlayer, syncPlace)
|
| | | return
|
| | |
|
| | | def __SetEquipPlaceWashLV(curPlayer, place, washLV, attrPer, maxWashLV):
|
| | | def __SetEquipPlaceWashLV(curPlayer, equipPackindex, place, washLV, attrPer, maxWashLV):
|
| | | washLV = min(maxWashLV, washLV)
|
| | | washLV = max(1, washLV)
|
| | | washLV = max(0, washLV)
|
| | | attrPer = max(0, attrPer)
|
| | | attrPer = min(100, attrPer)
|
| | |
|
| | | washType = Operate_EquipWash.GetEquipWashType(place)
|
| | | washData = Operate_EquipWash.GetEquipWashData(washType, washLV)
|
| | | preWashData = None if washLV <= 1 else Operate_EquipWash.GetEquipWashData(washType, washLV - 1)
|
| | | preWashData = None if washLV <= 0 else Operate_EquipWash.GetEquipWashData(washType, washLV - 1)
|
| | |
|
| | | #GameWorld.DebugLog("设置洗练: place=%s,washType=%s,washLV=%s,attrPer=%s" % (place, washType, washLV, attrPer))
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (place), washLV - 1)
|
| | | Operate_EquipWash.SetEquipWashLV(curPlayer, equipPackindex, washLV)
|
| | | for attrNum in range(1, Operate_EquipWash.Def_EquipWashMaxAttrCount + 1):
|
| | | preMaxValue = 0 if not preWashData else getattr(preWashData, "GetAttrMax%s" % attrNum)()
|
| | | curMaxValue = getattr(washData, "GetAttrMax%s" % attrNum)()
|
| | | value = preMaxValue + int((curMaxValue - preMaxValue) * attrPer / 100.0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (place, attrNum), value)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (place, attrNum), 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (equipPackindex, attrNum), value)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (equipPackindex, attrNum), 0)
|
| | | #GameWorld.DebugLog(" attrNum=%s,value=%s" % (attrNum, value))
|
| | |
|
| | | return
|
| | |
|
| | | def __GMHelpAnswer(curPlayer):
|
| | | GameWorld.DebugAnswer(curPlayer, "重置所有部位洗练: SetEquipWash 0")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置所有部位洗练: SetEquipWash 等级 百分比")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置指定部位洗练: SetEquipWash 阶级 装备位 等级 百分比")
|
| | | return
|
| | |
|
| | |
|