Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 11:30

  • Please register to post and access all features, it's quick, easy and FREE!

 

[Release] Rappelz RDB Tool with tabs

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
[Release] Rappelz RDB Tool with tabs (current: v2.8.1)

Link to attachment of version v2.8.1

Introduction

A new version of the Rappelz RDB Tool with tabs and auto load of database description DLLs, there are now in a combobox for fast access (at least like other RDB editors)

Tabs allow opening several DB at once, a feature that could be implemented some day is having some more information in a tooltip on a cell, like showing the item's string if the mouse is left hover a cell in the name_id column (but that's only an idea for now)


Feature & changes
  • Independent tabs
  • Support for common mouse click about tabs (middle click on tab close it, double click on empty part of the tab bar create a tab)
  • Added a toolbar with common used buttons
  • Increased performance when reading/writing files
  • Show the search field in red for several secs when the string cannot be found
  • Auto load database description DLLs in the same directory as the .exe
  • Add manually some other DLL that are not in the .exe directory, like before
  • Keep known DLLs when you restart the tool
  • Loading a database autoload the current database description DLLs selected in the combobox
  • Allow to save SQL options (the password is saved optionally in plain text, if you trust your computer ^^)
  • More checks about not saved DB when closing or loading a new DB
  • Added information in the statusbar about button & other UI things
  • Auto detect the file format when loading a file if not specified
  • Support all used charset by Rappelz
  • Auto use default database filename or hash / tablename
  • Dialog box to convert between hash <=> filename (can also copy files to their converted names in batch)
  • Can Read/Write RDB, CSV and SQL tables, can write a SQL script file (but not read)
  • Save to existing SQL table without changing it's schema (ie: keep same columns names, order and types). This allow saving a more recent database to an older table

Support for SkillResource and SkillJPResource table is done through views, see there for more information:

How to configure database connection (only for version older than 2.5.2)


Dependencies
This tool require Download Microsoft Visual C++ 2010 Redistributable Package (x86) from Official Microsoft Download Center (x86 one, not x64) to run.
When making database description dlls, be aware of its dependencies. For example, when building with Visual Studio 2013, every users of that dll will need Download Visual C++ Redistributable Packages for Visual Studio 2013 from Official Microsoft Download Center (also use vcredist_x86 not x64)


About files:
  • RappelzRDBToolQt.zip : the tool with all database description DLLs. Require QtDlls4.8.1.zip
  • QtDlls4.8.1.zip : If you don't already have it, this is the required runtime DLLs. They have never changed nor they will across versions
  • RappelzRDBTool-dev.zip : Needed headers and library to compile a database description DLL
  • RappelzRDBTool-db-src.zip : All sources for all database description DLL. (Some might not be updated for latest epics)

For information about how to create a database description DLL, see there:
  • (Files used are from version 2.3.2, use RappelzRDBTool-x.x.x-dev.zip to update .h files)
  • (use RappelzRDBTool-x.x.x-dev.zip to update .h files)
For most database description, use an existing one and you just have to change the FieldDescription df[] structure most of the time.

Older DLL compatibility (with previous versions not in this thread)

Screenshots
You must register and activate your account in order to view images.

You must register and activate your account in order to view images.


Issues and ideas to improve this tool

Any comment about usability are appreciated, if something is definitely not hard to implement while being a good improvement to the tool, I will be able to update this version with the improvement without waiting for the new release to have it.

If any bugs are found (when using the program the normal way, that is not using old DLLs which can cause crash. With new DLLs provided, it should never crash)

