From 442b6a0d554d8382060571da060a50f299261109 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 21 六月 2019 12:08:49 +0800
Subject: [PATCH] 7394 【2.0】【后端】雷罚BOSS(删除诛仙装备)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py |    3 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py              |   11 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py                               |    5 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py                             |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py                                    |   48 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py                                    |  192 --------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py                                |  112 ----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py                         |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py                                     |    2 
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py                                                         |  192 --------
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                                                     |  112 ----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py                |    3 
 /dev/null                                                                                                             |  475 --------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini                                            |   20 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py                        |   51 -
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py                                |    9 
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                                         |   48 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py                           |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                                       |   33 -
 19 files changed, 26 insertions(+), 1,298 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 82e2247..84eae5a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -6599,62 +6599,6 @@
 
 
 #------------------------------------------------------
-# A3 30 装备诛仙装备 #tagCMEquipZhuXianItem
-
-class  tagCMEquipZhuXianItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
-                  ("ItemIndex", c_ubyte),    #装备在诛仙物品背包中的索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x30
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x30
-        self.EquipIndex = 0
-        self.ItemIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMEquipZhuXianItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 30 装备诛仙装备 //tagCMEquipZhuXianItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                EquipIndex:%d,
-                                ItemIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.EquipIndex,
-                                self.ItemIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMEquipZhuXianItem=tagCMEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipZhuXianItem.Cmd,m_NAtagCMEquipZhuXianItem.SubCmd))] = m_NAtagCMEquipZhuXianItem
-
-
-#------------------------------------------------------
 # A3 12 守护拾取物品 #tagCMGuardPickupItem
 
 class  tagCMGuardPickupItem(Structure):
@@ -7295,58 +7239,6 @@
 
 
 #------------------------------------------------------
-# A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem
-
-class  tagCMUnEquipZhuXianItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x31
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x31
-        self.EquipIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMUnEquipZhuXianItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 31 卸下诛仙装备 //tagCMUnEquipZhuXianItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                EquipIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.EquipIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMUnEquipZhuXianItem=tagCMUnEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnEquipZhuXianItem.Cmd,m_NAtagCMUnEquipZhuXianItem.SubCmd))] = m_NAtagCMUnEquipZhuXianItem
-
-
-#------------------------------------------------------
 # A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit
 
 class  tagCMUseAllAttrFruit(Structure):
@@ -7523,90 +7415,6 @@
 
 m_NAtagCMWingUp=tagCMWingUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWingUp.Head.Cmd,m_NAtagCMWingUp.Head.SubCmd))] = m_NAtagCMWingUp
-
-
-#------------------------------------------------------
-# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
-
-class  tagCMZhuXianEquipDecompose(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)//材料所在背包索引的数量
-    IndexList = list()    #(vector<WORD> IndexList)//材料所在背包索引列表
-    ItemIDList = list()    #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
-    IsAuto = 0    #(BYTE IsAuto)//是否自动分解
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x32
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
-            self.IndexList.append(value)
-        for i in range(self.Count):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.ItemIDList.append(value)
-        self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x32
-        self.Count = 0
-        self.IndexList = list()
-        self.ItemIDList = list()
-        self.IsAuto = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += 2 * self.Count
-        length += 4 * self.Count
-        length += 1
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteWORD(data, self.IndexList[i])
-        for i in range(self.Count):
-            data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
-        data = CommFunc.WriteBYTE(data, self.IsAuto)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                IndexList:%s,
-                                ItemIDList:%s,
-                                IsAuto:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "...",
-                                "...",
-                                self.IsAuto
-                                )
-        return DumpString
-
-
-m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose
 
 
 #------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 35f29ee..8b60580 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -22122,118 +22122,6 @@
 
 
 #------------------------------------------------------
