EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bug Reports (https://www.eqemulator.org/forums/forumdisplay.php?f=591)
-   -   Ldon Merchants Buying (https://www.eqemulator.org/forums/showthread.php?t=28573)

trevius 06-16-2009 04:38 AM

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 :)

trevius 06-16-2009 09:05 PM

Coming back to this just to say that we might want to consider updating the items table to identify the UNK098 field. It's definitely the LDoN Sell Back Rate and items already have the proper values set there from what I have seen. We could probably set the default to 70, since that seems to be standard and would prevent custom item creators from wondering why their items don't sell for anything.

I would change it myself, but I don't know if our fields have to match 13th floor or not for PEQ to update from them. After looking at 13th floor again, it looks like they now have this field named to ldonsellbackrate, which should be fine for us as well.

Since it is currently unknown, we aren't using that field in either client right now. I don't think the change would be very hard. But, I am guessing we would need write some code to use it as well. Right now, there are cases where items might say they are going to sell for one amount and actually sell for a different amount.

Not a high priority, but something worth considering.

KingMort 07-21-2009 09:44 AM

After finally getting this to work here are my findings:

Unk012 needs to be set to -1
Unk123 needs to be set to -1
Pointtype needs to be set to 1
Ldonsold needs to be set to 1

and of course you set your price... Anyway the guk merchant now buys back all the stuff.. Which made the players very happy..

Just a side note , Unk098 ?? didn't make any difference on my end.. Not sure what the deal is with that trev..

King Mortenson
www.raidaddicts.org


All times are GMT -4. The time now is 04:00 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.