The SVN has been updated with the updates in the previous post.
Last night, I was able to get the RespondAA packet working almost 100%. This means that we can now buy AAs and they update in the AA window properly without requiring you to zone. It turned out I had the wrong opcode set for it this whole time. It is really odd, because IDA seemed to be pretty clear on what the right one was for Titanium, SoF and Live. Finally figured it out from a packet collect by Xinu. The RespondAA is now sending the correct packet format and size (3604 bytes) for SoF. The only problem I am still having with it is that RespondAA is now responsible for sending the total Spent AA points for the AA window. I have tried a few ways of getting or counting the spent AAs, but everytime it results in the wrong amount. So, for now, I have it hard set to just display 500 spent. Any ideas of how to get the total AAs spent for this would be appreciated. Here is the current encode I have being done:
Code:
ENCODE(OP_RespondAA) {
ENCODE_LENGTH_EXACT(AATable_Struct);
SETUP_DIRECT_ENCODE(AATable_Struct, structs::AATable_Struct);
/*
int aa_spent_total = 0;
int k;
for(k = 0; k < structs::MAX_PP_AA_ARRAY; k++) {
if (emu->aa_list[k].aa_value !=0)
aa_spent_total += emu->aa_list[k].aa_value;
}
*/
eq->aa_spent = 500; //aa_spent_total;
int r;
for(r = 0; r < structs::MAX_PP_AA_ARRAY; r++) {
OUT(aa_list[r].aa_skill);
OUT(aa_list[r].aa_value);
eq->aa_list[r].unknown08 = 0;
}
FINISH_ENCODE();
}
I was hoping that getting RespondAA working would make AAs actually start working properly, but it didn't seem to change anything in that aspect. It does seem that some of the ones that have hotkeys for them work for creating hotkeys. Also, most AA effects are handled serverside anyway, so as long as we buy them, they will work. The ones that I am mostly trying to figure out are the innate stats and planar power ones to increase stat caps. None of those seem to be working. Though, I am pretty sure those were changed due to the restructuring of the AA tables for the new window format. For example, many AAs that were improvements to previous AAs were combined into 1 AA that just allowed higher training in the same AA. This includes innate stats, resists, defensive, hps, etc. Because of the big overhaul on SoF AAs, for them to be correct, we will want to make new AA tables specifically for SoF. The best way to populate those tables would be by getting the packet collectors working for Live that can parse AA packets and fill in a table with the info from them. Then, just log in 1 of each class and collect them all and fill in the entire AA table(s) that way.
At least for now, AAs should be functional enough to get by with. But, I think this is still a fairly high priority. Some will work, but a fairly large amount of them won't until new tables are created.
If I can get the Total AAs Spent field working properly, I will get this update on the SVN later tonight. Otherwise, I may hold-off until it is working to get the correct AA Spent Total.