-# A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult
-
-class  tagMCZhuXianDecomposeItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("ItemID", c_int),    #物品ID
-                  ("ItemCnt", c_ubyte),    #物品数量
-                  ("IsBind", c_ubyte),    #是否绑定
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.ItemID = 0
-        self.ItemCnt = 0
-        self.IsBind = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCZhuXianDecomposeItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A8 15 诛仙装备分解结果通知 //tagMCZhuXianDecomposeResult:
-                                ItemID:%d,
-                                ItemCnt:%d,
-                                IsBind:%d
-                                '''\
-                                %(
-                                self.ItemID,
-                                self.ItemCnt,
-                                self.IsBind
-                                )
-        return DumpString
-
-
-class  tagMCZhuXianDecomposeResult(Structure):
-    Head = tagHead()
-    Cnt = 0    #(BYTE Cnt)//数量
-    ItemList = list()    #(vector<tagMCZhuXianDecomposeItem> ItemList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x15
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Cnt):
-            temItemList = tagMCZhuXianDecomposeItem()
-            _pos = temItemList.ReadData(_lpData, _pos)
-            self.ItemList.append(temItemList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x15
-        self.Cnt = 0
-        self.ItemList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Cnt):
-            length += self.ItemList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Cnt)
-        for i in range(self.Cnt):
-            data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Cnt:%d,
-                                ItemList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Cnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult
-
-
-#------------------------------------------------------
 # AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
 
 class  tagMCActLoginAwardAction(Structure):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 78e8124..7bdf2ab 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -507,34 +507,6 @@
 Def_Effect_JobBAtkReducePer = 94 # 法师攻击伤害减免
 Def_Effect_JobCAtkReducePer = 95 # 弓箭攻击伤害减免
 
-Def_Effect_ZXCloakAttrPer = 96 # 诛仙披风属性加成百分比
-Def_Effect_ZXMaskAttrPer = 97 # 诛仙面具属性加成百分比
-Def_Effect_ZXGloveAttrPer = 98 # 诛仙手套属性加成百分比
-Def_Effect_ZXRuyiAttrPer = 99 # 诛仙如意属性加成百分比
-Def_Effect_ZXPendantAttrPer = 100 # 诛仙吊坠属性加成百分比
-Def_Effect_ZXRingAttrPer = 101 # 诛仙戒指属性加成百分比
-
-Def_Effect_SkillAddPer1 = 102 # 技能伤害增强1
-Def_Effect_SkillAddPer2 = 103 # 技能伤害增强2
-Def_Effect_SkillAddPer3 = 104 # 技能伤害增强3
-Def_Effect_SkillAddPer4 = 105 # 技能伤害增强4
-Def_Effect_SkillAddPer5 = 106 # 技能伤害增强5
-Def_Effect_SkillAddPer6 = 107 # 技能伤害增强6
-Def_Effect_SkillAddPer7 = 108 # 技能伤害增强7
-
-Def_Effect_SkillReducePer1 = 109 # 受到技能伤害减少1
-Def_Effect_SkillReducePer2 = 110 # 受到技能伤害减少2
-Def_Effect_SkillReducePer3 = 111 # 受到技能伤害减少3
-Def_Effect_SkillReducePer4 = 112 # 受到技能伤害减少4
-Def_Effect_SkillReducePer5 = 113 # 受到技能伤害减少5
-Def_Effect_SkillReducePer6 = 114 # 受到技能伤害减少6
-Def_Effect_SkillReducePer7 = 115 # 受到技能伤害减少7
-
-Def_Effect_ZXWeaponAttrPer = 116 # 诛仙剑1属性加成百分比
-Def_Effect_LXWeaponAttrPer = 117 # 诛仙剑2属性加成百分比
-Def_Effect_XXWeaponAttrPer = 118 # 诛仙剑3属性加成百分比
-Def_Effect_JXWeaponAttrPer = 119 # 诛仙剑4属性加成百分比
-
 Def_Effect_Luck = 120 # 气运
 Def_Effect_LuckPer = 133 # 气运百分率
 
@@ -998,10 +970,8 @@
 rptPet,             # 宠物背包(用物品存储宠物的数据) 31
 rptDogzItem,        # 神兽物品背包 32
 rptDogzEquip,       # 神兽装备背包 33
-rptZhuXianItem,     # 诛仙物品背包 34
-rptZhuXianEquip,    # 诛仙装备背包 35
 rptMax,             # 最大背包类型数量,放在最后一个
-) = range(28, 28 + 9)  #C++定义的枚举到27
+) = range(28, 28 + 7)  #C++定义的枚举到27
 
 #虚拟背包类型, 从255递减
 Def_VPack_TypeList = (
@@ -1699,22 +1669,6 @@
     dogzetClaw,     # 神兽兽爪
     dogzetScute,    # 神兽鳞甲
 ) = range(101, 101 + 5)
-
-# 诛仙装备位定义
-ZhuXianEquipPlace = (
-    zxetCloak,      # 诛仙披风 121
-    zxetMask,       # 诛仙面具 122
-    zxetGlove,      # 诛仙手套 123
-    zxetGlove2,     # 诛仙手套 124
-    zxetRuyi,       # 诛仙如意 125
-    zxetPendant,    # 诛仙吊坠 126
-    zxetRing,       # 诛仙戒指 127
-    zxetRing2,      # 诛仙戒指 128
-    zxetWeapon1,    # 诛仙剑1 129
-    zxetWeapon2,    # 诛仙剑2 130
-    zxetWeapon3,    # 诛仙剑3 131
-    zxetWeapon4,    # 诛仙剑4 132
-) = range(121, 121 + 12)
 
 # 共享通用装备位,可装备同一类型装备
 ShareEquipPlace = [
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index d00e85e..af60936 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -1267,26 +1267,6 @@
 PacketSubCMD_5=0xC4
 PacketCallFunc_5=OnDogzEquipPlus
 
-;诛仙装备
-[EquipZhuXian]
-ScriptName = Item\EquipZhuXian.py
-Writer = hxp
-Releaser = hxp
-RegType = 0
-RegisterPackCount = 3
-
-PacketCMD_1=0xA3
-PacketSubCMD_1=0x30
-PacketCallFunc_1=OnEquipZhuXianItem
-
-PacketCMD_2=0xA3
-PacketSubCMD_2=0x31
-PacketCallFunc_2=OnUnEquipZhuXianItem
-
-PacketCMD_3=0xA3
-PacketSubCMD_3=0x32
-PacketCallFunc_3=OnZhuXianEquipDecompose
-
 ;个推
 [PlayerGeTui]
 ScriptName = Player\PlayerGeTui.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 0e5666c..b8acfad 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -57,7 +57,6 @@
 import ChPyNetSendPack
 import NetPackCommon
 import FamilyRobBoss
-#import EquipZhuXian
 import FBCommon
 import ChNPC
 
@@ -1472,10 +1471,8 @@
     
     addPer = 0
     reducePer = 0
-    #addPer += EquipZhuXian.GetZhuXianEquipSkillAddPer(atkObj.GetPlayerID(), skillTypeID)
     
     if defObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
-        #reducePer = EquipZhuXian.GetZhuXianEquipSkillReducePer(defObj.GetPlayerID(), skillTypeID)
         
         #根据防守方职业 计算攻击方伤害加成
         if defObj.GetJob() in [ShareDefine.PlayerJob_Warrior, ShareDefine.PlayerJob_Knight]:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 7274299..15f1530 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -361,20 +361,7 @@
 Def_ItemType_DogzEquipScute = 123   # 神兽鳞甲
 Def_ItemType_AddCrossRealmPKCnt = 127 #增加跨服PK次数
 
-Def_ItemType_ZXCloak = 128 # 诛仙披风
-Def_ItemType_ZXMask = 129 # 诛仙面具
-Def_ItemType_ZXGlove = 130 # 诛仙手套
-Def_ItemType_ZXRuyi = 131 # 诛仙如意
-Def_ItemType_ZXPendant = 132 # 诛仙吊坠
-Def_ItemType_ZXRing = 133 # 诛仙戒指
-Def_ItemType_ZXWeapon1 = 134 # 诛仙剑1
-Def_ItemType_ZXWeapon2 = 135 # 诛仙剑2
-Def_ItemType_ZXWeapon3 = 136 # 诛仙剑3
-Def_ItemType_ZXWeapon4 = 137 # 诛仙剑4
-Def_ItemType_ZhuXianStuff = 138 # 诛仙材料
-
 Def_ItemType_DogzStuff = 139 # 神兽材料
-Def_ItemType_ZhuXianStone = 140 # 诛仙宝石
 
 #以下定义物品类型下次删除
 Def_Item_Type_Horse = 1000036          #坐骑
@@ -782,13 +769,10 @@
 
 Def_EquipItemType_TJGAutoEat = xrange(Def_ItemType_retWeapon, Def_ItemType_retShoes + 1)
 #装备类型
-Def_EquipItemType = range(Def_ItemType_retWeapon, Def_ItemType_DogzEquipScute + 1) + range(Def_ItemType_ZXCloak, Def_ItemType_ZXWeapon4 + 1)
+Def_EquipItemType = range(Def_ItemType_retWeapon, Def_ItemType_DogzEquipScute + 1)
 
 #神兽装备类型
 Def_DogzEquiipType = xrange(Def_ItemType_DogzEquipHorn, Def_ItemType_DogzEquipScute + 1)
-
-#诛仙装备类型
-Def_ZhuXianEquiipType = xrange(Def_ItemType_ZXCloak, Def_ItemType_ZXWeapon4 + 1)
 
 # 技能造成实质性伤害的类型
 Def_RealAttack_Type = [
@@ -849,10 +833,6 @@
 Def_PackCnt_DogzItem = 100
 #初始化神兽装备格子数
 Def_PackCnt_DogzEquip = 100
-#初始化诛仙背包格子数
-Def_PackCnt_ZhuXianItem = 100
-#初始化诛仙装备格子数
-Def_PackCnt_ZhuXianEquip = 12
 #初始化装备栏2
 Def_PackCnt_Equip2 = 0
 #初始化回收站
@@ -1096,8 +1076,6 @@
                                     ShareDefine.rptPet,
                                     ShareDefine.rptDogzItem,
                                     ShareDefine.rptDogzEquip,
-                                    ShareDefine.rptZhuXianItem,
-                                    ShareDefine.rptZhuXianEquip,
                                     ]
 
 #装备可强化背包列表
@@ -1453,7 +1431,7 @@
 #自动恢复计算间隔
 Def_HPRestoreInterval = 5000
 #允许重置的背包索引
-Def_CanItemResetPack = [IPY_GameWorld.rptItem, IPY_GameWorld.rptWarehouse, ShareDefine.rptTreasure, ShareDefine.rptZhuXianItem]
+Def_CanItemResetPack = [IPY_GameWorld.rptItem, IPY_GameWorld.rptWarehouse, ShareDefine.rptTreasure]
 #仓库分页个数
 Def_ItemReset_WarehousePageCnt = 56
 #玩家捡起物品的距离 8
@@ -3610,10 +3588,6 @@
 #试炼之塔
 Def_Player_Dict_TrialTower_PassLV = "TrialTower_PassLV"  # 试炼之塔通关层数
 Def_Player_Dict_TrialTower_LastDayPassLV = "Tower_LastDayPassLV"  # 试炼之塔昨日通关层数
-#诛仙塔
-Def_Player_Dict_ZhuXianTowerPassLV = "ZhuXianTowerPassLV"  # 诛仙塔已通关层数
-Def_Player_Dict_ZhuXianTowerLastFloor = "ZhuXianTowerLastFloor"  # 诛仙塔上次挑战层数
-Def_Player_Dict_ZhuXianTowerCostTime = "ZhuXianTowerCostTime"  # 诛仙塔通关时间
 #天星塔
 Def_Player_Dict_SkyTowerFloor = "SkyTowerFloor"  # 天星塔已通关层数
 
@@ -4868,7 +4842,7 @@
 ItemDel_ChatBubbleBox, # 激活聊天气泡框
 ItemDel_GatherSoul, # 聚魂分解
 ItemDel_CoatDecompose, # 时装分解
-ItemDel_ZhuXianDecompose, # 诛仙装备分解
+ItemDel_2037,
 ItemDel_EquipStarUp, # 装备升星
 ItemDel_EquipPlusEvolve, # 装备强化进化
 ) = range(2000, 2000 + 40)
@@ -4912,7 +4886,6 @@
                    ItemDel_ChatBubbleBox:"ChatBubbleBox",
                    ItemDel_GatherSoul:"GatherSoul",
                    ItemDel_CoatDecompose:"CoatDecompose",
-                   ItemDel_ZhuXianDecompose:"ZhuXianDecompose",
                    ItemDel_EquipStarUp:"EquipStarUp",
                    ItemDel_EquipPlusEvolve:"EquipPlusEvolve",
                    }
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 82e2247..84eae5a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -6599,62 +6599,6 @@
 
 
 #------------------------------------------------------
-# A3 30 装备诛仙装备 #tagCMEquipZhuXianItem
-
-class  tagCMEquipZhuXianItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
-                  ("ItemIndex", c_ubyte),    #装备在诛仙物品背包中的索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x30
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x30
-        self.EquipIndex = 0
-        self.ItemIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMEquipZhuXianItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 30 装备诛仙装备 //tagCMEquipZhuXianItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                EquipIndex:%d,
-                                ItemIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.EquipIndex,
-                                self.ItemIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMEquipZhuXianItem=tagCMEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipZhuXianItem.Cmd,m_NAtagCMEquipZhuXianItem.SubCmd))] = m_NAtagCMEquipZhuXianItem
-
-
-#------------------------------------------------------
 # A3 12 守护拾取物品 #tagCMGuardPickupItem
 
 class  tagCMGuardPickupItem(Structure):
@@ -7295,58 +7239,6 @@
 
 
 #------------------------------------------------------
-# A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem
-
-class  tagCMUnEquipZhuXianItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x31
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x31
-        self.EquipIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMUnEquipZhuXianItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 31 卸下诛仙装备 //tagCMUnEquipZhuXianItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                EquipIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.EquipIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMUnEquipZhuXianItem=tagCMUnEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnEquipZhuXianItem.Cmd,m_NAtagCMUnEquipZhuXianItem.SubCmd))] = m_NAtagCMUnEquipZhuXianItem
-
-
-#------------------------------------------------------
 # A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit
 
 class  tagCMUseAllAttrFruit(Structure):
@@ -7523,90 +7415,6 @@
 
 m_NAtagCMWingUp=tagCMWingUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWingUp.Head.Cmd,m_NAtagCMWingUp.Head.SubCmd))] = m_NAtagCMWingUp
-
-
-#------------------------------------------------------
-# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
-
-class  tagCMZhuXianEquipDecompose(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)//材料所在背包索引的数量
-    IndexList = list()    #(vector<WORD> IndexList)//材料所在背包索引列表
-    ItemIDList = list()    #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
-    IsAuto = 0    #(BYTE IsAuto)//是否自动分解
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x32
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
-            self.IndexList.append(value)
-        for i in range(self.Count):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.ItemIDList.append(value)
-        self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x32
-        self.Count = 0
-        self.IndexList = list()
-        self.ItemIDList = list()
-        self.IsAuto = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += 2 * self.Count
-        length += 4 * self.Count
-        length += 1
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteWORD(data, self.IndexList[i])
-        for i in range(self.Count):
-            data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
-        data = CommFunc.WriteBYTE(data, self.IsAuto)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                IndexList:%s,
-                                ItemIDList:%s,
-                                IsAuto:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "...",
-                                "...",
-                                self.IsAuto
-                                )
-        return DumpString
-
-
-m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 35f29ee..8b60580 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -22122,118 +22122,6 @@
 
 
 #------------------------------------------------------
-# A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult
-
-class  tagMCZhuXianDecomposeItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("ItemID", c_int),    #物品ID
-                  ("ItemCnt", c_ubyte),    #物品数量
-                  ("IsBind", c_ubyte),    #是否绑定
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.ItemID = 0
-        self.ItemCnt = 0
-        self.IsBind = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCZhuXianDecomposeItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A8 15 诛仙装备分解结果通知 //tagMCZhuXianDecomposeResult:
-                                ItemID:%d,
-                                ItemCnt:%d,
-                                IsBind:%d
-                                '''\
-                                %(
-                                self.ItemID,
-                                self.ItemCnt,
-                                self.IsBind
-                                )
-        return DumpString
-
-
-class  tagMCZhuXianDecomposeResult(Structure):
-    Head = tagHead()
-    Cnt = 0    #(BYTE Cnt)//数量
-    ItemList = list()    #(vector<tagMCZhuXianDecomposeItem> ItemList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x15
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Cnt):
-            temItemList = tagMCZhuXianDecomposeItem()
-            _pos = temItemList.ReadData(_lpData, _pos)
-            self.ItemList.append(temItemList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x15
-        self.Cnt = 0
-        self.ItemList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Cnt):
-            length += self.ItemList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Cnt)
-        for i in range(self.Cnt):
-            data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Cnt:%d,
-                                ItemList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Cnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult
-
-
-#------------------------------------------------------
 # AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
 
 class  tagMCActLoginAwardAction(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py
index e6cff6f..eb04bb9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py
@@ -32,8 +32,6 @@
 import ShareDefine
 import EventShell
 
-# import EquipZhuXian
-
 g_stoneCanPlaceList = []  # 可镶嵌的位置
 
 
@@ -132,12 +130,7 @@
 
 
 def GetPackTypeByEquipPlace(equipPlace):
-    ##目前支持镶嵌普通装备、诛仙装备
-    #    if equipPlace in ShareDefine.ZhuXianEquipPlace:
-    #        equipPackType = ShareDefine.rptZhuXianEquip
-    #        stonePackType = ShareDefine.rptZhuXianItem
-    #        placeIndex = EquipZhuXian.GetZhuXianEquipIndexByPlace(equipPlace)
-    #    else:
+    ##目前支持镶嵌普通装备
     equipPackType = IPY_GameWorld.rptEquip
     stonePackType = IPY_GameWorld.rptItem
     placeIndex = equipPlace
@@ -554,8 +547,6 @@
         # 刷新所有属性
         playControl = PlayerControl.PlayerControl(curPlayer)
         playControl.RefreshPlayerAttrState()
-    # elif packType == ShareDefine.rptZhuXianEquip:
-    #    EquipZhuXian.RefreshZhuXianAttr(curPlayer)
     return
 
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintZXEquipSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintZXEquipSkill.py
deleted file mode 100644
index e98f977..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintZXEquipSkill.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package GM.Commands.PrintZXEquipSkill
-#
-# @todo:输出诛仙装备技能相关信息
-# @author hxp
-# @date 2019-01-23
-# @version 1.0
-#
-# 详细描述: 输出诛仙装备技能相关信息
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2019-01-23 15:00"""
-#-------------------------------------------------------------------------------
-
-import GameWorld
-import PyGameData
-import PlayerControl
-import IpyGameDataPY
-import ShareDefine
-
-## GM命令执行入口
-#  @param curPlayer 当前玩家
-#  @param cmdList 参数列表 [开启格数]
-#  @return None
-#  @remarks 函数详细说明.
-def OnExec(curPlayer, cmdList):
-    
-    playerID = curPlayer.GetPlayerID()
-    gameData = GameWorld.GetGameData()
-    GameWorld.DebugAnswer(curPlayer, "诛仙装备技能效果")
-    
-    addPerDict = PyGameData.g_zhuXianSkillAddPerDict.get(playerID, {})
-    reducePerDict = PyGameData.g_zhuXianSkillReducePerDict.get(playerID, {})
-    attrIDSkillPlusDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 1, {})
-    addAttrIDList = range(ShareDefine.Def_Effect_SkillAddPer1, ShareDefine.Def_Effect_SkillAddPer7 + 1)
-    reduceAttrIDList = range(ShareDefine.Def_Effect_SkillReducePer1, ShareDefine.Def_Effect_SkillReducePer7 + 1)
-    for attrID, skillIDList in attrIDSkillPlusDict.items():
-        addSkillInfo = ""
-        reduceSkillInfo = ""
-        for i, skillID in enumerate(skillIDList):
-            curSkill = gameData.GetSkillBySkillID(skillID)
-            if curSkill == None:
-                continue
-            
-            if attrID in addAttrIDList:
-                addSkillInfo += "%s " % (curSkill.GetSkillName())
-                if i == len(skillIDList) - 1:
-                    addPerValue = addPerDict.get(skillID, 0)
-                    addSkillInfo += " +%s" %  addPerValue
-                    
-            elif attrID in reduceAttrIDList:
-                reduceSkillInfo += "%s " % (curSkill.GetSkillName())
-                if i == len(skillIDList) - 1:
-                    reducePerValue = reducePerDict.get(skillID, 0)
-                    reduceSkillInfo += " +%s" %  reducePerValue
-                
-        if addSkillInfo:
-            GameWorld.DebugAnswer(curPlayer, "增伤%s: %s" % (attrID, addSkillInfo))
-        if reduceSkillInfo:
-            GameWorld.DebugAnswer(curPlayer, "减伤%s: %s" % (attrID, reduceSkillInfo))
-    
-    GameWorld.DebugAnswer(curPlayer, "职业增伤: [%s, %s, %s]" 
-                          % (PlayerControl.GetJobAHurtAddPer(curPlayer), 
-                             PlayerControl.GetJobBHurtAddPer(curPlayer), 
-                             PlayerControl.GetJobCHurtAddPer(curPlayer)))
-    
-    GameWorld.DebugAnswer(curPlayer, "职业减伤: [%s, %s, %s]" 
-                          % (PlayerControl.GetJobAAtkReducePer(curPlayer), 
-                             PlayerControl.GetJobBAtkReducePer(curPlayer), 
-                             PlayerControl.GetJobCAtkReducePer(curPlayer)))
-     
-    return
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
index 7192746..6363986 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
@@ -71,9 +71,6 @@
     
     if curPlayer.GetOfficialRank() < ipyData.GetRealmLV():
         return
-#    #诛仙总评分
-#    if ItemCommon.GetZhuXianEquipTotalGS(curPlayer) < ipyData.GetZhuXianScore():
-#        return
     
     enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % ChConfig.Def_FBMapID_ZhuXianBoss)
     if enterCnt >= FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/EquipZhuXian.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/EquipZhuXian.py
deleted file mode 100644
index 41696ec..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/EquipZhuXian.py
+++ /dev/null
@@ -1,475 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package EquipZhuXian
-#
-# @todo:诛仙装备
-# @author hxp
-# @date 2019-01-22
-# @version 1.0
-#
-# 详细描述: 诛仙装备
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2019-01-22 15:30"""
-#-------------------------------------------------------------------------------
-
-import GameWorld
-import ItemCommon
-import ShareDefine
-import PlayerControl
-import DataRecordPack
-import IPY_GameWorld
-import ItemControler
-import IpyGameDataPY
-import NetPackCommon
-import ChPyNetSendPack
-import SkillCommon
-import PyGameData
-import ChConfig
-import ChEquip
-
-import random
-
-
-def GetZhuXianEquipIndexByPlace(equipPlace):
-    ## 获取诛仙装备位对应的索引
-    return equipPlace - 1 - 120
-
-
-def GetZhuXianEquipPlaceByIndex(equipIndex):
-    ## 获取诛仙装备索引对应装备位
-    return equipIndex + 1 + 120
-
-
-def GetZhuXianEquipPlaceIndexIsUnlock(curPlayer, equipPlaceIndex):
-    ## 获取诛仙装备位是否解锁
-    # @param equipPlaceIndex: 注意传入的参数是装备位索引
-    equipPlace = GetZhuXianEquipPlaceByIndex(equipPlaceIndex)
-    placeUnlockDict = IpyGameDataPY.GetConfigEx("EquipZhuXianUnlock") # 诛仙装备位对应解锁所需诛仙塔层数 {"装备位":诛仙塔层数, ...} 没配的默认解锁
-    if not placeUnlockDict:
-        placeUnlockDict = {}
-        ipyDataMgr = IpyGameDataPY.IPY_Data()
-        for index in xrange(ipyDataMgr.GetZhuXianTowerCount()):
-            ipyData = ipyDataMgr.GetZhuXianTowerByIndex(index)
-            unlockEquipPlace = ipyData.GetUnLockEquipPlace()
-            if not unlockEquipPlace:
-                continue
-            towerID = ipyData.GetID()
-            placeUnlockDict[unlockEquipPlace] = towerID
-        IpyGameDataPY.SetConfigEx("EquipZhuXianUnlock", placeUnlockDict)
-        GameWorld.DebugLog("加载诛仙塔解锁装备位: placeUnlockDict=%s" % placeUnlockDict)
-    if equipPlace not in placeUnlockDict:
-        return True
-    needTowerLV = placeUnlockDict[equipPlace]
-    curTowerLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ZhuXianTowerPassLV)  # 已过关的诛仙塔层数
-    return curTowerLV >= needTowerLV
-
-
-def CheckLearnZhuXianSkill(curPlayer, skillID):
-    ## 检查诛仙装备位装备阶数
-    
-    zhuxianSkillCondition = IpyGameDataPY.GetFuncEvalCfg("EquipZhuXian", 3, {})
-    if str(skillID) not in zhuxianSkillCondition:
-        return True
-    classLVPlaceListDict = zhuxianSkillCondition[str(skillID)]
-    zhuXianEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    for classLV, placeList in classLVPlaceListDict.items():
-        needClassLV = int(classLV)
-        for equipPlace in placeList:
-            placeIndex = GetZhuXianEquipIndexByPlace(equipPlace)
-            if placeIndex < 0 or placeIndex >= zhuXianEquipPack.GetCount():
-                return
-            curEquip = zhuXianEquipPack.GetAt(placeIndex)
-            if curEquip.IsEmpty():
-                GameWorld.DebugLog("诛仙装备位无装备,无法激活神技! equipPlace=%s" % equipPlace)
-                return
-            curClassLV = ItemCommon.GetItemClassLV(curEquip)
-            if curClassLV < needClassLV:
-                GameWorld.DebugLog("诛仙装备位装备阶级不足,无法激活神技! equipPlace=%s,curClassLV=%s < needClassLV=%s" % (equipPlace, curClassLV, needClassLV))
-                return
-            
-    return True
-
-
-#// A3 30 装备诛仙装备 #tagCMEquipZhuXianItem
-#
-#struct    tagCMEquipZhuXianItem
-#{
-#    tagHead        Head;
-#    BYTE        EquipIndex;    //装备在诛仙装备背包中的索引
-#    BYTE        ItemIndex;    //装备在诛仙物品背包中的索引
-#};
-def OnEquipZhuXianItem(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    playerID = curPlayer.GetPlayerID()
-    reqEquipPlaceIndex = clientData.EquipIndex
-    itemIndex = clientData.ItemIndex
-    
-    GameWorld.DebugLog("穿戴诛仙装备: EquipIndex=%s,ItemIndex=%s" % (reqEquipPlaceIndex, itemIndex), playerID)
-    
-    zhuXianItemPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianItem)
-    curEquip = zhuXianItemPack.GetAt(itemIndex)
-    if not ItemCommon.CheckItemCanUse(curEquip) or ItemControler.GetIsAuctionItem(curEquip):
-        GameWorld.DebugLog("物品为空或不可用: itemIndex=%s" % itemIndex, playerID)
-        return
-    if not ItemCommon.GetIsZhuXianEquip(curEquip):
-        GameWorld.DebugLog("非诛仙装备: itemIndex=%s" % itemIndex, playerID)
-        return
-    
-    equipPlace = curEquip.GetEquipPlace()
-    equipPlaceIndex = GetZhuXianEquipIndexByPlace(equipPlace)
-    if reqEquipPlaceIndex != equipPlaceIndex:
-        reqEquipPlace = GetZhuXianEquipPlaceByIndex(reqEquipPlaceIndex)
-        canPlace = False
-        for sharePlaceList in ShareDefine.ShareEquipPlace:
-            if reqEquipPlace in sharePlaceList and equipPlace in sharePlaceList:
-                canPlace = True
-                break
-        if not canPlace:
-            GameWorld.DebugLog("该装备位不可装备该物品!equipPlace=%s,equipPlaceIndex=%s != reqEquipPlaceIndex=%s" % (equipPlace, equipPlaceIndex, reqEquipPlaceIndex), playerID)
-            return
-    
-    zhuXianEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    if reqEquipPlaceIndex < 0 or reqEquipPlaceIndex >= zhuXianEquipPack.GetCount():
-        GameWorld.ErrLog("诛仙装备背包索引异常: EquipIndex=%s" % (reqEquipPlaceIndex), playerID)
-        return
-    
-    if not GetZhuXianEquipPlaceIndexIsUnlock(curPlayer, reqEquipPlaceIndex):
-        GameWorld.DebugLog("诛仙装备位未解锁: equipPlace=%s,EquipIndex=%s" % (equipPlace, reqEquipPlaceIndex))
-        return
-    
-    destEquip = zhuXianEquipPack.GetAt(reqEquipPlaceIndex)
-    desItemID, desUserData = [0, ''] if destEquip.IsEmpty() else [destEquip.GetItemTypeID(), destEquip.GetUserData()]
-    srcItemID, srcUserData = curEquip.GetItemTypeID(), curEquip.GetUserData()
-    if not ItemCommon.DoLogicSwitchItem(curPlayer, destEquip, curEquip, ShareDefine.rptZhuXianEquip):
-        return
-    dataDict = {'dotype':'EquipZhuXianItem', 'desItemID':desItemID, 'desUserData':desUserData, 'srcItemID':srcItemID, 'srcUserData':srcUserData}
-    DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_EquipChange, dataDict)
-    
-    RefreshZhuXianAttr(curPlayer)   
-    return
-
-
-#// A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem
-#
-#struct    tagCMUnEquipZhuXianItem
-#{
-#    tagHead        Head;
-#    BYTE        EquipIndex;    //装备在诛仙装备背包中的索引
-#};
-def OnUnEquipZhuXianItem(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    playerID = curPlayer.GetPlayerID()
-    EquipIndex = clientData.EquipIndex
-    
-    GameWorld.DebugLog("卸下诛仙装备: EquipIndex=%s" % (EquipIndex), playerID)
-    
-    zhuXianEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    if EquipIndex < 0 or EquipIndex >= zhuXianEquipPack.GetCount():
-        GameWorld.ErrLog("诛仙装备背包索引异常: EquipIndex=%s" % (EquipIndex), playerID)
-        return
-    curEquip = zhuXianEquipPack.GetAt(EquipIndex)
-    if not ItemCommon.CheckItemCanUse(curEquip):
-        GameWorld.DebugLog("诛仙装备为空或不可用: EquipIndex=%s" % EquipIndex, playerID)
-        return
-    
-    emptyIndex = ItemCommon.GetEmptyIndexInPack(curPlayer, ShareDefine.rptZhuXianItem)
-    if not ItemCommon.DoLogicSwitchItemEx(curPlayer, ShareDefine.rptZhuXianEquip, ShareDefine.rptZhuXianItem, EquipIndex, emptyIndex):
-        GameWorld.DebugLog("诛仙卸下装备失败: EquipIndex=%s" % (EquipIndex), playerID)
-        return
-    RefreshZhuXianAttr(curPlayer)
-    return
-
-
-def RefreshZhuXianAttr(curPlayer):
-    #CalcZhuXianAttr(curPlayer)
-    #PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState() 
-    return
-
-
-def CalcZhuXianAttr(curPlayer):
-    return
-    ## 刷新诛仙属性
-    playerID = curPlayer.GetPlayerID()
-    PyGameData.g_zhuXianSkillAddPerDict.pop(playerID, None)
-    PyGameData.g_zhuXianSkillReducePerDict.pop(playerID, None)
-    
-    allAttrList = [{} for _ in range(4)]
-    allAttrListZXSuit = [{} for _ in range(4)]
-    allAttrListZXStone = [{} for _ in range(4)]
-    equipScoreTotal = 0  #为解决装备评分、战力不一致的情况,装备战力改为由评分作为参数计算战力
-    equipPlaceClassLVDict = {}  #装备位对应装备阶 {装备位:阶, ...}
-    equipPlaceBaseAttrDict = {}  #装备位对应基础属性字典 {装备位:{属性ID:value, ...}, ...}
-    equipPlaceStoneLVDict = {}  #装备位对应宝石等级 {装备位:[宝石等级,..], ...}
-    attrIDSkillPlusDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 1, {})  # 属性ID对应影响的技能TypeID列表 {属性ID:[技能TypeID列表, ...], ...}
-    addAttrIDList = range(ShareDefine.Def_Effect_SkillAddPer1, ShareDefine.Def_Effect_SkillAddPer7 + 1)
-    reduceAttrIDList = range(ShareDefine.Def_Effect_SkillReducePer1, ShareDefine.Def_Effect_SkillReducePer7 + 1)
-    zxSkillPlusAttrDict = {}  # 玩家诛仙装备影响技能TypeID属性字典 {属性ID:值, ...}
-    
-    zhuXianEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    equipPackCount = zhuXianEquipPack.GetCount()
-    
-    for equipIndex in range(len(ShareDefine.ZhuXianEquipPlace)):
-        if equipIndex < 0 or equipIndex >= equipPackCount:
-            break
-        curEquip = zhuXianEquipPack.GetAt(equipIndex)            
-        if curEquip.IsEmpty():
-            continue
-        equipScoreTotal += ItemCommon.GetEquipGearScore(curEquip)
-        equipPlace = GetZhuXianEquipPlaceByIndex(equipIndex)
-        equipPlaceClassLVDict[equipPlace] = ItemCommon.GetItemClassLV(curEquip)
-        
-        # 基础属性
-        baseAttrDict = {}
-        for effIndex in xrange(curEquip.GetEffectCount()):
-            curEffect = curEquip.GetEffectByIndex(effIndex)
-            if not curEffect or not curEffect.GetEffectID():
-                break
-            effID = curEffect.GetEffectID()
-            if not effID:
-                continue
-            effValue = curEffect.GetEffectValue(0)
-            PlayerControl.CalcAttrDict_Type(effID, effValue, allAttrList)
-            baseAttrDict[effID] = baseAttrDict.get(effID, 0) + effValue
-        equipPlaceBaseAttrDict[equipPlace] = baseAttrDict
-        
-        # 传奇属性
-        if curEquip.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrID) == curEquip.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrValue):
-            for i in xrange(curEquip.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrID)):
-                legendAttrID = curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrID, i)
-                legendAttrValue = curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrValue, i)
-                if legendAttrID in attrIDSkillPlusDict:
-                    zxSkillPlusAttrDict[legendAttrID] = zxSkillPlusAttrDict.get(legendAttrID, 0) + legendAttrValue
-                else:
-                    PlayerControl.CalcAttrDict_Type(legendAttrID, legendAttrValue, allAttrList)
-        #宝石属性
-        gemlvList = ChEquip.CalcEquipStone_Effect(curPlayer, equipPlace, allAttrListZXStone)
-        equipPlaceStoneLVDict[equipPlace] = gemlvList
-            
-        
-#    GameWorld.DebugLog("诛仙装备属性: allAttrList=%s" % (allAttrList))
-#    GameWorld.DebugLog("    zxSkillPlusAttrDict=%s" % (zxSkillPlusAttrDict))
-#    GameWorld.DebugLog("    equipPlaceClassLVDict=%s" % (equipPlaceClassLVDict))
-    
-    # 缓存技能增强比例,目前暂写死对指定技能伤害百分比提升
-    for attrID, plusValue in zxSkillPlusAttrDict.items():
-        if attrID not in attrIDSkillPlusDict:
-            continue
-        skillTypeIDList = attrIDSkillPlusDict[attrID]
-        for skillTypeID in skillTypeIDList:
-            if attrID in addAttrIDList:
-                skillAddPerDict = PyGameData.g_zhuXianSkillAddPerDict.get(playerID, {})
-                skillAddPerDict[skillTypeID] = plusValue
-                PyGameData.g_zhuXianSkillAddPerDict[playerID] = skillAddPerDict
-            elif attrID in reduceAttrIDList:
-                skillReducePerDict = PyGameData.g_zhuXianSkillReducePerDict.get(playerID, {})
-                skillReducePerDict[skillTypeID] = plusValue
-                PyGameData.g_zhuXianSkillReducePerDict[playerID] = skillReducePerDict
-                
-#    GameWorld.DebugLog("    PyGameData.g_zhuXianSkillAddPerDict=%s" % PyGameData.g_zhuXianSkillAddPerDict)
-#    GameWorld.DebugLog("    PyGameData.g_zhuXianSkillReducePerDict=%s" % PyGameData.g_zhuXianSkillReducePerDict)
-    
-    # 计算套装,目前暂写死对诛仙装备部位基础属性提升
-    suitAttrIDPlusPlaceDict = {
-                               ShareDefine.Def_Effect_ZXCloakAttrPer:ShareDefine.zxetCloak,
-                               ShareDefine.Def_Effect_ZXMaskAttrPer:ShareDefine.zxetMask,
-                               ShareDefine.Def_Effect_ZXGloveAttrPer:ShareDefine.zxetGlove,
-                               ShareDefine.Def_Effect_ZXRuyiAttrPer:ShareDefine.zxetRuyi,
-                               ShareDefine.Def_Effect_ZXPendantAttrPer:ShareDefine.zxetPendant,
-                               ShareDefine.Def_Effect_ZXRingAttrPer:ShareDefine.zxetRing,
-                               ShareDefine.Def_Effect_ZXWeaponAttrPer:ShareDefine.zxetWeapon1,
-                               ShareDefine.Def_Effect_LXWeaponAttrPer:ShareDefine.zxetWeapon2,
-                               ShareDefine.Def_Effect_XXWeaponAttrPer:ShareDefine.zxetWeapon3,
-                               ShareDefine.Def_Effect_JXWeaponAttrPer:ShareDefine.zxetWeapon4,
-                               }
-    suitPlaceGroupDict = IpyGameDataPY.GetFuncEvalCfg("EquipZhuXian", 2, {})
-    for suitType, placeGroupList in suitPlaceGroupDict.items():
-        suitType = int(suitType)
-        suitLV = 0
-        isSuit = True
-        for place in placeGroupList:
-            if place not in equipPlaceClassLVDict:
-                isSuit = False
-                #GameWorld.DebugLog("    未穿戴装备,无法激活诛仙套装! suitType=%s,placeGroupList=%s,place=%s" % (suitType, placeGroupList, place))
-                break
-            if not suitLV:
-                suitLV = equipPlaceClassLVDict[place]
-            else:
-                suitLV = min(suitLV, equipPlaceClassLVDict[place])
-                
-        if not isSuit or not suitLV:
-            continue
-        
-        GameWorld.DebugLog("    激活诛仙套装: suitType=%s, suitLV=%s" % (suitType, suitLV))
-        suitAttrIpyData = IpyGameDataPY.GetIpyGameData("ZhuXianSuitAttr", suitType, suitLV)
-        if not suitAttrIpyData:
-            continue
-        suitAttrIDList = suitAttrIpyData.GetSuitAttrIDList()
-        suitAttrValueList = suitAttrIpyData.GetSuitAttrValueList()
-        if len(suitAttrIDList) != len(suitAttrValueList):
-            continue
-        for i, suitEffID in enumerate(suitAttrIDList):
-            suitEffValue = suitAttrValueList[i]
-            #GameWorld.DebugLog("        suitEffID=%s,suitEffValue=%s" % (suitEffID, suitEffValue))
-            if suitEffID in suitAttrIDPlusPlaceDict:
-                plusPlace = suitAttrIDPlusPlaceDict[suitEffID]
-                if plusPlace not in equipPlaceBaseAttrDict:
-                    continue
-                plusEffDict = equipPlaceBaseAttrDict[plusPlace]
-                #GameWorld.DebugLog("            plusPlace=%s,plusEffDict=%s" % (plusPlace, plusEffDict))
-                for plusEffID, plusEffValue in plusEffDict.items():
-                    addValue = int(plusEffValue * (10000 + suitEffValue) / 10000.0)
-                    #GameWorld.DebugLog("                plusEffID=%s,plusEffValue=%s,addValue=%s" % (plusEffID, plusEffValue, addValue))
-                    PlayerControl.CalcAttrDict_Type(plusEffID, addValue, allAttrListZXSuit)
-            else:
-                PlayerControl.CalcAttrDict_Type(suitEffID, suitEffValue, allAttrListZXSuit)
-    #宝石共鸣属性
-    #GameWorld.DebugLog('equipPlaceStoneLVDict=%s'%equipPlaceStoneLVDict)
-    needStoneCnt = IpyGameDataPY.GetFuncCfg('GemResonance')
-    for suitType, placeGroupList in suitPlaceGroupDict.items():
-        suitType = int(suitType)
-        groupStoneLVList = []
-        for place in placeGroupList:
-            groupStoneLVList += equipPlaceStoneLVDict.get(place, [])
-        
-        if len(groupStoneLVList) < needStoneCnt:
-            continue
-        groupStoneLVList.sort(reverse=True)
-        shareStoneLV = min(groupStoneLVList[:needStoneCnt])
-        GameWorld.DebugLog("    激活诛仙宝石共鸣: suitType=%s, shareStoneLV=%s" % (suitType, shareStoneLV))
-        stoneAttrIpyData = IpyGameDataPY.GetIpyGameData("ZhuXianStoneAttr", suitType, shareStoneLV)
-        if not stoneAttrIpyData:
-            continue
-        attrIDList = stoneAttrIpyData.GetAttrIDList()
-        attrValueList = stoneAttrIpyData.GetAttrValueList()
-        if len(attrIDList) != len(attrValueList):
-            continue
-        for i, effID in enumerate(attrIDList):
-            effValue = attrValueList[i]
-            if effID in suitAttrIDPlusPlaceDict:
-                plusPlace = suitAttrIDPlusPlaceDict[effID]
-                if plusPlace not in equipPlaceBaseAttrDict:
-                    continue
-                plusEffDict = equipPlaceBaseAttrDict[plusPlace]
-                #GameWorld.DebugLog("            plusPlace=%s,plusEffDict=%s" % (plusPlace, plusEffDict))
-                for plusEffID, plusEffValue in plusEffDict.items():
-                    addValue = int(plusEffValue * (10000 + effValue) / 10000.0)
-                    #GameWorld.DebugLog("                plusEffID=%s,plusEffValue=%s,addValue=%s" % (plusEffID, plusEffValue, addValue))
-                    PlayerControl.CalcAttrDict_Type(plusEffID, addValue, allAttrListZXStone)
-            else:
-                PlayerControl.CalcAttrDict_Type(effID, effValue, allAttrListZXStone)
-        
-    # 保存计算值
-    #PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_ZXEquip, allAttrList)
-    #PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_ZXEquipSuit, allAttrListZXSuit)
-    #PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_ZXEquipStone, allAttrListZXStone)
-    
-    #计算装备基础属性附加战力 (目前组成: 评分战力 + ...)
-    equipFightPowerEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 2))
-    GameWorld.DebugLog("诛仙装备评分战力: equipScoreTotal=%s,equipFightPowerEx=%s" % (equipScoreTotal, equipFightPowerEx))
-    #curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_ZhuXian, equipFightPowerEx)
-    return
-
-
-def GetZhuXianEquipSkillAddPer(playerID, skillTypeID):
-    ## 获取诛仙装备伤害百分比提升值
-    if playerID not in PyGameData.g_zhuXianSkillAddPerDict:
-        return 0
-    skillAddPerDict = PyGameData.g_zhuXianSkillAddPerDict[playerID]
-    if skillTypeID not in skillAddPerDict:
-        return 0
-    return skillAddPerDict[skillTypeID]
-
-
-def GetZhuXianEquipSkillReducePer(playerID, skillTypeID):
-    ## 获取诛仙装备减伤百分比提升值
-    if playerID not in PyGameData.g_zhuXianSkillReducePerDict:
-        return 0
-    skillReducePerDict = PyGameData.g_zhuXianSkillReducePerDict[playerID]
-    if skillTypeID not in skillReducePerDict:
-        return 0
-    return skillReducePerDict[skillTypeID]
-
-
-#// A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
-#
-#struct    tagCMZhuXianEquipDecompose
-#{
-#    tagHead        Head;
-#    BYTE        Count;        //材料所在背包索引的数量
-#    WORD        IndexList[Count];    //材料所在背包索引列表
-#    DWORD        ItemIDList[Count];    //材料所在背包物品ID列表
-#    BYTE        IsAuto;        //是否自动分解
-#};
-## 诛仙装备分解 
-#  @param playerIndex 玩家索引  
-#  @param clientData 客户端封包  
-#  @param tick 时间
-#  @return None
-def OnZhuXianEquipDecompose(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    if not clientData.Count:
-        return
-    playerID = curPlayer.GetID()
-    eatIndexList = clientData.IndexList
-    eatItemIDList = clientData.ItemIDList
-    isAuto = clientData.IsAuto
-    giveItemDict = {} #分解得到物品
-    
-    itemPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianItem)
-    for i, index in enumerate(eatIndexList):
-        eatItem = itemPack.GetAt(index)
-        if not eatItem or eatItem.IsEmpty():
-            continue
-        eatItemID = eatItem.GetItemTypeID()
-        if eatItemID != eatItemIDList[i]:
-            GameWorld.Log('诛仙装备分解 发的物品ID不对应index=%s eatItemID=%s,ItemIDList[i]=%s' % (index, eatItemID, eatItemIDList[i]), playerID)
-            continue
-        if eatItem.GetType() not in ChConfig.Def_ZhuXianEquiipType:
-            GameWorld.Log('诛仙装备分解 发的物品不是诛仙装备  eatItemID=%s' % eatItemID, playerID)
-            continue
-        
-        itemClassLV = ItemCommon.GetItemClassLV(eatItem)
-        ipyData = IpyGameDataPY.GetIpyGameData('ZhuXianEquipDecompose', itemClassLV)
-        if not ipyData:
-            GameWorld.DebugLog('ZhuXianEquipDecompose 未配置该阶级分解itemClassLV=%s' % itemClassLV, playerID)
-            continue
-        decomposeInfoDict = ipyData.GetDecomposeInfo()
-        getItemDict = {}
-        for itemIDList, rateList in decomposeInfoDict.items():
-            giveitemCnt = GameWorld.GetResultByRandomList(rateList, 0)
-            if not giveitemCnt:
-                continue
-            if isinstance(itemIDList, tuple):
-                itemID = random.choice(itemIDList)
-            else:
-                itemID = itemIDList
-            giveItemDict[itemID] = giveItemDict.get(itemID, 0) + giveitemCnt
-            getItemDict[itemID] = getItemDict.get(itemID, 0) + giveitemCnt
-        saveDataDict = {'getItemDict':getItemDict, 'isAuto':isAuto}
-        ItemCommon.DelItem(curPlayer, eatItem, 1, True, ChConfig.ItemDel_ZhuXianDecompose, saveDataDict)
-    if giveItemDict:
-        needSpace = len(giveItemDict)
-        packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
-        if packSpace < needSpace:
-            prizeItemList = [[giveItemID, itemCnt, 1] for giveItemID, itemCnt in giveItemDict.items()]
-            PlayerControl.SendMailByKey("DefaultLackSpace", [curPlayer.GetPlayerID()], prizeItemList)
-        else:
-            for giveItemID, itemCnt in giveItemDict.items():
-                ItemControler.GivePlayerItem(curPlayer, giveItemID, itemCnt, 0, [IPY_GameWorld.rptItem])
-    
-    #通知结果
-    packData = ChPyNetSendPack.tagMCZhuXianDecomposeResult()
-    packData.Clear()
-    packData.ItemList = []
-    for itemID, itemCnt in giveItemDict.items():
-        itemInfo = ChPyNetSendPack.tagMCZhuXianDecomposeItem()
-        itemInfo.ItemID = itemID
-        itemInfo.ItemCnt = itemCnt
-        itemInfo.IsBind = 1
-        packData.ItemList.append(itemInfo)
-    packData.Cnt = len(packData.ItemList)
-    NetPackCommon.SendFakePack(curPlayer, packData)
-    return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index a6c99c1..b238772 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1041,7 +1041,7 @@
     
     def __CrossServerPutInItem(self, packIndex, tagItem, event=["", False, {}]):
         ## 跨服获得物品
