diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-05-20 22:01:42 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-05-20 22:01:42 +0300 |
commit | f1513c0e8ebcb97a300b6234956be1fe8cc8d452 (patch) | |
tree | 887976b5aa0fb489d939494f3f98c8db3e10ab17 /servergreps | |
parent | 3e566681c06a3f02b73aabcfeb0a752df8eccc69 (diff) | |
download | evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.gz evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.bz2 evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.xz evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.zip |
servergreps: report unimplimented packets in ManaPlus.
Diffstat (limited to 'servergreps')
-rw-r--r-- | servergreps/clientpackets.txt | 3 | ||||
-rwxr-xr-x | servergreps/packets.py | 33 | ||||
-rw-r--r-- | servergreps/serverpackets.txt | 24 | ||||
-rw-r--r-- | servergreps/uselesspackets.txt | 1 |
4 files changed, 50 insertions, 11 deletions
diff --git a/servergreps/clientpackets.txt b/servergreps/clientpackets.txt index 658e360..80a3bd4 100644 --- a/servergreps/clientpackets.txt +++ b/servergreps/clientpackets.txt @@ -1,3 +1,6 @@ +UNIMPLIMENTED CMSG_PARTY_CREATE2 +UNIMPLIMENTED CMSG_PARTY_INVITED +UNIMPLIMENTED CMSG_SOLVE_CHAR_NAME 0217 2 clif->pBlacksmith 0218 2 clif->pAlchemist 021d 6 clif->pLessEffect diff --git a/servergreps/packets.py b/servergreps/packets.py index 1da37d2..50d08e1 100755 --- a/servergreps/packets.py +++ b/servergreps/packets.py @@ -14,6 +14,7 @@ serverpacketre2 = re.compile("[.]PacketType([ ]*)=([ ]*)(?P<name>[\w]+);") protocolre = re.compile("#define[ ](?P<name>[A-Z0-9_]+)([ ]*)0x(?P<packet>[0-9a-fA-F]+)") protocolClientre = re.compile("#define[ ](?P<name>CMSG_[A-Z0-9_]+)([ ]*)0x(?P<packet>[0-9a-fA-F]+)") clientpacketre = re.compile("(\t*)packet[(]0x(?P<packet>[0-9a-fA-F]+),(?P<len>[\w-]+),(?P<function>[0-9a-zA-Z_>-]+)(,|[)])") +packetNameClientre = re.compile("(?P<name>(S|C)MSG_[A-Z0-9_]+)") packetsSet = set() serverpacketsSorted = [] @@ -22,6 +23,7 @@ clientPacketsManaPlus = dict() clientPacketsManaPlusClient = dict() clientPackets = dict() sizes = dict() +manaplusUsedPacketsSet = set() def collectServerPackets(parentDir): global itemNamesByName @@ -101,6 +103,25 @@ def collectManaPlusSizes(fileName): # s = s + "{0:>4},".format(sizes[f + d * 16]) # print s +def collectManaPlusUsedPackets(fileName): + with open(fileName, "r") as f: + for line in f: + m = packetNameClientre.search(line) + if m is not None: + manaplusUsedPacketsSet.add(m.group("name")) + print m.group("name") + +def processManaPlusCppFiles(parentDir): + files = os.listdir(parentDir) + for file1 in files: + if file1[0] == ".": + continue + file2 = os.path.abspath(parentDir + os.path.sep + file1) + if not os.path.isfile(file2): + processManaPlusCppFiles(file2) + elif file1[-4:] == ".cpp": + collectManaPlusUsedPackets(file2) + def printPackets(): with open("serverpackets.txt", "w") as w: for packet in serverpacketsSorted: @@ -108,7 +129,10 @@ def printPackets(): while data[0] == "0": data = data[1:] if packet in clientPacketsManaPlus: - w.write(data + " client name: " + clientPacketsManaPlus[packet]) + clientName = clientPacketsManaPlus[packet] + if clientName not in manaplusUsedPacketsSet and clientName.find("_OUTDATED") <= 0: + w.write("UNIMPLIMENTED ") + w.write(data + " client name: " + clientName) else: w.write(data) w.write("\n") @@ -131,6 +155,11 @@ def printPackets(): rev = [] with open("clientpackets.txt", "w") as w: for packet in clientPacketsManaPlusClient: + clientName = clientPacketsManaPlusClient[packet] + if clientName not in manaplusUsedPacketsSet and clientName.find("_OUTDATED") <= 0: + w.write("UNIMPLIMENTED {0}\n".format(clientName)) + + for packet in clientPacketsManaPlusClient: if packet in clientPackets: manaplusFunc.add(clientPackets[packet][1]) for func in funcDict: @@ -159,11 +188,13 @@ manaplusPath = "../../manaplus/src/" protocolPath = manaplusPath + "net/eathena/protocol.h" clientPacketsPath = srcPath + "map/packets.h" packetsPath = manaplusPath + "net/eathena/packets.h" +eathenaPath = manaplusPath + "net/eathena/" collectServerPackets(srcPath) collectClientPackets(clientPacketsPath) collectManaPlusPackets(protocolPath) collectManaPlusSizes(packetsPath); +processManaPlusCppFiles(eathenaPath); sortClientPackets() sortServerPackets() printPackets() diff --git a/servergreps/serverpackets.txt b/servergreps/serverpackets.txt index 03578ef..d196bd3 100644 --- a/servergreps/serverpackets.txt +++ b/servergreps/serverpackets.txt @@ -1,3 +1,4 @@ +62 client name: SMSG_CHAR_PASSWORD_RESPONSE 63 client name: SMSG_UPDATE_HOST 69 client name: SMSG_LOGIN_DATA 6a client name: SMSG_LOGIN_ERROR @@ -50,15 +51,15 @@ cd client name: SMSG_ADMIN_KICK_ACK d1 client name: SMSG_IGNORE_NICK_ACK d2 client name: SMSG_IGNORE_ALL_RESPONSE d4 client name: SMSG_CHAT_IGNORE_LIST -d6 client name: SMSG_CHAT_CREATE_ACK +d6 client name: SMSG_CHAT_ROOM_CREATE_ACK d7 client name: SMSG_CHAT_DISPLAY -d8 client name: SMSG_CHAT_DESTROY -da client name: SMSG_CHAT_JOIN_FAILED -db client name: SMSG_CHAT_JOIN_ACK -dc client name: SMSG_CHAT_ADD_MEMBER -dd client name: SMSG_CHAT_LEAVE -df client name: SMSG_CHAT_SETTINGS -e1 client name: SMSG_CHAT_ROLE_CHANGE +d8 client name: SMSG_CHAT_ROOM_DESTROY +da client name: SMSG_CHAT_ROOM_JOIN_FAILED +db client name: SMSG_CHAT_ROOM_JOIN_ACK +dc client name: SMSG_CHAT_ROOM_ADD_MEMBER +dd client name: SMSG_CHAT_ROOM_LEAVE +df client name: SMSG_CHAT_ROOM_SETTINGS +e1 client name: SMSG_CHAT_ROOM_ROLE_CHANGE e5 client name: SMSG_TRADE_REQUEST_OUTDATED e7 client name: SMSG_TRADE_RESPONSE_OUTDATED ea client name: SMSG_TRADE_ITEM_ADD_RESPONSE @@ -85,7 +86,7 @@ fd client name: SMSG_PARTY_INVITE_RESPONSE_OUTDATED 110 client name: SMSG_SKILL_FAILED 111 client name: SMSG_PLAYER_ADD_SKILL 114 client name: SMSG_SKILL_DAMAGE_OUTDATED -115 client name: SMSG_SKILL_GROUND_DAMAGE_UNUSED +UNIMPLIMENTED 115 client name: SMSG_SKILL_GROUND_DAMAGE_UNUSED 117 client name: SMSG_SKILL_GROUND_NO_DAMAGE 119 client name: SMSG_PLAYER_STATUS_CHANGE_OUTDATED 11a client name: SMSG_SKILL_NO_DAMAGE @@ -140,7 +141,7 @@ fd client name: SMSG_PARTY_INVITE_RESPONSE_OUTDATED 17f client name: SMSG_GUILD_MESSAGE 181 client name: SMSG_GUILD_OPPOSITION_ACK 184 client name: SMSG_GUILD_DEL_ALLIANCE -185 client name: SMSG_GUILD_ALLIANCE_ADDED_DISABLED +UNIMPLIMENTED 185 client name: SMSG_GUILD_ALLIANCE_ADDED_DISABLED 188 client name: SMSG_PLAYER_REFINE 189 client name: SMSG_PLAYER_NOTIFY_MAPINFO 18b client name: SMSG_MAP_QUIT_RESPONSE @@ -364,6 +365,7 @@ b08 client name: SMSG_CHAT_JOIN_CHANNEL b0a client name: SMSG_BEING_ATTRS b0b client name: SMSG_NPC_AREA b10 client name: SMSG_ONLINE_LIST +b16 client name: SMSG_PLAYER_CLIENT_COMMAND xa1a 2710 2711 @@ -570,6 +572,8 @@ xa1a 3892 3893 3894 +5000 +5001 7531 client name: SMSG_SERVER_VERSION_RESPONSE additemtype authoktype diff --git a/servergreps/uselesspackets.txt b/servergreps/uselesspackets.txt index 7c990db..6fa7a90 100644 --- a/servergreps/uselesspackets.txt +++ b/servergreps/uselesspackets.txt @@ -9,6 +9,7 @@ Useless packet 0187. Useless packet 08ba. Useless packet 0064. Useless packet 0065. +Useless packet 0061. Useless packet 0068. Useless packet 027c. Useless packet 0b07. |