From 28bb89eb2ee8558b1529df973347803088cef88e Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 19 四月 2019 15:10:27 +0800
Subject: [PATCH] 6374 境界提示增加参数

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetEquipWash.py |   52 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetEquipWash.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetEquipWash.py
index 21407d9..4278582 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetEquipWash.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetEquipWash.py
@@ -18,6 +18,7 @@
 import PlayerControl
 import ChConfig
 import GameWorld
+import IpyGameDataPY
 
 #---------------------------------------------------------------------
 #逻辑实现
@@ -28,15 +29,14 @@
 #  @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:
+        for place in allIndexList:
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (place), 0)
             for attrNum in range(1, Operate_EquipWash.Def_EquipWashMaxAttrCount + 1):
                 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (place, attrNum), 0)
@@ -46,33 +46,41 @@
     elif len(cmdList) == 2:
         isSync = False
         washLV, attrPer = cmdList
-        for place in placeList:
-            maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, place)
+        for equipPackindex in allIndexList:
+            ipyData = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'GridIndex':equipPackindex})
+            if not ipyData:
+                continue
+            equipPlace = ipyData.GetEquipPlace()
+            maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, equipPackindex, equipPlace)
             if maxWashLV < 1:
                 continue
-            __SetEquipPlaceWashLV(curPlayer, place, washLV, attrPer, maxWashLV)
+            __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)
+        
+        gridIndex = ipyData.GetGridIndex()
+        syncPlace = gridIndex
+        maxWashLV = Operate_EquipWash.GetEquipWashMaxLV(curPlayer, gridIndex, place)
         if maxWashLV < 1:
             return
-        __SetEquipPlaceWashLV(curPlayer, place, washLV, attrPer, maxWashLV)
+        __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)
     attrPer = max(0, attrPer)
@@ -83,15 +91,21 @@
     preWashData = None if washLV <= 1 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)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (equipPackindex), washLV - 1)
     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
+
 

--
Gitblit v1.8.0