-        if packIndex not in [IPY_GameWorld.rptItem, ShareDefine.rptDogzItem, ShareDefine.rptZhuXianItem]:
+        if packIndex not in [IPY_GameWorld.rptItem, ShareDefine.rptDogzItem]:
             #GameWorld.DebugLog("跨服获得物品不同步, packIndex=%s" % (packIndex))
             return
         curPlayer = self.__Player
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index a3d0fdb..c85f74e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -459,20 +459,20 @@
     SkillAtkRateReduce = 0#attrDict.get(ShareDefine.Def_Effect_SkillAtkRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateReduceC())
     Hit = attrDict.get(ShareDefine.Def_Effect_Hit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetHitC())
     Miss = attrDict.get(ShareDefine.Def_Effect_Miss, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMissC())
-    SkillAddPerA = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer1, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer1C())
-    SkillAddPerB = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer2, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer2C())
-    SkillAddPerC = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer3, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer3C())
-    SkillAddPerD = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer4, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer4C())
-    SkillAddPerE = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer5, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer5C())
-    SkillAddPerF = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer6, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer6C())
-    SkillAddPerG = 0#attrDict.get(ShareDefine.Def_Effect_SkillAddPer7, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer7C())
-    SkillReducePerA = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer1, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer1C())
-    SkillReducePerB = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer2, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer2C())
-    SkillReducePerC = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer3, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer3C())
-    SkillReducePerD = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer4, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer4C())
-    SkillReducePerE = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer5, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer5C())
-    SkillReducePerF = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer6, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer6C())
-    SkillReducePerG = 0#attrDict.get(ShareDefine.Def_Effect_SkillReducePer7, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer7C())
+    SkillAddPerA = 0
+    SkillAddPerB = 0
+    SkillAddPerC = 0
+    SkillAddPerD = 0
+    SkillAddPerE = 0
+    SkillAddPerF = 0
+    SkillAddPerG = 0
+    SkillReducePerA = 0
+    SkillReducePerB = 0
+    SkillReducePerC = 0
+    SkillReducePerD = 0
+    SkillReducePerE = 0
+    SkillReducePerF = 0
+    SkillReducePerG = 0
     
     # 攻速不默认乘,仅作为参数提供策划使用
     AtkSpeed = 0#attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
