Save-Point
RXDATA layout? - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Code Support (https://www.save-point.org/forum-20.html)
+--- Thread: RXDATA layout? (/thread-4613.html)



RXDATA layout? - Myownfriend - 04-08-2013

I'm curious how the databases are layed out in the RXDATA files.
If there is any utility that would just decrypt the databases, that would be helpful.


RE: RXDATA layout? - MechanicalPen - 04-08-2013

I am pretty sure Text to RGSS can convert the default databases into a text file. http://save-point.org/thread-3276.html?highlight=text+to+RGSS

Really though, most if not all of the database information is in the help file.


RE: RXDATA layout? - hanetzer - 04-08-2013

Narzew has a simple script that will dump the whole thing to a text file.


RE: RXDATA layout? - Narzew - 04-08-2013

Simply parse it.

This is code that extract language and dictionary from .rxdata to many .ini files. You can use any values you want .

Code:
module Language
  module Utility
    def self.export_data
      $export_tables = ["$names_list = {\n","$classes_list = {\n","$skills_list = {\n", "$skills_descriptions = {\n", "$items_list = {\n", "$items_descriptions = {\n", "$weapons_list = {\n", "$weapons_descriptions = {\n", "$armors_list = {\n", "$armors_description = {\n", "$enemies_list = {\n", "$troops_list = {\n", "$states_list = {\n", "$animations_list = {\n", "$tilesets_list = {\n", "$common_events_list = {\n", "$dictionary = {\n"]
      $edb_names = ["$names_list", "$classes_list","$skills_list","$skills_descriptions", "$items_list", "$items_descriptions", "$weapon_list", "$weapon_descriptions", "$armor_list", "$armor_descriptions","$enemies_list", "$troops_list", "$states_list", "$animations_list", "$tilesets_list", "$common_events_list", "$dictionary"]
      $system_words_tables = ["gold","hp","sp","str","dex","agi","int","atk","pdef","mdef", "weapon", "armor1","armor2","armor3","armor4","attack","skill","guard","item","equip"]
      $export_filelist = ["Names", "Classes", "Skills", "SkillsDesc", "Items", "ItemsDesc", "Weapons", "WeaponsDesc", "Armors", "ArmorsDesc", "Enemies", "Troops", "States", "Animations", "Tilesets", "CommonEvents", "Dictionary"]
      $dict_text = ""
      1000.times{|x|
      y = x+1
      $export_tables[0] = $export_tables[0] << "#{y} => \"#{$data_actors[y].name}\",\n" unless $data_actors[y] == nil rescue $nrgss.do_nothing
      $export_tables[1] = $export_tables[1] << "#{y} => \"#{$data_classes[y].name}\",\n" unless $data_classes[y] == nil rescue $nrgss.do_nothing
      $export_tables[2] = $export_tables[2] << "#{y} => \"#{$data_skills[y].name}\",\n" unless $data_skills[y] == nil rescue $nrgss.do_nothing
      $export_tables[3] = $export_tables[3] << "#{y} => \"#{$data_skills[y].description}\",\n" unless $data_skills[y] == nil rescue $nrgss.do_nothing
      $export_tables[4] = $export_tables[4] << "#{y} => \"#{$data_items[y].name}\",\n" unless $data_items[y] == nil rescue $nrgss.do_nothing
      $export_tables[5] = $export_tables[5] << "#{y} => \"#{$data_items[y].description}\",\n" unless $data_items[y] == nil rescue $nrgss.do_nothing
      $export_tables[6] = $export_tables[6] << "#{y} => \"#{$data_weapons[y].name}\",\n" unless $data_weapons[y] == nil rescue $nrgss.do_nothing
      $export_tables[7] = $export_tables[7] << "#{y} => \"#{$data_weapons[y].description}\",\n" unless $data_weapons[y] == nil rescue $nrgss.do_nothing
      $export_tables[8] = $export_tables[8] << "#{y} => \"#{$data_armors[y].name}\",\n" unless $data_armors[y] == nil rescue $nrgss.do_nothing
      $export_tables[9] = $export_tables[9] << "#{y} => \"#{$data_armors[y].description}\",\n" unless $data_armors[y] == nil rescue $nrgss.do_nothing
      $export_tables[10] = $export_tables[10] << "#{y} => \"#{$data_enemies[y].name}\",\n" unless $data_enemies[y] == nil rescue $nrgss.do_nothing
      $export_tables[11] = $export_tables[11] << "#{y} => \"#{$data_troops[y].name}\",\n" unless $data_troops[y] == nil rescue $nrgss.do_nothing
      $export_tables[12] = $export_tables[12] << "#{y} => \"#{$data_states[y].name}\",\n" unless $data_states[y] == nil rescue $nrgss.do_nothing
      $export_tables[13] = $export_tables[13] << "#{y} => \"#{$data_animations[y].name}\",\n" unless $data_animations[y] == nil rescue $nrgss.do_nothing
      $export_tables[14] = $export_tables[14] << "#{y} => \"#{$data_tilesets[y].name}\",\n" unless $data_tilesets[y] == nil rescue $nrgss.do_nothing
      $export_tables[15] = $export_tables[15] << "#{y} => \"#{$data_common_events[y].name}\",\n" unless $data_common_events[y] == nil rescue $nrgss.do_nothing
      }
      16.times{|c|
      $export_tables[c] = $export_tables[c] << "}\n"
      }
      $cwords = []
      $system_words_tables.each{|z|
      eval("$cwords << $data_system.words.#{z}")
      }
      cnt = 0
      $cwords.each{|o|
      $dict_text << "\"#{o}\", \# #{cnt}\n"
      cnt += 1
      }
      $dict_text << "}"
      $export_tables[16] = $export_tables[16] << $dict_text
      count = 0
      $export_filelist.each{|a|
      file = File.open("LangConfig/Auto/#{a}.ini", "wb")
      file.write($export_tables[count])
      file.close
      count += 1
      }
    end
  end
end



RE: RXDATA layout? - Myownfriend - 04-09-2013

Thank you! I got what I was looking for :-)