Change log
  • 2.0.1 : Fixed a bug that prevented saving files.
  • 2.1.0 : Fixed various bugs when loading or writing, you must update both the .exe and RpzRdbBase.dll at once (db description dll don't need to be recompiled). I added Item52aDatabase.dll (and 52b) to open db_item.rdb (and db_item(ascii).rdb) of the 5.2 client posted on epvp by xXExiledXx. (the rdb file compatible with the database is db_item(ascii).rdb)
  • 2.2.0 : Better locale management (but still not perfect). Fix sql save on non english OS. Show a error message when can't load DB description DLL
  • 2.3.0 :
    - Add default file and table names, allow to use hash as default name.
    - Allow to change locale used to display database strings and to load SQL tables (every Rappelz languages supported) For SQL, the locale is used as the target locale to convert string from unicode to 8 bits. For files, the locale is used to choose how to display data.
    - The default file name and table name use by default the DLL description file without Database.dll and any number before that (so Item521Database.dll has a default name of db_item and table name ItemResource).
    - Fix SQL progress bar.
    - Show DB full name in a tooltip on the tab.
    - Fix TYPE_DECIMAL issue when loading from SQL.
  • 2.3.1 : Fix SQL loading issues with 0 length varchar
  • 2.3.2 : Add hash <-> filename dialog and fix some problems in provided source files (relative #include and ExportDLL.h)
  • 2.3.3 : -Wl,--kill-at no more required for mingw. Show error message about wrong column name or index using OutputDebugString. Fix db_string read when a string has a length of 0
  • 2.3.6 : ()
    - Support NVARCHAR column (for db_string) with unicode data (it's possible to store a french StringResource in an Arabic database along with the Arabic StringResource without character loss)
    - Save to sql script: the table name is the filename without ".sql"
    - Fixed hash conversion issue as discovered by MrStubborn
    - Removed primary keys as official tables dont use them and sometime rows are duplicated
    - I renamed all database description dll to have the epic number (I put 8.1 for all of them, them can work for older epic's still) (it's just to remember for which epic these dll were done, databases description dll without epic number still work)
    - Always use dot as decimal separator in the GUI, CSV and SQL script
    - The tool should not crash anymore when loading a non-rdb file as rdb (it will give "Invalid argument" in this case)
    - Updated and added some 8.3 rdb struct description dll (about npc and items)
  • 2.3.7 : ()
    - By default, the filter is all file (*.*). If a extension is specified with the filter all files, the format to save/open the file is based on the extension, else it is based on the selected filter. If the file does not have a known extension and the filter "all files" is selected, it default to RDB mode (for hashed name as they don't have an extension of csv, tsv, txt or sql)
    - Add translation support
  • 2.4.0 : ()
    - Fixed the save file dialogbox
    - Add a file-to-rename list in the hash/name converter dialog box: When clicking rename, all files in this list will be copied with the converted name as the new filename (maybe still buggy for now)
    - Pressing enter in the hash/name converter convert the text where is the cursor to the other type
  • 2.4.2 : ()
    - Add missing arena_points column in Item81Database
    - Fix bugs on various database formats
    - Handle NaN and non-normal float values correctly (SQL Server does not support them)
    - Correct default database names
    - In SQL Options dialogbox, the Data source name is now a combobox which list registered DSN in ODBC
  • 2.4.3 : ()
    - Add a checkbox when saving to SQL table to reuse it's schema (IE: use TRUNCATE instead of DROP & CREATE to keep the same columns. All columns of the RDB file MUST exist in the target table. This feature will evolve to allow writing 8.3 database to a 8.1 table by writing only already existing columns)
    - Rename arena_points to arena_point in Item8xDatabase (the original column name has no 's')
  • 2.5.0:
    - Fix crash when loading non existant CSV file
    - Fix possible crash when loading CSV for db_string or db_banwords
    - Fix rounding with negative DECIMAL values
    - Show messagebox when an error occur while reading or writing
    - Fix unknown errors that might appear with RDB that does not have the expected format
    - Fix possible crashes when loading LowQualityWater from SQL or CSV
    - Display correct messages when loading from SQL (wrong table columns and non existent table)
    - When reusing the target SQL table, allow to save only a subset of columns (ie: allow saving 8.3 database into 8.1 table by ignoring new columns). It's not possible to save with this feature when there is a column in the target table that is not in the database to save
    - Better handling of COMMIT/ROLLBACK in case of errors when creating or truncating the target SQL table (keep the old one with all it's data)
    - Add new database descriptions: db_aniinfo.rdb, db_decompose.rdb, db_fieldtypematerial.rdb, db_texture.rdb
    - Fix errors when loading from official SQL tables (8.1 official tables from Strange2010's repack)
    - Correct other invalid default names
    - GUI: Correctly remove all selected lines in Db description DLL manage dialog and Hash / Name file renamer dialog
    - GUI: Add alternate colors in tables for easier reading
    - GUI: Add progress bar for file renamer (this feature actually copy files with the converted filename as the new filename and keep original ones)
    - GUI: Don't remove non existent files in file to rename list at startup
    - GUI: When editing the database, don't save invalid values in memory as 0 (keep the old one instead) (like putting a too big number in a 8 bit integer column)
    - GUI: When renaming filenames in Hash / Name dialogbox, select lines in the files to rename list that have been correctly copied with the target name
  • 2.5.1:
    - Add TYPE_FLAG_SORT to sort rows when reading from SQL (used for jobresource and level tables) (xXExiledXx)
    - Fix flags when reading from SQL db
    - Fix random columns for Huntaholic and SummonExp (Amaady)
    - Fix Item522Database for 5.2 client (db_item(ascii).rdb) (xXExiledXx)
    - Add SkillTree52Database
    - When failing at reading a RDB file, leave data in the table to see what's wrong (useful when reading a new RDB)
    - The combobox with all database description DLLs is larger (display 20 items instead of 10)
  • 2.5.2:
    - Fix data changes when saving a database. Saving a RDB several times works now (Laladumdum)
    - Added
    - Added
  • 2.6.0:
    - Use SQL server IP & Port directly in SQL config
    - Add possibility to use a connection string in SQL config
    - If an edited cell has not changed (same text as before), the file is not marked as changed
  • 2.7.0:
    - Add log window: logs can be read now (including SQL error messages). Log can be written from database DLL too using ILog.h
    - When generating .SQL file, add "GO" every 100 insert
  • 2.8.0:
    - Rework IRowManipulator: use row->getData* and row->setData* instead of row->getValuePtr
    - More log message in case of error
    - Updated database DLLs with 9.1 Arcadia tables from revolution team. (Several mapping bugs/unknown name in DLL for previous epics were also fixed).
  • 2.8.1:
    - Fix hashed / non hashed detection of files
Attached Files
File Type: zip QtDlls4.8.1.zip (5.09 MB, 2305 views)
File Type: zip RappelzRDBTool-2.6.0-dev.zip (7.1 KB, 264 views)
File Type: zip RappelzRDBTool-2.6.0-db-src.zip (71.4 KB, 238 views)
File Type: zip RappelzRDBToolQt-2.6.0.zip (1.02 MB, 471 views)
File Type: zip RappelzRDBTool-2.8.0-dev.zip (8.0 KB, 248 views)
File Type: zip RappelzRDBTool-2.8.0-db-src.zip (82.2 KB, 353 views)
File Type: zip RappelzRDBToolQt-2.8.0.zip (1.06 MB, 411 views)
File Type: zip RappelzRDBToolQt-2.8.1.zip (1.07 MB, 1343 views)



glandu2 is offline  
Thanks
51 Users
Old   #2
 
elite*gold: 0
Join Date: Oct 2010
Posts: 2,557
Received Thanks: 2,411
Do you plan to have multi epic support? I can send you structure variations for several epics. NICE RELEASE MATE


ismokedrow is offline  
Old   #3
 
elite*gold: 0
Join Date: Nov 2012
Posts: 6
Received Thanks: 1
Nice RELEASE

In this RELEASE Item only exist?
TheLeaders is offline  
Old   #4
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
If you can't or don't want to create the DLL yourself, then yes, I can create it after your structure and post it there ^^ And for the next release about LUA, I will convert all DLLs to LUA, so you give me one to compile, it will be as LUA too for the next release

(the conversion between C and LUA will be done batched anyway)

MultiEpic support can be done with suffixing the DLL name with it's epic, like 71 in MonsterDatabase71.dll which is for the 7.1 epic. This way, you can have multiple version of RDB readable. As the RDB can change (almost) completely from epic to epic, I will not try to add support for several epics in one DLL but rather treat them as different RDBs

In fact MonsterDatabase82.dll should be Monster82Database.dll to be able to filter out the maximum number of other DLLs (and keep only one ending with "Database.dll"), but the first name sounds better. (But at this time you can still add them to the tool if you write it's name in the file dialog box) (This DLL does not read the 8.2 db_monster.rdb fully correctly)

Quote:
Originally Posted by TheLeaders View Post
Nice RELEASE

In this RELEASE Item only exist?
If you have only ItemDatabase.dll in the list, be sure to have all DLLs in the same directory as the .exe. Or manually add them with the "Manage Db Description files" button (you can add several DLLs files at once)


glandu2 is offline  
Old   #5
 
elite*gold: 0
Join Date: Aug 2011
Posts: 170
Received Thanks: 32
Question

I have this error when I want great file *.dll


I modify the Additional Include Directories property in correct directorie ... and some erorr ..
and I write le command in VS command prompt "cl.exe -D_CRT_SECURE_NO_WARNINGS -DBUILDING_CLIENT ...." and some error.
Modamer9 is online now  
Thanks
1 User
Old   #6
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
Quote:
Originally Posted by Modamer9 View Post
I have this error when I want great file *.dll


I modify the Additional Include Directories property in correct directorie ... and some erorr ..
and I write le command in VS command prompt "cl.exe -D_CRT_SECURE_NO_WARNINGS -DBUILDING_CLIENT ...." and some error.
Well, thanks for pointing that out, I made a mistake about BUILDING_CLIENT, it's BUILDING_DATABASE instead (I corrected the post that talk about that)
And I uploaded files too fast, the files still include the headers in the ../Base/ directory (see at the very beginning of the SkillTreeDisplayDatabase.cpp)

So for you, just replace BUILDING_CLIENT with BUILDING_DATABASE in the cl command line, and adjust the directory of DataType.h and ExportDLL.h
If there are in the same directory as SkillTreeDisplayDatabase.cpp, just replace the two first line with:
Code:
#include "DataType.h"
#include "ExportDLL.h"
I will correct that now, and replace all #include statement with the above.

So for building SkillTreeDatabase.cpp (having other files from RappelzRDBTool-dev.zip in the same directory), use this:
Code:
cl.exe -D_CRT_SECURE_NO_WARNINGS -DBUILDING_DATABASE /DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR /MD /O2 /Ob2 /D NDEBUG SkillTreeDisplayDatabase.cpp RpzRdbBase.lib /link /DLL /OUT:SkillTreeDisplayDatabase.dll
And it should work. Replace SkillTreeDisplayDatabase.cpp and SkillTreeDisplayDatabase.dll by the files you want.

---------------------
The tool had a bug which prevented to save files to RDB or CSV. I updated the original post with the corrected RappelzRDBToolQt.exe in RappelzRDBTool-v2.0.1.zip (all other files are the same so no need to redownload other zip that this one)

Remember that any bug report is appreciated ^^
glandu2 is offline  
Thanks
2 Users
Old   #7
 
elite*gold: 0
Join Date: Oct 2013
Posts: 54
Received Thanks: 5
Wondering if there are any 5.2 versions for the dlls? I think the later epics changed alot of the columns for skill tables, and thus when it reads in rdb files ripped from 5.2 client, it doesn't reads it properly.
sona998 is offline  
Old   #8
 
elite*gold: 0
Join Date: Jul 2011
Posts: 264
Received Thanks: 233
Quote:
Originally Posted by sona998 View Post
Wondering if there are any 5.2 versions for the dlls? I think the later epics changed alot of the columns for skill tables, and thus when it reads in rdb files ripped from 5.2 client, it doesn't reads it properly.
you need to make a dll by your self with the struct of the 5.2 skill.rdb
or you can use the table design to find the struct
M>M is offline  
Old   #9
 
elite*gold: 0
Join Date: Jul 2012
Posts: 231
Received Thanks: 65
Quote:
Originally Posted by sona998 View Post
Wondering if there are any 5.2 versions for the dlls? I think the later epics changed alot of the columns for skill tables, and thus when it reads in rdb files ripped from 5.2 client, it doesn't reads it properly.

This is what u want & next time better use a search button that raising up old threads
eziorav is offline  
Old   #10
 
elite*gold: 0
Join Date: Oct 2013
Posts: 54
Received Thanks: 5
Quote:
Originally Posted by M>M View Post
you need to make a dll by your self with the struct of the 5.2 skill.rdb
or you can use the table design to find the struct
You mean the Arcadia database structure?
sona998 is offline  
Old   #11
 
elite*gold: 0
Join Date: Oct 2011
Posts: 21
Received Thanks: 5
Hi! Thx u VM for this beauty program. I Tryed to add Database Description Files but when i push add, nothink is happened d u know what's the problem ?
Bethduna is offline  
Old   #12
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
Either the DLL is not compatible with this version, the path used use non recognized characters (sorry for no unicode support, I will try to improve that, for now to workaround that problem, use only path ascii (english) letters).

If you compiled the DLL yourself, be sure to create the DLL as a 32 bit DLL (and without removing #pragma lines)
glandu2 is offline  
Old   #13
 
elite*gold: 0
Join Date: Oct 2013
Posts: 54
Received Thanks: 5
I've been trying to read row data from db_skill.rdb, db_skilltree.rdb for E4/E5 clients. The source you left for this was great, db_skillstage structure was similar so that one has been done.

Been reading through your comments and came across skilltreedatabase.cpp. Most structures for the rdb are similar, i.e. header at start, then total row count, then rows of data one after the other.

With skilltree(ascii).rdb, it has a unique structure where it starts with the header, then total row count, then 'x' row count of skills for a job id, then x row skills for said job id, then repeat. i.e. it has an extra number before each set of skills for a job.

I've worked out the strucutre for skilltree rdb but not sure in how to represent this using the skilltreedatabase.cpp source, hence your comment about some special behaviour. Perhaps you could provide some pointers into setting up this structure using the skilltreedatabase.cpp source?
Code:
struct HEADER
{
  str date [len=8];
  [hidden] str [len=(0x80-8)];
   u32 count1;
   child entry2[count = count1];
}

struct entry2
{
	u32 rowCount;
	child ENTRY [count = rowCount];
	str offset [len = 52*rowCount];
}


struct ENTRY
{
	u32 job_id; 
	u32 skill_id;	
	u32 min_skill_lv;
	u32 max_skill_lv;
	u32 lv;
	u32 job_lv;	
	float jp_ratio; 
	u32 need_skill_id_1;
	u32 need_skill_id_2;
	u32 need_skill_id_3;
	u32 need_skill_lv_1;
	u32 need_skill_lv_2;
	u32 need_skill_lv_3;  
}

Cheers,
sona.
sona998 is offline  
Old   #14
 
elite*gold: 0
Join Date: Oct 2011
Posts: 21
Received Thanks: 5
Quote:
Originally Posted by glandu2 View Post
Either the DLL is not compatible with this version, the path used use non recognized characters (sorry for no unicode support, I will try to improve that, for now to workaround that problem, use only path ascii (english) letters).

If you compiled the DLL yourself, be sure to create the DLL as a 32 bit DLL (and without removing #pragma lines)
Im beginner or exactly noob in this Can u pla tell me plz what does do this dll files and whitch program can help me to make them ?

Oh & i have another problem... When i Push "Load from SQL" it say that "Couldnt load the database file: No such file or directory" The settings are standart: SQL Server; Name of data source (like WIN-H54D7PU7Q2R, I'v tried to write "Arcadia" but still havent work); username: sa; pwd: nothink! Can you help me plz with somethink ?
Bethduna is offline  
Old   #15
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
Quote:
Originally Posted by sona998 View Post
I've been trying to read row data from db_skill.rdb, db_skilltree.rdb for E4/E5 clients. The source you left for this was great, db_skillstage structure was similar so that one has been done.

Been reading through your comments and came across skilltreedatabase.cpp. Most structures for the rdb are similar, i.e. header at start, then total row count, then rows of data one after the other.

With skilltree(ascii).rdb, it has a unique structure where it starts with the header, then total row count, then 'x' row count of skills for a job id, then x row skills for said job id, then repeat. i.e. it has an extra number before each set of skills for a job.

I've worked out the strucutre for skilltree rdb but not sure in how to represent this using the skilltreedatabase.cpp source, hence your comment about some special behaviour. Perhaps you could provide some pointers into setting up this structure using the skilltreedatabase.cpp source?
Code:
struct HEADER
{
  str date [len=8];
  [hidden] str [len=(0x80-8)];
   u32 count1;
   child entry2[count = count1];
}

struct entry2
{
	u32 rowCount;
	child ENTRY [count = rowCount];
	str offset [len = 52*rowCount];
}


struct ENTRY
{
	u32 job_id; 
	u32 skill_id;	
	u32 min_skill_lv;
	u32 max_skill_lv;
	u32 lv;
	u32 job_lv;	
	float jp_ratio; 
	u32 need_skill_id_1;
	u32 need_skill_id_2;
	u32 need_skill_id_3;
	u32 need_skill_lv_1;
	u32 need_skill_lv_2;
	u32 need_skill_lv_3;  
}

Cheers,
sona.
You need to uncomment
Code:
#pragma comment(linker, "/EXPORT:[email protected]")
int EDATABASEDLL DLLCALLCONV getSpecialCaseID() {
	return SPECIALCASE_DOUBLEFORRDB;
}
in skilltreedatabase.cpp
fir your unknown data, use a line with that:
{52, TYPE_INT8 | TYPE_SQLIGNORE | TYPE_CSVIGNORE, "unknown"}

To compile that, microsoft visual C++ compiler is needed (tested with the 2010 one)

To add a datasource, you need to follow that tutorial: but use a USER DSN instead of system dsn


glandu2 is offline  
Thanks
1 User
Reply



« Previous Thread | Next Thread »

Similar Threads
[Release]Shiva-Rappelz GM-Tool V1
Download VirusTotal GM-Tool not update since the first post, you can update it easily with your Arcadia.
7 Replies - Rappelz Private Server
[Release]e*PvP - Rappelz Section Tool
Well, here is the tool to make accessing/using this board easier a LOT! It has many functions, which i will put SS and explain about each one ( and...
14 Replies - Rappelz Private Server
[RELEASE] Rappelz Ban-Tool
NCarbon left, Silent left, Smokey left, Raskim left... Finally Xij will left, too! NULL
10 Replies - Rappelz Private Server



All times are GMT +2. The time now is 11:30.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy
Copyright ©2017 elitepvpers All Rights Reserved.