Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::General Support

Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself.

Reply
 
Thread Tools Display Modes
  #1  
Old 08-15-2014, 05:27 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default Question about ROF client for ulcerative

Do you have any idea if or when the summoning stacks issue will be functional using the RoF client? I have been trying to follow your work being done with the inventory overhaul and I understand it's a huge undertaking. Just hoping to touch base on that subject and where it stands.
Reply With Quote
  #2  
Old 08-15-2014, 06:20 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

(I'm assuming that's for me..lemme know and I'll make adjustments... If not, I'll answer for what I'm working on - though, I can be ulcerative at times :P )


This basically applies to anything that is 'stacked' on the cursor.


There are two item packet types that we generally use for this - ItemPacketTrade and ItemPacketSummonItem.

'Trade' is used whenever you want to move an existing item between visible slots (i.e., equipment, inventory, bank, etc...)

'SummonItem' is used explicitly for pushing items onto the cursor stack.


If the cursor is empty, you can use 'Trade' to put an item on the cursor. If it is not, then 'Trade' will perform a swap of slots.
(MoveItem consists of a 'To' and a 'From' slot.)

Regardless of whether the cursor is occupied, an item sent using 'SummonItem' will go to the cursor buffer, or 'Limbo.'

Once the cursor is emptied of the visible item, a MoveItem packet will be sent to the server with To=<cursor_slot> and from=<cursor_slot>.

This let's the server know to 'advance' the next limbo item to the visible cursor.


The problem is two-fold...

First, our server code doesn't properly handle 'Limbo.' We assume that if the cursor is empty, we can automatically put something on it.
That doesn't work 100% and leads to desync's between the server and client. (Not exploitable, but can cause unwitted item deletes.)

Second, and the main hold-up, RoF has switched from a mapped linear range inventory model to an array-based one.


Everything in RoF now has to be fully and properly addressed based on location. Our code does not assign position data to the cursor
buffer..it resides in a queue.

At this time, there is no mechanism in place for passing information that doesn't exist. I've had some ideas..but, they will take a lot more
thought than I've put into them.

My current phase of the project is to re-enumerate the Possessions slot range (equipment, general and cursor.) This will put
the 'Power Source' in its proper place, as well as add the two additional RoF general slots.


Since this is having to be done in phases, instead of one big push, I might be able to revisit the cursor issue before moving on
to the next phase.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #3  
Old 08-15-2014, 07:12 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

Thanks for the info, and yes was meant for you. Darn auto-spell correct
Reply With Quote
Reply


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 02:46 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3