The type is defined above
and the id is the element of that type to retrieve.
Client:
<query request player playername>
The mud responds in a similar fashion, sending back a 'reply' syntax.
Mud:
<query reply player playername guild="guild" ...>
Allow the use of tables inside the system. Use a similar system to html, but do not allow as much control. Only allow variation in the rows/colums. So you can have x rows in your table, or y rows, but not a combination of both.
Should we only allow columns and let this be a column mode? By using tables we allow the system to be more flexible in the future. It is possible that just by using the richtextbox inside .net I will be able to get all of the functionality of a html table anyway.
<table>
<tr>
<td width="15c">Text</td>
<td>More text</td>
</tr>
</table>
If a very long piece of text is sent from the mud down to the client, the client should do the paging of the information, not the service. We do this by wrapping the text to be paged with a <page>text</page>. If the client sees this it will display one page at a time and let you press 'tab' to continue to display the file. The client input window should break in two at this point so the top section shows you the file being paged and the bottom shows you the current output.
<page>text to page</page>
Implemented
Allow a special colour 'default' to be used for foreground and background colours. This will set the colour back to the default. There is also a type called 'fixed' and 'proportional'. These will make the system choose the users defined fixed and proportional fonts for the output. As much as possible it should use the user fonts for printing and not ones decided by the server itself.
Eg:
<color fore=default back=default>
<font happyfontname color=default back=default>
Allow the mud to send down forms to the client for it to fill out and send back.
<form url="http://whatever" id=234 action=send expire="mail" to=pinkfish>
Where the form tag is of the form, url=<url> action=<send|data> and the rest of the parameters set variables which will be filled in on the downloaded form. They should correspond to the names of elements inside the html form.
The action controls how the form deals with the data that is to be sent back. If the action is one of the standard html ones eg: post, then it will do the normal html processing. If the action is 'send' then it will send the return tag from the form to the mud. If the action is 'data' then it will turn the result of the form into a <data> tag and send that up to the mud.
The id sets how the system links a input form with the output, it uses a combination of the return url and the id. This allows the system to handle multiple of the same form being opened on the client side and still correctly figure out the data responses.
<data url="http://whatever" id=234 to=pinkfish message=data subject="happy bananas">
This tag should be effectively processed 'out of band', so the users main input window should be at the normal mud prompt while a 'data' form is being processed. A 'send' form should be done as a modal dialog box.
Instead of pushing down a html form to edit things, it would be useful sometimes for the system to enable the editing of files using the persons favourite text editor on the client side. Especially for creators, so they can click on a file, download it to their system and then edit it, upload the changes. Perhaps allow for 'diffing/patching' to reduce the network bandwidth.
<edit url="url to get the file from" id=123>
<edit data="data" id=123>
- Should the client keep track of the current player list?
- What sorts of stuff should we send to the client for it to trace?
- channels
- friends
- clubs
- families
- groupmembers?
- Should we mark some data as persistent, so it can be saved over login/logouts?