Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

PW5 Bug Help

Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
Hi again everyone, I just recently looted a PW5 and after I equip it, the game crashes.

After I try to re-open the client and log in to my account, the game crashes again after loading.

Is there a way I can erase or fix the PW5 I recently equipped?

Thank you!

Update:

Found this post https://forum.ragezone.com/threads/deleting-items-from-inventory.431333/ but I need is to erase/remove the item that is currently equip to the character.

I hope someone can help me.

Thank you!
 
Last edited:
Solution
Or you simply check the length of the varbin data of each item and search & replace that specifically with 0x so that you won't have to wipe your entire equipment, inventory or whatever every time you want to remove a faulty item.
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
"In Navicat main window, Choose Tools > Options. · Under Appearance > Data & Grid, enable Show TEXT Blob fields in data grids"

Everything that I wrote was assuming that you use SSMS and not any other program.
I recommend you start using it.
 
Upvote 0
Joined
Feb 26, 2010
Messages
1,374
Reaction score
780
Here's a 010 template that can parse equipment blobs, just paste all your equip data as hex into 010 and run it, the SQL SP in that other thread is an abomination Jesus.
C:
typedef struct {
    BitfieldRightToLeft();
    uint id : 12;
    uint acc_bound : 1;
    uint upgrade : 4;
    uint unk : 2;
    uint char_bound : 1;
    uint bind_on_equip : 1;
    int serial_ID;
    uint option_ID;
    short slot_ID;
    uint year : 7;
    uint month : 4;
    uint day : 5;
    uint hour : 5;
    uint minute : 6;
    uint periodidx : 5;
    } equipment;

equipment equips[FileSize() / 18]<optimize=false>;

You can also convert this into an editor in any language you prefer. Just stop the substring stuff.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
"In Navicat main window, Choose Tools > Options. · Under Appearance > Data & Grid, enable Show TEXT Blob fields in data grids"

Everything that I wrote was assuming that you use SSMS and not any other program.
I recommend you start using it.
I don't see the Appearance menu. 😓

1691203697219 - PW5 Bug Help - RaGEZONE Forums


Will install SSMS today and will try if I can connect it to my database.
 

Attachments

You must be registered for see attachments list
Upvote 0
Joined
Feb 26, 2010
Messages
1,374
Reaction score
780
You can try

SQL:
select convert(varchar(max), convert(varbinary(max), Data)) FROM cabal_equipment_table where ?? -- add condition

Just know that it will result in a string representation of your hex bytes.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
You can try

SQL:
select convert(varchar(max), convert(varbinary(max), Data)) FROM cabal_equipment_table where ?? -- add condition

Just know that it will result in a string representation of your hex bytes.
Result

1691210855975 - PW5 Bug Help - RaGEZONE Forums


Here's a 010 template that can parse equipment blobs, just paste all your equip data as hex into 010 and run it, the SQL SP in that other thread is an abomination Jesus.
C:
typedef struct {
    BitfieldRightToLeft();
    uint id : 12;
    uint acc_bound : 1;
    uint upgrade : 4;
    uint unk : 2;
    uint char_bound : 1;
    uint bind_on_equip : 1;
    int serial_ID;
    uint option_ID;
    short slot_ID;
    uint year : 7;
    uint month : 4;
    uint day : 5;
    uint hour : 5;
    uint minute : 6;
    uint periodidx : 5;
    } equipment;

equipment equips[FileSize() / 18]<optimize=false>;

You can also convert this into an editor in any language you prefer. Just stop the substring stuff.
Sorry I'm lost with this. I don't know how to do this. 😓

"In Navicat main window, Choose Tools > Options. · Under Appearance > Data & Grid, enable Show TEXT Blob fields in data grids"

Everything that I wrote was assuming that you use SSMS and not any other program.
I recommend you start using it.
I just recently installed SSMS.

Don't know how open the db same like in Navicat.

1691220132624 - PW5 Bug Help - RaGEZONE Forums


Or you simply check the length of the varbin data of each item and search & replace that specifically with 0x so that you won't have to wipe your entire equipment, inventory or whatever every time you want to remove a faulty item.
After reading this repeatedly, I just realize that I'm so noob. Lol

I get it now. You want me to change all the faulty item varbin data to 0x so that if I looted a faulty item, it will not cause a problem to me, is that right?

But where do I find the list of all that item? I mean the varbin data of all the item?

If ever the faulty item already exist in my character, can I still change its data in 0x?
 

Attachments

You must be registered for see attachments list
Last edited:
Upvote 0
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
Press the "New Query" button in SSMS and use this.
I used CharacterIdx 9 because that's the one you tried to use there, change it as you please.

SQL:
Select Data FROM Server01.dbo.cabal_equipment_table where CharacterIdx = 9

Or if you would like to use his approach, change the query to:
SQL:
select convert(varchar(max), Data, 2) FROM Server01.dbo.cabal_equipment_table where CharacterIdx = 18
But as he said, it'll still be a string, you'll have to add back the 0x at the beginning when you're trying to update the data with it.

