From 5c2c00d470909bd537e57f1da2963a587c2571d6 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 23 四月 2019 11:52:57 +0800
Subject: [PATCH] 6588 【2.0】【后端】人族法宝界面优化

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py |   22 ++++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini                      |    5 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py              |   52 +++++++++++++++++
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py                                   |   52 +++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py         |    5 +
 5 files changed, 132 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index d77fb5f..e8f8f90 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -11088,6 +11088,58 @@
 
 
 #------------------------------------------------------
+# A5 12 感应法宝 #tagCMThinkMagicWeapon
+
+class  tagCMThinkMagicWeapon(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("MWID", c_int),    
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x12
+        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 = 0x12
+        self.MWID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMThinkMagicWeapon)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 12 感应法宝 //tagCMThinkMagicWeapon:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                MWID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.MWID
+                                )
+        return DumpString
+
+
+m_NAtagCMThinkMagicWeapon=tagCMThinkMagicWeapon()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMThinkMagicWeapon.Cmd,m_NAtagCMThinkMagicWeapon.SubCmd))] = m_NAtagCMThinkMagicWeapon
+
+
+#------------------------------------------------------
 # A5 11 试用首充武器 #tagCMTryFirstGoldItem
 
 class  tagCMTryFirstGoldItem(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index b355786..94a32c8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -1006,7 +1006,7 @@
 Writer = xdh
 Releaser = xdh
 RegType = 0
-RegisterPackCount = 3
+RegisterPackCount = 4
 
 PacketCMD_1=0xA5
 PacketSubCMD_1=0x1D
@@ -1020,6 +1020,9 @@
 PacketSubCMD_3=0x15
 PacketCallFunc_3=OnMagicWeaponUp
 
+PacketCMD_4=0xA5
+PacketSubCMD_4=0x12
+PacketCallFunc_4=OnThinkMagicWeapon
 
 ;副本
 [FBCommon]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index d77fb5f..e8f8f90 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -11088,6 +11088,58 @@
 
 
 #------------------------------------------------------
+# A5 12 感应法宝 #tagCMThinkMagicWeapon
+
+class  tagCMThinkMagicWeapon(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("MWID", c_int),    
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x12
+        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 = 0x12
+        self.MWID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMThinkMagicWeapon)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 12 感应法宝 //tagCMThinkMagicWeapon:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                MWID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.MWID
+                                )
+        return DumpString
+
+
+m_NAtagCMThinkMagicWeapon=tagCMThinkMagicWeapon()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMThinkMagicWeapon.Cmd,m_NAtagCMThinkMagicWeapon.SubCmd))] = m_NAtagCMThinkMagicWeapon
+
+
+#------------------------------------------------------
 # A5 11 试用首充武器 #tagCMTryFirstGoldItem
 
 class  tagCMTryFirstGoldItem(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
index 5db7298..788f9d4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1902,6 +1902,11 @@
     #完成祈愿
     RunQuestEvent(curPlayer, "pray", prayType, Def_RunQuestType_Normal)
     return
+
+def EventRespons_ThinkMagicWeapon(curPlayer):
+    #感应法宝
+    RunQuestEvent(curPlayer, "thinkfabao", 'thinkfabao', Def_RunQuestType_Normal)
+    return
 #---------------------------------------------------------------------
 
 #================================================================================
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 ae1f2f7..302ea95 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
@@ -300,7 +300,8 @@
     if isActive:
         GameWorld.DebugLog('    该法宝已开启! mwID=%s' % mwID)
         return
-
+    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('XBXZ', {'MWID':mwID}, True, False)
+            
     #消耗物品判断
     ipyData = GetWMIpyData(mwID)
     needItemDict = ipyData.GetNeedItem()
@@ -316,14 +317,16 @@
         
         #扣消耗
         ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, ChConfig.ItemDel_MagicWeapon)
-    else:
+    elif ipyDataList:
         ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('XBXZ', {'MWID':mwID}, True, False)
         if not ipyDataList:
             return
         for ipyData in ipyDataList:
             if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_XBXZAwardRecord, ipyData.GetID()):
                 return
-    
+    elif mwID != 101: #定海神针特殊 可直接获得
+        return
+        
     DoActiveMW(curPlayer, mwID)
     return
 
@@ -572,3 +575,16 @@
     GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_MagicWeaponIsWear, mwID, state, True)
     return
 
+#// A5 12 感应法宝 #tagCMThinkMagicWeapon
+#
+#struct    tagCMThinkMagicWeapon
+#{
+#    tagHead        Head;
+#    DWORD        MWID;
+#};
+def OnThinkMagicWeapon(index, clientData, tick):
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    mwID = clientData.MWID
+    #只触发任务接口
+    EventShell.EventRespons_ThinkMagicWeapon(curPlayer)
+    return
\ No newline at end of file

--
Gitblit v1.8.0