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