diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-10 00:45:07 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-10 00:45:07 -0300 |
commit | c6095ad062eaa0f5576cfab1c4fe436b90c2fbfe (patch) | |
tree | 742dd839971d2aab1f08fd0291af66e6439646ab /client | |
download | tools-c6095ad062eaa0f5576cfab1c4fe436b90c2fbfe.tar.gz tools-c6095ad062eaa0f5576cfab1c4fe436b90c2fbfe.tar.bz2 tools-c6095ad062eaa0f5576cfab1c4fe436b90c2fbfe.tar.xz tools-c6095ad062eaa0f5576cfab1c4fe436b90c2fbfe.zip |
Add initial tools
Diffstat (limited to 'client')
-rwxr-xr-x | client/dailylogin.py | 86 | ||||
-rwxr-xr-x | client/minimap-dyecmd.py | 18 | ||||
-rwxr-xr-x | client/minimap-dyecmd.sh | 261 | ||||
-rw-r--r-- | client/minimap-override/008-3-0.png | bin | 0 -> 10671 bytes | |||
-rwxr-xr-x | client/minimap-render.py | 165 | ||||
-rwxr-xr-x | client/weapons.py | 89 |
6 files changed, 619 insertions, 0 deletions
diff --git a/client/dailylogin.py b/client/dailylogin.py new file mode 100755 index 0000000..fc9296f --- /dev/null +++ b/client/dailylogin.py @@ -0,0 +1,86 @@ +#!/usr/bin/python2.7 + +# Setup +x=y=0 +i=j=0 + +# Functions +def headers(val): + return '\n\t<dialog name="daily_%d" hideText="true">\n\t\t<menu>\n\t\t\t<text x="45" y="0" width="310" height="30" text="##BDaily Login Rewards##b" />\n <button x="157" y="280" name="Claim" value="Ok" />\n\n' % val + +def tail(): + return '\n\t\t</menu>\n\t</dialog>\n' + +def override_check(vl, over, text1, text2): + global j + if not over: + j=0 + return '\t\t\t<image %s image="graphics/images/%s.png" />\n' % (text1, text2) + else: + j+=1 + if (j == vl): + return '\t\t\t<image %s image="graphics/images/done.png" />\n' % (text1) + elif (j < vl): + return '\t\t\t<image %s image="graphics/images/ok.png" />\n' % (text1) + else: + return "" + +def spammer(val, override=False): + bf="" + + bf+=override_check(val, override, 'x="35" y="35"', 'jexp') + bf+=override_check(val, override, 'x="70" y="35"', 'bexp') + bf+=override_check(val, override, 'x="105" y="35"', 'sc') + bf+=override_check(val, override, 'x="140" y="35"', 'jexp') + bf+=override_check(val, override, 'x="175" y="35"', 'bexp') + + bf+=override_check(val, override, 'x="35" y="70"', 'gp') + bf+=override_check(val, override, 'x="70" y="70"', 'sc') + bf+=override_check(val, override, 'x="105" y="70"', 'bexp') + bf+=override_check(val, override, 'x="140" y="70"', 'gp') + bf+=override_check(val, override, 'x="175" y="70"', 'jexp') + + bf+=override_check(val, override, 'x="35" y="105"', 'bexp') + bf+=override_check(val, override, 'x="70" y="105"', 'gp') + bf+=override_check(val, override, 'x="105" y="105"', 'jexp') + bf+=override_check(val, override, 'x="140" y="105"', 'gift') + bf+=override_check(val, override, 'x="175" y="105"', 'gp') + + bf+=override_check(val, override, 'x="35" y="140"', 'jexp') + bf+=override_check(val, override, 'x="70" y="140"', 'bexp') + bf+=override_check(val, override, 'x="105" y="140"', 'gp') + bf+=override_check(val, override, 'x="140" y="140"', 'jexp') + bf+=override_check(val, override, 'x="175" y="140"', 'bexp') + + bf+=override_check(val, override, 'x="35" y="175"', 'gift') + bf+=override_check(val, override, 'x="70" y="175"', 'jexp') + bf+=override_check(val, override, 'x="105" y="175"', 'bexp') + bf+=override_check(val, override, 'x="140" y="175"', 'gp') + bf+=override_check(val, override, 'x="175" y="175"', 'jexp') + + bf+=override_check(val, override, 'x="35" y="210"', 'bexp') + bf+=override_check(val, override, 'x="70" y="210"', 'gp') + bf+=override_check(val, override, 'x="105" y="210"', 'last') + bf+=override_check(val, override, 'x="140" y="210"', 'sc') + bf+=override_check(val, override, 'x="175" y="210"', 'sc') + + bf+=override_check(val, override, 'x="35" y="245"', 'sc') + + return bf + +# Begin +f=open("daily.tmp", "w") + +f.write('<?xml version="1.0" encoding="utf-8"?>\n<!-- This file is generated automatically, editing it will have no effect.\n (C) Jesusalva, 2019 -->\n<dialogs>') + +while (i < 31): + i+=1 + f.write(headers(i)) + f.write(spammer(i, False)) + f.write('\n\t\t\t<image x="245" y="52" image="graphics/images/final.png" />\n\n\t\t\t<!-- Complete -->\n') + f.write(spammer(i, True)) + f.write(tail()) + +f.write('\n</dialogs>') +f.close() + diff --git a/client/minimap-dyecmd.py b/client/minimap-dyecmd.py new file mode 100755 index 0000000..8f3e0c7 --- /dev/null +++ b/client/minimap-dyecmd.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +import os +f=open("minimap-dyecmd.sh", "w"); +CLIENT_DATA_ROOT="../../client-data" + +map_names = sorted([os.path.splitext(p)[0] for p in os.listdir(os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps'))]) + +f.write('cd '+os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps')+'\n') +for c in map_names: + if os.path.exists(os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps', c+u'.png')): + i=c+u'.png' + f.write("dyecmd %s tmp ; mv tmp %s\n" % (i, i)) + f.write("echo \"Converted "+i+" successfully.\"\n") + +#f.write("git checkout -- minimap-dyecmd.sh") +f.close() diff --git a/client/minimap-dyecmd.sh b/client/minimap-dyecmd.sh new file mode 100755 index 0000000..4c3f1e0 --- /dev/null +++ b/client/minimap-dyecmd.sh @@ -0,0 +1,261 @@ +cd ../../client-data/graphics/minimaps +dyecmd 000-1.png tmp ; mv tmp 000-1.png +echo "Converted 000-1.png successfully." +dyecmd 001-1.png tmp ; mv tmp 001-1.png +echo "Converted 001-1.png successfully." +dyecmd 001-2.png tmp ; mv tmp 001-2.png +echo "Converted 001-2.png successfully." +dyecmd 001-3.png tmp ; mv tmp 001-3.png +echo "Converted 001-3.png successfully." +dyecmd 002-1.png tmp ; mv tmp 002-1.png +echo "Converted 002-1.png successfully." +dyecmd 002-2.png tmp ; mv tmp 002-2.png +echo "Converted 002-2.png successfully." +dyecmd 002-3.png tmp ; mv tmp 002-3.png +echo "Converted 002-3.png successfully." +dyecmd 002-4.png tmp ; mv tmp 002-4.png +echo "Converted 002-4.png successfully." +dyecmd 002-5.png tmp ; mv tmp 002-5.png +echo "Converted 002-5.png successfully." +dyecmd 003-1.png tmp ; mv tmp 003-1.png +echo "Converted 003-1.png successfully." +dyecmd 003-4.png tmp ; mv tmp 003-4.png +echo "Converted 003-4.png successfully." +dyecmd 004-1.png tmp ; mv tmp 004-1.png +echo "Converted 004-1.png successfully." +dyecmd 004-3.png tmp ; mv tmp 004-3.png +echo "Converted 004-3.png successfully." +dyecmd 004-4.png tmp ; mv tmp 004-4.png +echo "Converted 004-4.png successfully." +dyecmd 004-5.png tmp ; mv tmp 004-5.png +echo "Converted 004-5.png successfully." +dyecmd 005-3.png tmp ; mv tmp 005-3.png +echo "Converted 005-3.png successfully." +dyecmd 006-1.png tmp ; mv tmp 006-1.png +echo "Converted 006-1.png successfully." +dyecmd 006-2.png tmp ; mv tmp 006-2.png +echo "Converted 006-2.png successfully." +dyecmd 006-3.png tmp ; mv tmp 006-3.png +echo "Converted 006-3.png successfully." +dyecmd 007-1.png tmp ; mv tmp 007-1.png +echo "Converted 007-1.png successfully." +dyecmd 007-2.png tmp ; mv tmp 007-2.png +echo "Converted 007-2.png successfully." +dyecmd 008-1.png tmp ; mv tmp 008-1.png +echo "Converted 008-1.png successfully." +dyecmd 009-1.png tmp ; mv tmp 009-1.png +echo "Converted 009-1.png successfully." +dyecmd 009-2.png tmp ; mv tmp 009-2.png +echo "Converted 009-2.png successfully." +dyecmd 009-3.png tmp ; mv tmp 009-3.png +echo "Converted 009-3.png successfully." +dyecmd 009-4.png tmp ; mv tmp 009-4.png +echo "Converted 009-4.png successfully." +dyecmd 009-5.png tmp ; mv tmp 009-5.png +echo "Converted 009-5.png successfully." +dyecmd 009-6.png tmp ; mv tmp 009-6.png +echo "Converted 009-6.png successfully." +dyecmd 009-7.png tmp ; mv tmp 009-7.png +echo "Converted 009-7.png successfully." +dyecmd 009-8.png tmp ; mv tmp 009-8.png +echo "Converted 009-8.png successfully." +dyecmd 010-1.png tmp ; mv tmp 010-1.png +echo "Converted 010-1.png successfully." +dyecmd 010-2.png tmp ; mv tmp 010-2.png +echo "Converted 010-2.png successfully." +dyecmd 011-1.png tmp ; mv tmp 011-1.png +echo "Converted 011-1.png successfully." +dyecmd 011-3.png tmp ; mv tmp 011-3.png +echo "Converted 011-3.png successfully." +dyecmd 011-4.png tmp ; mv tmp 011-4.png +echo "Converted 011-4.png successfully." +dyecmd 011-6.png tmp ; mv tmp 011-6.png +echo "Converted 011-6.png successfully." +dyecmd 012-1.png tmp ; mv tmp 012-1.png +echo "Converted 012-1.png successfully." +dyecmd 012-3.png tmp ; mv tmp 012-3.png +echo "Converted 012-3.png successfully." +dyecmd 012-4.png tmp ; mv tmp 012-4.png +echo "Converted 012-4.png successfully." +dyecmd 013-1.png tmp ; mv tmp 013-1.png +echo "Converted 013-1.png successfully." +dyecmd 013-2.png tmp ; mv tmp 013-2.png +echo "Converted 013-2.png successfully." +dyecmd 013-3.png tmp ; mv tmp 013-3.png +echo "Converted 013-3.png successfully." +dyecmd 014-1.png tmp ; mv tmp 014-1.png +echo "Converted 014-1.png successfully." +dyecmd 014-3.png tmp ; mv tmp 014-3.png +echo "Converted 014-3.png successfully." +dyecmd 015-1.png tmp ; mv tmp 015-1.png +echo "Converted 015-1.png successfully." +dyecmd 015-3.png tmp ; mv tmp 015-3.png +echo "Converted 015-3.png successfully." +dyecmd 016-1.png tmp ; mv tmp 016-1.png +echo "Converted 016-1.png successfully." +dyecmd 016-2.png tmp ; mv tmp 016-2.png +echo "Converted 016-2.png successfully." +dyecmd 017-1.png tmp ; mv tmp 017-1.png +echo "Converted 017-1.png successfully." +dyecmd 017-2.png tmp ; mv tmp 017-2.png +echo "Converted 017-2.png successfully." +dyecmd 017-3.png tmp ; mv tmp 017-3.png +echo "Converted 017-3.png successfully." +dyecmd 017-4.png tmp ; mv tmp 017-4.png +echo "Converted 017-4.png successfully." +dyecmd 017-9.png tmp ; mv tmp 017-9.png +echo "Converted 017-9.png successfully." +dyecmd 018-1.png tmp ; mv tmp 018-1.png +echo "Converted 018-1.png successfully." +dyecmd 018-2.png tmp ; mv tmp 018-2.png +echo "Converted 018-2.png successfully." +dyecmd 018-3.png tmp ; mv tmp 018-3.png +echo "Converted 018-3.png successfully." +dyecmd 019-1.png tmp ; mv tmp 019-1.png +echo "Converted 019-1.png successfully." +dyecmd 019-3.png tmp ; mv tmp 019-3.png +echo "Converted 019-3.png successfully." +dyecmd 019-4.png tmp ; mv tmp 019-4.png +echo "Converted 019-4.png successfully." +dyecmd 020-1.png tmp ; mv tmp 020-1.png +echo "Converted 020-1.png successfully." +dyecmd 020-2.png tmp ; mv tmp 020-2.png +echo "Converted 020-2.png successfully." +dyecmd 020-3.png tmp ; mv tmp 020-3.png +echo "Converted 020-3.png successfully." +dyecmd 021-3.png tmp ; mv tmp 021-3.png +echo "Converted 021-3.png successfully." +dyecmd 023-1.png tmp ; mv tmp 023-1.png +echo "Converted 023-1.png successfully." +dyecmd 023-2.png tmp ; mv tmp 023-2.png +echo "Converted 023-2.png successfully." +dyecmd 023-3.png tmp ; mv tmp 023-3.png +echo "Converted 023-3.png successfully." +dyecmd 025-1.png tmp ; mv tmp 025-1.png +echo "Converted 025-1.png successfully." +dyecmd 025-3.png tmp ; mv tmp 025-3.png +echo "Converted 025-3.png successfully." +dyecmd 025-4.png tmp ; mv tmp 025-4.png +echo "Converted 025-4.png successfully." +dyecmd 026-1.png tmp ; mv tmp 026-1.png +echo "Converted 026-1.png successfully." +dyecmd 026-2.png tmp ; mv tmp 026-2.png +echo "Converted 026-2.png successfully." +dyecmd 027-1.png tmp ; mv tmp 027-1.png +echo "Converted 027-1.png successfully." +dyecmd 027-2.png tmp ; mv tmp 027-2.png +echo "Converted 027-2.png successfully." +dyecmd 027-3.png tmp ; mv tmp 027-3.png +echo "Converted 027-3.png successfully." +dyecmd 027-4.png tmp ; mv tmp 027-4.png +echo "Converted 027-4.png successfully." +dyecmd 027-5.png tmp ; mv tmp 027-5.png +echo "Converted 027-5.png successfully." +dyecmd 027-6.png tmp ; mv tmp 027-6.png +echo "Converted 027-6.png successfully." +dyecmd 027-7.png tmp ; mv tmp 027-7.png +echo "Converted 027-7.png successfully." +dyecmd 027-8.png tmp ; mv tmp 027-8.png +echo "Converted 027-8.png successfully." +dyecmd 028-1.png tmp ; mv tmp 028-1.png +echo "Converted 028-1.png successfully." +dyecmd 028-3.png tmp ; mv tmp 028-3.png +echo "Converted 028-3.png successfully." +dyecmd 029-1.png tmp ; mv tmp 029-1.png +echo "Converted 029-1.png successfully." +dyecmd 029-2.png tmp ; mv tmp 029-2.png +echo "Converted 029-2.png successfully." +dyecmd 029-3.png tmp ; mv tmp 029-3.png +echo "Converted 029-3.png successfully." +dyecmd 029-4.png tmp ; mv tmp 029-4.png +echo "Converted 029-4.png successfully." +dyecmd 030-1.png tmp ; mv tmp 030-1.png +echo "Converted 030-1.png successfully." +dyecmd 030-2.png tmp ; mv tmp 030-2.png +echo "Converted 030-2.png successfully." +dyecmd 030-3.png tmp ; mv tmp 030-3.png +echo "Converted 030-3.png successfully." +dyecmd 030-4.png tmp ; mv tmp 030-4.png +echo "Converted 030-4.png successfully." +dyecmd 031-1.png tmp ; mv tmp 031-1.png +echo "Converted 031-1.png successfully." +dyecmd 031-2.png tmp ; mv tmp 031-2.png +echo "Converted 031-2.png successfully." +dyecmd 031-3.png tmp ; mv tmp 031-3.png +echo "Converted 031-3.png successfully." +dyecmd 031-4.png tmp ; mv tmp 031-4.png +echo "Converted 031-4.png successfully." +dyecmd 032-3.png tmp ; mv tmp 032-3.png +echo "Converted 032-3.png successfully." +dyecmd 033-1.png tmp ; mv tmp 033-1.png +echo "Converted 033-1.png successfully." +dyecmd 034-1.png tmp ; mv tmp 034-1.png +echo "Converted 034-1.png successfully." +dyecmd 034-2.png tmp ; mv tmp 034-2.png +echo "Converted 034-2.png successfully." +dyecmd 035-2.png tmp ; mv tmp 035-2.png +echo "Converted 035-2.png successfully." +dyecmd 036-2.png tmp ; mv tmp 036-2.png +echo "Converted 036-2.png successfully." +dyecmd 041-1.png tmp ; mv tmp 041-1.png +echo "Converted 041-1.png successfully." +dyecmd 042-1.png tmp ; mv tmp 042-1.png +echo "Converted 042-1.png successfully." +dyecmd 043-1.png tmp ; mv tmp 043-1.png +echo "Converted 043-1.png successfully." +dyecmd 043-3.png tmp ; mv tmp 043-3.png +echo "Converted 043-3.png successfully." +dyecmd 043-4.png tmp ; mv tmp 043-4.png +echo "Converted 043-4.png successfully." +dyecmd 045-1.png tmp ; mv tmp 045-1.png +echo "Converted 045-1.png successfully." +dyecmd 046-1.png tmp ; mv tmp 046-1.png +echo "Converted 046-1.png successfully." +dyecmd 046-3.png tmp ; mv tmp 046-3.png +echo "Converted 046-3.png successfully." +dyecmd 047-1.png tmp ; mv tmp 047-1.png +echo "Converted 047-1.png successfully." +dyecmd 047-3.png tmp ; mv tmp 047-3.png +echo "Converted 047-3.png successfully." +dyecmd 048-2.png tmp ; mv tmp 048-2.png +echo "Converted 048-2.png successfully." +dyecmd 051-1.png tmp ; mv tmp 051-1.png +echo "Converted 051-1.png successfully." +dyecmd 051-3.png tmp ; mv tmp 051-3.png +echo "Converted 051-3.png successfully." +dyecmd 052-1.png tmp ; mv tmp 052-1.png +echo "Converted 052-1.png successfully." +dyecmd 052-2.png tmp ; mv tmp 052-2.png +echo "Converted 052-2.png successfully." +dyecmd 055-1.png tmp ; mv tmp 055-1.png +echo "Converted 055-1.png successfully." +dyecmd 055-3.png tmp ; mv tmp 055-3.png +echo "Converted 055-3.png successfully." +dyecmd 056-2.png tmp ; mv tmp 056-2.png +echo "Converted 056-2.png successfully." +dyecmd 057-1.png tmp ; mv tmp 057-1.png +echo "Converted 057-1.png successfully." +dyecmd 069-2.png tmp ; mv tmp 069-2.png +echo "Converted 069-2.png successfully." +dyecmd 070-1.png tmp ; mv tmp 070-1.png +echo "Converted 070-1.png successfully." +dyecmd 070-3.png tmp ; mv tmp 070-3.png +echo "Converted 070-3.png successfully." +dyecmd 099-1.png tmp ; mv tmp 099-1.png +echo "Converted 099-1.png successfully." +dyecmd 099-2.png tmp ; mv tmp 099-2.png +echo "Converted 099-2.png successfully." +dyecmd 099-3.png tmp ; mv tmp 099-3.png +echo "Converted 099-3.png successfully." +dyecmd 099-4.png tmp ; mv tmp 099-4.png +echo "Converted 099-4.png successfully." +dyecmd 099-5.png tmp ; mv tmp 099-5.png +echo "Converted 099-5.png successfully." +dyecmd 099-6.png tmp ; mv tmp 099-6.png +echo "Converted 099-6.png successfully." +dyecmd 099-7.png tmp ; mv tmp 099-7.png +echo "Converted 099-7.png successfully." +dyecmd 099-8.png tmp ; mv tmp 099-8.png +echo "Converted 099-8.png successfully." +dyecmd botcheck.png tmp ; mv tmp botcheck.png +echo "Converted botcheck.png successfully." diff --git a/client/minimap-override/008-3-0.png b/client/minimap-override/008-3-0.png Binary files differnew file mode 100644 index 0000000..fa94222 --- /dev/null +++ b/client/minimap-override/008-3-0.png diff --git a/client/minimap-render.py b/client/minimap-render.py new file mode 100755 index 0000000..716e9e3 --- /dev/null +++ b/client/minimap-render.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +import sys +import os +import subprocess +import tempfile + +CLIENT_DATA_ROOT = os.path.realpath( + os.path.join( + os.path.dirname(__file__), + u'../../client-data', + ) +) + +class MinimapRenderer(object): + + PROGRAMS = { + 'default': { + 'tmxrasterizer': 'tmxrasterizer', + 'im_convert': 'convert', + }, + 'win32': { + 'tmxrasterizer': 'tmxrasterizer.exe', + 'im_convert': 'convert.exe', + }, + } + + def __init__(self, map_name, tilesize, useAntiAliasing): + self.map_name = map_name + self.tilesize = tilesize + self.useAntiAliasing = useAntiAliasing + + def render(self): + """ + Processes a map + """ + if not os.path.exists(os.path.join(CLIENT_DATA_ROOT, u'maps', self.map_name+u'.tmx')): + sys.stderr.write(u'Invalid map name: %s. Skipping.\n' % self.map_name) + return 1 + if not self.map_name.endswith(u'.tmx'): + self.map_name = self.map_name+u'.tmx' + + map_number = os.path.splitext(os.path.basename(self.map_name))[0] + tmx_file = os.path.join(CLIENT_DATA_ROOT, u'maps', self.map_name) + minimap_file = os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps', map_number+u'.png') + + prefix = os.path.commonprefix((tmx_file, minimap_file)) + sys.stdout.write(u'%s -> %s\n' % (os.path.relpath(tmx_file, prefix), os.path.relpath(minimap_file, prefix))) + + try: + self.do_render(tmx_file, minimap_file) + except Exception as e: + sys.stderr.write(u'\x1b[31m\x1b[1mError while rendering %s: %s\x1b[0m\n' % (self.map_name, e)) + return 1 + else: + return 0 + + def do_render(self, tmx_file, bitmap_file): + """ + The map rendering implementation + """ + platform_programs = MinimapRenderer.PROGRAMS.get(sys.platform, MinimapRenderer.PROGRAMS.get('default')) + # tmx rasterize + mrf, map_raster = tempfile.mkstemp(suffix='.png') + tmxrasterizer_cmd = [ + platform_programs.get('tmxrasterizer'), + '--tilesize', str(self.tilesize), '--hide-layer', 'Collision','--hide-layer', 'Height','--hide-layer', 'Collisions','--hide-layer', 'collision','--hide-layer', 'height','--hide-layer', 'Heights', '--hide-layer', 'height', '--ignore-visibility', + ] + if self.useAntiAliasing: + tmxrasterizer_cmd.append('--anti-aliasing') + tmxrasterizer_cmd += [tmx_file, map_raster] + subprocess.check_call(tmxrasterizer_cmd) + if os.stat(map_raster).st_size == 0: + raise Exception('A problem was encountered when rendering a map') + # add cell-shading to the minimap to improve readability + ebf, edges_bitmap = tempfile.mkstemp(suffix='.png') + subprocess.check_call([ + platform_programs.get('im_convert'), map_raster, + '-set', 'option:convolve:scale', '-1!', + '-morphology', 'Convolve', 'Laplacian:0', + '-colorspace', 'gray', + '-auto-level', + '-threshold', '2.8%', + '-negate', + '-transparent', 'white', + edges_bitmap + ]) + subprocess.check_call([ + platform_programs.get('im_convert'), map_raster, edges_bitmap, + '-compose', 'Dissolve', + '-define', 'compose:args=35', + '-composite', + bitmap_file + ]) + os.unlink(map_raster) + os.unlink(edges_bitmap) + + @staticmethod + def check_programs(): + """ + Checks the require programs are available + """ + def which(program): + import os + def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + return None + + platform_programs = MinimapRenderer.PROGRAMS.get(sys.platform, MinimapRenderer.PROGRAMS.get('default')) + for program in platform_programs.values(): + if not which(program): + raise Exception('The required "%s" program is missing from your PATH.' % program) + +def usage(): + sys.stderr.write(u'''Usage: %s MAP_NAME... + + Example: + $ ./minimap-render.py 007-1 + will render the map at maps/007-1.tmx in the graphics/minimaps directory. + $ ./minimap-render.py all + will render all existing maps found in the maps directory. + $ ./minimap-render.py update + will update all existing minimaps found in the graphics/minimaps directory. + + For convenience, + $ ./minimap-render.py 007-1.tmx + is also accepted. + \n''' % sys.argv[0]) + +def main(): + if not len(sys.argv) > 1: + usage() + return 127 + try: + MinimapRenderer.check_programs() + except Exception as e: + sys.stderr.write(u'%s\n' % e) + return 126 + + status = 0 + if sys.argv[1].lower() == 'all': + map_names = sorted([os.path.splitext(p)[0] for p in os.listdir(os.path.join(CLIENT_DATA_ROOT, u'maps'))]) + elif sys.argv[1].lower() == 'update': + map_names = sorted([os.path.splitext(p)[0] for p in os.listdir(os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps'))]) + else: + map_names = sys.argv[1:] + + for map_name in map_names: + # Render tiles at 1 pixel size + map_renderer = MinimapRenderer(map_name, 1, True) + status += map_renderer.render() + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/client/weapons.py b/client/weapons.py new file mode 100755 index 0000000..be2f60e --- /dev/null +++ b/client/weapons.py @@ -0,0 +1,89 @@ +#!/usr/bin/python2.7 + +class Item: + def __init__(self, xid): + self.id=xid + self.lvl=0 + +a=open("../../client-data/items.xml", "r") + +swords=[] +bows=[] +shields=[] + +gid="0" +rid=0 +ctx=Item(0) +mem=[] + +for l in a: + if "<item id=" in l: + if ctx.id > 0: + mem.append(ctx) + + gid=l.replace('\t', '').replace(' ','').replace('<itemid=', '').replace('"', '').replace("'", "") + rid=0 + if "-" in gid: + gid="0" + continue + try: + rid=int(gid) + except: + print "[CRITICAL] Invalid item ID format: " + l + exit(1) + + ctx=Item(rid) + + if "\tlevel=" in l or " level=" in l: + gid=l.replace('\t', '').replace(' ','').replace('level=', '').replace('"', '').replace("'", "") + try: + rid=int(gid) + except: + print "[CRITICAL] Invalid item level format: " + l + rid=0 + ctx.lvl=0+rid + +mem=sorted(mem, key=lambda xcv: xcv.lvl, reverse=True) + +for r in mem: + rid=r.id + if rid >= 2700 and rid <= 2899: + shields.append(rid) + elif rid >= 3500 and rid <= 3999: + swords.append(rid) + elif rid >= 6000 and rid <= 6499: + bows.append(rid) + +a.close() + +#shields=sorted(shields, reverse=True) +#bows=sorted(bows, reverse=True) +#swords=sorted(swords, reverse=True) + +b=open("weapons.tmp", "w") + +b.write('<?xml version="1.0" encoding="utf-8"?>\n\ +<!-- Author: 4144, Jesusalva\n\ +Copyright (C) 2015 Evol Online\n\ +Copyright (C) 2019-2020 The Mana World\n -->\n\ +\n\ +<weapons>\n') + +b.write(' <swords>\n') + +for i in swords: + b.write(' <item id="%d"/>\n' % i) + +b.write(' </swords>\n <bows>\n') + +for i in bows: + b.write(' <item id="%d"/>\n' % i) + +b.write(' </bows>\n <shields>\n') + +for i in shields: + b.write(' <item id="%d"/>\n' % i) + +b.write(' </shields>\n</weapons>') + +b.close() |