Working on v0.8

User avatar
KAMIKADzE
KAMIKADzE
KAMIKADzE
Avatar of Vengeance
Avatar of Vengeance
Posts: 2603
Joined: Thu 1998.01.01, 00:00
Honor: 3094
Points: 2423439254.90
BDO: Blader
Cabal: BL
Vindictus: Lann
C9: Blade Dancer
Gender: Male
Karma: 神風
: Assassin Black Star Winged Devotion Dedication Heavy 1st 20 HR BDO JP Volunteer BDO KR Translator BDO JP Translator BDO RU Translator Black Spirit inside Black Spirit's Partner
Medals: 17
Contact:

Re: Working on v0.8

Postby KAMIKADzE » Sat 2019.06.29, 21:46

I was recently notified about Launcher failing at getting raw files from EU/NA client. With a quick investigation I've figured out that the cause of this issue are "dbss" files that are not encrypted, unlike other files. Unfortunately there are no reliable ways to distinguish such files from the other ones without involvement of a descent AI, which by the way would slow down things significantly, thus I plan to expand Paz v3 and v3U with additional input, which will allow to exclude files from the decryption/encryption.
I'm currently in consideration of how I should implement user interaction:
  1. Additional Paz v3 and v3U setting, where you will be able to write files extensions for exclusion.
    This sounds like the way to go, and was what I initially envisioned after figuring out what was causing the problem, but now that I think about it - there is additional check that can be done, as those files have something in common, so things can quickly get out of hands, especially if devs will add something else to it.
  2. Adding it to external FEX
    As of now I think that this is the best way to go, even though that I have no plans on implementing it for Paz v2 as of now.
  3. Separate file for this setting
    Sounds like an unnecessary complication.
If you have any reasons why you'd consider #1/3 better than #2 - let me know.
Exclusion will work similarly to how other FEX functionality works, and you'll be able to exclude specific file, files in some folder, by extension, or even something more complicated. In this way if devs will suddenly figure out that they don't encrypt those files and will start to - you can quickly remove the rule and there will be no need to update Launcher, or if they'll start removing encryption from the other files to improve loading speed - you'll be able to add additional rules.

This^ is moving to the top priority at the moment, and I plan to release the update as soon as I'll be done with it. Not sure right now if I'll release new update with new setting working for both RAW extraction and repacking, or separately (RAW extraction is first on the line).

Other than that - new update will feature some minor improvements and new BDO Patcher scheme Data_v3 layout - "PABR_Simple12SEND" (only XML implementation at the moment) along with "PABR ExpToSkillExpRate" BSS Converter scheme, that uses it.



User avatar
KAMIKADzE
KAMIKADzE
KAMIKADzE
Avatar of Vengeance
Avatar of Vengeance
Posts: 2603
Joined: Thu 1998.01.01, 00:00
Honor: 3094
Points: 2423439254.90
BDO: Blader
Cabal: BL
Vindictus: Lann
C9: Blade Dancer
Gender: Male
Karma: 神風
: Assassin Black Star Winged Devotion Dedication Heavy 1st 20 HR BDO JP Volunteer BDO KR Translator BDO JP Translator BDO RU Translator Black Spirit inside Black Spirit's Partner
Medals: 17
Contact:

Re: Working on v0.8

Postby KAMIKADzE » Mon 2019.07.01, 21:08

