small tool to search inside blobs
ok its ugly , may not be usefull to antone except me , but I did it to help me search number occurence inside a blob and to see if its an int8 int16 or int32 , basically its to search inside the character_ profile but its usable for items too and for other blobs
you can specify starting position ending position (profile is 1 8241 for exemple ) column to use as ref (name for character_ , id for items ) name to look in this column ( player name for character itemid for items ) search will prompt you if you want to stop / continue when an occurence of the number is found. you can look too at a specific position well thats it , as quest helper its using MyODBC and .NET Framework sorry for that ;P http://www.stormgod-online.com/ to get it any feedback / comment / request accepted in this thread I will NOT support OS issues or things like that only support is to explain how it works , thats it source can be requested if someone want it |
Hrmmph forgot to change formulae to get int16 so I basically was getting a double int8 , anyway I updated it to get the good int16 now but I dont know how to get an int32 (sorry hehe ) if someone can get me the good formulae I will update it , also I dont know how to get a uint8 or an sint8 (is there any difference with the int8 to get it out of mysql ?)
this is the formulae I use to get int16 ((ascii(mid(profile,263,1))*1)+(ascii(mid(profile, 264,1))*256)) as \'FEET\' and this one for int8 , any help appreciated ;) ascii(mid(profile, 143, 2)) as \'RACE\' |
Try this for int32
int16 = 2 ^ 16 = 256 ^ 2 ( 2 ascii value) int32 = 2 ^ 32 = 256 ^4 (4 ascii values) so, something like this should work.. (pos is the 1st bit of the value string) ((ascii(mid(profile,pos,1))*1)+(ascii(mid(profile, pos+1,1))*256)) + ((ascii(mid(profile,pos+2,1))*256*256)+(ascii(mid( profile,pos+3,1))*256*256*256)) Give that a shot and see if it gets ya.. For signed int's, Im not sure, you need to get the value and subtract half the max value of the int range, so it would be something like this.. int8 = 2 ^ 8 = 256 , so sint8 = ascii(mid(profile, pos, 2)) - 128 |
hehe thanks trumpcard :)
|
as I'm beginning this , if someone want something specific just tell me , currently I'm adding search profiles , like if you want to search inside the items raw_data blob , the player profile blob or things like that .
it's now searching for int8 int16 int32 and sint8 and two profiles are built in ( you can still specify all manually ) |
just updated the tool so now position is displayed using the 0....x position instead of the mysql one ( 1..x+1) and its displaying the Hex position too
(both fields are linked so if you change the value in one it changed the value in the second too ) |
All times are GMT -4. The time now is 11:57 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.