@@ -488,17 +488,6 @@
         value = eval(FormulaControl.GetCompileFormula("EquipGSFormula", IpyGameDataPY.GetFuncCfg("EquipGSFormula")))
     value += gsValueEx
     return value
-
-def GetZhuXianEquipTotalGS(curPlayer):
-    ##诛仙装备总评分
-    equipScoreTotal = 0
-    zhuXianEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    for equipIndex in xrange(zhuXianEquipPack.GetCount()):
-        curEquip = zhuXianEquipPack.GetAt(equipIndex)            
-        if curEquip.IsEmpty():
-            continue
-        equipScoreTotal += GetEquipGearScore(curEquip)
-    return equipScoreTotal
 
 #---------------------------------------------------------------------
 ## 通过效果ID,检查是否为指定物品 
@@ -1595,11 +1584,11 @@
 #  @remarks 函数详细说明.
 def SwitchItem(curPlayer, curItem, switchItem, putInPackIndex):
     ##物品绑定字段判定 -> 装备绑定
-    if putInPackIndex in [IPY_GameWorld.rptEquip, ShareDefine.rptZhuXianEquip]:
+    if putInPackIndex in [IPY_GameWorld.rptEquip]:
         DoLogic_ItemBindType(curPlayer, switchItem, ChConfig.Def_BindType_DoEquipBind)
         
     # 装备技能书、坐骑装备绑定
