Thilgon;803434 said:
i remembered another thing that doesn't work well with the OSI client...
Character slots.
It shows fine if the number of admitted characters is 1, 5, 6 (maybe the seventh works well too, i haven't tried it anyway), but if you set by script the maximum char slots to 2, 3 or 4, it keeps on showing the "new" button and make the char creation (anyway, the server answers fine refusing the new char if it exceed the maximum admitted, hanging the connection)...
my suggestion about that is to make it so one can make up to 10 chars (i think they enter in the window
), removing the "new" button if the server-side maximum allowed is reached, whatever number it may be...
i'll be thinking about other improvements
This will definitely be fixed. There should be a better way to enumerate a user's characters on the login screen. I'm partial to Diablo 2's character select screen, which might be appropriate since there is a comparable level of detail in a UO and D2 characters.
Working on inventory today! In this client, every single frame of the GUI will be editable using C#. The Inventory window which is displayed takes about 120 lines of code to initialize, update every frame, and draw.
Just updated to r17 at the
Google Code project!
Changes in this version:
GAMEOBJECTS:
* Items now have a stackcount variable (for things like arrows, bandages), and a ContainedWithin variable (to note which bag the item belongs within). Neither of these variables is currently used, but they are updated by the server. (GameObjects/Item.cs)
* Added code to handle Container objects, which are an extension of Item objects (GameObjects/Container.cs).
TILEENGINE:
* GameObjects now only draw once (GameObjects/GameObject.cs)
* Normals are now calculated correctly and lighting is perfect. Thanks Jeff for the help with terrain normals! (TilEngine/GroundTile.cs, TilEngine/Map.cs)
INPUT:
* The Client can now 'use' objects (Network/GameClient.cs) You use an object by right-clicking them, which replaces double-click in the default UO client (GameState.cs)
* The Keyboard can now tell you which keys have been pressed since the last update (Input/KeyboardHandler.cs)
NETWORK:
* The client can now receive Container packets, and AddItemsToContainer packets. (Network/GameClient.cs) You can display your backpack by clicking 'B' (GameState.cs)
* Added opcodes: CMSG_USEOBJECT = 0x06, SMSG_CONTAINER = 0x24, SMSG_ADDMULTIPLEITEMSTOCONTAINER = 0x3C,
GUI:
* Added a error popup for login errors. It's called ModalErrorPopup, but it's not modal yet.
* The Engine opens the Login GUI on startup (Engine.cs)
* The GUI class now maintains a list of open windows and updates them every frame. The GUI now exposes methods to display a Container GUI, and allows windows to close. (GUI/GUI.cs, GUI/Window.cs)
* There is now a login gui, which includes a login window and a backdrop picture. (GUI/GUI.cs, GUI/LoginBG.cs, GUI/Login.cs)
* There is now a container GUI, which is comprised of a window which displays objects in a container. Very basic and ugly but it's a good place to start! (GUI/Container.cs)
* Updates to the xWinLib library: among other things, support has been added for custom buttons (used for inventory icons and the 'close' button in the container frame), and support for showing which control in a form is currently focused and will receive keyboard input (this only works for textboxes... soon I hope to add support for hitting enter or space to activate a button). Also you can now tab between controls (no support for ctrl-tab for backward tabbing yet).