[Release] Rappelz RDB Tool with tabs

02/08/2014 01:00 mongreldogg#16
when i try to add database desc file into Database Description files management list, nothing happens (i click Add, chose dll, and then no reaction). i messed something or i'm completely noob?
all archives was unpacked into 1 folder
02/08/2014 10:33 sona998#17
Thank you alot! That was actually simplier than expected. ^^

What about the special behaviour with skillJPresource and skillresource? They are combined together in one rdb, but in the database they get split into two different tables.

What to do here?
02/08/2014 14:14 naik127#18
Does anyone have a structure item.rdb version 8.3 ?
02/08/2014 14:40 glandu2#19
Quote:
Originally Posted by mongreldogg View Post
when i try to add database desc file into Database Description files management list, nothing happens (i click Add, chose dll, and then no reaction). i messed something or i'm completely noob?
all archives was unpacked into 1 folder
You used precompiled files in RappelzRDBToolQt-v2.1.0.zip ? Or compiled a new one ?

Quote:
Originally Posted by sona998 View Post
Thank you alot! That was actually simplier than expected. ^^

What about the special behaviour with skillJPresource and skillresource? They are combined together in one rdb, but in the database they get split into two different tables.

What to do here?
Because of that complexity and I remember that some fields where missing in either RDB or SQL to be able to do conversion SQL <-> RDB in both direction, I decided to just use the RDB with one SQL table, and then do sql queries to split them or merge them

So the file is skilldatabase.cpp which read the RDB file entirely (with JP data) and use a custom SQL table to put all rdb data in it. Then to split tables in skilljpresource and skillresource, you can use views for them that read into the full table, or use
Code:
Select column1, column2, ... into splitted_table  from  full_table
Two times for the 2 tables

To create a view, use
Code:
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
But I never tested that, but if it works, you don't need to execute SQL queries to split the tables each times you update the global table that contains all the data in the rdb file

I tested using views, and it works using the 8.1 GS.

For SkillJPResource:

For dbo.SkillResource:

So SkillResource and SkillJPResource are just a part of SkillFullResource, which was created using my tool. The GS load data correctly. so now with that done, you can update SkillFullResource table from the RDB file, or update the table and create the RDB file from it without dealing anymore with the two views (my tool issue a drop when overwriting the table, but the view persist, so the view does not need to be recreated, on sql server 2012, that might not be the case for other serers)

[edit]
Well in fact When I logged on, All my skills were removed, not sure about the cause, the data I used to create the table might be too recent ... (but the GS told me 2402/2402 skills loaded, and there are indee 2402 rows in skillresource)

[EDIT2]
In fact the column order in the view was not the same as the original SkillResource table, after reordering, all skills are read correctly and I have skills in the client like before using the view. So it was just an ordering issue. I updated this post to have the correct sql queries to create views, if you already created the view, you can change it using ALTER instead of CREATE keyword

Quote:
Originally Posted by mongreldogg View Post
when i try to add database desc file into Database Description files management list, nothing happens (i click Add, chose dll, and then no reaction). i messed something or i'm completely noob?
all archives was unpacked into 1 folder
I made a new version (2.2.0), and it tell what's wrong when the DLL can't be added. It also use your locale instead of latin1 locale, which was not really usable on russian or arabic computers.

But opening a file with for example korean characters in the name on a non korean computer will not work. (But at least, characters in the computer language should be ok)
02/09/2014 03:49 sona998#20
Yes, thanks for your time and effort in this post. Its definitely enough to help.

How would you merge the skillresource and skilljpresource into one table inside the database, making sure the skill_id from skilljpresource aligns with the id in skillresource?
02/09/2014 04:25 mongreldogg#21
Quote:
Originally Posted by glandu2 View Post
You used precompiled files in RappelzRDBToolQt-v2.1.0.zip ? Or compiled a new one ?
precompiled
02/09/2014 14:54 glandu2#22
Quote:
Originally Posted by sona998 View Post
Yes, thanks for your time and effort in this post. Its definitely enough to help.

