mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-20 21:41:29 +00:00
Update to opcode_handlers.py [ci skip]
This commit is contained in:
parent
0cd4c0ac65
commit
22f586f110
@ -14,6 +14,7 @@ values, server handler and whether opcodes are translated on tx/rx, etc...
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import fnmatch
|
||||||
|
|
||||||
from time import time, ctime
|
from time import time, ctime
|
||||||
|
|
||||||
@ -23,8 +24,10 @@ VERBOSE = False # messaging: {False - minimal, True - robust}
|
|||||||
base_path = os.getcwd()[:-14] # '/utils/scripts'
|
base_path = os.getcwd()[:-14] # '/utils/scripts'
|
||||||
base_path = base_path.replace('\\', '/')
|
base_path = base_path.replace('\\', '/')
|
||||||
|
|
||||||
client_list = ['6.2', 'Titanium', 'SoF', 'SoD', 'UF', 'RoF', 'RoF2']
|
client_list = ['Titanium', 'SoF', 'SoD', 'UF', 'RoF', 'RoF2']
|
||||||
server_list = ['Login', 'World', 'Zone', 'UCS']
|
server_list = ['Login', 'World', 'Zone', 'UCS', 'Common'] # 'Common' is not a server..but, may contain shared functions
|
||||||
|
server_dir = {'Login': 'loginserver', 'World': 'world', 'Zone': 'zone', 'UCS': 'ucs', 'Common': 'common'}
|
||||||
|
file_exts = ['cpp', 'h']
|
||||||
|
|
||||||
client_opcodes = {} # x[key='Client'][key='OP_CodeName'](value='0x####')
|
client_opcodes = {} # x[key='Client'][key='OP_CodeName'](value='0x####')
|
||||||
server_opcodes = {} # x[key='OP_CodeName'](value=<integer>) - opcodes apply to all servers
|
server_opcodes = {} # x[key='OP_CodeName'](value=<integer>) - opcodes apply to all servers
|
||||||
@ -87,12 +90,6 @@ def main():
|
|||||||
if fault:
|
if fault:
|
||||||
faults.append('loadclienttranslators()')
|
faults.append('loadclienttranslators()')
|
||||||
|
|
||||||
if not fault:
|
|
||||||
fault = not loadserverhandlers()
|
|
||||||
|
|
||||||
if fault:
|
|
||||||
faults.append('loadserverhandlers()')
|
|
||||||
|
|
||||||
if not fault:
|
if not fault:
|
||||||
fault = not discoverserverhandlers()
|
fault = not discoverserverhandlers()
|
||||||
|
|
||||||
@ -280,18 +277,29 @@ def loadclientopcodes():
|
|||||||
value = int(data_line[(val_begin + 2):val_end].lower(), 16)
|
value = int(data_line[(val_begin + 2):val_end].lower(), 16)
|
||||||
|
|
||||||
if value == 0:
|
if value == 0:
|
||||||
|
if VERBOSE:
|
||||||
|
uprint('\nUNDEFINED OPCODE FOUND: ../utils/patches{0}({1}:{2}) [{3}][{4}] = {5}\n'.format(
|
||||||
|
short_name,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
client,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
'0x{0}'.format(hex(value)[2:].zfill(4))
|
||||||
|
))
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
client_opcodes[client][data_line[key_begin:key_end]] = '0x{0}'.format(hex(value)[2:].zfill(4))
|
client_opcodes[client][data_line[key_begin:key_end]] = '0x{0}'.format(hex(value)[2:].zfill(4))
|
||||||
|
|
||||||
dprint('../utils/patches{0}({1}:{2}) [{3}][{4}] = {5}\n'.format(
|
if VERBOSE:
|
||||||
short_name,
|
dprint('../utils/patches{0}({1}:{2}) [{3}][{4}] = {5}\n'.format(
|
||||||
line_no,
|
short_name,
|
||||||
key_begin,
|
line_no,
|
||||||
client,
|
key_begin,
|
||||||
data_line[key_begin:key_end],
|
client,
|
||||||
client_opcodes[client][data_line[key_begin:key_end]]
|
data_line[key_begin:key_end],
|
||||||
))
|
client_opcodes[client][data_line[key_begin:key_end]]
|
||||||
|
))
|
||||||
|
|
||||||
data_file.close()
|
data_file.close()
|
||||||
|
|
||||||
@ -377,12 +385,13 @@ def loadserveropcodes():
|
|||||||
server_opcodes[data_line[val_begin:val_end]] = value
|
server_opcodes[data_line[val_begin:val_end]] = value
|
||||||
value += 1
|
value += 1
|
||||||
|
|
||||||
dprint('../common/emu_oplist.h({0}:{1}) \'Servers\' [{2}] = {3}\n'.format(
|
if VERBOSE:
|
||||||
line_no,
|
dprint('../common/emu_oplist.h({0}:{1}) \'Servers\' [{2}] = {3}\n'.format(
|
||||||
val_begin,
|
line_no,
|
||||||
data_line[val_begin:val_end],
|
val_begin,
|
||||||
server_opcodes[data_line[val_begin:val_end]]
|
data_line[val_begin:val_end],
|
||||||
))
|
server_opcodes[data_line[val_begin:val_end]]
|
||||||
|
))
|
||||||
|
|
||||||
data_file.close()
|
data_file.close()
|
||||||
|
|
||||||
@ -409,12 +418,13 @@ def loadserveropcodes():
|
|||||||
server_opcodes[data_line[val_begin:val_end]] = value
|
server_opcodes[data_line[val_begin:val_end]] = value
|
||||||
value += 1
|
value += 1
|
||||||
|
|
||||||
dprint('../common/mail_oplist.h({0}:{1}) \'Servers\' [{2}] = {3}\n'.format(
|
if VERBOSE:
|
||||||
line_no,
|
dprint('../common/mail_oplist.h({0}:{1}) \'Servers\' [{2}] = {3}\n'.format(
|
||||||
val_begin,
|
line_no,
|
||||||
data_line[val_begin:val_end],
|
val_begin,
|
||||||
server_opcodes[data_line[val_begin:val_end]]
|
data_line[val_begin:val_end],
|
||||||
))
|
server_opcodes[data_line[val_begin:val_end]]
|
||||||
|
))
|
||||||
|
|
||||||
data_file.close()
|
data_file.close()
|
||||||
|
|
||||||
@ -454,10 +464,7 @@ def loadclienttranslators():
|
|||||||
|
|
||||||
for client in client_list:
|
for client in client_list:
|
||||||
try:
|
try:
|
||||||
if client == '6.2':
|
short_name = '/{0}_ops.h'.format(client).lower()
|
||||||
short_name = '/client62_ops.h'
|
|
||||||
else:
|
|
||||||
short_name = '/{0}_ops.h'.format(client).lower()
|
|
||||||
|
|
||||||
file_name = '{0}/common/patches{1}'.format(
|
file_name = '{0}/common/patches{1}'.format(
|
||||||
base_path,
|
base_path,
|
||||||
@ -484,23 +491,25 @@ def loadclienttranslators():
|
|||||||
if data_line[:1] == 'E':
|
if data_line[:1] == 'E':
|
||||||
client_encodes[client].append(data_line[val_begin:val_end])
|
client_encodes[client].append(data_line[val_begin:val_end])
|
||||||
|
|
||||||
dprint('..{0}({1}:{2}) \'ENCODE\' [{3}] = {4}\n'.format(
|
if VERBOSE:
|
||||||
short_name,
|
dprint('..{0}({1}:{2}) \'ENCODE\' [{3}] = {4}\n'.format(
|
||||||
line_no,
|
short_name,
|
||||||
val_begin,
|
line_no,
|
||||||
client,
|
val_begin,
|
||||||
data_line[val_begin:val_end]
|
client,
|
||||||
))
|
data_line[val_begin:val_end]
|
||||||
|
))
|
||||||
elif data_line[:1] == 'D':
|
elif data_line[:1] == 'D':
|
||||||
client_decodes[client].append(data_line[val_begin:val_end])
|
client_decodes[client].append(data_line[val_begin:val_end])
|
||||||
|
|
||||||
dprint('..{0}({1}:{2}) \'DECODE\' [{3}] = {4}\n'.format(
|
if VERBOSE:
|
||||||
short_name,
|
dprint('..{0}({1}:{2}) \'DECODE\' [{3}] = {4}\n'.format(
|
||||||
line_no,
|
short_name,
|
||||||
val_begin,
|
line_no,
|
||||||
client,
|
val_begin,
|
||||||
data_line[val_begin:val_end]
|
client,
|
||||||
))
|
data_line[val_begin:val_end]
|
||||||
|
))
|
||||||
|
|
||||||
data_file.close()
|
data_file.close()
|
||||||
|
|
||||||
@ -542,180 +551,10 @@ def loadclienttranslators():
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def loadserverhandlers():
|
|
||||||
""" Load pre-designated SERVER OPCODE HANDLERS """
|
|
||||||
|
|
||||||
# TODO: handle remarked out definitions in file (i.e., // and /**/)
|
|
||||||
|
|
||||||
dprint('entering \'loadserverhandlers()\'\n')
|
|
||||||
|
|
||||||
bad_servers = []
|
|
||||||
|
|
||||||
for server in server_list:
|
|
||||||
try:
|
|
||||||
if server == 'Login':
|
|
||||||
vprint('No pre-designated server opcode handlers for \'Login\'')
|
|
||||||
dprint('->pass: \'Login\' server\n')
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif server == 'World':
|
|
||||||
vprint('No pre-designated server opcode handlers for \'World\'')
|
|
||||||
dprint('->pass: \'World\' server\n')
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif server == 'Zone':
|
|
||||||
file_name = '{0}/zone/client_packet.cpp'.format(base_path)
|
|
||||||
|
|
||||||
vprint(file_name)
|
|
||||||
|
|
||||||
with open(file_name, 'r') as data_file:
|
|
||||||
dprint('->open: \'{0}\' in \'r\' mode\n'.format(file_name))
|
|
||||||
|
|
||||||
server_handlers[server] = {}
|
|
||||||
handler_assigns = {}
|
|
||||||
step_1 = False
|
|
||||||
step_2 = False
|
|
||||||
line_no = 0
|
|
||||||
hint = 'Near beginning of file'
|
|
||||||
|
|
||||||
for data_line in data_file:
|
|
||||||
line_no += 1
|
|
||||||
read_begin = 0
|
|
||||||
|
|
||||||
if step_1 is False:
|
|
||||||
if data_line[:19] == 'void MapOpcodes() {':
|
|
||||||
step_1 = True
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
if step_2 is False:
|
|
||||||
if data_line[0:1] == '}':
|
|
||||||
step_2 = True
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
val_begin = data_line.find('OP_', read_begin)
|
|
||||||
val_end = data_line.find(']', val_begin)
|
|
||||||
|
|
||||||
if val_begin < 0 or val_end < 0:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if not data_line[val_begin:val_end] in server_opcodes:
|
|
||||||
dprint('\nILLEGAL OPCODE FOUND: ../zone/client_packet.cpp({0}:{1}) \'{2}\'\n'.format(
|
|
||||||
line_no,
|
|
||||||
val_begin,
|
|
||||||
data_line[val_begin:val_end]
|
|
||||||
))
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
key_begin = data_line.find('Client::', val_end)
|
|
||||||
key_end = data_line.find(';', key_begin)
|
|
||||||
|
|
||||||
if key_begin < 0 or key_end < 0:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if not data_line[key_begin:key_end] in handler_assigns:
|
|
||||||
handler_assigns[data_line[key_begin:key_end]] = data_line[val_begin:val_end]
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
if data_line[:1].isalpha():
|
|
||||||
hint_begin = 0
|
|
||||||
hint_end = data_line.find('(')
|
|
||||||
|
|
||||||
if not hint_end < 0:
|
|
||||||
hint_begin = hint_end - 1
|
|
||||||
|
|
||||||
while not hint_begin < 0:
|
|
||||||
if data_line[(hint_begin - 1):hint_begin].isspace():
|
|
||||||
if not data_line[hint_begin:(hint_begin + 1)].isalpha():
|
|
||||||
hint_begin += 1
|
|
||||||
|
|
||||||
hint = '[RX] Near {0}'.format(data_line[hint_begin:hint_end])
|
|
||||||
|
|
||||||
break
|
|
||||||
|
|
||||||
hint_begin -= 1
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if hint[10:] in handler_assigns:
|
|
||||||
if not handler_assigns[hint[10:]] in server_handlers[server]:
|
|
||||||
server_handlers[server][handler_assigns[hint[10:]]] = []
|
|
||||||
|
|
||||||
server_handlers[server][handler_assigns[hint[10:]]].append(
|
|
||||||
'../zone/client_packet.cpp({0}:{1}) \'{2}\''.format(
|
|
||||||
line_no,
|
|
||||||
hint_begin,
|
|
||||||
hint
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
dprint('../zone/client_packet.cpp({0}:{1}) [{2}][{3}] = \'{4}\'\n'.format(
|
|
||||||
line_no,
|
|
||||||
hint_begin,
|
|
||||||
server,
|
|
||||||
handler_assigns[hint[10:]],
|
|
||||||
hint
|
|
||||||
))
|
|
||||||
|
|
||||||
del handler_assigns[hint[10:]]
|
|
||||||
|
|
||||||
if len(handler_assigns) > 0:
|
|
||||||
for unhandled in handler_assigns:
|
|
||||||
dprint('\nUNMATCHED DESIGNATED HANDLER FOUND: ../zone/client_packet.cpp \'{0}\'\n'.format(
|
|
||||||
unhandled
|
|
||||||
))
|
|
||||||
|
|
||||||
data_file.close()
|
|
||||||
|
|
||||||
dprint('->close: \'{0}\'\n'.format(file_name))
|
|
||||||
elif server == 'UCS':
|
|
||||||
vprint('No pre-designated server opcode handlers for \'UCS\'')
|
|
||||||
dprint('->pass: \'UCS\' server\n')
|
|
||||||
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
vprint('No pre-designated server opcode handlers for \'{0}\''.format(server))
|
|
||||||
dprint('->pass: \'{0}\' server\n'.format(server))
|
|
||||||
|
|
||||||
continue
|
|
||||||
except:
|
|
||||||
print('(Exception Error: {0}) loadserverhandlers() [{1}]'.format(
|
|
||||||
sys.exc_info()[0],
|
|
||||||
server
|
|
||||||
))
|
|
||||||
|
|
||||||
dprint('<-except: \'{0} [{1}]\'\n'.format(
|
|
||||||
sys.exc_info()[0],
|
|
||||||
server
|
|
||||||
))
|
|
||||||
|
|
||||||
bad_servers.append(server)
|
|
||||||
|
|
||||||
for bad_server in bad_servers:
|
|
||||||
if bad_server in server_handlers:
|
|
||||||
vprint('Deleting stale entries for \'{0}\' server...'.format(bad_server))
|
|
||||||
|
|
||||||
del server_handlers[bad_server]
|
|
||||||
|
|
||||||
dprint('->delete: \'{0}\' server designated handler entries\n'.format(bad_server))
|
|
||||||
|
|
||||||
dprint('leaving \'loadserverhandlers()\'\n\n')
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def discoverserverhandlers():
|
def discoverserverhandlers():
|
||||||
"""
|
"""
|
||||||
Load undefined SERVER OPCODE HANDLERS using 'discovery' method
|
Load undefined SERVER OPCODE HANDLERS using 'discovery' method
|
||||||
|
|
||||||
When adding new servers and/or search locations, use the following format:
|
|
||||||
|
|
||||||
if 'Server' in locations:
|
|
||||||
locations['Server'].append('/<local_path>/<file_name>.<ext>')
|
|
||||||
|
|
||||||
Lists are instantiated for all SERVERS in SERVER LIST. The lists are then appended
|
Lists are instantiated for all SERVERS in SERVER LIST. The lists are then appended
|
||||||
with location data based on the presence of the SERVER in the parent dictionary.
|
with location data based on the presence of the SERVER in the parent dictionary.
|
||||||
|
|
||||||
@ -733,59 +572,19 @@ def discoverserverhandlers():
|
|||||||
if not server in locations:
|
if not server in locations:
|
||||||
locations[server] = []
|
locations[server] = []
|
||||||
|
|
||||||
if 'Login' in locations:
|
for server in locations:
|
||||||
locations['Login'].append('/loginserver/client.cpp')
|
file_path = '{0}/{1}/'.format(base_path, server_dir[server])
|
||||||
locations['Login'].append('/loginserver/server_manager.cpp')
|
|
||||||
locations['Login'].append('/loginserver/world_server.cpp')
|
|
||||||
|
|
||||||
if 'World' in locations:
|
file_list = os.listdir(file_path)
|
||||||
locations['World'].append('/world/client.cpp')
|
|
||||||
|
|
||||||
if 'Zone' in locations:
|
for extension in file_exts:
|
||||||
locations['Zone'].append('/zone/aa.cpp')
|
dprint('->file discovery: \'{0}*.{1}\'\n'.format(file_path, extension))
|
||||||
locations['Zone'].append('/zone/attack.cpp')
|
|
||||||
locations['Zone'].append('/zone/bot.cpp')
|
|
||||||
locations['Zone'].append('/zone/bot_command.cpp')
|
|
||||||
locations['Zone'].append('/zone/client.cpp')
|
|
||||||
locations['Zone'].append('/zone/client_packet.cpp')
|
|
||||||
locations['Zone'].append('/zone/client_process.cpp')
|
|
||||||
locations['Zone'].append('/zone/command.cpp')
|
|
||||||
locations['Zone'].append('/zone/corpse.cpp')
|
|
||||||
locations['Zone'].append('/zone/doors.cpp')
|
|
||||||
locations['Zone'].append('/zone/effects.cpp')
|
|
||||||
locations['Zone'].append('/zone/entity.cpp')
|
|
||||||
locations['Zone'].append('/zone/exp.cpp')
|
|
||||||
locations['Zone'].append('/zone/groups.cpp')
|
|
||||||
locations['Zone'].append('/zone/guild.cpp')
|
|
||||||
locations['Zone'].append('/zone/guild_mgr.cpp')
|
|
||||||
locations['Zone'].append('/zone/horse.cpp')
|
|
||||||
locations['Zone'].append('/zone/inventory.cpp')
|
|
||||||
locations['Zone'].append('/zone/loottables.cpp')
|
|
||||||
locations['Zone'].append('/zone/merc.cpp')
|
|
||||||
locations['Zone'].append('/zone/mob.cpp')
|
|
||||||
locations['Zone'].append('/zone/mob_ai.cpp')
|
|
||||||
locations['Zone'].append('/zone/object.cpp')
|
|
||||||
locations['Zone'].append('/zone/pathing.cpp')
|
|
||||||
locations['Zone'].append('/zone/petitions.cpp')
|
|
||||||
locations['Zone'].append('/zone/questmgr.cpp')
|
|
||||||
locations['Zone'].append('/zone/raids.cpp')
|
|
||||||
locations['Zone'].append('/zone/special_attacks.cpp')
|
|
||||||
locations['Zone'].append('/zone/spells.cpp')
|
|
||||||
locations['Zone'].append('/zone/spell_effects.cpp')
|
|
||||||
locations['Zone'].append('/zone/tasks.cpp')
|
|
||||||
locations['Zone'].append('/zone/titles.cpp')
|
|
||||||
locations['Zone'].append('/zone/tradeskills.cpp')
|
|
||||||
locations['Zone'].append('/zone/trading.cpp')
|
|
||||||
locations['Zone'].append('/zone/trap.cpp')
|
|
||||||
locations['Zone'].append('/zone/tribute.cpp')
|
|
||||||
locations['Zone'].append('/zone/worldserver.cpp')
|
|
||||||
locations['Zone'].append('/zone/zone.cpp')
|
|
||||||
locations['Zone'].append('/zone/zonedb.cpp')
|
|
||||||
locations['Zone'].append('/zone/zoning.cpp')
|
|
||||||
|
|
||||||
if 'UCS' in locations:
|
for file_name in fnmatch.filter(file_list, '*.{0}'.format(extension)):
|
||||||
locations['UCS'].append('/ucs/clientlist.cpp')
|
if file_name in ['emu_oplist.h', 'mail_oplist.h', 'opcode_dispatch.h', 'opcode_map.cpp', 'op_codes.h']:
|
||||||
locations['UCS'].append('/ucs/database.cpp')
|
continue
|
||||||
|
|
||||||
|
locations[server].append('/{0}/{1}'.format(server_dir[server], file_name))
|
||||||
|
|
||||||
for server in server_list:
|
for server in server_list:
|
||||||
if not server in server_handlers:
|
if not server in server_handlers:
|
||||||
@ -831,7 +630,385 @@ def discoverserverhandlers():
|
|||||||
if op_begin < 0:
|
if op_begin < 0:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if data_line[(op_begin - 20):op_begin] == 'EQApplicationPacket(':
|
# exclusions
|
||||||
|
if data_line[(op_begin - 6):op_begin] == 'Server':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nUNHANDLED SERVER TALK OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 1):op_begin].isalnum():
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('//', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nREMARKED OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('Log(Logs::', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nLOGGING OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('Message', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nCLIENT MESSAGE OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('std::cout', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nCONSOLE MESSAGE OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('MakeAnyLenString', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nSTRING FORMAT OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('printf', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nSTRING FORMAT OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('VERIFY_PACKET_LENGTH', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nPACKET LENGTH OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('ConnectingOpcodes', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nOPCODE HANDLER ASSIGNMENT REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('ConnectedOpcodes', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nOPCODE HANDLER ASSIGNMENT REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('command_add', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nCOMMAND HANDLER ASSIGNMENT OPCODE REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[read_begin:op_begin].find('luabind::value', 0) >= 0:
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nLUA API OPCODE ASSIGNMENT REFERENCE FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 3):op_begin] == '!= ':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 2):op_begin] == '!=':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 3):op_begin] == '>= ':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 2):op_begin] == '>=':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 3):op_begin] == '<= ':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
elif data_line[(op_begin - 2):op_begin] == '<=':
|
||||||
|
if VERBOSE:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
|
||||||
|
dprint(
|
||||||
|
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
||||||
|
'->line: \'{4}\'\n'.format(
|
||||||
|
location,
|
||||||
|
line_no,
|
||||||
|
key_begin,
|
||||||
|
data_line[key_begin:key_end],
|
||||||
|
data_line[:-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
continue
|
||||||
|
# inclusions
|
||||||
|
elif data_line[(op_begin - 20):op_begin] == 'EQApplicationPacket(':
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
direction = '[TX]'
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
elif data_line[(op_begin - 1):op_begin] == '(' and data_line[read_begin:op_begin].find('EQApplicationPacket', 0) >= 0:
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
direction = '[TX]'
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
elif data_line[(op_begin - 2):op_begin] == ' (' and data_line[read_begin:op_begin].find('EQApplicationPacket', 0) >= 0:
|
||||||
key_begin = op_begin
|
key_begin = op_begin
|
||||||
key_end = key_begin + 3
|
key_end = key_begin + 3
|
||||||
direction = '[TX]'
|
direction = '[TX]'
|
||||||
@ -843,6 +1020,13 @@ def discoverserverhandlers():
|
|||||||
key_end = key_begin + 3
|
key_end = key_begin + 3
|
||||||
direction = '[TX]'
|
direction = '[TX]'
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
elif data_line[(op_begin - 11):op_begin] == '.SetOpcode(':
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
direction = '[TX]'
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
key_end += 1
|
key_end += 1
|
||||||
elif data_line[(op_begin - 5):op_begin] == 'case ':
|
elif data_line[(op_begin - 5):op_begin] == 'case ':
|
||||||
@ -850,6 +1034,20 @@ def discoverserverhandlers():
|
|||||||
key_end = key_begin + 3
|
key_end = key_begin + 3
|
||||||
direction = '[RX]'
|
direction = '[RX]'
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
elif data_line[(op_begin - 7):op_begin] == 'Handle_':
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
direction = '[RX]'
|
||||||
|
|
||||||
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
|
key_end += 1
|
||||||
|
elif data_line[(op_begin - 15):op_begin] == 'Handle_Connect_':
|
||||||
|
key_begin = op_begin
|
||||||
|
key_end = key_begin + 3
|
||||||
|
direction = '[RX]'
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
key_end += 1
|
key_end += 1
|
||||||
elif data_line[(op_begin - 3):op_begin] == '== ':
|
elif data_line[(op_begin - 3):op_begin] == '== ':
|
||||||
@ -866,120 +1064,6 @@ def discoverserverhandlers():
|
|||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
key_end += 1
|
key_end += 1
|
||||||
elif data_line[(op_begin - 3):op_begin] == '!= ':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 2):op_begin] == '!=':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 3):op_begin] == '>= ':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 2):op_begin] == '>=':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 3):op_begin] == '<= ':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 2):op_begin] == '<=':
|
|
||||||
key_begin = op_begin
|
|
||||||
key_end = key_begin + 3
|
|
||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
|
||||||
key_end += 1
|
|
||||||
|
|
||||||
dprint(
|
|
||||||
'\nILL-DEFINED OPCODE CONDITIONAL FOUND: ..{0}({1}:{2}) \'{3}\'\n'
|
|
||||||
'->line: \'{4}\'\n'.format(
|
|
||||||
location,
|
|
||||||
line_no,
|
|
||||||
key_begin,
|
|
||||||
data_line[key_begin:key_end],
|
|
||||||
data_line[:-1]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
continue
|
|
||||||
elif data_line[(op_begin - 2):op_begin] == '= ':
|
elif data_line[(op_begin - 2):op_begin] == '= ':
|
||||||
key_begin = op_begin
|
key_begin = op_begin
|
||||||
key_end = key_begin + 3
|
key_end = key_begin + 3
|
||||||
@ -994,6 +1078,7 @@ def discoverserverhandlers():
|
|||||||
|
|
||||||
while data_line[key_end:(key_end + 1)].isalnum():
|
while data_line[key_end:(key_end + 1)].isalnum():
|
||||||
key_end += 1
|
key_end += 1
|
||||||
|
# fall-through
|
||||||
else:
|
else:
|
||||||
key_begin = op_begin
|
key_begin = op_begin
|
||||||
key_end = key_begin + 3
|
key_end = key_begin + 3
|
||||||
@ -1042,15 +1127,16 @@ def discoverserverhandlers():
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
dprint('..{0}({1}:{2}) [{3}][{4}] = \'{5} {6}\'\n'.format(
|
if VERBOSE:
|
||||||
location,
|
dprint('..{0}({1}:{2}) [{3}][{4}] = \'{5} {6}\'\n'.format(
|
||||||
line_no,
|
location,
|
||||||
key_begin,
|
line_no,
|
||||||
server,
|
key_begin,
|
||||||
data_line[key_begin:key_end],
|
server,
|
||||||
direction,
|
data_line[key_begin:key_end],
|
||||||
hint
|
direction,
|
||||||
))
|
hint
|
||||||
|
))
|
||||||
|
|
||||||
data_file.close()
|
data_file.close()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user