From f1788ddd849b6e3356571a8e7c6e844aafda1414 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 20 二月 2019 14:02:07 +0800
Subject: [PATCH] 6258 【后端】【2.0】技能升级功能(删除法宝技能升级)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py |  324 -----------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini                      |   18 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py              |  112 --------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py          |  108 -------
 PySysDB/PySysDBPY.h                                                                             |   13 
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py                                   |  112 --------
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                               |  108 -------
 7 files changed, 5 insertions(+), 790 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index d2029f1..3894335 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -704,19 +704,6 @@
 	list		SuccessList;	//需要完成成就
 };
 
-//法宝技能升级表
-
-struct tagTreasureSkill
-{
-	BYTE		_SkillUpType;	//技能升级类型
-	BYTE		_SkillLV;	//技能等级
-	DWORD		NeedPoint;	//升到当前级消耗天石精华
-	WORD		InitRate;	//初始概率
-	list		NeedItemID;	//升到当前级溶彩石ID
-	list		NeedItemCnt;	//升到当前级溶彩石数量
-	list		MaxRate;	//升到当前级概率
-};
-
 //连续签到奖励表
 
 struct tagContineSignAward
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 29e15b4..46c74b1 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -10004,62 +10004,6 @@
 
 
 #------------------------------------------------------
-# A5 0D 升级法宝技能 #tagCMMagicWeaponSkillUp
-
-class  tagCMMagicWeaponSkillUp(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("SkillTypeID", c_ushort),    
-                  ("CostIndex", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x0D
-        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 = 0xA5
-        self.SubCmd = 0x0D
-        self.SkillTypeID = 0
-        self.CostIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMagicWeaponSkillUp)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 0D 升级法宝技能 //tagCMMagicWeaponSkillUp:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                SkillTypeID:%d,
-                                CostIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.SkillTypeID,
-                                self.CostIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMMagicWeaponSkillUp=tagCMMagicWeaponSkillUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponSkillUp.Cmd,m_NAtagCMMagicWeaponSkillUp.SubCmd))] = m_NAtagCMMagicWeaponSkillUp
-
-
-#------------------------------------------------------
 # A5 16 法宝状态记录 #tagCMMagicWeaponState
 
 class  tagCMMagicWeaponState(Structure):
@@ -10161,62 +10105,6 @@
 
 m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp
-
-
-#------------------------------------------------------
-# A5 77 玩家精炼法宝 #tagCMMWRefine
-
-class  tagCMMWRefine(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("MWID", c_int),    # 法宝ID
-                  ("MaterialID", c_int),    #材料ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x77
-        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 = 0xA5
-        self.SubCmd = 0x77
-        self.MWID = 0
-        self.MaterialID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMWRefine)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 77 玩家精炼法宝 //tagCMMWRefine:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                MWID:%d,
-                                MaterialID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.MWID,
-                                self.MaterialID
-                                )
-        return DumpString
-
-
-m_NAtagCMMWRefine=tagCMMWRefine()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMWRefine.Cmd,m_NAtagCMMWRefine.SubCmd))] = m_NAtagCMMWRefine
 
 
 #------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 9abbd8c..2a9579e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -14298,114 +14298,6 @@
 
 
 #------------------------------------------------------
-# A3 BE 通知客户端法宝精炼等级 #tagMCMagicWeaponMsg
-
-class  tagMCMagicWeaponLV(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("MWID", c_int),    # 法宝ID
-                  ("MWLV", 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.MWID = 0
-        self.MWLV = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCMagicWeaponLV)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 BE 通知客户端法宝精炼等级 //tagMCMagicWeaponMsg:
-                                MWID:%d,
-                                MWLV:%d
-                                '''\
-                                %(
-                                self.MWID,
-                                self.MWLV
-                                )
-        return DumpString
-
-
-class  tagMCMagicWeaponMsg(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)// 法宝个数
-    MWInfo = list()    #(vector<tagMCMagicWeaponLV> MWInfo)//法宝信息
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xBE
-        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):
-            temMWInfo = tagMCMagicWeaponLV()
-            _pos = temMWInfo.ReadData(_lpData, _pos)
-            self.MWInfo.append(temMWInfo)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xBE
-        self.Count = 0
-        self.MWInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.MWInfo[i].GetLength()
-
-        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.WriteString(data, self.MWInfo[i].GetLength(), self.MWInfo[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                MWInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCMagicWeaponMsg=tagMCMagicWeaponMsg()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponMsg.Head.Cmd,m_NAtagMCMagicWeaponMsg.Head.SubCmd))] = m_NAtagMCMagicWeaponMsg
-
-
-#------------------------------------------------------
 # A3 46 大师经验信息 #tagMCGreatMasterExp
 
 class  tagMCGreatMasterExp(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 519b771..10deea2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -1105,15 +1105,15 @@
 Writer = xdh
 Releaser = xdh
 RegType = 0
-RegisterPackCount = 7
+RegisterPackCount = 5
 
 PacketCMD_1=0xA5
-PacketSubCMD_1=0x0D
-PacketCallFunc_1=OnMagicWeaponSkillUp
+PacketSubCMD_1=0x12
+PacketCallFunc_1=OnActiveMWSoul
 
 PacketCMD_2=0xA5
-PacketSubCMD_2=0x77
-PacketCallFunc_2=PlayerMWRefine
+PacketSubCMD_2=0x1D
+PacketCallFunc_2=OnWearMagicWeapon
 
 PacketCMD_3=0xA5
 PacketSubCMD_3=0x0E
@@ -1126,14 +1126,6 @@
 PacketCMD_5=0xA5
 PacketSubCMD_5=0x16
 PacketCallFunc_5=SaveMagicWeaponState
-
-PacketCMD_6=0xA5
-PacketSubCMD_6=0x12
-PacketCallFunc_6=OnActiveMWSoul
-
-PacketCMD_7=0xA5
-PacketSubCMD_7=0x1D
-PacketCallFunc_7=OnWearMagicWeapon
 
 ;副本
 [FBCommon]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 29e15b4..46c74b1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -10004,62 +10004,6 @@
 
 
 #------------------------------------------------------
-# A5 0D 升级法宝技能 #tagCMMagicWeaponSkillUp
-
-class  tagCMMagicWeaponSkillUp(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("SkillTypeID", c_ushort),    
-                  ("CostIndex", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x0D
-        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 = 0xA5
-        self.SubCmd = 0x0D
-        self.SkillTypeID = 0
-        self.CostIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMagicWeaponSkillUp)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 0D 升级法宝技能 //tagCMMagicWeaponSkillUp:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                SkillTypeID:%d,
-                                CostIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.SkillTypeID,
-                                self.CostIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMMagicWeaponSkillUp=tagCMMagicWeaponSkillUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponSkillUp.Cmd,m_NAtagCMMagicWeaponSkillUp.SubCmd))] = m_NAtagCMMagicWeaponSkillUp
-
-
-#------------------------------------------------------
 # A5 16 法宝状态记录 #tagCMMagicWeaponState
 
 class  tagCMMagicWeaponState(Structure):
@@ -10161,62 +10105,6 @@
 
 m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp
-
-
-#------------------------------------------------------
-# A5 77 玩家精炼法宝 #tagCMMWRefine
-
-class  tagCMMWRefine(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("MWID", c_int),    # 法宝ID
-                  ("MaterialID", c_int),    #材料ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x77
-        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 = 0xA5
-        self.SubCmd = 0x77
-        self.MWID = 0
-        self.MaterialID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMWRefine)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 77 玩家精炼法宝 //tagCMMWRefine:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                MWID:%d,
-                                MaterialID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.MWID,
-                                self.MaterialID
-                                )
-        return DumpString
-
-
-m_NAtagCMMWRefine=tagCMMWRefine()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMWRefine.Cmd,m_NAtagCMMWRefine.SubCmd))] = m_NAtagCMMWRefine
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 9abbd8c..2a9579e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -14298,114 +14298,6 @@
 
 
 #------------------------------------------------------
-# A3 BE 通知客户端法宝精炼等级 #tagMCMagicWeaponMsg
-
-class  tagMCMagicWeaponLV(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("MWID", c_int),    # 法宝ID
-                  ("MWLV", 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.MWID = 0
-        self.MWLV = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCMagicWeaponLV)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 BE 通知客户端法宝精炼等级 //tagMCMagicWeaponMsg:
-                                MWID:%d,
-                                MWLV:%d
-                                '''\
-                                %(
-                                self.MWID,
-                                self.MWLV
-                                )
-        return DumpString
-
-
-class  tagMCMagicWeaponMsg(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)// 法宝个数
-    MWInfo = list()    #(vector<tagMCMagicWeaponLV> MWInfo)//法宝信息
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xBE
-        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):
-            temMWInfo = tagMCMagicWeaponLV()
-            _pos = temMWInfo.ReadData(_lpData, _pos)
-            self.MWInfo.append(temMWInfo)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xBE
-        self.Count = 0
-        self.MWInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.MWInfo[i].GetLength()
-
-        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.WriteString(data, self.MWInfo[i].GetLength(), self.MWInfo[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                MWInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCMagicWeaponMsg=tagMCMagicWeaponMsg()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponMsg.Head.Cmd,m_NAtagMCMagicWeaponMsg.Head.SubCmd))] = m_NAtagMCMagicWeaponMsg
-
-
-#------------------------------------------------------
 # A3 46 大师经验信息 #tagMCGreatMasterExp
 
 class  tagMCGreatMasterExp(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
index 83f6c91..0c326b8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
@@ -45,7 +45,6 @@
 # @return None
 def PlayerMagicWeaponLogin(curPlayer):
     NotifyMagicWeapon(curPlayer, True)
-    Sycn_MagicWeaponRefineLV(curPlayer)
     SyncXBXZAwardRecord(curPlayer)
     Sycn_MagicWeaponLV(curPlayer)
     Sycn_MWPrivilegeData(curPlayer)
@@ -227,43 +226,6 @@
             activeCnt += 1
     return activeCnt
 
-def GetPotentialsSkillInfo(curPlayer):
-    #通过潜力技能ID获取对应的下一个技能ID {skillUseType:{skillid:[skilllv,nextSkillid,addPower,]}}
-    global g_potentialsSkillDict
-
-    if not g_potentialsSkillDict:
-        g_potentialsSkillDict = {}
-        ipyDataMgr = IpyGameDataPY.IPY_Data()
-        for i in xrange(ipyDataMgr.GetTreasureCount()):
-            ipyData = ipyDataMgr.GetTreasureByIndex(i)
-            mwID = ipyData.GetID()
-            skillIDList = ipyData.GetPotentials()
-            addPowerList = ipyData.GetSkillPower()
-            lastSkillUseType = 0
-            for curSkillID in skillIDList:
-                skillData = GameWorld.GetGameData().FindSkillByType(curSkillID, 1)
-                if skillData == None:
-                    GameWorld.DebugLog("GetPotentialsSkillInfo() hasn't find skill(%s)" % curSkillID)
-                    continue
-                if lastSkillUseType != skillData.GetUseType():
-                    index = 0
-                else:
-                    index +=1
-                lastSkillUseType = skillData.GetUseType()
-                addPower = addPowerList[index]
-
-                preSkillID = skillData.GetLearnSkillReq()
-                if not preSkillID:
-                    continue
-                skillUseType = skillData.GetUseType()
-                preSkilllv = skillData.GetLearnSkillLV()
-                if skillUseType not in g_potentialsSkillDict:
-                    g_potentialsSkillDict[skillUseType] = {}
-                g_potentialsSkillDict[skillUseType][preSkillID] = [preSkilllv, curSkillID, addPower]
-    curskillUseType = pow(2, curPlayer.GetJob())
-    
-    return g_potentialsSkillDict.get(curskillUseType, {})
-
 ## 给技能
 #  @param curPlayer
 #  @param skillResID 技能源ID
@@ -300,174 +262,6 @@
     PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillResID, 0)
     return
 