Updated the development version.

  • BDO Patcher (Main window menu Tools)
    • Advanced tab
      • FEX
        • Added "Encryption" section for the External FEX.
          Allows you to manually set the Encryption method used during Encryption/Decryption. Currently it is used only for RAW files extraction in Advanced tab (Repack is next on the line).
          Example:

          Code: Select all

          "Encryption": {
              "JP": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              }
          }

          • JP - server name. Same as in FEX.
          • dbss - /whatever name that will appear in advanced tab, and will be used via Projects, so make sure that all of those are unique.
          • FilesEncryption - list of files and encryption methods that should be used for their encryption/decryption.
          • PackedFileName - destination used by the game client.
          • Action - modifies the condition of performing actions.
            • None - Performs actions with a single file specified in PackedFileName.
            • StartsWith - Performs actions with all files that start with a specified string in PackedFileName.
            • EndsWith - Performs actions with all files that end with a specified string in PackedFileName.
            • RegexMatch - Performs actions with all files that match a specified regex pattern in PackedFileName.
            • RegexNoMatch - Performs actions with all files that doesn't match a specified regex pattern in PackedFileName.
          • Encryption - Encryption method that should be used for file(s) encryption/decryption.
            • None - No encryption.
            • Ice8Q - Default encryption method. It will be used when not specified otherwise.
        • Updated default External FEX

          Code: Select all

          {
            "FEX": {
              "JP": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "KR": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BSS Config": {
                  "PackedFileName": "gamecommondata/bssconfig.txt",
                  "RAWDestinationFileName": "\\gamecommondata\\bssconfig.txt",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                }
              },
              "EUNA": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "RU": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "TW": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "SA": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "TR": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "SEA": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "TH": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              },
              "RU2": {
                "JP Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_japan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_japan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "KR Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "EU/NA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_northamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_northamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "RU Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_russia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_russia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "TW Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_taiwan.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_taiwan.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southamerica.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southamerica.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "SEA Watermark": {
                  "PackedFileName": "ui_texture/new_ui_common_forlua/widget/watermark/screenshot_watermark01_southeastasia.dds",
                  "RAWDestinationFileName": "\\ui_texture\\new_ui_common_forlua\\widget\\watermark\\screenshot_watermark01_southeastasia.dds",
                  "SupportedStyles": "Force, Repack",
                  "Action": "None"
                },
                "Crafting Notes": {
                  "PackedFileName": "ui_data/ui_html/xml",
                  "RAWDestinationFileName": "\\Crafting Notes",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                },
                "BinLoc": {
                  "PackedFileName": "gamecommondata/binary",
                  "RAWDestinationFileName": "\\BinLoc",
                  "SupportedStyles": "Force, Repack",
                  "Action": "StartsWith"
                }
              }
            },
            "Repack": {
              "JP": {
                "JPKCreate": {
                  "RepackFiles": [
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/window/chatting/chatting_btn_01.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\window\\chatting\\chatting_btn_01.dds",
                      "PazNumber": 99999,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "CreatePAZ"
                    },
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/window/chatting/chatting_btn_02.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\window\\chatting\\chatting_btn_02.dds",
                      "PazNumber": 99999,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "CreatePAZ"
                    },
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/default/questmon.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\default\\questmon.dds",
                      "PazNumber": 99999,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "CreatePAZ"
                    },
                    {
                      "PackedFileName": "ui_data/ui_html/xml/jp/string.xml",
                      "FileDestination": "\\ui_data\\ui_html\\xml\\jp\\string.xml",
                      "PazNumber": 99999,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "CreatePAZ"
                    }
                  ]
                },
                "JPKAppend": {
                  "RepackFiles": [
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/window/chatting/chatting_btn_01.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\window\\chatting\\chatting_btn_01.dds",
                      "PazNumber": 0,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "AppendPAZ"
                    },
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/window/chatting/chatting_btn_02.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\window\\chatting\\chatting_btn_02.dds",
                      "PazNumber": 0,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "AppendPAZ"
                    },
                    {
                      "PackedFileName": "ui_texture/new_ui_common_forlua/default/questmon.dds",
                      "FileDestination": "\\ui_texture\\new_ui_common_forlua\\default\\questmon.dds",
                      "PazNumber": 0,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "AppendPAZ"
                    },
                    {
                      "PackedFileName": "ui_data/ui_html/xml/jp/string.xml",
                      "FileDestination": "\\ui_data\\ui_html\\xml\\jp\\string.xml",
                      "PazNumber": 0,
                      "Compressed": false,
                      "Action": "None",
                      "Style": "AppendPAZ"
                    }
                  ]
                }
              }
            },
            "Encryption": {
              "JP": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "KR": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "EUNA": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "RU": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "TW": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "SA": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "TR": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "SEA": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "TH": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              },
              "RU2": {
                "dbss": {
                  "FilesEncryption": [
                    {
                      "PackedFileName": ".dbss",
                      "Action": "EndsWith",
                      "Encryption": "None"
                    }
                  ]
                }
              }
            }
          }

      • Schemes
        • Added "PABR_Simple12SEND" layout (used by ExpToSkillExpRate - "PABR ExpToSkillExpRate" BSS Converter scheme).
        • Updated the default Scheme

          Code: Select all

          {
            "languagedata": {
              "1_LongSword": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "2_Blunt": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "3_TwoHandSword": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "4_Bow": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "5_Dagger": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "6_Staff": {
                "Keys": {
                  "Index": "^Index",
                  "Enchant": "^Enchant"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Attendance_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Title": "~Title",
                  "EventPeriod": "~EventPeriod",
                  "EventExpired": "~EventExpired"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Auction_InfoTable": {
                "Keys": {
                  "AuctionNo": "^AuctionNo"
                },
                "Values": {
                  "AuctionDesc": "~AuctionDesc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "AudioMap_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "AreaName": "~AreaName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Awakening_Ability_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "AbilityName": "~AbilityName",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Buff_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "BuffName": "~BuffName",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "BuffCondition_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ConditionDesc": "~ConditionDesc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Card_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Name": "~Name",
                  "Desc": "~Desc",
                  "Keyword": "~Keyword"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "CashProduct_Table": {
                "Keys": {
                  "ProductNo": "^ProductNo"
                },
                "Values": {
                  "ProductName": "~ProductName",
                  "DisplayName": "~DisplayName",
                  "DisplaySubName": "~DisplaySubName",
                  "ProductDesc": "~ProductDesc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Challenge_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Title": "~Title",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Character_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "CharName": "~CharName",
                  "DisplayName": "~DisplayName",
                  "CharacterTitle": "~CharacterTitle"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "CharacterFunction_Table": {
                "Keys": {
                  "CharacterKey": "^CharacterKey"
                },
                "Values": {
                  "BuyingFromNpcName": "~BuyingFromNpcName",
                  "SellingToNpcName": "~SellingToNpcName",
                  "TradingName": "~TradingName",
                  "ItemMarketName": "~ItemMarketName",
                  "BuyingFromGuildShopNpcName": "~BuyingFromGuildShopNpcName",
                  "SellingToGuildShopNpcName": "~SellingToGuildShopNpcName",
                  "AuctionName": "~AuctionName",
                  "MatingName": "~MatingName",
                  "InnName": "~InnName",
                  "ExploreKeyName": "~ExploreKeyName",
                  "SkillName": "~SkillName",
                  "RepairName": "~RepairName",
                  "WarehouseName": "~WarehouseName",
                  "StableName": "~StableName",
                  "TransferName": "~TransferName",
                  "TransferNamePerson": "~TransferNamePerson",
                  "IntimacyName": "~IntimacyName",
                  "GuildName": "~GuildName",
                  "ExploreName": "~ExploreName",
                  "LordMenuName": "~LordMenuName",
                  "MinorLordMenuName": "~MinorLordMenuName",
                  "ExtractName": "~ExtractName",
                  "TerritoryTradeName": "~TerritoryTradeName",
                  "TerritorySupplyName": "~TerritorySupplyName",
                  "KnowledgeName": "~KnowledgeName",
                  "SupplyShopName": "~SupplyShopName",
                  "SupplyFishShopName": "~SupplyFishShopName",
                  "GuildSupplyShopName": "~GuildSupplyShopName",
                  "ChangeItemName": "~ChangeItemName",
                  "isAwakenSkillName": "~isAwakenSkillName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Class_DataSkill_MeshType_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ItemName": "~ItemName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ContributionEXP_Table": {
                "Keys": {
                  "TerritoryKey": "^TerritoryKey"
                },
                "Values": {
                  "TerritoryName": "~TerritoryName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Coupon_Table": {
                "Keys": {
                  "CouponKey": "^CouponKey"
                },
                "Values": {
                  "Name": "~Name"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "CouponCategory_Table": {
                "Keys": {
                  "CashCouponCategory_Main": "^CashCouponCategory_Main",
                  "CashCouponCategory_Middle": "^CashCouponCategory_Middle",
                  "CashCouponCategory_Small": "^CashCouponCategory_Small"
                },
                "Values": {
                  "CashCouponCategory_Name": "~CashCouponCategory_Name"
                },
                "Actions": {
                  "AllowNullKeys": true,
                  "ExcludeFromMerge": {}
                }
              },
              "CutScene_Table": {
                "Keys": {
                  "FileName": "^FileName"
                },
                "Values": {
                  "CutSceneName": "~CutSceneName",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Dialog_Table": {
                "Keys": {
                  "Npc": "!Npc",
                  "DialogIndex": "!DialogIndex",
                  "Index": "^Index"
                },
                "Values": {
                  "Name": "~Name",
                  "MainScene": "~MainScene",
                  "FuncDialog": "~FuncDialog",
                  "MainDialog": "~MainDialog",
                  "Button": "~Button",
                  "Dialog": "~Dialog",
                  "Bubble1": "~Bubble1",
                  "Bubble2": "~Bubble2",
                  "Bubble3": "~Bubble3",
                  "Bubble4": "~Bubble4",
                  "Bubble5": "~Bubble5",
                  "Bubble6": "~Bubble6",
                  "Bubble7": "~Bubble7",
                  "Bubble8": "~Bubble8",
                  "Bubble9": "~Bubble9",
                  "Bubble10": "~Bubble10"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "DialogText_Table": {
                "Keys": {
                  "Index": "^Index",
                  "RandomIndex": "^RandomIndex"
                },
                "Values": {
                  "Text": "~Text"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Encyclopedia_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "EquipSetOption": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "EquipSetOptionName": "~EquipSetOptionName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Explore_Table": {
                "Keys": {
                  "WaypointKey": "^WaypointKey"
                },
                "Values": {
                  "Name": "~Name",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Field_Table": {
                "Keys": {
                  "FieldNo": "^FieldNo"
                },
                "Values": {
                  "FieldName": "~FieldName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Fusion_Table": {
                "Keys": {
                  "Index": "^Index",
                  "FusionGroup": "^FusionGroup",
                  "FusionItemKey": "^FusionItemKey"
                },
                "Values": {
                  "이 아이템은 무엇인가?": "~이 아이템은 무엇인가?",
                  "이 것은 시드 아이템인가?": "~이 것은 시드 아이템인가?"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Group_MainQuest": {
                "Keys": {
                  "MainQuestGroupKey": "^MainQuestGroupKey",
                  "MainQuestType": "^MainQuestType"
                },
                "Values": {
                  "MainQuestGroupName": "~MainQuestGroupName",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Group_Quest": {
                "Keys": {
                  "QuestGroup": "^QuestGroup"
                },
                "Values": {
                  "GroupName": "~GroupName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Group_RecommendationQuest": {
                "Keys": {
                  "RecommendationQuestGroupKey": "^RecommendationQuestGroupKey",
                  "RecommendationQuestType": "^RecommendationQuestType"
                },
                "Values": {
                  "RecommendationQuestGroupName": "~RecommendationQuestGroupName",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Group_RepetitionQuest": {
                "Keys": {
                  "RepetitionQuestGroupKey": "^RepetitionQuestGroupKey",
                  "RepetitionQuestType": "^RepetitionQuestType"
                },
                "Values": {
                  "RepetitionQuestGroupName": "~RepetitionQuestGroupName",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "GuildQuest_Table": {
                "Keys": {
                  "GuildQuestNo": "^GuildQuestNo"
                },
                "Values": {
                  "Title": "~Title",
                  "Desc": "~Desc",
                  "CompleteConditionText": "~CompleteConditionText"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "InstanceDungeonPcStat": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ClassName": "~ClassName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Item_Exchange": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "워리어": "~워리어",
                  "레인저": "~레인저",
                  "소서러": "~소서러",
                  "자이언트": "~자이언트",
                  "금수랑": "~금수랑",
                  "무사": "~무사",
                  "매화": "~매화",
                  "발키리": "~발키리",
                  "쿠노이치": "~쿠노이치",
                  "닌자": "~닌자",
                  "다크나이트": "~다크나이트",
                  "위자드": "~위자드",
                  "위치": "~위치"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Item_ImprovementResult_Table": {
                "Keys": {
                  "index": "^index"
                },
                "Values": {
                  "ItemName": "~ItemName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Item_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ItemName": "~ItemName",
                  "Description": "~Description",
                  "PopupDesc": "~PopupDesc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ItemExchangeSource": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "PlantDescription": "~PlantDescription",
                  "PlantDetailDescription": "~PlantDetailDescription"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "MainQuest_Table": {
                "Keys": {
                  "MainQuestGroupKey": "^MainQuestGroupKey",
                  "QuestGroup": "^QuestGroup",
                  "QuestID": "^QuestID"
                },
                "Values": {
                  "AcceptConditionText": "~AcceptConditionText"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Manufacture_Table": {
                "Keys": {
                  "MaterialItem1": "^MaterialItem1",
                  "MaterialItemCount1": "^MaterialItemCount1",
                  "MaterialItem2": "^MaterialItem2",
                  "MaterialItemCount2": "^MaterialItemCount2",
                  "MaterialItem3": "^MaterialItem3",
                  "MaterialItemCount3": "^MaterialItemCount3",
                  "MaterialItem4": "^MaterialItem4",
                  "MaterialItemCount4": "^MaterialItemCount4",
                  "MaterialItem5": "^MaterialItem5",
                  "MaterialItemCount5": "^MaterialItemCount5"
                },
                "Values": {
                  "결과물": "~결과물"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ManufactureCondition_Table": {
                "Keys": {
                  "ActionName": "^ActionName"
                },
                "Values": {
                  "가공 액션 명": "~가공 액션 명"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "MarketCategoryNameTag": {
                "Keys": {
                  "MarketCategory1": "^MarketCategory1",
                  "MarketCategory2": "^MarketCategory2",
                  "MarketFilter1": "^MarketFilter1",
                  "MarketFilter2": "^MarketFilter2"
                },
                "Values": {
                  "NameTag": "~NameTag"
                },
                "Actions": {
                  "AllowNullKeys": true,
                  "ExcludeFromMerge": {}
                }
              },
              "NpcRelation": {
                "Keys": {
                  "NpcKey": "^NpcKey"
                },
                "Values": {
                  "CoveredDialog": "~CoveredDialog",
                  "DiscoverDialog": "~DiscoverDialog",
                  "DiscoverDialog1": "~DiscoverDialog1",
                  "DiscoverDialog2": "~DiscoverDialog2",
                  "DiscoverDialog3": "~DiscoverDialog3",
                  "DiscoverDialog4": "~DiscoverDialog4",
                  "DiscoverDialog5": "~DiscoverDialog5"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Object_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "InstallationMaxCount": "~InstallationMaxCount",
                  "Desc_Feature1": "~Desc_Feature1",
                  "Desc_Feature2": "~Desc_Feature2",
                  "ArmorMaterial": "~ArmorMaterial"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "PC_Set_Table": {
                "Keys": {
                  "ClassType": "^ClassType"
                },
                "Values": {
                  "ClassName": "~ClassName",
                  "ClassDesc": "~ClassDesc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "PetAction_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "Name": "~Name",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "PlantExchangeGroup_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ExchangeGroupName": "~ExchangeGroupName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "PlantWorkerPassiveSkill_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Name": "~Name",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ProductTool_Property": {
                "Keys": {
                  "ItemKey": "^ItemKey",
                  "EnchantLevel": "^EnchantLevel"
                },
                "Values": {
                  "ItemName": "~ItemName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Profiling": {
                "Keys": {
                  "Key": "^Key",
                  "DialogKey": "^DialogKey"
                },
                "Values": {
                  "ProfileMessage": "~ProfileMessage"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Quest_Table": {
                "Keys": {
                  "QuestGroup": "^QuestGroup",
                  "QuestID": "^QuestID"
                },
                "Values": {
                  "Title": "~Title",
                  "Desc": "~Desc",
                  "CompleteDisplay": "~CompleteDisplay",
                  "CompleteConditionText": "~CompleteConditionText",
                  "AcceptDialog": "~AcceptDialog",
                  "AcceptButton": "~AcceptButton",
                  "ProgressDialog": "~ProgressDialog",
                  "RetryButton": "~RetryButton",
                  "CompleteDialog": "~CompleteDialog"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ReceipeForTown_New": {
                "Keys": {
                  "ReceipeKey": "^ReceipeKey"
                },
                "Values": {
                  "Name": "~Name"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "RecommendationQuest_Table": {
                "Keys": {
                  "RecommendationQuestGroupKey": "^RecommendationQuestGroupKey",
                  "QuestGroup": "^QuestGroup",
                  "QuestID": "^QuestID"
                },
                "Values": {
                  "AcceptConditionText": "~AcceptConditionText"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Region_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "AreaName": "~AreaName",
                  "ReturnPositionName": "~ReturnPositionName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "RegionMap_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "RegionWeather_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "AreaName": "~AreaName",
                  "ReturnPositionName": "~ReturnPositionName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "RepetitionQuest_Table": {
                "Keys": {
                  "RepetitionQuestGroupKey": "^RepetitionQuestGroupKey",
                  "QuestGroup": "^QuestGroup",
                  "QuestID": "^QuestID"
                },
                "Values": {
                  "AcceptConditionText": "~AcceptConditionText",
                  "HideConditions": "~HideConditions",
                  "VisibleConditions": "~VisibleConditions"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Servant_Item_Mesh_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "ItemName": "~ItemName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ServantSet_Table": {
                "Keys": {
                  "CharacterKey": "^CharacterKey"
                },
                "Values": {
                  "Name": "~Name"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Skill_Table_New": {
                "Keys": {
                  "SkillNo": "^SkillNo",
                  "SkillLevel": "^SkillLevel"
                },
                "Values": {
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "SkillCommand": {
                "Keys": {
                  "ClassType": "^ClassType",
                  "SkillNo": "^SkillNo"
                },
                "Values": {
                  "SkillName": "~SkillName",
                  "Control": "~Control"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "SkillType_Table_New": {
                "Keys": {
                  "SkillNo": "^SkillNo"
                },
                "Values": {
                  "SkillName": "~SkillName",
                  "SkillShortName": "~SkillShortName",
                  "Control": "~Control",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "SocialAction_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "SocialActionName": "~SocialActionName",
                  "ChattingCommand": "~ChattingCommand",
                  "ChattingKeyword": "~ChattingKeyword",
                  "ConditionMessage": "~ConditionMessage"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "SupportPointEXP_Table": {
                "Keys": {
                  "TerritoryKey": "^TerritoryKey"
                },
                "Values": {
                  "TerritoryName": "~TerritoryName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Territory_Table": {
                "Keys": {
                  "TerritoryKey": "^TerritoryKey"
                },
                "Values": {
                  "NationalName": "~NationalName",
                  "TerritoryName": "~TerritoryName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Theme_Table": {
                "Keys": {
                  "Theme": "^Theme"
                },
                "Values": {
                  "Name": "~Name",
                  "표시용1": "~표시용1"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "Title_Table": {
                "Keys": {
                  "Key": "^Key"
                },
                "Values": {
                  "Title": "~Title",
                  "Description": "~Description"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "TitleBuff_Table": {
                "Keys": {
                  "Index": "^Index",
                  "Count": "^Count",
                  "SkillNo": "^SkillNo"
                },
                "Values": {
                  "Description": "~Description",
                  "BuffDescription": "~BuffDescription"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "VehicleSkill_Table": {
                "Keys": {
                  "Index": "^Index"
                },
                "Values": {
                  "Name": "~Name",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "VehicleSkillOwner_Table": {
                "Keys": {
                  "CharacterKey": "^CharacterKey"
                },
                "Values": {
                  "이름": "~이름"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "VehicleTrainingSkill_Item_Table": {
                "Keys": {
                  "ItemKey": "^ItemKey",
                  "SkillKey": "^SkillKey"
                },
                "Values": {
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "VillageSiege_Table": {
                "Keys": {
                  "VillageSiegeKey": "^VillageSiegeKey"
                },
                "Values": {
                  "RegionName": "~RegionName"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "WorldmapMonster": {
                "Keys": {
                  "IndexKey": "^IndexKey"
                },
                "Values": {
                  "MonsterName": "~MonsterName",
                  "RegionName": "~RegionName",
                  "Desc": "~Desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "ZodiacSign_Table": {
                "Keys": {
                  "ZodiacSignKey": "^ZodiacSignKey"
                },
                "Values": {
                  "ZodiacName": "~ZodiacName",
                  "desc": "~desc"
                },
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              }
            },
            "stringtable_cutscene": {
              "CUTSCENE": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              }
            },
            "stringtable": {
              "ACTIONCHART": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "GAME": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "RESOURCE": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "TOOL": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              },
              "WEB": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              }
            },
            "symbolnostringtable": {
              "SymbolNo": {
                "Keys": [
                  "^StringFormatKey"
                ],
                "Values": [
                  "~StringFormat"
                ],
                "Actions": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {}
                }
              }
            },
            "languagedatav2": {
              "Keys": [
                "Index",
                "Key1",
                "Key2",
                "Key3"
              ],
              "Values": [
                "Original",
                "Translation",
                "Region"
              ],
              "Actions": {
                "": {
                  "AllowNullKeys": false,
                  "ExcludeFromMerge": {
                    "Original": true,
                    "Region": true
                  }
                }
              }
            },
            "Data_v3": {
              "stringtable": {
                "Keys": {
                  "Index": {
                    "DataType": "int"
                  },
                  "^StringFormatKey": {
                    "DataType": "string"
                  }
                },
                "Values": {
                  "~StringFormat": {
                    "DataType": "string"
                  }
                },
                "Structure": "Set",
                "Layout": "StringTable",
                "Actions": {},
                "CustomTabNames": null
              },
              "languagedata": {
                "Keys": {
                  "Index": {
                    "DataType": "int"
                  },
                  "Key1": {
                    "DataType": "short"
                  },
                  "Key2": {
                    "DataType": "byte"
                  },
                  "Key3": {
                    "DataType": "byte"
                  }
                },
                "Values": {
                  "Translation": {
                    "DataType": "string"
                  }
                },
                "Structure": "Set",
                "Layout": "NamelessDataTableLCFL",
                "Actions": {},
                "CustomTabNames": null
              },
              "PABR stringtable": {
                "Keys": {
                  "Index": {
                    "DataType": "int",
                    "BunchNumber": 1
                  },
                  "^StringFormatKey": {
                    "DataType": "string",
                    "BunchNumber": 2
                  }
                },
                "Values": {
                  "~StringFormat": {
                    "DataType": "string",
                    "BunchNumber": 2
                  }
                },
                "Structure": "Set",
                "Layout": "PABR_2BunchNCNS",
                "Actions": {},
                "CustomTabNames": null
              },
              "PABR ExpToSkillExpRate": {
                "Keys": {
                  "Index": {
                    "DataType": "int"
                  },
                  "Level": {
                    "DataType": "int"
                  }
                },
                "Values": {
                  "ExpToSkillExpRate": {
                    "DataType": "int"
                  }
                },
                "Structure": "Table",
                "Layout": "PABR_Simple12SEND",
                "Actions": {},
                "CustomTabNames": {
                  "0": "ExpToSkillExpRate_Table"
                }
              }
            }
          }
  • Minor improvements.



User avatar
KAMIKADzE
KAMIKADzE
KAMIKADzE
Avatar of Vengeance
Avatar of Vengeance
Posts: 2603
Joined: Thu 1998.01.01, 00:00
Honor: 3094
Points: 2423439254.90
BDO: Blader
Cabal: BL
Vindictus: Lann
C9: Blade Dancer
Gender: Male
Karma: 神風
: Assassin Black Star Winged Devotion Dedication Heavy 1st 20 HR BDO JP Volunteer BDO KR Translator BDO JP Translator BDO RU Translator Black Spirit inside Black Spirit's Partner
Medals: 17
Contact:

Re: Working on v0.8

Postby KAMIKADzE » Sun 2019.07.21, 20:12

Today I've finally found the time to add usage of the BDO External FEX Encryption section by the AppendPAZ Repack style. I still need to conduct tests in order to assure that it works fine. There will also be a minor improvement to the AppendPAZ itself. No changes required in the External FEX.
External FEX Encryption for CreatePAZ is next on the line. I also plan to start working on implementing "PABR_2Bunch2TD" Data_v3 layout, which will be used for various BSS Converter schemes.

Next update is planned for sometime before my trip (probably either for 24th or 25th). Not sure what I'll manage to implement until then, as always depends on the free time.



User avatar
KAMIKADzE
KAMIKADzE
KAMIKADzE
Avatar of Vengeance
Avatar of Vengeance
Posts: 2603
Joined: Thu 1998.01.01, 00:00
Honor: 3094
Points: 2423439254.90
BDO: Blader
Cabal: BL
Vindictus: Lann
C9: Blade Dancer
Gender: Male
Karma: 神風
: Assassin Black Star Winged Devotion Dedication Heavy 1st 20 HR BDO JP Volunteer BDO KR Translator BDO JP Translator BDO RU Translator Black Spirit inside Black Spirit's Partner
Medals: 17
Contact:

Re: Working on v0.8

Postby KAMIKADzE » Wed 2019.07.24, 21:58

Updated the development version.

  • BDO Patcher (Main window menu Tools)
    • Advanced tab
      • Repack
        • Added usage of External FEX "Encryption" section for AppendPAZ and CreatePAZ Repack styles.
          Please note that I've lightly tested "Encryption" section for AppendPAZ only and so far it seems to be working fine. Haven't had the time to test CreatePAZ (you should be relatively safe with this update anyway, as the default encryption should not be affected).
        • Improved AppendPAZ for cases of appending multiple files to the same PAZ file.
          If you're using AppendPAZ - this is a strongly recommended update.
    • Schemes
      • Added "PABR_2Bunch2TD" layout (only BSS -> XML Table conversion implemented for testing purposes).
        Layout is similar to that of PABR_2BunchNCNS, hence the similar name. Haven't had the time to test it. Haven't had the time to add some Data_v3 schemes that would use it either, but here is an example of what such scheme might look like:

        Code: Select all

        "PABR GuildQuest_Table": {
              "Keys": {
                "GuildQuestNo": {
                  "DataType": "int",
                  "BunchNumber": 1
                }
              },
              "Values": {
                "CompleteCondition": {
                  "DataType": "string",
                  "BunchNumber": 2
                },
                "CompleteConditionText": {
                  "DataType": "string",
                  "BunchNumber": 2
                },
                "QuestLv": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
                "Title": {
                  "DataType": "string",
                  "BunchNumber": 2
                },
                "Desc": {
                  "DataType": "string",
                  "BunchNumber": 2
                },
                "QuestIcon": {
                  "DataType": "string",
                  "BunchNumber": 2
                },
                "LimitMinute": {
                  "DataType": "int",
                  "BunchNumber": 1
                },
                "NeedItemKey": {
                  "DataType": "int",
                  "BunchNumber": 1
                },
                "NeedItemCount": {
                  "DataType": "int",
                  "BunchNumber": 1
                },
                "Preoccupancy": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
              ...
              "RewardItem1": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
              "RewardItem1Sub": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
              "RewardItem1Count": {
                  "DataType": "int",
                  "BunchNumber": 1
                },
              ...
              "RewardItem2": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
              "RewardItem2Sub": {
                  "DataType": "short",
                  "BunchNumber": 1
                },
              "RewardItem2Count": {
                  "DataType": "int",
                  "BunchNumber": 1
                },
              ...
              },
              "Structure": "Table",
              "Layout": "PABR_2Bunch2TD",
              "Actions": {},
              "CustomTabNames": {
                "0": "GuildQuest_Table"
              }
            }

        • DataType - currently available DataTypes for PABR_2Bunch2TD:
          • byte
          • short
          • int
          • long
          • string
        • BunchNumber - number of the bunch. Accordingly to layout's name - it should be set to either 1 or 2. It tells Launcher from which bunch this Key or Value should be pulled. To simplify things, for a better understanding - consider them as a 2 separate piles of some data.
          • 1 - Holds non-string data.
            There is an option of "string" data type, just in case it will be present in some scheme, but theoretically 1st bunch should not contain any strings, as it would defeat the whole purpose of this layout.
          • 2 - Text Dictionary, which contains string data.
            You can parse it as a non-string data type, if needed, but that will be it - parsing of that data it your specified data type.
            Correct item from the dictionary is chosen by the number in 1st bunch, which will be used to retrieve it and skipped to the next data from 1st bunch. This allows Text Dictionary to hold duplicate values as a single item, reducing the size of bss file.
        • ... - Just showing that there are missing sections. Those 3 dots should not be present in an actual scheme.
        • NOTE: As I've already mentioned - that scheme^ was just an example, I haven't had the time to finish it, nor verify what's already there, so don't bother to try it, unless you understand the steps required to complete it. Also I'll probably need to introduce new datatype for this table, which will hold "RewardItem" in a convenient package (e.g.: Data v1 style - item(1,0,1);item(2,0,1);..., instead of RewardItem1, RewardItem1Sub, RewardItem1Count, RewardItem2, RewardItem2Sub, RewardItem2Count...).




Return to “Launcher”

Who is online

Users browsing this forum: No registered users and 0 guests