To open tables directly, just right click them on the left, and tap Edit Top x Rows.
The amount of rows can be changed in the settings of SSMS.

I do personally go with substrings, but that also means I know how much of a mess that can be once you are trying to manipulate an actual big chunk of data.
The latter being why I would recommend you to try looking for alternatives, such as what Punk has pointed out.
From what I see this is an offline project | test server of some sort, but it is generally best to not develop bad habits that not only slow the work process down but also punch the resources of your server.

And never apologize for being slow on something, the wrong approach is being advertised basically everywhere, because it is the path of least resistance, which is what humans are a fan of by nature (laziness).
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
I've done running that SQL code before and this is the result.

1691242450469 - PW5 Bug Help - RaGEZONE Forums


What I expected is that when I search the character ID, all items equipped to that ID will be listed for example.

CharacterIdxHelmetSuitGlovesBootWeapon 1Weapon 2Bike/BoardEtc.
90x????0x????0x????0x????0x????0x????0x????
100x????0x????0x????0x????0x????0x????0x????0x????

0x???? is just an example of hex bytes.

So for example I got a buggy bike that is being equipped, I can just remove that data in the Bike/Board.

I thought it's the same as cabal_character_table wherein you can just edit the data inside of the row.
 

Attachments

You must be registered for see attachments list
Upvote 0
Experienced Elementalist
Joined
Feb 17, 2015
Messages
263
Reaction score
119
What I expected is that when I search the character ID, all items equipped to that ID will be listed for example.

CharacterIdxHelmetSuitGlovesBootWeapon 1Weapon 2Bike/BoardEtc.
90x????0x????0x????0x????0x????0x????0x????
100x????0x????0x????0x????0x????0x????0x????0x????

this is what the PunkS7yle code does, and there is a SQL demonstration of it in the thread Anndralgon mentioned

but whatever...

run this:

Code:
EXEC [Server01].[dbo].[SPLIT_EQUIPMENT]

now run this:

Code:
SELECT * FROM [Server01].[dbo].[SPLIT_EQUIPMENT_TABLE] WHERE CharacterIdx = 9

you can modify the procedure to show in binary instead of int

and you won't see the item names, have a look at the thread Annralgon mentioned to learn a way to do this
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
this is what the PunkS7yle code does, and there is a SQL demonstration of it in the thread Anndralgon mentioned

but whatever...

run this:

Code:
EXEC [Server01].[dbo].[SPLIT_EQUIPMENT]

now run this:

Code:
SELECT * FROM [Server01].[dbo].[SPLIT_EQUIPMENT_TABLE] WHERE CharacterIdx = 9

you can modify the procedure to show in binary instead of int

and you won't see the item names, have a look at the thread Annralgon mentioned to learn a way to do this
After executing those codes and deleting certain items in the SPLIT_EQUIPMENT table, how can I save it to cabal_equipment_table?

Because when I run
Code:
EXEC [Server01].[dbo].[SPLIT_EQUIPMENT]
again, it will just fetch what is currently equipped.

What I'm thinking is that after I delete the record in SPLIT_EQUIPMENT the item that is being equipped will be gone.

I thought it's just simple as what I have example. :ROFLMAO:
 
Upvote 0
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
After executing those codes and deleting certain items in the SPLIT_EQUIPMENT table, how can I save it to cabal_equipment_table?

Because when I run
Code:
EXEC [Server01].[dbo].[SPLIT_EQUIPMENT]
again, it will just fetch what is currently equipped.

What I'm thinking is that after I delete the record in SPLIT_EQUIPMENT the item that is being equipped will be gone.

I thought it's just simple as what I have example. :ROFLMAO:
Just get the data from the specific item using the stored procedure and then remove that exact data from the equipment table's data of the same character
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
Just get the data from the specific item using the stored procedure and then remove that exact data from the equipment table's data of the same character
How can I remove it if the equipment table is in binary?

1691328844282 - PW5 Bug Help - RaGEZONE Forums


I'm really sorry for being an spoon feed but I'm not good with this.

Currently what I'm doing if I got a buggy item that causes my client crash is to delete the whole record.
 

Attachments

You must be registered for see attachments list
Upvote 0
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
Like I said before, you just select, edit and update the Data through a query, not by editing the table directly.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
Like I said before, you just select, edit and update the Data through a query, not by editing the table directly.
Oh I get it all now. :ROFLMAO:

I'm too slow to get it all. :ROFLMAO:

I thought what I see is the only data like this.

1691333467613 - PW5 Bug Help - RaGEZONE Forums


But when I copy and paste it, the data is like this.

Code:
0x7A06000007000004000000000600000000006E26090002000004FF1111200300000000006826090002000004FF1111200200000000004E860A0005000004F424002005000000000074E6090002000004F424002000000000000062A6090000000004FF11112001000000000050960A0008000004F4241630040000000000080A08000800000498D2D100080000000000080F0800000000049BABAB00070000000000