-
-
-#// A5 0D 升级法宝技能 #tagCMMagicWeaponSkillUp
-#
-#struct    tagCMMagicWeaponSkillUp
-#{
-#    tagHead        Head;
-#    WORD        SkillTypeID;
-#    BYTE        CostIndex;
-#};
-def OnMagicWeaponSkillUp(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    skillTypeID = clientData.SkillTypeID
-    costIndex = clientData.CostIndex #0代表未选中 1代表第一个
-    
-    curSkillType = None
-    SPSkillTypeDict = IpyGameDataPY.GetFuncEvalCfg('SPSkillType')
-    for skillType, skillIDList in SPSkillTypeDict.items():
-        if skillTypeID in skillIDList:
-            curSkillType = int(skillType)
-            break
-    if curSkillType == None:
-        #不是法宝技能
-        return
-    
-    #获得玩家技能管理器
-    skillManager = curPlayer.GetSkillManager()
-    #获得技能
-    curSkill = skillManager.FindSkillBySkillTypeID(skillTypeID)
-    if curSkill == None:
-        curSkillLV = 0
-        beforeFightPower = 0
-    else:
-        curSkillLV = curSkill.GetSkillLV()
-        beforeFightPower = curSkill.GetFightPower()
-        if curSkillLV == curSkill.GetSkillMaxLV():
-            #已经是最高等级
-            PlayerControl.NotifyCode(curPlayer, "UseMagicLost16")
-            return
-    
-    upSkillLv = curSkillLV + 1
-    curSkillID = skillTypeID if not curSkill else curSkill.GetSkillID()
-    upSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, upSkillLv)
-    if not upSkill:
-        GameWorld.DebugLog("技能升级配表错误 ID=%s lv=%s"%(skillTypeID, upSkillLv))
-        return
-    
-    if not SkillShell.CheckLearnSkillCondition(curPlayer, upSkill):
-        return
-    
-    #升级技能消耗
-    ipyData = IpyGameDataPY.GetIpyGameData('TreasureSkill', curSkillType, upSkillLv)
-    if not ipyData:
-        return
-    
-    needSP = ipyData.GetNeedPoint()
-    if PlayerControl.GetZhenQi(curPlayer) < needSP:
-        GameWorld.DebugLog("法宝sp不足,无法升级技能!needSP=%s,skillTypeID=%s" % (needSP, skillTypeID), curPlayer.GetPlayerID())
-        return
-    
-    initRate = ipyData.GetInitRate() #初始概率
-    itemIndexList = []
-    
-    if initRate != ShareDefine.Def_MaxRateValue and costIndex > 0:
-        #满概率不消耗道具
-        needItemIDList = ipyData.GetNeedItemID()
-        needItemCntList = ipyData.GetNeedItemCnt()
-        maxRateList = ipyData.GetMaxRate()
-        if costIndex - 1 >= len(needItemIDList):
-            GameWorld.Log("法宝技能升级,costIndex=%s 错误" % costIndex)
-            return
-        needItemID, needItemCnt, initRate = needItemIDList[costIndex - 1], needItemCntList[costIndex - 1], maxRateList[costIndex - 1]
-        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        isEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(needItemID, itemPack, needItemCnt)
-        if not isEnough:
-            GameWorld.DebugLog("升级法宝技能() up skill(%s) item(%s) no enough" \
-                               % (upSkill.GetSkillID(), needItemID))
-            return
-        
-    
-    #扣物品
-    if itemIndexList:
-        ItemCommon.ReduceItem(curPlayer, itemPack, itemIndexList, needItemCnt, False, ChConfig.ItemDel_MagicWeapon, 
-                              {"SkillTypeID":skillTypeID, "SkillLV":curSkillLV})
-    
-    #付钱
-    #infoDict = {"SkillID":skillTypeID, "SkillLV":upSkillLv, ChConfig.Def_Cost_Reason_SonKey:upSkill.GetSkillName()}
-    if not PlayerControl.PlayerLostZhenQi(curPlayer, needSP):
-        return
-    playerID = curPlayer.GetPlayerID()
-    maxRateValue = ShareDefine.Def_MaxRateValue
-    randValue = random.randint(0, maxRateValue-1)
-    canHappen = randValue < initRate
-    GameWorld.DebugLog("canHappen=%s,randValue=%s,initRate=%s,maxRateValue=%s" 
-                       % (canHappen, randValue, initRate, maxRateValue), playerID)
-    # 不是百分百成功的记录合成流向
-    if initRate != maxRateValue:
-        drDict = {"PlayerID":playerID, "AccID":curPlayer.GetAccID(), "skillTypeID":skillTypeID, "IsSuccess":canHappen,
-                  "initRate":initRate, "randValue":randValue, "maxRateValue":maxRateValue}
-
-        DataRecordPack.SendEventPack("MagicWeaponSkillUp", drDict, curPlayer)
-
-    if not canHappen:
-        GameWorld.DebugLog("法宝技能升级,curSkillID=%s, maxRate=%s 升级失败" % (curSkillID, initRate))
-        curPlayer.Sync_MakeItemAnswer(ShareDefine.Def_mitMagicWeaponSkillUp, 0)
-        return
-    curControl = PlayerControl.PlayerControl(curPlayer)
-    skillManager.LVUPSkillByID(curSkillID)
-    #触发学习新技能
-    newSkillIsPassive = False
-    potentialSkillLearnDict = IpyGameDataPY.GetFuncEvalCfg('PotentialSkillLearn')
-    if str(skillTypeID) in potentialSkillLearnDict:
-        needSkllLV, newSkillID = potentialSkillLearnDict[str(skillTypeID)]
-        if upSkillLv == needSkllLV:
-            if not skillManager.FindSkillBySkillTypeID(newSkillID):
-                newSkill = GameWorld.GetGameData().FindSkillByType(newSkillID, 1)
-                if newSkill:
-                    skillManager.LVUPSkillByID(newSkillID)
-                    GameWorld.DebugLog('    法宝技能升级 skillTypeID=%s, upSkillLv=%s, 触发学习技能%s' % (skillTypeID, upSkillLv, newSkillID))
-                    curControl.RefreshSkillFightPowerEx(newSkillID, 0)
-                    PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, newSkillID)
-                    if SkillCommon.isPassiveAttr(newSkill):
-                        newSkillIsPassive = True
-                    PlayerControl.WorldNotify(0, 'SkillPotential2', [curPlayer.GetName(), skillTypeID, upSkillLv, newSkillID])
-            
-    
-    #通知技能已升级成功
-    hasUnlockSkill = False
-    nextSkillDict = GetPotentialsSkillInfo(curPlayer)
-    if skillTypeID in nextSkillDict:
-        needSkilllv,nextSkillID = nextSkillDict[skillTypeID][:2]
-        if upSkillLv == needSkilllv:
-            PlayerControl.WorldNotify(0, 'SkillPotential1', [curPlayer.GetName(), skillTypeID, upSkillLv, nextSkillID])
-            CalcMagicWeaponAttr(curPlayer)
-            hasUnlockSkill = True
-            
-    maxLV = upSkill.GetSkillMaxLV()
-    if upSkillLv == maxLV:
-        PlayerControl.WorldNotify(0, 'SkillPotential3', [curPlayer.GetName(), skillTypeID, maxLV])
-    
-    if SkillCommon.isPassiveAttr(upSkill) or newSkillIsPassive or hasUnlockSkill:
-        curControl.RefreshPlayerAttrState()
-        
-    curControl.RefreshSkillFightPowerEx(upSkill.GetSkillID(), beforeFightPower)
-    PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, upSkill.GetSkillID())
-    
-    #获得技能等级
-    #curSkillLV = curSkill.GetSkillLV()
-    GameWorld.DebugLog('    法宝技能升级 skillTypeID=%s, upSkillLv=%s' % (skillTypeID, upSkillLv))
-    DataRecordPack.DR_LearnORUPSkill(curPlayer, skillTypeID, upSkillLv)
-    
-    curPlayer.Sync_MakeItemAnswer(ShareDefine.Def_mitMagicWeaponSkillUp, 1)
-    
-    SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_MWSkillUp, GetSPSkillTotalLV(curPlayer))
-    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_MWSkillUp, 1, [skillTypeID])
-    EventShell.EventRespons_MWSkillUp(curPlayer)
-    return
-
-def GetSPSkillTotalLV(curPlayer):
-    #潜力技能总等级
-    totalLV = 0
-    skillManager = curPlayer.GetSkillManager()
-    for i in xrange(skillManager.GetSkillCount()):
-        curSkill = skillManager.GetSkillByIndex(i)
-        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbSPSkill:
-            continue
-        totalLV += curSkill.GetSkillLV()
-    return totalLV
 
 def NotifyMagicWeapon(curPlayer, isLogin=False):
     #通知法宝信息
