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