From ade4f2d8ddb450b9224702a5886fa12fd296cb8b Mon Sep 17 00:00:00 2001 From: atom0s Date: Fri, 25 Nov 2016 12:37:56 -0800 Subject: [PATCH] Initial code commit. --- filterscan.lua | 159 ++++++++++++++++++++++++++ mobparse.lua | 58 ++++++++++ zonemoblist.lua | 296 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 513 insertions(+) create mode 100644 filterscan.lua create mode 100644 mobparse.lua create mode 100644 zonemoblist.lua diff --git a/filterscan.lua b/filterscan.lua new file mode 100644 index 0000000..9531de7 --- /dev/null +++ b/filterscan.lua @@ -0,0 +1,159 @@ +--[[ +* Ashita - Copyright (c) 2014 - 2016 atom0s [atom0s@live.com] +* +* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. +* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to +* Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. +* +* By using Ashita, you agree to the above license and its terms. +* +* Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were +* made. You must do so in any reasonable manner, but not in any way that suggests the licensor +* endorses you or your use. +* +* Non-Commercial - You may not use the material (Ashita) for commercial purposes. +* +* No-Derivatives - If you remix, transform, or build upon the material (Ashita), you may not distribute the +* modified material. You are, however, allowed to submit the modified works back to the original +* Ashita project in attempt to have it added to the original project. +* +* You may not apply legal terms or technological measures that legally restrict others +* from doing anything the license permits. +* +* No warranties are given. +]]-- + +_addon.author = 'atom0s'; +_addon.name = 'filterscan'; +_addon.version = '3.0.0'; + +require 'common' +require 'mobparse' + +--------------------------------------------------------------------------------------------------- +-- Variables +--------------------------------------------------------------------------------------------------- +local FilterScan = +{ + FFXiPath = ashita.file.get_install_dir(0, 1) .. '\\', + MobList = { }, + ZoneDatList = require('zonemoblist'), + Filter = '' +}; + +--------------------------------------------------------------------------------------------------- +-- func: UpdateZoneMobList +-- desc: Updates the zone mob list. +--------------------------------------------------------------------------------------------------- +local function UpdateZoneMobList(zoneId) + -- Attempt to get the dat file for this entry.. + local dat = FilterScan.ZoneDatList[zoneId]; + if (dat == nil) then + FilterScan.MobList = { }; + return false; + end + + -- Attempt to parse the dat file.. + FilterScan.MobList = ParseZoneMobDat(FilterScan.FFXiPath .. dat); + return true; +end + +--------------------------------------------------------------------------------------------------- +-- func: MobNameFromTargetIndex +-- desc: Returns the mob name from the given target index. +--------------------------------------------------------------------------------------------------- +local function MobNameFromTargetIndex(targetIndex) + if (FilterScan.MobList == nil) then + return nil; + end + for _, v in pairs(FilterScan.MobList) do + if (v[1] == targetIndex) then + return v[2]; + end + end + return nil; +end + +---------------------------------------------------------------------------------------------------- +-- func: load +-- desc: Event called when the addon is being loaded. +---------------------------------------------------------------------------------------------------- +ashita.register_event('load', function() + -- Parse the players current zone if we are in-game.. + if (AshitaCore:GetDataManager():GetParty():GetMemberActive(0) > 0) then + local zoneId = AshitaCore:GetDataManager():GetParty():GetMemberZone(0); + UpdateZoneMobList(zoneId); + print('Loaded zone mobs.') + end +end); + +---------------------------------------------------------------------------------------------------- +-- func: command +-- desc: Event called when a command was entered. +---------------------------------------------------------------------------------------------------- +ashita.register_event('command', function(command, ntype) + -- Ensure we should handle this command.. + local args = command:args(); + if (args[1] ~= '/filterscan') then + return false; + end + + -- Pull the filter from the command.. + FilterScan.Filter = (string.gsub(command, '/filterscan', '')):trim() + print(string.format('[FilterScan] Set new filter to: %s', FilterScan.Filter)); + return true; +end); + +--------------------------------------------------------------------------------------------------- +-- func: incoming_packet +-- desc: Called when our addon receives an incoming packet. +--------------------------------------------------------------------------------------------------- +ashita.register_event('incoming_packet', function(id, size, data) + -- Check for zone-in packets.. + if (id == 0x0A) then + -- Are we zoning into a mog house.. + if (struct.unpack('b', data, 0x80 + 1) == 1) then + return false; + end + + -- Pull the zone id from the packet.. + local zoneId = struct.unpack('H', data, 0x30 + 1); + if (zoneId == 0) then + zoneId = struct.unpack('H', data, 0x42 + 1); + end + + -- Update our mob list.. + UpdateZoneMobList(zoneId); + end + + -- Handle incoming widescan result packets.. + if (id == 0xF4) then + local targetIndex = struct.unpack('H', data, 0x04 + 1); + local mobName = MobNameFromTargetIndex(targetIndex); + + if (mobName == nil) then + return false; + else + -- Filter by name.. + if (mobName:lower():find(FilterScan.Filter:lower()) ~= nil) then + return false; + end + + -- Filter by target index.. + if (targetIndex == tonumber(FilterScan.Filter, 16)) then + return false; + end + if (tostring(targetIndex) == FilterScan.Filter) then + return false; + end + + -- Ignore all non-matching entries.. + return true; + end + + -- This should never happen here.. + return true; + end + + return false; +end); \ No newline at end of file diff --git a/mobparse.lua b/mobparse.lua new file mode 100644 index 0000000..3fa5911 --- /dev/null +++ b/mobparse.lua @@ -0,0 +1,58 @@ +--[[ +* Ashita - Copyright (c) 2014 - 2016 atom0s [atom0s@live.com] +* +* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. +* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to +* Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. +* +* By using Ashita, you agree to the above license and its terms. +* +* Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were +* made. You must do so in any reasonable manner, but not in any way that suggests the licensor +* endorses you or your use. +* +* Non-Commercial - You may not use the material (Ashita) for commercial purposes. +* +* No-Derivatives - If you remix, transform, or build upon the material (Ashita), you may not distribute the +* modified material. You are, however, allowed to submit the modified works back to the original +* Ashita project in attempt to have it added to the original project. +* +* You may not apply legal terms or technological measures that legally restrict others +* from doing anything the license permits. +* +* No warranties are given. +]]-- + +--------------------------------------------------------------------------------------------------- +-- func: ParseZoneMobDat +-- desc: Parses a zone monster dat for monster name and id entries. +--------------------------------------------------------------------------------------------------- +function ParseZoneMobDat( path ) + -- Attempt to open the DAT file.. + local f = io.open( path, 'rb' ); + if (f == nil) then + return nil; + end + + -- Attempt to obtain the file size.. + local curr = f:seek(); + local size = f:seek( 'end' ); + f:seek( 'set', 0 ); + + -- Ensure the file size is valid.. (Entries are 0x1C in length) + if (size == 0 or ((size - math.floor( size / 0x20 ) * 0x20) ~= 0)) then + f:close(); + return nil; + end + + -- Parse each entry from the file.. + local mobEntries = { }; + for x = 0, ((size / 0x20) - 1) do + local mobData = f:read(0x20); + local mobName, mobId = struct.unpack('c28L', mobData); + table.insert(mobEntries, { bit.band(mobId, 0x0FFF), mobName }); + end + f:close(); + + return mobEntries; +end \ No newline at end of file diff --git a/zonemoblist.lua b/zonemoblist.lua new file mode 100644 index 0000000..27aeaf8 --- /dev/null +++ b/zonemoblist.lua @@ -0,0 +1,296 @@ +--[[ +* Ashita - Copyright (c) 2014 - 2016 atom0s [atom0s@live.com] +* +* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. +* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to +* Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. +* +* By using Ashita, you agree to the above license and its terms. +* +* Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were +* made. You must do so in any reasonable manner, but not in any way that suggests the licensor +* endorses you or your use. +* +* Non-Commercial - You may not use the material (Ashita) for commercial purposes. +* +* No-Derivatives - If you remix, transform, or build upon the material (Ashita), you may not distribute the +* modified material. You are, however, allowed to submit the modified works back to the original +* Ashita project in attempt to have it added to the original project. +* +* You may not apply legal terms or technological measures that legally restrict others +* from doing anything the license permits. +* +* No warranties are given. +]]-- + +local ZoneDatList = { }; +ZoneDatList[0x0001] = "\\ROM3\\2\\111.DAT"; +ZoneDatList[0x0002] = "\\ROM3\\2\\112.DAT"; +ZoneDatList[0x0003] = "\\ROM3\\2\\113.DAT"; +ZoneDatList[0x0004] = "\\ROM3\\2\\114.DAT"; +ZoneDatList[0x0005] = "\\ROM3\\2\\115.DAT"; +ZoneDatList[0x0006] = "\\ROM3\\2\\116.DAT"; +ZoneDatList[0x0007] = "\\ROM3\\2\\117.DAT"; +ZoneDatList[0x0008] = "\\ROM3\\2\\118.DAT"; +ZoneDatList[0x0009] = "\\ROM3\\2\\119.DAT"; +ZoneDatList[0x000A] = "\\ROM3\\2\\120.DAT"; +ZoneDatList[0x000B] = "\\ROM3\\2\\121.DAT"; +ZoneDatList[0x000C] = "\\ROM3\\2\\122.DAT"; +ZoneDatList[0x000D] = "\\ROM3\\2\\123.DAT"; +ZoneDatList[0x000E] = "\\ROM3\\2\\124.DAT"; +ZoneDatList[0x000F] = "\\ROM\\25\\80.DAT"; +ZoneDatList[0x0010] = "\\ROM3\\2\\126.DAT"; +ZoneDatList[0x0011] = "\\ROM3\\2\\127.DAT"; +ZoneDatList[0x0012] = "\\ROM3\\3\\0.DAT"; +ZoneDatList[0x0013] = "\\ROM3\\3\\1.DAT"; +ZoneDatList[0x0014] = "\\ROM3\\3\\2.DAT"; +ZoneDatList[0x0015] = "\\ROM3\\3\\3.DAT"; +ZoneDatList[0x0016] = "\\ROM3\\3\\4.DAT"; +ZoneDatList[0x0017] = "\\ROM3\\3\\5.DAT"; +ZoneDatList[0x0018] = "\\ROM3\\3\\6.DAT"; +ZoneDatList[0x0019] = "\\ROM3\\3\\7.DAT"; +ZoneDatList[0x001A] = "\\ROM3\\3\\8.DAT"; +ZoneDatList[0x001B] = "\\ROM3\\3\\9.DAT"; +ZoneDatList[0x001C] = "\\ROM3\\3\\10.DAT"; +ZoneDatList[0x001D] = "\\ROM3\\3\\11.DAT"; +ZoneDatList[0x001E] = "\\ROM3\\3\\12.DAT"; +ZoneDatList[0x001F] = "\\ROM3\\3\\13.DAT"; +ZoneDatList[0x0020] = "\\ROM3\\3\\14.DAT"; +ZoneDatList[0x0021] = "\\ROM3\\3\\15.DAT"; +ZoneDatList[0x0022] = "\\ROM3\\3\\16.DAT"; +ZoneDatList[0x0023] = "\\ROM3\\3\\17.DAT"; +ZoneDatList[0x0024] = "\\ROM3\\3\\18.DAT"; +ZoneDatList[0x0025] = "\\ROM3\\3\\19.DAT"; +ZoneDatList[0x0026] = "\\ROM3\\3\\20.DAT"; +ZoneDatList[0x0027] = "\\ROM3\\3\\21.DAT"; +ZoneDatList[0x0028] = "\\ROM3\\3\\22.DAT"; +ZoneDatList[0x0029] = "\\ROM3\\3\\23.DAT"; +ZoneDatList[0x002A] = "\\ROM3\\3\\24.DAT"; +ZoneDatList[0x002B] = "\\ROM3\\3\\25.DAT"; +ZoneDatList[0x002C] = "\\ROM3\\3\\26.DAT"; +ZoneDatList[0x002D] = "\\ROM\\25\\110.DAT"; +ZoneDatList[0x002E] = "\\ROM4\\1\\45.DAT"; +ZoneDatList[0x002F] = "\\ROM4\\1\\46.DAT"; +ZoneDatList[0x0030] = "\\ROM4\\1\\47.DAT"; +ZoneDatList[0x0031] = "\\ROM4\\1\\48.DAT"; +ZoneDatList[0x0032] = "\\ROM4\\1\\49.DAT"; +ZoneDatList[0x0033] = "\\ROM4\\1\\50.DAT"; +ZoneDatList[0x0034] = "\\ROM4\\1\\51.DAT"; +ZoneDatList[0x0035] = "\\ROM4\\1\\52.DAT"; +ZoneDatList[0x0036] = "\\ROM4\\1\\53.DAT"; +ZoneDatList[0x0037] = "\\ROM4\\1\\54.DAT"; +ZoneDatList[0x0038] = "\\ROM4\\1\\55.DAT"; +ZoneDatList[0x0039] = "\\ROM4\\1\\56.DAT"; +ZoneDatList[0x003A] = "\\ROM4\\1\\57.DAT"; +ZoneDatList[0x003B] = "\\ROM4\\1\\58.DAT"; +ZoneDatList[0x003C] = "\\ROM4\\1\\59.DAT"; +ZoneDatList[0x003D] = "\\ROM4\\1\\60.DAT"; +ZoneDatList[0x003E] = "\\ROM4\\1\\61.DAT"; +ZoneDatList[0x003F] = "\\ROM4\\1\\62.DAT"; +ZoneDatList[0x0040] = "\\ROM4\\1\\63.DAT"; +ZoneDatList[0x0041] = "\\ROM4\\1\\64.DAT"; +ZoneDatList[0x0042] = "\\ROM4\\1\\65.DAT"; +ZoneDatList[0x0043] = "\\ROM4\\1\\66.DAT"; +ZoneDatList[0x0044] = "\\ROM4\\1\\67.DAT"; +ZoneDatList[0x0045] = "\\ROM4\\1\\68.DAT"; +ZoneDatList[0x0046] = "\\ROM4\\1\\69.DAT"; +ZoneDatList[0x0047] = "\\ROM4\\1\\70.DAT"; +ZoneDatList[0x0048] = "\\ROM4\\1\\71.DAT"; +ZoneDatList[0x0049] = "\\ROM4\\1\\72.DAT"; +ZoneDatList[0x004A] = "\\ROM4\\1\\73.DAT"; +ZoneDatList[0x004B] = "\\ROM4\\1\\74.DAT"; +ZoneDatList[0x004C] = "\\ROM4\\1\\75.DAT"; +ZoneDatList[0x004D] = "\\ROM4\\1\\76.DAT"; +ZoneDatList[0x004E] = "\\ROM4\\1\\77.DAT"; +ZoneDatList[0x004F] = "\\ROM4\\1\\78.DAT"; +ZoneDatList[0x0050] = "\\ROM\\26\\17.DAT"; +ZoneDatList[0x0051] = "\\ROM\\26\\18.DAT"; +ZoneDatList[0x0052] = "\\ROM\\26\\19.DAT"; +ZoneDatList[0x0053] = "\\ROM\\26\\20.DAT"; +ZoneDatList[0x0054] = "\\ROM\\26\\21.DAT"; +ZoneDatList[0x0055] = "\\ROM\\26\\22.DAT"; +ZoneDatList[0x0056] = "\\ROM\\26\\23.DAT"; +ZoneDatList[0x0057] = "\\ROM\\26\\24.DAT"; +ZoneDatList[0x0058] = "\\ROM\\26\\25.DAT"; +ZoneDatList[0x0059] = "\\ROM\\26\\26.DAT"; +ZoneDatList[0x005A] = "\\ROM\\26\\27.DAT"; +ZoneDatList[0x005B] = "\\ROM\\26\\28.DAT"; +ZoneDatList[0x005C] = "\\ROM\\26\\29.DAT"; +ZoneDatList[0x005D] = "\\ROM\\26\\30.DAT"; +ZoneDatList[0x005E] = "\\ROM\\26\\31.DAT"; +ZoneDatList[0x005F] = "\\ROM\\26\\32.DAT"; +ZoneDatList[0x0060] = "\\ROM\\26\\33.DAT"; +ZoneDatList[0x0061] = "\\ROM\\26\\34.DAT"; +ZoneDatList[0x0062] = "\\ROM\\26\\35.DAT"; +ZoneDatList[0x0063] = "\\ROM\\26\\36.DAT"; +ZoneDatList[0x0064] = "\\ROM\\26\\37.DAT"; +ZoneDatList[0x0065] = "\\ROM\\26\\38.DAT"; +ZoneDatList[0x0066] = "\\ROM\\26\\39.DAT"; +ZoneDatList[0x0067] = "\\ROM\\26\\40.DAT"; +ZoneDatList[0x0068] = "\\ROM\\26\\41.DAT"; +ZoneDatList[0x0069] = "\\ROM\\26\\42.DAT"; +ZoneDatList[0x006A] = "\\ROM\\26\\43.DAT"; +ZoneDatList[0x006B] = "\\ROM\\26\\44.DAT"; +ZoneDatList[0x006C] = "\\ROM\\26\\45.DAT"; +ZoneDatList[0x006D] = "\\ROM\\26\\46.DAT"; +ZoneDatList[0x006E] = "\\ROM\\26\\47.DAT"; +ZoneDatList[0x006F] = "\\ROM\\26\\48.DAT"; +ZoneDatList[0x0070] = "\\ROM\\26\\49.DAT"; +ZoneDatList[0x0071] = "\\ROM2\\13\\95.DAT"; +ZoneDatList[0x0072] = "\\ROM2\\13\\96.DAT"; +ZoneDatList[0x0073] = "\\ROM\\26\\52.DAT"; +ZoneDatList[0x0074] = "\\ROM\\26\\53.DAT"; +ZoneDatList[0x0075] = "\\ROM\\26\\54.DAT"; +ZoneDatList[0x0076] = "\\ROM\\26\\55.DAT"; +ZoneDatList[0x0077] = "\\ROM\\26\\56.DAT"; +ZoneDatList[0x0078] = "\\ROM\\26\\57.DAT"; +ZoneDatList[0x0079] = "\\ROM2\\13\\97.DAT"; +ZoneDatList[0x007A] = "\\ROM2\\13\\98.DAT"; +ZoneDatList[0x007B] = "\\ROM2\\13\\99.DAT"; +ZoneDatList[0x007C] = "\\ROM2\\13\\100.DAT"; +ZoneDatList[0x007D] = "\\ROM2\\13\\101.DAT"; +ZoneDatList[0x007E] = "\\ROM\\26\\63.DAT"; +ZoneDatList[0x007F] = "\\ROM\\26\\64.DAT"; +ZoneDatList[0x0080] = "\\ROM2\\13\\102.DAT"; +ZoneDatList[0x0081] = "\\ROM\\26\\66.DAT"; +ZoneDatList[0x0082] = "\\ROM2\\13\\103.DAT"; +ZoneDatList[0x0083] = "\\ROM\\26\\68.DAT"; +ZoneDatList[0x0084] = "\\ROM\\26\\69.DAT"; +ZoneDatList[0x0086] = "\\ROM2\\13\\104.DAT"; +ZoneDatList[0x0087] = "\\ROM2\\13\\105.DAT"; +ZoneDatList[0x0088] = "\\ROM\\26\\73.DAT"; +ZoneDatList[0x0089] = "\\ROM\\26\\74.DAT"; +ZoneDatList[0x008A] = "\\ROM\\26\\75.DAT"; +ZoneDatList[0x008B] = "\\ROM\\26\\76.DAT"; +ZoneDatList[0x008C] = "\\ROM\\26\\77.DAT"; +ZoneDatList[0x008D] = "\\ROM\\26\\78.DAT"; +ZoneDatList[0x008E] = "\\ROM\\26\\79.DAT"; +ZoneDatList[0x008F] = "\\ROM\\26\\80.DAT"; +ZoneDatList[0x0090] = "\\ROM\\26\\81.DAT"; +ZoneDatList[0x0091] = "\\ROM\\26\\82.DAT"; +ZoneDatList[0x0092] = "\\ROM\\26\\83.DAT"; +ZoneDatList[0x0093] = "\\ROM\\26\\84.DAT"; +ZoneDatList[0x0094] = "\\ROM\\26\\85.DAT"; +ZoneDatList[0x0095] = "\\ROM\\26\\86.DAT"; +ZoneDatList[0x0096] = "\\ROM\\26\\87.DAT"; +ZoneDatList[0x0097] = "\\ROM\\26\\88.DAT"; +ZoneDatList[0x0098] = "\\ROM\\26\\89.DAT"; +ZoneDatList[0x0099] = "\\ROM2\\13\\106.DAT"; +ZoneDatList[0x009A] = "\\ROM2\\13\\107.DAT"; +ZoneDatList[0x009B] = "\\ROM\\26\\92.DAT"; +ZoneDatList[0x009C] = "\\ROM\\26\\93.DAT"; +ZoneDatList[0x009D] = "\\ROM\\26\\94.DAT"; +ZoneDatList[0x009E] = "\\ROM\\26\\95.DAT"; +ZoneDatList[0x009F] = "\\ROM2\\13\\108.DAT"; +ZoneDatList[0x00A0] = "\\ROM2\\13\\109.DAT"; +ZoneDatList[0x00A1] = "\\ROM\\26\\98.DAT"; +ZoneDatList[0x00A2] = "\\ROM\\26\\99.DAT"; +ZoneDatList[0x00A3] = "\\ROM2\\13\\110.DAT"; +ZoneDatList[0x00A3] = "\\ROM2\\13\\110.DAT"; +ZoneDatList[0x00A4] = "\\ROM\\26\\101.DAT"; +ZoneDatList[0x00A5] = "\\ROM\\26\\102.DAT"; +ZoneDatList[0x00A6] = "\\ROM\\26\\103.DAT"; +ZoneDatList[0x00A7] = "\\ROM\\26\\104.DAT"; +ZoneDatList[0x00A8] = "\\ROM2\\13\\111.DAT"; +ZoneDatList[0x00A9] = "\\ROM\\26\\106.DAT"; +ZoneDatList[0x00AA] = "\\ROM2\\13\\112.DAT"; +ZoneDatList[0x00AB] = "\\ROM\\26\\108.DAT"; +ZoneDatList[0x00AC] = "\\ROM\\26\\109.DAT"; +ZoneDatList[0x00AD] = "\\ROM2\\13\\113.DAT"; +ZoneDatList[0x00AE] = "\\ROM2\\13\\114.DAT"; +ZoneDatList[0x00AF] = "\\ROM\\26\\112.dat"; +ZoneDatList[0x00B0] = "\\ROM2\\13\\115.DAT"; +ZoneDatList[0x00B1] = "\\ROM2\\13\\116.DAT"; +ZoneDatList[0x00B2] = "\\ROM2\\13\\117.DAT"; +ZoneDatList[0x00B3] = "\\ROM2\\13\\118.DAT"; +ZoneDatList[0x00B4] = "\\ROM2\\13\\119.DAT"; +ZoneDatList[0x00B5] = "\\ROM2\\13\\120.DAT"; +ZoneDatList[0x00B6] = "\\ROM\\26\\119.DAT"; +ZoneDatList[0x00B7] = "\\ROM\\26\\120.DAT"; +ZoneDatList[0x00B8] = "\\ROM\\26\\121.DAT"; +ZoneDatList[0x00B9] = "\\ROM2\\13\\121.DAT"; +ZoneDatList[0x00BA] = "\\ROM2\\13\\122.DAT"; +ZoneDatList[0x00BB] = "\\ROM2\\13\\123.DAT"; +ZoneDatList[0x00BC] = "\\ROM2\\13\\124.DAT"; +ZoneDatList[0x00BE] = "\\ROM\\26\\127.DAT"; +ZoneDatList[0x00BF] = "\\ROM\\27\\0.DAT"; +ZoneDatList[0x00C0] = "\\ROM\\27\\1.DAT"; +ZoneDatList[0x00C1] = "\\ROM\\27\\2.DAT"; +ZoneDatList[0x00C2] = "\\ROM\\27\\3.DAT"; +ZoneDatList[0x00C3] = "\\ROM\\27\\4.DAT"; +ZoneDatList[0x00C4] = "\\ROM\\27\\5.DAT"; +ZoneDatList[0x00C5] = "\\ROM\\27\\6.DAT"; +ZoneDatList[0x00C6] = "\\ROM\\27\\7.DAT"; +ZoneDatList[0x00C8] = "\\ROM\\27\\9.DAT"; +ZoneDatList[0x00C9] = "\\ROM2\\13\\125.DAT"; +ZoneDatList[0x00CA] = "\\ROM2\\13\\126.DAT"; +ZoneDatList[0x00CB] = "\\ROM2\\13\\127.DAT"; +ZoneDatList[0x00CC] = "\\ROM\\27\\13.DAT"; +ZoneDatList[0x00CD] = "\\ROM2\\14\\0.DAT"; +ZoneDatList[0x00CE] = "\\ROM\\27\\13.DAT"; +ZoneDatList[0x00CF] = "\\ROM2\\14\\1.DAT"; +ZoneDatList[0x00D0] = "\\ROM2\\14\\2.DAT"; +ZoneDatList[0x00D1] = "\\ROM2\\14\\3.DAT"; +ZoneDatList[0x00D3] = "\\ROM2\\14\\4.DAT"; +ZoneDatList[0x00D4] = "\\ROM2\\14\\5.DAT"; +ZoneDatList[0x00D5] = "\\ROM2\\14\\6.DAT"; +ZoneDatList[0x00D6] = "\\ROM\\27\\15.DAT"; +ZoneDatList[0x00D7] = "\\ROM\\27\\24.DAT"; +ZoneDatList[0x00D8] = "\\ROM\\27\\25.DAT"; +ZoneDatList[0x00D9] = "\\ROM\\27\\26.DAT"; +ZoneDatList[0x00DA] = "\\ROM\\27\\27.DAT"; +ZoneDatList[0x00DC] = "\\ROM\\27\\29.DAT"; +ZoneDatList[0x00DD] = "\\ROM\\27\\30.DAT"; +ZoneDatList[0x00DF] = "\\ROM\\27\\32.DAT"; +ZoneDatList[0x00E0] = "\\ROM\\27\\33.DAT"; +ZoneDatList[0x00E1] = "\\ROM\\27\\34.DAT"; +ZoneDatList[0x00E2] = "\\ROM2\\14\\7.DAT"; +ZoneDatList[0x00E3] = "\\ROM\\27\\36.DAT"; +ZoneDatList[0x00E4] = "\\ROM\\27\\37.DAT"; +ZoneDatList[0x00E6] = "\\ROM\\27\\39.DAT"; +ZoneDatList[0x00E7] = "\\ROM\\27\\40.DAT"; +ZoneDatList[0x00E8] = "\\ROM\\27\\41.DAT"; +ZoneDatList[0x00E9] = "\\ROM\\27\\42.DAT"; +ZoneDatList[0x00EA] = "\\ROM\\27\\43.DAT"; +ZoneDatList[0x00EB] = "\\ROM\\27\\44.DAT"; +ZoneDatList[0x00EC] = "\\ROM\\27\\45.DAT"; +ZoneDatList[0x00ED] = "\\ROM\\27\\46.DAT"; +ZoneDatList[0x00EE] = "\\ROM\\27\\47.DAT"; +ZoneDatList[0x00EF] = "\\ROM\\27\\48.DAT"; +ZoneDatList[0x00F0] = "\\ROM\\27\\49.DAT"; +ZoneDatList[0x00F1] = "\\ROM\\27\\50.DAT"; +ZoneDatList[0x00F2] = "\\ROM\\27\\51.DAT"; +ZoneDatList[0x00F3] = "\\ROM\\27\\52.DAT"; +ZoneDatList[0x00F4] = "\\ROM\\27\\53.DAT"; +ZoneDatList[0x00F5] = "\\ROM\\27\\54.DAT"; +ZoneDatList[0x00F6] = "\\ROM\\27\\55.DAT"; +ZoneDatList[0x00F7] = "\\ROM2\\14\\8.DAT"; +ZoneDatList[0x00F8] = "\\ROM\\27\\57.DAT"; +ZoneDatList[0x00F9] = "\\ROM\\27\\58.DAT"; +ZoneDatList[0x00FA] = "\\ROM2\\14\\9.DAT"; +ZoneDatList[0x00FB] = "\\ROM2\\14\\10.DAT"; +ZoneDatList[0x00FC] = "\\ROM2\\14\\11.DAT"; +ZoneDatList[0x00FD] = "\\ROM\\27\\62.DAT"; +ZoneDatList[0x00FE] = "\\ROM\\27\\63.DAT"; +ZoneDatList[0x00FF] = "\\ROM\\27\\64.DAT"; +ZoneDatList[0x0100] = "\\ROM9\\6\\45.DAT"; +ZoneDatList[0x0101] = "\\ROM9\\6\\46.DAT"; +ZoneDatList[0x0102] = "\\ROM9\\6\\47.DAT"; +ZoneDatList[0x0103] = "\\ROM9\\6\\48.DAT"; +ZoneDatList[0x0104] = "\\ROM9\\6\\49.DAT"; +ZoneDatList[0x0105] = "\\ROM9\\6\\50.DAT"; +ZoneDatList[0x0106] = "\\ROM9\\6\\51.DAT"; +ZoneDatList[0x0107] = "\\ROM9\\6\\52.DAT"; +ZoneDatList[0x0108] = "\\ROM9\\6\\53.DAT"; +ZoneDatList[0x0109] = "\\ROM9\\6\\54.DAT"; +ZoneDatList[0x010A] = "\\ROM9\\6\\55.DAT"; +ZoneDatList[0x010B] = "\\ROM9\\6\\56.DAT"; +ZoneDatList[0x010C] = "\\ROM9\\6\\57.DAT"; +ZoneDatList[0x010D] = "\\ROM9\\6\\58.DAT"; +ZoneDatList[0x010E] = "\\ROM9\\6\\59.DAT"; +ZoneDatList[0x010F] = "\\ROM9\\6\\60.DAT"; +ZoneDatList[0x0110] = "\\ROM9\\6\\61.DAT"; +ZoneDatList[0x011B] = "\\ROM9\\6\\72.DAT"; +ZoneDatList[0x011C] = "\\ROM9\\6\\73.DAT"; + +return ZoneDatList; \ No newline at end of file