Ahh, that makes sense now. I got the 70 value from the items table, so that probably is the right field for sellback. I guess it isn't unknown anymore lol. Whether it is in the correct place or not yet, I am not sure. It should be correct according to what 13th floor has though. It will probably still need slot conversions done on it for sell back or it will try to sell the wrong item. I will have to look at the structs when I get a chance and see how hard it will be to make encodes for them.
EDIT: I added in the Encode and Decode to handle slots for selling, but it doesn't make a difference. After comparing to Titanium, the selling encode/decode will be required anyway, so I added it to the SVN.
KLS, it appears you are correct that the client is the one deciding the the item cannot be sold. You are also probably right that it is related to those fields in the item structure. Maybe I can play around with it a bit sometime soon to see if I can figure out what is up with it. Maybe the fields are just off by a bit. I know I have some augs on my Live Rogue that were purchased from LDoN, so I should be able to use those to figure out where we are going wrong in the struct.
EDIT2: After comparing the structure to Live for a Radiant Permafrost augment purchased from LDoN, it looks like our structure should already be lined up properly unless it is arranged a bit differently than Live. Here is what I got from the packet collect from Live and also the matching fields from 13th floor which line up perfectly with our current structure for SoF as well as the surrounding (verified) parts of the structure:
Code:
01 00 00 00 pointtype
02 00 00 00 ldontheme
f8 02 00 00 ldonprice
46 00 00 00 ldonsellbackrate
01 00 00 00 ldonsold
Code:
uint32 ldonpoint_type;
uint32 ldontheme;
uint32 ldonprice;
uint32 unk098;
uint32 ldonsold;
Ahh, after looking at the Serialization in SoF.cpp, it looks like ldonpoint being set to 0 is probably the problem:
Code:
isbs.ldonpoint_type = 0;
isbs.ldontheme = item->LDoNTheme;
isbs.ldonprice = item->LDoNPrice;
isbs.unk098 = 70;
isbs.ldonsold = item->LDoNSold;
Going to test to verify if that is true.
EDIT3: Yep, that was it! Has to have ldonpoint set to something other than 0 for it to be sellable to an Adventure Merchant. I got it fixed and now on the SVN. I guess it is a good thing I got the encode/decode in already lol. Worked like a charm