-    if putInPackIndex in [IPY_GameWorld.rptHorseEquip, ShareDefine.rptZhuXianEquip]:
+    if putInPackIndex in [IPY_GameWorld.rptHorseEquip]:
         DoLogic_ItemBindType(curPlayer, curItem, ChConfig.Def_BindType_DoEquipBind)
     
     #交换装备
@@ -1620,11 +1609,11 @@
         return
     
     ##物品绑定字段判定 -> 装备绑定
-    if putInPackIndex in [IPY_GameWorld.rptEquip, ShareDefine.rptZhuXianEquip]:
+    if putInPackIndex in [IPY_GameWorld.rptEquip]:
         DoLogic_ItemBindType(curPlayer, switchItem, ChConfig.Def_BindType_DoEquipBind)
     
     # 装备技能书、坐骑装备绑定
-    if putInPackIndex in [IPY_GameWorld.rptHorseEquip, ShareDefine.rptZhuXianEquip]:
+    if putInPackIndex in [IPY_GameWorld.rptHorseEquip]:
         DoLogic_ItemBindType(curPlayer, emptyItem, ChConfig.Def_BindType_DoEquipBind)
 
     if switchItem.GetGameWorldItemType() == IPY_GameWorld.gwitRoleItem:
@@ -1646,10 +1635,6 @@
 def GetIsDogzEquip(curItem):
     ## 返回是否神兽装备
     return curItem.GetType() in ChConfig.Def_DogzEquiipType
