summaryrefslogtreecommitdiff
path: root/servergreps/hercules/src/rathena.py
diff options
context:
space:
mode:
Diffstat (limited to 'servergreps/hercules/src/rathena.py')
-rwxr-xr-xservergreps/hercules/src/rathena.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/servergreps/hercules/src/rathena.py b/servergreps/hercules/src/rathena.py
index ec71d5b..1a0718b 100755
--- a/servergreps/hercules/src/rathena.py
+++ b/servergreps/hercules/src/rathena.py
@@ -32,6 +32,9 @@ class Rathena:
"(?P<offset>0)([ ]*)[)]([ ]*)=([ ]*)(?P<packet>[0-9\w]+)([ ]*)[;]")
ourPacketre4 = re.compile("int cmd([ ]*)=([ ]*)0x(?P<packet>[0-9a-fA-F]+);")
ourPacketre5 = re.compile("int cmde([ ]*)=([ ]*)0x(?P<packet>[0-9a-fA-F]+);")
+ ourPacketre6 = re.compile(
+ "(WFIFOW|WBUFW)([ ]*)[(]([ ]*)([\w>_-]+),([ ]*)" +
+ "(count[*]p_len)([ ]*)[)]([ ]*)=([ ]*)(?P<packet>[0-9\w]+)([ ]*)[;]")
outPacketLoginre = re.compile(
"([ ]*)PACKET_ID_(?P<name>[A-Z0-9_]+)([ ]*)=" +
"([ ]*)0x(?P<packet>[0-9a-fA-F]+),")
@@ -65,6 +68,10 @@ class Rathena:
return
self.packetsSet.add(val)
else:
+ if len(data) > 2 and data[:2] == "0x":
+ data = data[2:]
+ while len(data) < 4:
+ data = "0" + data
try:
if int(data, 16) > 4096:
return
@@ -99,6 +106,13 @@ class Rathena:
while len(data) < 4:
data = "0" + data
self.addServerPacket(data)
+ m = self.ourPacketre6.findall(line)
+ if len(m) > 0:
+ for str in m:
+ data = str[9]
+ while len(data) < 4:
+ data = "0" + data
+ self.addServerPacket(data)
m = self.outPacketLoginre.findall(line)
if len(m) > 0:
for str in m: