hxp
2018-09-01 8a9416e0fe494446f5aa121b9b5c05abebf5c6b9
Add: A4 12 搜索家族支持;
4个文件已修改
217 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/PyNetPack.ini 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/PyNetPack.ini
@@ -39,7 +39,7 @@
Writer = Alee
Releaser = Alee
RegType = 0
RegisterPackCount = 8
RegisterPackCount = 9
PacketCMD_1=0xA4
PacketSubCMD_1=0x01
@@ -73,6 +73,10 @@
PacketSubCMD_8=0x04
PacketCallFunc_8=PyCreatFamily
PacketCMD_9=0xA4
PacketSubCMD_9=0x12
PacketCallFunc_9=PySearchFamily
[GameWorldFamilyWar]
ScriptName = GameWorldLogic\GameWorldFamilyWar.py
Writer = hxp
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -808,6 +808,91 @@
#------------------------------------------------------
# A4 12 搜索家族 #tagCGPySearchFamily
class  tagCGPySearchFamily(Structure):
    Head = tagHead()
    MsgLen = 0    #(BYTE MsgLen)//模糊搜索家族,如果输入为空,则为不限制该条件
    Msg = ""    #(String Msg)//size = MsgLen
    LV = 0    #(BYTE LV)//最低家族等级,如果为0,则不限制该条件
    MaxCount = 0    #(BYTE MaxCount)//搜索结果所需最大条数,后端限制最多返回20条
    IsSearching = 0    #(BYTE IsSearching)//默认1,如果有指定其他值,则返回指定值
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen)
        self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MaxCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IsSearching,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x12
        self.MsgLen = 0
        self.Msg = ""
        self.LV = 0
        self.MaxCount = 0
        self.IsSearching = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.Msg)
        length += 1
        length += 1
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.MsgLen)
        data = CommFunc.WriteString(data, self.MsgLen, self.Msg)
        data = CommFunc.WriteBYTE(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.MaxCount)
        data = CommFunc.WriteBYTE(data, self.IsSearching)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                MsgLen:%d,
                                Msg:%s,
                                LV:%d,
                                MaxCount:%d,
                                IsSearching:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.MsgLen,
                                self.Msg,
                                self.LV,
                                self.MaxCount,
                                self.IsSearching
                                )
        return DumpString
m_NAtagCGPySearchFamily=tagCGPySearchFamily()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGPySearchFamily.Head.Cmd,m_NAtagCGPySearchFamily.Head.SubCmd))] = m_NAtagCGPySearchFamily
#------------------------------------------------------
#A4 01  查看家族第N页#tagCGViewFamilyPage
class  tagCGViewFamilyPage(Structure):
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -665,6 +665,47 @@
    NetPackCommon.SendFakePack(curPlayer, familyViewPack)
    return
#// A4 12 搜索家族 #tagCGPySearchFamily
#
#struct    tagCGPySearchFamily
#{
#    tagHead        Head;
#    BYTE        MsgLen;        //模糊搜索家族,如果输入为空,则为不限制该条件
#    char        Msg[MsgLen];    //size = MsgLen
#    BYTE        LV;        //最低家族等级,如果为0,则不限制该条件
#    BYTE        MaxCount;    //搜索结果所需最大条数,后端限制最多返回20条
#    BYTE        IsSearching;    //默认1,如果有指定其他值,则返回指定值
#};
def PySearchFamily(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    msg = clientData.Msg
    minFamilyLV = clientData.LV
    maxCount = min(20, clientData.MaxCount)
    IsSearching = clientData.IsSearching
    familyMgr = GameWorld.GetFamilyManager()
    familyViewPack = ChPyNetSendPack.tagGCPyAllFamilyView()
    familyViewPack.Clear()
    familyViewPack.IsSearching = IsSearching
    familyViewPack.TotalCount = 1
    #familyViewPack.CurPage = viewPage
    familyViewPack.Family = []
    for i, familyID in enumerate(PyGameData.g_sortFamilyIDList):
        family = familyMgr.FindFamily(familyID)
        if not family:
            continue
        if msg not in family.GetName():
            continue
        if minFamilyLV and family.GetLV() < minFamilyLV:
            continue
        familyViewPack.Family.append(__GetFamilyView(i, family))
        if len(familyViewPack.Family) >= maxCount:
            break
    familyViewPack.PageCount = len(familyViewPack.Family)
    NetPackCommon.SendFakePack(curPlayer, familyViewPack)
    return
#class   IPY_CFamilyChangeBroadcast
#{
#public:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -808,6 +808,91 @@
#------------------------------------------------------
# A4 12 搜索家族 #tagCGPySearchFamily
class  tagCGPySearchFamily(Structure):
    Head = tagHead()
    MsgLen = 0    #(BYTE MsgLen)//模糊搜索家族,如果输入为空,则为不限制该条件
    Msg = ""    #(String Msg)//size = MsgLen
    LV = 0    #(BYTE LV)//最低家族等级,如果为0,则不限制该条件
    MaxCount = 0    #(BYTE MaxCount)//搜索结果所需最大条数,后端限制最多返回20条
    IsSearching = 0    #(BYTE IsSearching)//默认1,如果有指定其他值,则返回指定值
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen)
        self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MaxCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IsSearching,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x12
        self.MsgLen = 0
        self.Msg = ""
        self.LV = 0
        self.MaxCount = 0
        self.IsSearching = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.Msg)
        length += 1
        length += 1
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.MsgLen)
        data = CommFunc.WriteString(data, self.MsgLen, self.Msg)
        data = CommFunc.WriteBYTE(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.MaxCount)
        data = CommFunc.WriteBYTE(data, self.IsSearching)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                MsgLen:%d,
                                Msg:%s,
                                LV:%d,
                                MaxCount:%d,
                                IsSearching:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.MsgLen,
                                self.Msg,
                                self.LV,
                                self.MaxCount,
                                self.IsSearching
                                )
        return DumpString
m_NAtagCGPySearchFamily=tagCGPySearchFamily()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGPySearchFamily.Head.Cmd,m_NAtagCGPySearchFamily.Head.SubCmd))] = m_NAtagCGPySearchFamily
#------------------------------------------------------
#A4 01  查看家族第N页#tagCGViewFamilyPage
class  tagCGViewFamilyPage(Structure):