-
-def GetIsZhuXianEquip(curItem):
-    ## 返回是否诛仙装备
-    return curItem.GetType() in ChConfig.Def_ZhuXianEquiipType
 
 #---------------------------------------------------------------------
 ##遍历数据库查找合适的物品, 通过 效果ID + 效果A值确定物品
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 0d561bb..6cb5ca9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -1269,15 +1269,6 @@
     curPack.SetCount(ChConfig.Def_PackCnt_DogzEquip)
     curPack.Sync_PackCanUseCount()
     
-    #初始化诛仙物品背包
-    curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianItem)
-    curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianItem)
-    curPack.Sync_PackCanUseCount()
-    #初始化诛仙装备背包
-    curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
-    curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianEquip)
-    curPack.Sync_PackCanUseCount()
-    
     #初始化临时交换背包
     curPack = itemManager.GetPack(ShareDefine.rptTempSwap)
     curPack.SetCount(ChConfig.Def_PackCnt_TempSwap)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
index e0ae076..91f317a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
@@ -262,7 +262,7 @@
     itemsDict = {}
     # 影响战力的物品,新功能注意添加,下次需要加上诛仙塔
     
-    packList = [IPY_GameWorld.rptEquip, ShareDefine.rptPet, ShareDefine.rptDogzEquip, ShareDefine.rptZhuXianEquip]
+    packList = [IPY_GameWorld.rptEquip, ShareDefine.rptPet, ShareDefine.rptDogzEquip]
     for packIndex in packList:
         curPack = curPlayer.GetItemManager().GetPack(packIndex)
         for i in range(curPack.GetCount()):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index a34383f..3f0eebf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -88,7 +88,6 @@
 import CrossRealmPlayer
 import CrossPlayerData
 import ChNetSendPack