How would you merge the skillresource and skilljpresource into one table inside the database, making sure the skill_id from skilljpresource aligns with the id in skillresource?
To merge the two database, use a join query:
Code:
SELECT DISTINCT(id) [id]
	,[text_id]
	,[desc_id]
	,[tooltip_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_per_skl]
	,[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]
	,[skill_lvup_limit]
	,[target]
	,[effect_type]
	,[skill_enchant_link_id]
	,[state_id]
	,[state_level_base]
	,[state_level_per_skl]
	,[state_level_per_enhance]
	,[state_second]
	,[state_second_per_level]
	,[state_second_per_enhance]
	,[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]
	,ISNULL(jp_01, 0) AS jp_01
	,ISNULL(jp_02, 0) AS jp_02
	,ISNULL(jp_03, 0) AS jp_03
	,ISNULL(jp_04, 0) AS jp_04
	,ISNULL(jp_05, 0) AS jp_05
	,ISNULL(jp_06, 0) AS jp_06
	,ISNULL(jp_07, 0) AS jp_07
	,ISNULL(jp_08, 0) AS jp_08
	,ISNULL(jp_09, 0) AS jp_09
	,ISNULL(jp_10, 0) AS jp_10
	,ISNULL(jp_11, 0) AS jp_11
	,ISNULL(jp_12, 0) AS jp_12
	,ISNULL(jp_13, 0) AS jp_13
	,ISNULL(jp_14, 0) AS jp_14
	,ISNULL(jp_15, 0) AS jp_15
	,ISNULL(jp_16, 0) AS jp_16
	,ISNULL(jp_17, 0) AS jp_17
	,ISNULL(jp_18, 0) AS jp_18
	,ISNULL(jp_19, 0) AS jp_19
	,ISNULL(jp_20, 0) AS jp_20
	,ISNULL(jp_21, 0) AS jp_21
	,ISNULL(jp_22, 0) AS jp_22
	,ISNULL(jp_23, 0) AS jp_23
	,ISNULL(jp_24, 0) AS jp_24
	,ISNULL(jp_25, 0) AS jp_25
	,ISNULL(jp_26, 0) AS jp_26
	,ISNULL(jp_27, 0) AS jp_27
	,ISNULL(jp_28, 0) AS jp_28
	,ISNULL(jp_29, 0) AS jp_29
	,ISNULL(jp_30, 0) AS jp_30
	,ISNULL(jp_31, 0) AS jp_31
	,ISNULL(jp_32, 0) AS jp_32
	,ISNULL(jp_33, 0) AS jp_33
	,ISNULL(jp_34, 0) AS jp_34
	,ISNULL(jp_35, 0) AS jp_35
	,ISNULL(jp_36, 0) AS jp_36
	,ISNULL(jp_37, 0) AS jp_37
	,ISNULL(jp_38, 0) AS jp_38
	,ISNULL(jp_39, 0) AS jp_39
	,ISNULL(jp_40, 0) AS jp_40
	,ISNULL(jp_41, 0) AS jp_41
	,ISNULL(jp_42, 0) AS jp_42
	,ISNULL(jp_43, 0) AS jp_43
	,ISNULL(jp_44, 0) AS jp_44
	,ISNULL(jp_45, 0) AS jp_45
	,ISNULL(jp_46, 0) AS jp_46
	,ISNULL(jp_47, 0) AS jp_47
	,ISNULL(jp_48, 0) AS jp_48
	,ISNULL(jp_49, 0) AS jp_49
	,ISNULL(jp_50, 0) AS jp_50
	,[icon_id]
	,[icon_file_name]
	,[is_projectile]
	,[projectile_speed]
	,[projectile_acceleration]
FROM dbo.SkillResource s LEFT JOIN dbo.SkillJPResource sjp ON s.id = sjp.skill_id;
You can also create directly the merged table by putting "INTO dbo.SkillFullResource" just before the FROM keyword

SELECT ... INTO dbo.target FROM dbo.SkillResource s LEFT JOIN dbo.SkillJPResource sjp ON .....

Note also that you need to rename original Skill tables before creating the views, I renamed them to SkillResource2 and SkillJPResource2 for example, then create SkillFullResource then created the two views SkillResource and SkillJPResource

Quote:
Originally Posted by mongreldogg View Post
precompiled
Maybe you had special non ascii characters in the path to where you put the files ? If true, let me know if the new version I put on the original post (ie version 2.2.0) works now, if not, try to use a path with only ascii characters (like C:\RappelzRDBTool\ ) and tell me if it works.
02/09/2014 15:21 mongreldogg#23
Quote:
Originally Posted by glandu2 View Post
Maybe you had special non ascii characters in the path to where you put the files ? If true, let me know if the new version I put on the original post (ie version 2.3.0) works now, if not, try to use a path with only ascii characters (like C:\RappelzRDBTool\ ) and tell me if it works.
right you are, it was a folder path issue, thanks=) very nice tool=)
02/09/2014 15:53 glandu2#24
Quote:
Originally Posted by mongreldogg View Post
right you are, it was a folder path issue, thanks=) very nice tool=)
With the version 2.2.0, it still doesn't work with your previous path ? Do you still need to put DLL in a path with ascii chars only ?
02/09/2014 16:22 mongreldogg#25
ye it works fine. ty=)
what about the idea to include resource hasher into a proggie?
02/09/2014 17:41 glandu2#26
Indeed, but which way would be better to add that feature ?

I think of a checkbox, that tell when opening/saving a RDB file to either use the default filename or the hashed default filename as the default name in the file dialogbox

So with that, I will add default RDB filename and default SQL table name (CSV filename would be the rdb one but with csv extension)
02/09/2014 19:24 Bethduna#27
Sorry glandu2 but i still can't connet to my database :( i tryed to mace ODBC conection but it couldn't helt... I make sql conection with 1334 port; the rest configuration is in this img. :) Help me plz if u can :) Thx you a lot!

[Only registered and activated users can see links. Click Here To Register...]
02/09/2014 19:58 glandu2#28
Quote:
Originally Posted by Bethduna View Post
Sorry glandu2 but i still can't connet to my database :( i tryed to mace ODBC conection but it couldn't helt... I make sql conection with 1334 port; the rest configuration is in this img. :) Help me plz if u can :) Thx you a lot!

[Only registered and activated users can see links. Click Here To Register...]
Your sql server port isn't like the default one, that is 1443 ?
Also next time, post a bigger image ^^
02/09/2014 20:01 Bethduna#29
Quote:
Originally Posted by glandu2 View Post
Your sql server port isn't like the default one, that is 1443 ?
Also next time, post a bigger image ^^
sorry for the img but i dnt know how :D, u can enter link cause i dont know how to make it big on elite :(; i inserted the ports that are opened in framework :) its 1433 and 1434 TCP & UDP & still dont work :(
02/09/2014 21:31 glandu2#30
Quote:
Originally Posted by Bethduna View Post
sorry for the img but i dnt know how :D, u can enter link cause i dont know how to make it big on elite :(; i inserted the ports that are opened in framework :) its 1433 and 1434 TCP & UDP & still dont work :(
ya indeed 1433 not 1443. You can use [Only registered and activated users can see links. Click Here To Register...] to post images
For how to add a data source, i will add a mini tutorial