Project 1999

Go Back   Project 1999 > Server Issues > Resolved Issues

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 05-25-2010, 09:29 AM
Xenephex Xenephex is offline
Kobold


Join Date: May 2010
Posts: 102
Default Hidden items

In the original game, merchants did not display all of their inventory, but kept some of it hidden. If you bought out all of one item, then another item in their inventory would appear. This allowed for the art of 'merchant mining' (looking for those hidden items by buying out visible inventory), which a fair number of people practiced and enjoyed.

I do not recall exactly how many items merchants displayed originally, nor do I recall exactly how many items they could keep hidden (it was not unlimited). I could probably find out if there is any willingness to resurrect this mechanic. There were guides for merchant mining at one time, that I believe would detail some of this info.

I believe that the merchant would display the items most recently sold to him; I am fairly sure of that because one technique was to sell one of a desired item to a merchant who had none of that item displayed. If it then appeared in his inventory, then he did not have any more of that item. If it did not appear, then he did have more and the just sold item had been added to the stack in his hidden inventory and thus could be mined.
  #2  
Old 05-25-2010, 11:02 AM
Bumamgar Bumamgar is offline
Sarnak


Join Date: Apr 2010
Posts: 284
Default

This is a client issue.

Merchants have always had a relatively large inventory... like 80 slots or something.

However, back in the days of the old UI, when merchant inventory showed up as a big bag (without prices unless you clicked an item, etc) it was limited to only showing 40 slots. This is what caused the effect of a hidden inventory. If the merchant had more than 40 different items, you wouldn't see the extra until someone purchased all of one of the first 40 items allowing the 41st item to move into the 40th slot.

With the new UI, it shows the entire inventory as a list with prices etc. There may be UI mods out there which revert to the 'bag' view for merchants, and only include the top 40 slots, but it would only be in place for a person using that UI, not everyone (meaning you'd be gimping yourself only, everyone else would be able to see the full inventory and sort by price etc)
__________________
-Bumamgar
  #3  
Old 05-26-2010, 06:08 AM
dali_lb dali_lb is offline
Sarnak

dali_lb's Avatar

Join Date: Apr 2010
Posts: 268
Default

Well its not really a client issue, and then again yes it is.
It still works the way you wrote. I've noticed it.
its a matter of how high the value of the "shown_amount_of_items and stored_amount_of_items in the client is defined, or whatever these variables is called. Eg. it could be defined to "show" 40 Items, but the "stored" value sets how many items that people sold to the vendor that will be stored. eg. if its 128, once the merchant reaches 128 different items they will just be dished into nothingness of the matrix ... but he will still only show 40 items at once. It could be that the "stored" and "shown" values for some merchants are defined at the same amount so they don't have any "hidden" Items, but these variables has nothing to do with the client. Its definetly a server variable, since its general for ALL players, and if player A buys the 5 items that player B just sold, Player C will never see them when he comes by 10 min. later.
  #4  
Old 05-26-2010, 07:42 AM
Bumamgar Bumamgar is offline
Sarnak


Join Date: Apr 2010
Posts: 284
Default

Dali, there are no such variables in the server. It works as I described it and the only way to emulate what the OP is asking for is with a custom UI. This is entirely a client display issue and cannot be globally 'fixed' for the server without forcing everyone to use a different client/UI.

It's just one of those things, like the 'new ui' and 'maps in newbie zones' that comes with using the Titanium client.
__________________
-Bumamgar
  #5  
Old 05-26-2010, 08:43 AM
Xenephex Xenephex is offline
Kobold


Join Date: May 2010
Posts: 102
Default

The item list can not be stored on the client side - it has to be on the server, and has to be populated from the server when the merchant is opened. And I'm reasonably sure that there has to be a transaction with the server when an item is bought or sold, as you could have two or more people viewing the merchant at the same time.

If you watch a merchant get populated when you open one, it is clear that those items are getting sorted on the client side, but not necessarily getting transferred in any particular order, other than stock items first.

If the server side simply limited the number of items it transfers to the client to some number less (say 15 or 20) than what is actually stored, then this should be theoretically doable. If the server side list was a LIFO push down list, then you would have the exact behavior of the classic merchants.

I've never worked with an online code repository, but I'll see if I can get hooked up and try to find the relevant code. I'm not trying to be argumentative, I'm just not seeing how this can not be controlled from the server side.
  #6  
Old 05-26-2010, 09:10 AM
Bumamgar Bumamgar is offline
Sarnak


Join Date: Apr 2010
Posts: 284
Default

The server and client have a packet format that is used to transfer information like the merchants inventory. If this packet format doesn't match, things don't work.

Since we're on an emulator server using the Titanium client, we have to conform to the packet format used by the Titanium client, and it expects certain information from the server regarding the merchants inventory. The server has to supply this information as dictated by the client or things don't work. Back in 1999 the packet format used between the server and UI for merchants only had space for 40 item pointers. On Sept 4th, 2002, they modified the packet format to expand it to 80 items (just prior to PoP), which is it's current state.

That being stated, it may be possible to modify the server code such that it only sends a portion of the merchants inventory to the client and fills the rest of the structure with padding (so it still would send 80 'items', just some of them would be blank). However, due to the client we are using, that portion would still be sortable in the client and would still display the cost next to each item, etc (ie: NON CLASSIC) unless the user is using a UI that hides this information.

So although it might be possible to modify the server to have it 'hide' the portions of the merchants inventory over 40 items, it would be a bit of a hack and involve having two seperate data structures. One for the merchant in memory, and one that is sent as the packet to the client with extra logic to mask out any items beyond the 40th. This is a departure from the way all entities are handled currently and might have unintended consiquences. Since the emu is fundamentally built on structures reverse engineered from the client, all the in-memory structures used for merchants, mobs, players, etc on the server are based on the network structures used to pass the data to the client.

Frankly, this seems (to me) to be a waste of developer time, especially on a server like ours where you don't have 2000 players selling junk to vendors. Players on this server know the value of items and know what to save and sell to other players. Have you actually found vendors selling more than 40 items? Were any of those items actually something that you would have enjoyed 'finding' by wasting cash buying off their excess junk to 'uncover' ?
__________________
-Bumamgar
Last edited by Bumamgar; 05-26-2010 at 09:27 AM..
Closed Thread


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:18 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.