@@ -585,126 +379,8 @@
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon2, allAttrList2)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon3, allAttrList3)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon4, allAttrList4)
-    #技能解锁战力
-    nextSkillDict = GetPotentialsSkillInfo(curPlayer)
-    for skillID, info in nextSkillDict.items():
-        needSkilllv, nextSkillID, addPower = info
-        skillManager = curPlayer.GetSkillManager()
-        curSkill = skillManager.FindSkillBySkillTypeID(skillID)
-        if not curSkill:
-            continue
-        curSkillLV = curSkill.GetSkillLV()
-        if curSkillLV < needSkilllv:
-            continue
-        mfpType = ChConfig.Def_SkillFuncType_MFPType.get(curSkill.GetFuncType(), ShareDefine.Def_MFPType_Role)
-        addPowerDict[mfpType] = addPowerDict.get(mfpType, 0) + addPower
-    
-    for mfpType, addPower in addPowerDict.items():
-        curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % mfpType, addPower)
     return
 
-#// A5 77 玩家精炼法宝 #tagCMMWRefine
-#
-#struct tagCMMWRefine
-#{
-#    tagHead    Head;
-#    DWORD    MWID;    // 法宝ID
-#    DWORD   MaterialID; //材料ID
-#};
-def PlayerMWRefine(index, clientPack, tick):
-    mwID = clientPack.MWID # 法宝ID
-    materialID = clientPack.MaterialID # 提升概率物品ID
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    playerID = curPlayer.GetPlayerID()
-    allTreasureItemIDList = IpyGameDataPY.GetFuncEvalCfg("TreasureUpRateItem")
-    if mwID not in allTreasureItemIDList:
-        GameWorld.DebugLog("该法宝不能铸炼-法宝ID:%s" % mwID, playerID)
-        return
-    
-    isActive = GetIsActiveMagicWeapon(curPlayer, mwID)
-    if not isActive:
-        GameWorld.DebugLog("法宝未激活,不能铸炼-法宝ID:%s" % mwID, playerID)
-        return
-    
-    nextRefineLv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponRefineLV % mwID) + 1
-    mwRefineIpyData = GetMWRefineIpyData(mwID, nextRefineLv)
-    if not mwRefineIpyData:
-        GameWorld.DebugLog("法宝已满级,不能铸炼-法宝ID:%s, nextRefineLv=%s" % (mwID, nextRefineLv), playerID)
-        return
-    
-    # 所需炼丹炉等级
-    alchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
-    if alchemyLV < mwRefineIpyData.GetNeedAlchemyLV():
-        GameWorld.DebugLog("炼丹炉等级不足,无法铸炼法宝-法宝ID:%s, nextRefineLv=%s,alchemyLV=%s,NeedAlchemyLV=%s" 
-                           % (mwID, nextRefineLv, alchemyLV, mwRefineIpyData.GetNeedAlchemyLV()), playerID)
-        return
-    
-    # 所需所有法宝等级
-    needAllTreasureLV = mwRefineIpyData.GetNeedAllTreasureLV()
-    for tID in allTreasureItemIDList:
-        if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponRefineLV % tID) < needAllTreasureLV:
-            GameWorld.DebugLog("所有法宝需达到对应等级后才可继续铸炼! needAllTreasureLV=%s" % needAllTreasureLV, playerID)
-            return
-        
-    needItemDict = mwRefineIpyData.GetMaterial()
-    
-    fujiaRate = 0
-    if materialID:
-        treasureUpRateItem = IpyGameDataPY.GetFuncEvalCfg("TreasureUpRateItem", 2)
-        if materialID not in treasureUpRateItem:
-            GameWorld.ErrLog("该物品ID无法用于提升法宝铸炼概率!itemID=%s" % (materialID), playerID)
-            return
-        rateItemData = GameWorld.GetGameData().GetItemByTypeID(materialID)
-        if not rateItemData:
-            return
-        fujiaRate = rateItemData.GetEffectByIndex(0).GetEffectValue(0)
-        needItemDict[materialID] = 1
-        
-    itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-    lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList(needItemDict, itemPack)
-    if lackItemDict:
-        GameWorld.DebugLog("法宝铸炼材料不足!法宝ID:%s, nextRefineLv=%s,needItemDict=%s,lackItemDict=%s,hasItemDict=%s" 
-                           % (mwID, nextRefineLv, needItemDict, lackItemDict, delInfoDict), playerID)
-        return
-    ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, ChConfig.ItemDel_MagicWeapon)
-    
-    successRate = mwRefineIpyData.GetSuccessRate() + fujiaRate
-    if GameWorld.CanHappen(successRate):
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MagicWeaponRefineLV % mwID, nextRefineLv)
-        skillID = mwRefineIpyData.GetOpenSkill()
-        if skillID:
-            GiveSkill(curPlayer, skillID, tick)
-        CalcMagicWeaponAttr(curPlayer)
-        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-        #通知客户端    
-        Sycn_MagicWeaponRefineLV(curPlayer, mwID)
-        curPlayer.Sync_MakeItemAnswer(ShareDefine.Def_mitMWUpLevel, ChConfig.Def_ComposeState_Sucess)
-        GameWorld.DebugLog("法宝铸炼成功! 法宝ID:%s, upRefineLv=%s,successRate=%s" % (mwID, nextRefineLv, successRate), playerID)
-    else:
-        curPlayer.Sync_MakeItemAnswer(ShareDefine.Def_mitMWUpLevel, ChConfig.Def_ComposeState_Fail)
-        GameWorld.DebugLog("法宝铸炼失败! 法宝ID:%s, nextRefineLv=%s,successRate=%s" % (mwID, nextRefineLv, successRate), playerID)
-        
-    return
-
-def Sycn_MagicWeaponRefineLV(curPlayer, mwID= -1):
-    if mwID == -1:
-        needCalList = IpyGameDataPY.GetFuncEvalCfg("TreasureUpRateItem")
-    else:
-        needCalList = [mwID]
-    sendPack = ChPyNetSendPack.tagMCMagicWeaponMsg()
-    sendPack.MWInfo = []
-    for mwID in needCalList:
-        mwRefineLv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponRefineLV % mwID)
-        if not mwRefineLv:
-            continue
-        pack = ChPyNetSendPack.tagMCMagicWeaponLV()
-        pack.MWID = mwID
-        pack.MWLV = mwRefineLv
-        sendPack.MWInfo.append(pack)
-    sendPack.Count = len(sendPack.MWInfo)
-    if sendPack.Count:
-        NetPackCommon.SendFakePack(curPlayer, sendPack)
-    return
 
 #// A5 0E 开启法宝 #tagCMOpenMagicWeapon
 #

--
Gitblit v1.8.0