-#import EquipZhuXian
 import PlayerCoat
 import PlayerState
 import QuestCommon
@@ -1238,8 +1237,6 @@
         CrossPlayerData.ClearCrossSyncDataCache(curPlayer)
         PyGameData.g_fbBuyBuffTimeDict.pop(playerID, None)
     #清除地图玩家缓存
-    PyGameData.g_zhuXianSkillAddPerDict.pop(playerID, None)
-    PyGameData.g_zhuXianSkillReducePerDict.pop(playerID, None)
     PyGameData.g_playerFuncAttrDict.pop(playerID, None)
     PyGameData.g_playerEquipPartAttrDict.pop(playerID, None)
     PyGameData.g_equipChangeClassLVInfo.pop(playerID, None)
@@ -4277,7 +4274,6 @@
         PlayerFamilyTech.CalcFamilyTechAttr(curPlayer)
         PlayerEquipDecompose.RefreshEDAttr(curPlayer)
         PlayerDogz.RefreshDogzAttr(curPlayer)
-        #EquipZhuXian.CalcZhuXianAttr(curPlayer)
         PlayerGatherSoul.RefreshGatherSoulAttr(curPlayer)
         PlayerCoat.CalcClothesCoatSkinAttr(curPlayer)
         self.RefreshAllState(isForce=True)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py