My question now is how can I convert this data into hex data?

1691333640278 - PW5 Bug Help - RaGEZONE Forums


Can you give me an example on how I can convert row 8 into hex?

I tried converting the KINDIDX but I can't find the result in this data.

Code:
0x7A06000007000004000000000600000000006E26090002000004FF1111200300000000006826090002000004FF1111200200000000004E860A0005000004F424002005000000000074E6090002000004F424002000000000000062A6090000000004FF11112001000000000050960A0008000004F4241630040000000000080A08000800000498D2D100080000000000080F0800000000049BABAB00070000000000
 

Attachments

You must be registered for see attachments list
Upvote 0
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
7A0600000700000400000000060000000000
Item ID Part: 7A06
-Swap 7A and 06 as you write it into your calculator (windows default program)
-067A (we ignore the 0, so 67A)
DEC result (your item ID): 1658

All IDs are handled that way in this db when it comes to this type of data.
There are names for everything and yes you can do all that through simple sql code, too.
The whole process above is also part of the previously linked thread.

I get that there is a lot of unnecessary and really bad code in that thread, but you can take out relevant pieces of it to make it work for what you're trying to do.
It may seem confusing and most likely overwhelming to you, but I promise you that if you go through that particular step by yourself, you will manage a fair bit of these things by yourself soon enough.
People here don't mind answering though so if anything, just ask
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
7A0600000700000400000000060000000000
Item ID Part: 7A06
-Swap 7A and 06 as you write it into your calculator (windows default program)
-067A (we ignore the 0, so 67A)
DEC result (your item ID): 1658

All IDs are handled that way in this db when it comes to this type of data.
There are names for everything and yes you can do all that through simple sql code, too.
The whole process above is also part of the previously linked thread.

I get that there is a lot of unnecessary and really bad code in that thread, but you can take out relevant pieces of it to make it work for what you're trying to do.
It may seem confusing and most likely overwhelming to you, but I promise you that if you go through that particular step by yourself, you will manage a fair bit of these things by yourself soon enough.
People here don't mind answering though so if anything, just ask
Thank you so much for helping me all the way until I fixed my problem. :ROFLMAO:

I hope you won't get tired of me every time I will ask for help.

Also thank you to everyone who answer here to solve my problem.

More learnings to come to all of us!

Btw you can export back the 010 data using export as hex and just paste it into SQL, so that will allow you to edit in place. ShinWanYeon
I still don't get on how to do this. Lol

But still thank you for answering my query.
 
Upvote 0
Junior Spellweaver
Joined
Apr 2, 2023
Messages
198
Reaction score
88
Thank you so much for helping me all the way until I fixed my problem. :ROFLMAO:

I hope you won't get tired of me every time I will ask for help.

Also thank you to everyone who answer here to solve my problem.

More learnings to come to all of us!


I still don't get on how to do this. Lol

But still thank you for answering my query.
I wouldn't be here if I got tired of it that easily and I wouldn't know what to do for the most part if I wasn't guided myself, so no worries.

As for what Punk pointed out there, you just have to navigate to the respective file, then tap "File" on the top left, and press "Export Hex".
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
I wouldn't be here if I got tired of it that easily and I wouldn't know what to do for the most part if I wasn't guided myself, so no worries.

As for what Punk pointed out there, you just have to navigate to the respective file, then tap "File" on the top left, and press "Export Hex".
I haven't tried using 010 editor that's why I don't have an idea on how to do that.

Anyway, thank you again!
 
Upvote 0
Joined
Feb 26, 2010
Messages
1,374
Reaction score
780
I haven't tried using 010 editor that's why I don't have an idea on how to do that.

Anyway, thank you again!
You should try it out, all of the data files in the cabal clients can be worked on using 010 and the templates on this forum only. I don't think there's a public editor out there that's not 010 sweetscape atm.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 26, 2023
Messages
28
Reaction score
1
You should try it out, all of the data files in the cabal clients can be worked on using 010 and the templates on this forum only. I don't think there's a public editor out there that's not 010 sweetscape atm.
Here's a 010 template that can parse equipment blobs, just paste all your equip data as hex into 010 and run it, the SQL SP in that other thread is an abomination Jesus.
C:
typedef struct {
    BitfieldRightToLeft();
    uint id : 12;
    uint acc_bound : 1;
    uint upgrade : 4;
    uint unk : 2;
    uint char_bound : 1;
    uint bind_on_equip : 1;
    int serial_ID;
    uint option_ID;
    short slot_ID;
    uint year : 7;
    uint month : 4;
    uint day : 5;
    uint hour : 5;
    uint minute : 6;
    uint periodidx : 5;
    } equipment;

equipment equips[FileSize() / 18]<optimize=false>;

You can also convert this into an editor in any language you prefer. Just stop the substring stuff.
Can you give me a video example of how I can run this code?

I really don't know how to use this code.

Maybe I can learn something from the video that you're going to make.
 
Upvote 0
Back
Top