Code:
-- Written by iSmokeDrow for Grimoire v4.6.8
--- May require selectStatement (have not tested)
--- May require further alterations to structure!
tableName = "Item"
fileName = "db_item(ascii).rdb"
fields = {
{ "id", INT32 },
{ "name_id", INT32 },
{ "type", INT32 },
{ "group", INT32 },
{ "class", INT32 },
{ "set_id", INT32 },
{ "set_part_flag", INT32 },
{ "rank", INT32 },
{ "level", INT32 },
{ "enhance", INT32 },
{ "socket", INT32 },
{ "status_flag", INT32 },
{ "use_min_level", INT32 },
{ "use_max_level", INT32 },
{ "range", DECIMAL },
{ "weight", FLOAT },
{ "price", INT32 },
{ "huntaholic_point", INT32 },
{ "ethereal_durability", INT32 },
{ "endurance", INT32 },
{ "wear_type", INT32 },
{"limit_bits", BIT_VECTOR, show=0 },
{"limit_deva", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=2},
{"limit_asura", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=3},
{"limit_gaia", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=4},
{"limit_fighter", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=10},
{"limit_hunter", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=11},
{"limit_magician", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=12},
{"limit_summoner", BIT_FROM_VECTOR, dependency="limit_bits", bit_position=13},
{ "item_use_flag", INT32 },
{ "material", INT32 },
{ "summon_id", INT32 },
{ "throw_range", INT32 },
{ "base_type_0", INT16 },
{ "base_type_1", INT16 },
{ "base_type_2", INT16 },
{ "base_type_3", INT16 },
{ "base_var1_0", FLOAT },
{ "base_var1_1", FLOAT },
{ "base_var1_2", FLOAT },
{ "base_var1_3", FLOAT },
{ "base_var2_0", FLOAT },
{ "base_var2_1", FLOAT },
{ "base_var2_2", FLOAT },
{ "base_var2_3", FLOAT },
{ "opt_type_0", INT16 },
{ "opt_type_1", INT16 },
{ "opt_type_2", INT16 },
{ "opt_type_3", INT16 },
{ "opt_var1_0", FLOAT },
{ "opt_var1_1", FLOAT },
{ "opt_var1_2", FLOAT },
{ "opt_var1_3", FLOAT },
{ "opt_var2_0", FLOAT },
{ "opt_var2_1", FLOAT },
{ "opt_var2_2", FLOAT },
{ "opt_var2_3", FLOAT },
{ "effect_id", INT32 },
{ "enhance_id", INT32 },
{ "skill_id", INT32 },
{ "state_id", INT32 },
{ "state_level", INT32 },
{ "state_time", INT32 },
{ "cool_time", INT32 },
{ "available_period", INT32 },
{ "cool_time_group", INT16 },
{ "decrease_type", INT16 },
{ "job_depth", INT16 },
{ "grade", INT16 },
{ "model_type_dem", BYTE },
{ "model_type_def", BYTE },
{ "model_type_asm", BYTE },
{ "unknown001", BYTE, show=0, default=0 },
{ "model_type_asf", BYTE },
{ "model_type_gam", BYTE },
{ "model_type_gaf", BYTE },
{ "deco_model_change", BYTE },
{ "blank_data", BYTE, length=8, show=0 },
{ "model_00", INT16 },
{ "model_01", INT16 },
{ "model_02", INT16 },
{ "model_03", INT16 },
{ "model_04", INT16 },
{ "model_05", INT16 },
{ "model_06", INT16 },
{ "drop_type", INT16 },
{ "icon_id", INT16 },
{ "icon_file_name", INT16 },
{ "tooltip_id", INT32 },
{ "group_bit_set", INT32 },
{ "effect01", INT16 },
{ "effect02", INT16 },
{ "value1_0", FLOAT },
{ "value1_1", FLOAT},
{ "value1_2", FLOAT},
{ "value1_3", FLOAT},
{ "value1_4", FLOAT},
{ "value1_5", FLOAT},
{ "value1_6", FLOAT},
{ "value1_7", FLOAT},
{ "value1_8", FLOAT},
{ "value1_9", FLOAT},
{ "value2_0", FLOAT},
{ "value2_1", FLOAT},
{ "value2_2", FLOAT},
{ "value2_3", FLOAT},
{ "value2_4", FLOAT },
{ "value2_5", FLOAT },
{ "value2_6", FLOAT },
{ "value2_7", FLOAT },
{ "value2_8", FLOAT },
{ "value2_9", FLOAT }
}
The above struct is the result of quick testing and data comparison between 9.4 and 9.5 rdb files. Further alterations to the structure may be required! Anyone wishing to use Glandu2 tool can easily port my struct to his.