Need help with getting id of a skill with CE

02/15/2017 18:27 DarkOMesias#1
Heya, just wondering how I would go about getting the hex code for a skill on your hotbar. I currently only have the hex of heavy shot for brd but id like to get one on another job, I want to do some testing. Thanks :)
02/15/2017 21:28 hamison#2
Whatever you are thinking it works, gonna give you a hint on how you can find the id , reverse engineer it from the array of bytes you got for heavy shot , search in 4 byte for the skill id for heavy shot which can be found in xivdb and from there try to get the array of byte for heavy shot that you leeched from. If you manage to figure out how to do it, now just apply it to other skills by searching for it in 4 bytes
02/15/2017 22:16 DarkOMesias#3
Quote:
Originally Posted by hamison View Post
Whatever you are thinking it works, gonna give you a hint on how you can find the id , reverse engineer it from the array of bytes you got for heavy shot , search in 4 byte for the skill id for heavy shot which can be found in xivdb and from there try to get the array of byte for heavy shot that you leeched from. If you manage to figure out how to do it, now just apply it to other skills by searching for it in 4 bytes
I was thinking about using the id and do that, but wouldnt it turn up like 1 million hits and be a pain in the ass to find? I just didnt try because I thought it would be near impossible with so many addresses, I know the basics of using CE to do this kind of stuff :c
02/16/2017 02:25 hamison#4
assuming you know how to find heavy shot,

example if heavy shot is in hotbar 1 first slot, switch classes to a diff class and find the skill id of the one that replaces heavy shot to narrow down the addresses under the scan you can see previous and current or something along the lines of that

just in short, at least what you're thinking works :D
02/19/2017 00:34 jelio#5
The hotbar skill array also has handy flags for each skill. For example, Cast will have a 0 in the ready flag when you can't use it, and a 1 when you can. This is a particularly handy array to use. When I update Uminchu, I search for and put Cast/Bait (IDs 289/288) alternating in the first hotbar slot, then narrow down the remaining 8 or so results with the one that has the ready flag by walking to a fishing node and then rotating. You can then import the next 4x10x12 bytes to get all of the class specific hotbars and related info (update: actually it's a bit more and there's some padding between bars). Global hotbars and crosshotbars are in different memory.

As an example, here's the current 32bit version's class-specific hotbar start pointer.

PointSkillList := 0x1084248 + FFxiv.BaseAddress
OffsSkillList := [0x1C,0xC,0x18,0x1C,0x48]
02/19/2017 18:03 DarkOMesias#6
Quote:
Originally Posted by jelio View Post
The hotbar skill array also has handy flags for each skill. For example, Cast will have a 0 in the ready flag when you can't use it, and a 1 when you can. This is a particularly handy array to use. When I update Uminchu, I search for and put Cast/Bait (IDs 289/288) alternating in the first hotbar slot, then narrow down the remaining 8 or so results with the one that has the ready flag by walking to a fishing node and then rotating. You can then import the next 4x10x12 bytes to get all of the class specific hotbars and related info. Global hotbars and crosshotbars are in different memory.

As an example, here's the current 32bit version's class-specific hotbar start pointer.

PointSkillList := 0x1084248 + FFxiv.BaseAddress
OffsSkillList := [0x1C,0xC,0x18,0x1C,0x48]
I'm gonna try doing that, didnt think about that at all. Thanks for the tip :3
04/28/2017 19:17 CPCS0101#7
Quote:
Originally Posted by jelio View Post
The hotbar skill array also has handy flags for each skill. For example, Cast will have a 0 in the ready flag when you can't use it, and a 1 when you can. This is a particularly handy array to use. When I update Uminchu, I search for and put Cast/Bait (IDs 289/288) alternating in the first hotbar slot, then narrow down the remaining 8 or so results with the one that has the ready flag by walking to a fishing node and then rotating. You can then import the next 4x10x12 bytes to get all of the class specific hotbars and related info. Global hotbars and crosshotbars are in different memory.

As an example, here's the current 32bit version's class-specific hotbar start pointer.

PointSkillList := 0x1084248 + FFxiv.BaseAddress
OffsSkillList := [0x1C,0xC,0x18,0x1C,0x48]
I want to learn this, but I guess I'm missing something about how everything is positioned. I can get the location, but I can't find a flag that ties directly to it - best i can do is get 6 flags all around the same area that seem to be tied to it. I'm still poking around, but I'm hoping I can learn a thing or two.
04/29/2017 02:46 jelio#8
Use browse memory region and then do stuff in game to change the state of the skill you're browsing in the vicinity of. It will highlight in red the changed memory.
05/03/2017 14:12 CPCS0101#9
Sorry, I was using a really cruddy laptop before to try and figure it out and after actually investing a little time, I see exactly what you mean. Makes it pretty darn easy to find it. Now to brush up on how to find the pointers, and understanding the Array of Bites stuff to try and learn more