index db2f13f..5e5ad3d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py
@@ -93,8 +93,6 @@
 g_crossPlayerSkillsChangeInfo = {} #跨服玩家技能变化信息 {playerID:[技能ID], ...}
 
 g_ZhuXianBossPlayerHurtDict = {} #诛仙BOSS玩家伤害排行信息
-g_zhuXianSkillAddPerDict = {} # 诛仙装备对技能增强缓存 {playerID:{技能TypeID:数值, ...}, ...}
-g_zhuXianSkillReducePerDict = {} # 诛仙装备对技能减伤缓存 {playerID:{技能TypeID:数值, ...}, ...}
 
 g_Qudao_DoubleBill = {} # 渠道删档充值返利
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 78e8124..7bdf2ab 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -507,34 +507,6 @@
 Def_Effect_JobBAtkReducePer = 94 # 法师攻击伤害减免
 Def_Effect_JobCAtkReducePer = 95 # 弓箭攻击伤害减免
 
-Def_Effect_ZXCloakAttrPer = 96 # 诛仙披风属性加成百分比
-Def_Effect_ZXMaskAttrPer = 97 # 诛仙面具属性加成百分比
-Def_Effect_ZXGloveAttrPer = 98 # 诛仙手套属性加成百分比
-Def_Effect_ZXRuyiAttrPer = 99 # 诛仙如意属性加成百分比
-Def_Effect_ZXPendantAttrPer = 100 # 诛仙吊坠属性加成百分比
-Def_Effect_ZXRingAttrPer = 101 # 诛仙戒指属性加成百分比
-
-Def_Effect_SkillAddPer1 = 102 # 技能伤害增强1
-Def_Effect_SkillAddPer2 = 103 # 技能伤害增强2
-Def_Effect_SkillAddPer3 = 104 # 技能伤害增强3
-Def_Effect_SkillAddPer4 = 105 # 技能伤害增强4
-Def_Effect_SkillAddPer5 = 106 # 技能伤害增强5
-Def_Effect_SkillAddPer6 = 107 # 技能伤害增强6
-Def_Effect_SkillAddPer7 = 108 # 技能伤害增强7
-
-Def_Effect_SkillReducePer1 = 109 # 受到技能伤害减少1
-Def_Effect_SkillReducePer2 = 110 # 受到技能伤害减少2
-Def_Effect_SkillReducePer3 = 111 # 受到技能伤害减少3
-Def_Effect_SkillReducePer4 = 112 # 受到技能伤害减少4
-Def_Effect_SkillReducePer5 = 113 # 受到技能伤害减少5
-Def_Effect_SkillReducePer6 = 114 # 受到技能伤害减少6
-Def_Effect_SkillReducePer7 = 115 # 受到技能伤害减少7
-
-Def_Effect_ZXWeaponAttrPer = 116 # 诛仙剑1属性加成百分比
-Def_Effect_LXWeaponAttrPer = 117 # 诛仙剑2属性加成百分比
-Def_Effect_XXWeaponAttrPer = 118 # 诛仙剑3属性加成百分比
-Def_Effect_JXWeaponAttrPer = 119 # 诛仙剑4属性加成百分比
-
 Def_Effect_Luck = 120 # 气运
 Def_Effect_LuckPer = 133 # 气运百分率
 
@@ -998,10 +970,8 @@
 rptPet,             # 宠物背包(用物品存储宠物的数据) 31
 rptDogzItem,        # 神兽物品背包 32
 rptDogzEquip,       # 神兽装备背包 33
-rptZhuXianItem,     # 诛仙物品背包 34
-rptZhuXianEquip,    # 诛仙装备背包 35
 rptMax,             # 最大背包类型数量,放在最后一个
-) = range(28, 28 + 9)  #C++定义的枚举到27
+) = range(28, 28 + 7)  #C++定义的枚举到27
 
 #虚拟背包类型, 从255递减
 Def_VPack_TypeList = (
@@ -1699,22 +1669,6 @@
     dogzetClaw,     # 神兽兽爪
     dogzetScute,    # 神兽鳞甲
 ) = range(101, 101 + 5)
-
-# 诛仙装备位定义
-ZhuXianEquipPlace = (
-    zxetCloak,      # 诛仙披风 121
-    zxetMask,       # 诛仙面具 122
-    zxetGlove,      # 诛仙手套 123
-    zxetGlove2,     # 诛仙手套 124
-    zxetRuyi,       # 诛仙如意 125
-    zxetPendant,    # 诛仙吊坠 126
-    zxetRing,       # 诛仙戒指 127
-    zxetRing2,      # 诛仙戒指 128
-    zxetWeapon1,    # 诛仙剑1 129
-    zxetWeapon2,    # 诛仙剑2 130
-    zxetWeapon3,    # 诛仙剑3 131
-    zxetWeapon4,    # 诛仙剑4 132
-) = range(121, 121 + 12)
 
 # 共享通用装备位,可装备同一类型装备
 ShareEquipPlace = [
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index d707b68..b4a96fb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -47,7 +47,6 @@
 import IpyGameDataPY
 import PyGameData
 import EventShell
-#import EquipZhuXian
 #---------------------------------------------------------------------
 GameWorld.ImportAll("Script\\Skill\\" , "GameSkills")
 GameWorld.ImportAll("Script\\Skill\\" , "GameBuffs")
@@ -1917,10 +1916,6 @@
     if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill:
         if not PlayerGreatMaster.GetGreatMasterFreeSkillPoint(curPlayer):
             return False
-    #诛仙技能学习判断
-    #if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_ZhuXian:
-    #    if not EquipZhuXian.CheckLearnZhuXianSkill(curPlayer, curSkillTypeID):
-    #        return False
         
     #经验检测
     skillLvUpNeedExp = upSkill.GetLVUpCostExp()

--
Gitblit v1.8.0