Page 1 of 1

Refresh issue immediately after logging in

Posted: Fri Nov 25, 2005 3:15 pm
by Xuri
Using the latest version off of the CVS (0.98-3.1e), UOX3 seems to fail to refresh the client immediately after logging in. No amount of waiting will fix the problem, but a 'RESEND will.

EDIT: *non-working screenshots removed*

Re: Refresh issue immediately after logging in

Posted: Fri Nov 25, 2005 8:49 pm
by Grimson
Xuri wrote:The following two screenshots show the issue, before and after a 'RESEND is used:
Before RESEND
After RESEND
The links don't work :P.

Posted: Fri Nov 25, 2005 9:34 pm
by Xuri
*grumble*
Ok, ignore the screenshots - they're not important. The important thing is, my characters sometime appear ingame as "grey" humanoids with no clothes, and no items/other characters in the area are visible. :P

Posted: Tue Dec 06, 2005 5:36 am
by Xuri
I noticed that when I used Razor to start up my UO client, it displayed the following system messages when I logged in:

"Queuing action request 1... 1.2 seconds left.
Finished 2 queued actions in 0.7 seconds."

Is it Razor doing that "queuing" of actions, or is it something UOX3 does? If the latter, could it be related to the error mentioned in this thread (and in viewtopic.php?t=695 )?

Posted: Tue Dec 06, 2005 5:20 pm
by giwo
Razor is doing the queuing of actions.

Posted: Fri Feb 03, 2006 7:42 am
by giwo
The refresh issues at login may be caused by the LoginThread.

I have disabled the LoginThread temporarily for v0.98-3.2f (which will be on the CVS in the next day or two) at which point I will need verification if this issue is fixed.

Posted: Fri Feb 03, 2006 10:22 pm
by giwo
Ok, this change is up on the CVS, please test 0.98-3.2f anyone that can.

Posted: Mon Feb 20, 2006 6:41 pm
by giwo
Is this issue still happening? (I haven't been able to reproduce it any longer).

Posted: Mon Feb 20, 2006 7:38 pm
by Xuri
I haven't seen this happen once since the LoginThread was disabled.

Posted: Mon Feb 20, 2006 8:49 pm
by stranf
I don't know if this is the same thing you are talking about:

In my worldfile, next to SkaraBrae I've construced a pretty nice PC castle using Xuri's worldbuilder. I haven't hardcoded it into the .mul file yet so it is a LOT of individual tiles that are being sent to the client.

If you log in as a PC inside the castle, UOx3 only sends about half the information on login. floors and walls are missing and you can even fall through the floor.

If you 'refresh, it only re-draws what is on screen, and as soon as you move, it won't draw the new tiles. You must constantly 'refresh.

The fix? Walk away, and re-walk towards it. Then refresh works and you get the entire castle. If you log in as a PC away from the castle and walk towards it, the entire castle shows and you don't even need refresh. The issue seems to happen with a local log in. Does this make sense? Sorry if I didn't explain it well.


Sounds similar to the above issue.

It's not a big deal, I wonder if 'resend would be faster, never tried.

Posted: Mon Feb 20, 2006 8:57 pm
by giwo
Most likely this is happening because of the client. I remember once apon a time people could create "black holes" in UO, where if you went nearby you immediately crashed. This was caused by stacking hundreds (thousands?) of items on a single tile (or in a small area). OSI's fix for this was to only allow loading of a certain amount of tiles at a time. When you walk near an area, we send only items that update at the end of the visibility range, rather than all at the same time. Quite likely if you teleported directly into the castle from some other part of the world you would experience the same issue.

Posted: Mon Feb 20, 2006 9:14 pm
by Xuri
Wasn't there some kind of issue with how we sent items to the UO client? Something about the "radius" being a square instead of a circle, or something like that, so if you approached the items from certain directions they didn't show up?

Posted: Mon Feb 20, 2006 9:25 pm
by giwo
Well we send items in a square, in the case of walking, we send only new items that have come into range on either the x or y axis (or both if we move diagonal). It's been thought (though we have no way to verify) that the client adds new items to your view in a circle, rather than a square, which would cause some items at the corners to be left out.

Posted: Mon Feb 20, 2006 10:44 pm
by Grimson
giwo wrote:Well we send items in a square, in the case of walking, we send only new items that have come into range on either the x or y axis (or both if we move diagonal). It's been thought (though we have no way to verify) that the client adds new items to your view in a circle, rather than a square, which would cause some items at the corners to be left out.
If I'm not wrong the objInRange code uses a circle (or at least something close to a circle) to calculate whether an item is in range. So it shouldn't be to hard to change it to a square using this code as a basis. Basicly make two objInRange calls first one with the current update range the if the object is in range a second one with the current update range minus 1. Then if it's in range of the first call but not in range of the second call send it to the player. For removing it from the sight just make the second call using the current update range plus 1 instead.

On the other side, I haven't had a problem with missing items, when walking, for a long time. And since I have changed the SendWalkToOtherPlayers() (it also uses a square) I haven't had a problem with missing/shadow NPCs.

The only problem seems the inital login, there it is sometimes missing one or two items that should be on screen. A possible (but maybe not practical) solution for this might be to use two squares/circles, the normal one and a smaller one, for the first steps after a login. The smaller one would resend items that cross it, but not remove them from sight like the normal one.

Posted: Mon Feb 20, 2006 11:07 pm
by Xuri
A very easy way of reproducing the "missing items" issue is to setup an area with quite a lot of dynamic items, such as a custom house. Then just approach the house from different directions, and you should notice some missing items here and there. :P