324 lines
9.4 KiB
HTML
324 lines
9.4 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>PVVMUD - Messages</TITLE>
|
|
<LINK REL=STYLESHEET HREF="/pvvmud/pvvmud.css" TYPE="text/css">
|
|
</HEAD>
|
|
<BODY>
|
|
|
|
<H1>Messages</H1>
|
|
|
|
<UL>
|
|
<LI><A HREF="#Hello">Hello</A>
|
|
<LI><A HREF="#Login">Login</A>
|
|
<LI><A HREF="#ServerInfo">ServerInfo</A>
|
|
<LI><A HREF="#GOSInfo">GOSInfo</A>
|
|
<LI><A HREF="#Bye">Bye</A>
|
|
<LI><A HREF="#GetWorld">GetWorld</A>
|
|
<LI><A HREF="#Command">Command</A>
|
|
<LI><A HREF="#Viewpoint">Viewpoint</A>
|
|
<LI><A HREF="#Selection">Selection</A>
|
|
<LI><A HREF="#Action">Action</A>
|
|
<LI><A HREF="#PlayerInfo">PlayerInfo</A>
|
|
<LI><A HREF="#ActionList">ActionList</A>
|
|
<LI><A HREF="#UpdatePosition">UpdatePosition</A>
|
|
<LI><A HREF="#UpdateDirection">UpdateDirection</A>
|
|
<LI><A HREF="#Msg">Msg</A>
|
|
<LI><A HREF="#ServerLogin">ServerLogin</A>
|
|
<LI><A HREF="#GOSError">GOSError</A>
|
|
<LI><A HREF="#GOSRequest">GOSRequest</A>
|
|
<LI><A HREF="#Geometry">Geometry</A>
|
|
<LI><A HREF="#Material">Material</A>
|
|
<LI><A HREF="#Texture">Texture</A>
|
|
</UL>
|
|
|
|
<H2>msgsrvcli.H</H2>
|
|
|
|
<A NAME="Hello"><H3>Hello</H3>
|
|
<P>First message send from server to any connecting clients or servers.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>1</TD></TR>
|
|
<TR><TD>WORD</TD><TD>Version</TD><TD></TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Login"><H3>Login</H3>
|
|
<P>First message send from client to server.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>0</TD></TR>
|
|
<TR><TD>CHAR[LOGINNAMELENGTH]</TD><TD>Name</TD><TD>User name</TD></TR>
|
|
<TR><TD>CHAR[LOGINPASSWDLENGTH]</TD><TD>Passwd</TD><TD>Password</TD></TR>
|
|
<TR><TD>BYTE</TD><TD>newUser</TD><TD>True if user try to create a new user</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="ServerInfo"><H3>ServerInfo</H3>
|
|
|
|
<P>Message send from server to client after a successful login.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>?</TD></TR>
|
|
<TR><TD>DWORD</TD><TD>WorldServerAddress</TD><TD>IP address</TD></TR>
|
|
<TR><TD>WORD</TD><TD>WorldServerPort</TD><TD>Port number</TD></TR>
|
|
<TR><TD>DWORD</TD><TD>GOSAddress</TD><TD>IP address</TD></TR>
|
|
<TR><TD>WORD</TD><TD>GOSPort</TD><TD>Port number</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="GOSInfo"><H3>GOSInfo</H3>
|
|
<P>Message send from server to worldsrv to inform where to find a gos.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>?</TD></TR>
|
|
<TR><TD>DWORD</TD><TD>GOSAddress</TD><TD>IP address</TD></TR>
|
|
<TR><TD>WORD</TD><TD>GOSPort</TD><TD>Port number</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Bye"><H3>Bye</H3>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>1</TD></TR>
|
|
<TR><TD>WORD</TD><TD>reason</TD><TD>Se table of reasons.</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Table of reasons</H4>
|
|
<TABLE>
|
|
<TR><TD>MSGBYE_QUIT</TD></TR>
|
|
<TR><TD>MSGBYE_BADPROTOCOL</TD></TR>
|
|
<TR><TD>MSGBYE_UNKNOWN</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="GetWorld"><H3>GetWorld</H3>
|
|
<PRE>TODO: Move this message to command message</PRE>
|
|
<P>Client request to get world sceen.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>3</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Command"><H3>Command</H3>
|
|
<P>Used to send commands that don't need any data.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>7</TD></TR>
|
|
<TR><TD>WORD</TD><TD>command</TD><TD>Se table of commands.</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Table of commands to client</H4>
|
|
<TABLE>
|
|
<TR><TD>MSGCOMMAND_CLIENTCLEARWORLD</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Table of commands to server</H4>
|
|
<TABLE>
|
|
<TR><TD>PLAYERLOOK_DEFAULT<TD></TR>
|
|
<TR><TD>PLAYERLOOK_UP<TD></TR>
|
|
<TR><TD>PLAYERLOOK_DOWN<TD></TR>
|
|
<TR><TD>PLAYERLOOK_RIGHT<TD></TR>
|
|
<TR><TD>PLAYERLOOK_LEFT<TD></TR>
|
|
<TR><TD>PLAYERLOOK_FORWARD<TD></TR>
|
|
<TR><TD>PLAYERLOOK_BACKWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_STEPFORWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_STEPBACKWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_STEPLEFT<TD></TR>
|
|
<TR><TD>PLAYERMOVE_STEPRIGHT<TD></TR>
|
|
<TR><TD>PLAYERMOVE_MOVEFORWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_MOVEBACKWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_MOVELEFT<TD></TR>
|
|
<TR><TD>PLAYERMOVE_MOVERIGHT<TD></TR>
|
|
<TR><TD>PLAYERMOVE_RUNFORWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_RUNBACKWARD<TD></TR>
|
|
<TR><TD>PLAYERMOVE_RUNLEFT<TD></TR>
|
|
<TR><TD>PLAYERMOVE_RUNRIGHT<TD></TR>
|
|
<TR><TD>USERCOMMAND_0<TD></TR>
|
|
<TR><TD>USERCOMMAND_1<TD></TR>
|
|
<TR><TD>USERCOMMAND_2<TD></TR>
|
|
<TR><TD>USERCOMMAND_3<TD></TR>
|
|
<TR><TD>USERCOMMAND_4<TD></TR>
|
|
<TR><TD>USERCOMMAND_5<TD></TR>
|
|
<TR><TD>USERCOMMAND_6<TD></TR>
|
|
<TR><TD>USERCOMMAND_7<TD></TR>
|
|
<TR><TD>USERCOMMAND_8<TD></TR>
|
|
<TR><TD>USERCOMMAND_9<TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Viewpoint"><H3>Viewpoint</H3>
|
|
<P>Send from server to client, to update the viewpoint.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>8</TD></TR>
|
|
<TR><TD>6*DWORD</TD><TD>position + direction</TD><TD></TD></TR>
|
|
<TR><TD>DWORD</TD><TD>targetId</TD><TD>Where viewpoint is connected.</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Selection"><H3>Selection</H3>
|
|
<PRE>TODO: Implement use of subobjects</PRE>
|
|
<P>Send from client to server, to get action list for selected object.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>9</TD></TR>
|
|
<TR><TD>WORD</TD><TD>objectId</TD><TD>Uniq identifyer for selected object</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Action"><H3>Action</H3>
|
|
<PRE>TODO: Implement use of subobjects</PRE>
|
|
<P>Send from client to server, to execute a action on a object.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>10</TD></TR>
|
|
<TR><TD>WORD</TD><TD>objectId</TD><TD>Uniq identifyer for object</TD></TR>
|
|
<TR><TD>WORD</TD><TD>actionId</TD><TD>Uniq identifyer for action</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="PlayerInfo"><H3>PlayerInfo</H3>
|
|
<P>Send from server to client, to change master cell. Client then
|
|
ask the world server to send world info for new cells.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>?</TD></TR>
|
|
<TR><TD>DWORD</TD><TD>masterCellId</TD><TD>Uniq identifyer for master cell.</TD></TR>
|
|
</TABLE>
|
|
|
|
<H2>msgactionlist.H</H2>
|
|
|
|
<A NAME="ActionList"><H3>ActionList</H3>
|
|
<P>Send from server to client, to inform client about leagal actions
|
|
for a object.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>11</TD></TR>
|
|
<TR><TD>WORD</TD><TD>objectId</TD><TD>Uniq identifyer for object</TD></TR>
|
|
<TR><TD>WORD</TD><TD>numActions</TD><TD>Number of actions</TD></TR>
|
|
</TABLE>
|
|
*numActions
|
|
<TABLE BORDER>
|
|
<TR><TD>WORD</TD><TD>actionId</TD><TD></TD></TR>
|
|
<TR><TD>STRING</TD><TD>actionName</TD><TD></TD></TR>
|
|
</TABLE>
|
|
|
|
|
|
<H2>msgworld.H</H2>
|
|
|
|
<A NAME="Section"><H3>Section</H3>
|
|
|
|
<A NAME="Cell"><H3>Cell</H3>
|
|
|
|
<A NAME="RemoveCell"><H3>RemoveCell</H3>
|
|
|
|
<A NAME="Object"><H3>Object</H3>
|
|
|
|
<A NAME="RemoveObject"><H3>RemoveObject</H3>
|
|
|
|
<A NAME="ChangeMasterCell"><H3>ChangeMasterCell</H3>
|
|
|
|
<A NAME="PVCell"><H3>PVCell</H3>
|
|
|
|
<A NAME="UpdatePosition"><H3>UpdatePosition</H3>
|
|
|
|
<P>Send from server to client, to update the position to a geometry object in
|
|
the client world.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>5</TD></TR>
|
|
<TR><TD>WORD</TD><TD>worldObjectId</TD><TD>Uniq identifyer for this object</TD></TR>
|
|
<TR><TD>3*DWORD</TD><TD>position</TD><TD></TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="UpdateDirection"><H3>UpdateDirection</H3>
|
|
|
|
<P>Send from server to client, to update the direction to a geometry object in
|
|
the client world.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>6</TD></TR>
|
|
<TR><TD>WORD</TD><TD>worldObjectId</TD><TD>Uniq identifyer for this object</TD></TR>
|
|
<TR><TD>3*DWORD</TD><TD>direction</TD><TD></TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="UpdateHierarchy"><H3>UpdateHierarchy</H3>
|
|
|
|
<H2>msgmsg.h</H2>
|
|
|
|
<A NAME="Msg"><H3>Msg</H3>
|
|
|
|
<P>Text message</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>12</TD></TR>
|
|
<TR><TD>BUF[BodyLength]</TD><TD>msg</TD><TD>Message</TD></TR>
|
|
</TABLE>
|
|
|
|
<H2>msgserver.H</H2>
|
|
|
|
<A NAME="ServerLogin"><H3>ServerLogin</H3>
|
|
|
|
<P>Send from a server to tell inet address to use when connecting
|
|
to that server.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>50</TD></TR>
|
|
<TR><TD>DWORD</TD><TD>ServerAddress</TD><TD>IP address</TD></TR>
|
|
<TR><TD>WORD</TD><TD>ServerPort</TD><TD>Port number</TD></TR>
|
|
</TABLE>
|
|
|
|
<H2>msggos.H</H2>
|
|
|
|
<A NAME="GOSError"><H3>GOSError</H3>
|
|
|
|
<P>Errors from GOS to client.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>101</TD></TR>
|
|
<TR><TD>BYTE</TD><TD>error</TD><TD>Error number se table of errors</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Table of errors</H4>
|
|
<TABLE>
|
|
<TR><TD>?</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="GOSRequest"><H3>GOSRequest</H3>
|
|
|
|
<P>Request from client to GOS to get a object.</P>
|
|
|
|
<TABLE BORDER>
|
|
<TR><TH>TYPE</TH><TH>Name</TH><TH>Description</TH></TR>
|
|
<TR><TD>BYTE</TD><TD>Id</TD><TD>100</TD></TR>
|
|
<TR><TD>BYTE</TD><TD>requestType</TD><TD>Se table of request types</TD></TR>
|
|
<TR><TD>WORD</TD><TD>objectId</TD><TD>Requested object</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Table of request types</H4>
|
|
<TABLE>
|
|
<TR><TD>GOSREQUEST_GEOMETRY</TD></TR>
|
|
<TR><TD>GOSREQUEST_MATERIAL</TD></TR>
|
|
<TR><TD>GOSREQUEST_TEXTURE</TD></TR>
|
|
</TABLE>
|
|
|
|
<A NAME="Geometry"><H3>Geometry</H3>
|
|
|
|
<A NAME="Material"><H3>Material</H3>
|
|
|
|
<A NAME="Texture"><H3>Texture</H3>
|
|
|
|
<H2>msgsrvgos.H</H2>
|
|
<P>Empty file</P>
|
|
|
|
</BODY>
|
|
</HTML>
|