Code:
tableName = "SkillResource"
fileName = "db_skill(ascii).rdb"
fields =
{
{ "id", INT32 },
{ "text_id", INT32 },
{ "is_valid", BYTE },
{ "elemental", BYTE },
{ "is_passive", BYTE },
{ "is_physical_act", BYTE },
{ "is_harmful", BYTE },
{ "is_need_target", BYTE },
{ "is_corpse", BYTE },
{ "is_toggle", BYTE },
{ "casting_type", BYTE },
{ "casting_level", BYTE },
{ "u1", BYTE, show=0 },
{ "u2", BYTE, show=0 },
{ "toggle_group", INT32 },
{ "cast_range", INT32 },
{ "valid_range", INT32 },
{ "cost_hp", INT32 },
{ "cost_hp_per_skl", INT32 },
{ "cost_mp", INT32 },
{ "cost_mp_per_skl", INT32 },
{ "cost_mp_per_enhance", INT32 },
{ "cost_hp_per", SINGLE },
{ "cost_hp_per_skl_per", SINGLE },
{ "cost_mp_per", SINGLE },
{ "cost_mp_per_skl_per", SINGLE },
{ "cost_havoc", INT32 },
{ "cost_havoc_per_skl", INT32 },
{ "cost_energy", SINGLE },
{ "cost_energy_per_skl", SINGLE },
{ "cost_exp", INT32 },
{ "cost_exp_per_enhance", INT32 },
{ "cost_jp", INT32 },
{ "cost_jp_per_enhance", INT32 },
{ "cost_item", INT32 },
{ "cost_item_count", INT32 },
{ "cost_item_count_per_skl", INT32 },
{ "need_level", INT32 },
{ "need_hp", INT32 },
{ "need_mp", INT32 },
{ "need_havoc", INT32 },
{ "need_havoc_burst", INT32 },
{ "need_state_id", INT32 },
{ "need_state_level", BYTE },
{ "need_state_exhaust", BYTE },
{ "vf_one_hand_sword", BYTE },
{ "vf_two_hand_sword", BYTE },
{ "vf_double_sword", BYTE },
{ "vf_dagger", BYTE },
{ "vf_double_dagger", BYTE },
{ "vf_spear", BYTE },
{ "vf_axe", BYTE },
{ "vf_one_hand_axe", BYTE },
{ "vf_double_axe", BYTE },
{ "vf_one_hand_mace", BYTE },
{ "vf_two_hand_mace", BYTE },
{ "vf_lightbow", BYTE },
{ "vf_heavybow", BYTE },
{ "vf_crossbow", BYTE },
{ "vf_one_hand_staff", BYTE },
{ "vf_two_hand_staff", BYTE },
{ "vf_shield_only", BYTE },
{ "vf_is_not_need_weapon", BYTE },
{ "delay_cast", DECIMAL },
{ "delay_cast_per_skl", DECIMAL },
{ "delay_cast_mode_per_enhance", SINGLE },
{ "delay_common", DECIMAL },
{ "delay_cooltime", DECIMAL },
{ "delay_cooltime_mode_per_enhance", SINGLE },
{ "cool_time_group_id", INT32 },
{ "uf_self", BYTE },
{ "uf_party", BYTE },
{ "uf_guild", BYTE },
{ "uf_neutral", BYTE },
{ "uf_purple", BYTE },
{ "uf_enemy", BYTE },
{ "tf_avatar", BYTE },
{ "tf_summon", BYTE },
{ "tf_monster", BYTE },
{ "u3", BYTE, show=0 },
{ "target", INT16 },
{ "effect_type", INT16 },
{ "u4", INT16, show=0 },
{ "state_id", INT32 },
{ "state_level_base", INT32 },
{ "state_level_per_skl", SINGLE },
{ "state_level_per_enhance", SINGLE },
{ "state_second", DECIMAL },
{ "state_second_per_level", DECIMAL },
{ "state_second_per_enhance", DECIMAL },
{ "state_type", BYTE },
{ "u5", BYTE, length=3, show=0 },
{ "probability_on_hit", INT32 },
{ "probability_inc_by_slv", INT32 },
{ "hit_bonus", INT16 },
{ "hit_bonus_per_enhance", INT16 },
{ "percentage", INT16 },
{ "u6", INT16, show=0 },
{ "hate_mod", SINGLE },
{ "hate_basic", INT32 },
{ "hate_per_skl", SINGLE },
{ "hate_per_enhance", SINGLE },
{ "unknown6", BYTE, length=8, show=0 },
{ "var1", SINGLE },
{ "var2", SINGLE },
{ "var3", SINGLE },
{ "var4", SINGLE },
{ "var5", SINGLE },
{ "var6", SINGLE },
{ "var7", SINGLE },
{ "var8", SINGLE },
{ "var9", SINGLE },
{ "var10", SINGLE },
{ "var11", SINGLE },
{ "var12", SINGLE },
{ "var13", SINGLE },
{ "var14", SINGLE },
{ "var15", SINGLE },
{ "var16", SINGLE },
{ "var17", SINGLE },
{ "var18", SINGLE },
{ "var19", SINGLE },
{ "var20", SINGLE },
{ "jp_01", INT32 },
{ "jp_02", INT32 },
{ "jp_03", INT32 },
{ "jp_04", INT32 },
{ "jp_05", INT32 },
{ "jp_06", INT32 },
{ "jp_07", INT32 },
{ "jp_08", INT32 },
{ "jp_09", INT32 },
{ "jp_10", INT32 },
{ "jp_11", INT32 },
{ "jp_12", INT32 },
{ "jp_13", INT32 },
{ "jp_14", INT32 },
{ "jp_15", INT32 },
{ "jp_16", INT32 },
{ "jp_17", INT32 },
{ "jp_18", INT32 },
{ "jp_19", INT32 },
{ "jp_20", INT32 },
{ "jp_21", INT32 },
{ "jp_22", INT32 },
{ "jp_23", INT32 },
{ "jp_24", INT32 },
{ "jp_25", INT32 },
{ "jp_26", INT32 },
{ "jp_27", INT32 },
{ "jp_28", INT32 },
{ "jp_29", INT32 },
{ "jp_30", INT32 },
{ "jp_31", INT32 },
{ "jp_32", INT32 },
{ "jp_33", INT32 },
{ "jp_34", INT32 },
{ "jp_35", INT32 },
{ "jp_36", INT32 },
{ "jp_37", INT32 },
{ "jp_38", INT32 },
{ "jp_39", INT32 },
{ "jp_40", INT32 },
{ "jp_41", INT32 },
{ "jp_42", INT32 },
{ "jp_43", INT32 },
{ "jp_44", INT32 },
{ "jp_45", INT32 },
{ "jp_46", INT32 },
{ "jp_47", INT32 },
{ "jp_48", INT32 },
{ "jp_49", INT32 },
{ "jp_50", INT32 },
{ "desc_id", BYTE },
{ "u7", BYTE, length=3, show=0 },
{ "tooltip_id", INT32 },
{ "icon_id", INT32 },
{ "icon_file_name", STRING, length=256 },
{ "is_projectile", BYTE },
{ "u8", BYTE, length=3, show=0 },
{ "projectile_speed", SINGLE },
{ "projectile_acceleration", SINGLE }
}
-- Use DISCTINT keyword to avoid duplicates left by gala
selectStatement = "SELECT DISTINCT [id],[text_id],[is_valid],[elemental],[is_passive],[is_physical_act],[is_harmful],[is_need_target],[is_corpse],[is_toggle],[toggle_group],[casting_type],[casting_level],[cast_range],[valid_range],[cost_hp],[cost_hp_per_skl],[cost_mp],[cost_mp_per_skl],[cost_mp_per_enhance],[cost_hp_per],[cost_hp_per_skl_per],[cost_mp_per],[cost_mp_per_skl_per],[cost_havoc],[cost_havoc_per_skl],[cost_energy],[cost_energy_per_skl],[cost_exp],[cost_exp_per_enhance],[cost_jp],[cost_jp_per_enhance],[cost_item],[cost_item_count],[cost_item_count_per_skl],[need_level],[need_hp],[need_mp],[need_havoc],[need_havoc_burst],[need_state_id],[need_state_level],[need_state_exhaust],[vf_one_hand_sword],[vf_two_hand_sword],[vf_double_sword],[vf_dagger],[vf_double_dagger],[vf_spear],[vf_axe],[vf_one_hand_axe],[vf_double_axe],[vf_one_hand_mace],[vf_two_hand_mace],[vf_lightbow],[vf_heavybow],[vf_crossbow],[vf_one_hand_staff],[vf_two_hand_staff],[vf_shield_only],[vf_is_not_need_weapon],[delay_cast],[delay_cast_per_skl],[delay_cast_mode_per_enhance],[delay_common],[delay_cooltime],[delay_cooltime_mode_per_enhance],[cool_time_group_id],[uf_self],[uf_party],[uf_guild],[uf_neutral],[uf_purple],[uf_enemy],[tf_avatar],[tf_summon],[tf_monster],[target],[effect_type],[state_id],[state_level_base],[state_level_per_skl],[state_level_per_enhance],[state_second],[state_second_per_level],[state_second_per_enhance],[state_type],[probability_on_hit],[probability_inc_by_slv],[hit_bonus],[hit_bonus_per_enhance],[percentage],[hate_mod],[hate_basic],[hate_per_skl],[hate_per_enhance],[critical_bonus],[critical_bonus_per_skl],[var1],[var2],[var3],[var4],[var5],[var6],[var7],[var8],[var9],[var10],[var11],[var12],[var13],[var14],[var15],[var16],[var17],[var18],[var19],[var20],[jp_01],[jp_02],[jp_03],[jp_04],[jp_05],[jp_06],[jp_07],[jp_08],[jp_09],[jp_10],[jp_11],[jp_12],[jp_13],[jp_14],[jp_15],[jp_16],[jp_17],[jp_18],[jp_19],[jp_20],[jp_21],[jp_22],[jp_23],[jp_24],[jp_25],[jp_26],[jp_27],[jp_28],[jp_29],[jp_30],[jp_31],[jp_32],[jp_33],[jp_34],[jp_35],[jp_36],[jp_37],[jp_38],[jp_39],[jp_40],[jp_41],[jp_42],[jp_43],[jp_44],[jp_45],[jp_46],[jp_47],[jp_48],[jp_49],[jp_50],[desc_id],[tooltip_id],[icon_id],[icon_file_name],[is_projectile],[projectile_speed],[projectile_acceleration] FROM dbo.SkillResource s LEFT JOIN dbo.SkillJpResource sj ON sj.skill_id = s.id"
SkillResource63 for Grimoire, otherwise its a simple conversion for glandu2 tool.