367 lines
19 KiB
HTML
367 lines
19 KiB
HTML
<HTML>
|
|
|
|
<HEAD>
|
|
<TITLE>Ubi.com GameService SDK</TITLE>
|
|
<LINK href="./gs-sdk-doc.css" rel="stylesheet" type="text/css">
|
|
</HEAD>
|
|
|
|
<BODY >
|
|
<!-- Generated by Doxygen 1.3.4 -->
|
|
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
|
|
<h1>Callbacks<br>
|
|
<small>
|
|
[<a class="el" href="group__group1.html">Login Service</a>]</small>
|
|
</h1>The login service function callbacks.
|
|
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
|
|
<tr><td></td></tr>
|
|
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a0">CBLoginRcv_PlayerInfo</a> )(GSubyte ubType, GSchar *szUsername, GSchar *szSurName, GSchar *szFirstName, GSchar *szCountry, GSchar *szEmail, GSchar *szIRCID, GSchar *szIPAddress, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive information on a player. </em> <a href="#a0"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a1">CBLoginRcv_JoinWaitModuleResult</a> )(GSubyte ubType, GSchar *szAddress, GSushort usPort, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive status of the join wait module request. </em> <a href="#a1"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a2">CBLoginRcv_LoginRouterResult</a> )(GSubyte ubType, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive status of the login request. </em> <a href="#a2"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a3">CBLoginRcv_LoginWaitModuleResult</a> )(GSubyte ubType, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive status of the login wait module request. </em> <a href="#a3"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a4">CBLoginRcv_SystemPage</a> )(GSint iSubType, GSchar *szText)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Received a system page. </em> <a href="#a4"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a5">CBLoginRcv_LoginDisconnection</a> )()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Disconnection from router. </em> <a href="#a5"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a6">CBLoginRcv_AccountCreationResult</a> )(GSubyte ubType, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive the status of the account creation request. </em> <a href="#a6"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a7">CBLoginRcv_ModifyUserResult</a> )(GSubyte ubType, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive the status of the user modifycation request. </em> <a href="#a7"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef GSvoid(* </td><td class="memItemRight" valign=bottom><a class="el" href="group__group__LoginCB.html#a8">CBLoginRcv_RequestMOTD</a> )(GSubyte ubType, GSchar *szUbiMOTD, GSchar *szGameMOTD, GSint iReason)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Receive the message of the day. </em> <a href="#a8"></a><em><br><br></td></tr>
|
|
</table>
|
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
<hr><h2>Typedef Documentation</h2>
|
|
<a class="anchor" name="a6" doxytag="GSLoginCB.h::CBLoginRcv_AccountCreationResult" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a6">CBLoginRcv_AccountCreationResult</a>)(GSubyte ubType, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receive a response from the router after sending a account creation request</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a2">LoginSend_Disconnect()</a></dd></dl>
|
|
<dl compact><dt><b>Errors:</b></dt><dd>ERRORSECURE_USERNAMEEXISTS: The account name already exists.<br>
|
|
ERRORSECURE_USERNAMEMALFORMED: The account name does not match the format rules <code>^[a-zA-Z][a-zA-Z0-9_\.-]{2,14}$</code>.<br>
|
|
ERRORSECURE_USERNAMEFORBIDDEN: The account name contains forbidden substrings (e.g. smut)<br>
|
|
ERRORSECURE_USERNAMERESERVED: The account name is reserved<br>
|
|
ERRORSECURE_PASSWORDMALFORMED: The password does not match the format rules <code>^.{2,16}$</code>.<br>
|
|
ERRORSECURE_PASSWORDFORBIDDEN: The password contains the username<br>
|
|
ERRORSECURE_DATABASEFAILED: There is a problem with the database.<br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a1" doxytag="GSLoginCB.h::CBLoginRcv_JoinWaitModuleResult" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a1">CBLoginRcv_JoinWaitModuleResult</a>)(GSubyte ubType, GSchar *szAddress, GSushort usPort, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receive a response from the router after asking to join the wait module. The client should then call <a class="el" href="group__group1__1.html#a1">LoginSend_Connect()</a> with this szAddress and usPort.</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a4">LoginSend_JoinWaitModule()</a><br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>szAddress</em> </td><td>IP address of the wait module </td></tr>
|
|
<tr><td valign=top><em>usPort</em> </td><td>The port of the wait module </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a5" doxytag="GSLoginCB.h::CBLoginRcv_LoginDisconnection" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a5">CBLoginRcv_LoginDisconnection</a>)()
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client is disconnected from the router </dd></dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a2" doxytag="GSLoginCB.h::CBLoginRcv_LoginRouterResult" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a2">CBLoginRcv_LoginRouterResult</a>)(GSubyte ubType, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receive a response from the router after asking to log into the router. If you reveive a GSSCUCCESS you can then call <a class="el" href="group__group1__1.html#a4">LoginSend_JoinWaitModule()</a>.</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a3">LoginSend_LoginRouter()</a><br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Errors:</b></dt><dd>ERRORSECURE_DATABASEFAILED: There is a problem with the Database.<br>
|
|
ERRORROUTER_NOTDISCONNECTED: The player is already logged in.<br>
|
|
ERRORSECURE_INVALIDPASSWORD: The password is not correct.<br>
|
|
ERRORSECURE_LOCKEDACCOUNT: The account has been locked.<br>
|
|
ERRORSECURE_INVALIDACCOUNT: The username doesn't exist.<br>
|
|
ERRORSECURE_BANNEDACCOUNT: The account has been banned.<br>
|
|
ERRORSECURE_BLOCKEDACCOUNT: The account has been blocked.<br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a3" doxytag="GSLoginCB.h::CBLoginRcv_LoginWaitModuleResult" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a3">CBLoginRcv_LoginWaitModuleResult</a>)(GSubyte ubType, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receive a response from the router after asking to login to the wait module. After receving this callback you will be fully connected to the Game Service. It's recommened that the client now call <a class="el" href="group__group1__1.html#a6">LoginSend_PlayerInfo()</a> with the players username to get his szIRCID and the correct case of his username.</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a5">LoginSend_LoginWaitModule()</a><br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a7" doxytag="GSLoginCB.h::CBLoginRcv_ModifyUserResult" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a7">CBLoginRcv_ModifyUserResult</a>)(GSubyte ubType, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receive a response from the router after sending a user info modification request</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a9">LoginSend_ModifyAccount()</a></dd></dl>
|
|
<dl compact><dt><b>Errors:</b></dt><dd>ERRORSECURE_PASSWORDMALFORMED: The password does not match the format rules <code>^.{2,16}$</code>.<br>
|
|
ERRORSECURE_PASSWORDFORBIDDEN: The password contains the username<br>
|
|
ERRORSECURE_DATABASEFAILED: There is a problem with the database.<br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a0" doxytag="GSLoginCB.h::CBLoginRcv_PlayerInfo" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a0">CBLoginRcv_PlayerInfo</a>)(GSubyte ubType, GSchar *szUsername, GSchar *szSurName, GSchar *szFirstName, GSchar *szCountry, GSchar *szEmail,GSchar *szIRCID, GSchar *szIPAddress, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client requests information on a player</dd></dl>
|
|
<dl compact><dt><b>Related Function:</b></dt><dd><a class="el" href="group__group1__1.html#a6">LoginSend_PlayerInfo()</a></dd></dl>
|
|
<dl compact><dt><b>Errors:</b></dt><dd>ERRORROUTER_DBPROBLEM: There is a problem with the database.<br>
|
|
ERRORROUTER_NOTREGISTERED: The username doesn't exist.<br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>szUsername</em> </td><td>The username of the player in the correct case </td></tr>
|
|
<tr><td valign=top><em>szSurName</em> </td><td>The last name of a player </td></tr>
|
|
<tr><td valign=top><em>szFirstName</em> </td><td>The first name of the player </td></tr>
|
|
<tr><td valign=top><em>szCountry</em> </td><td>The country of the player </td></tr>
|
|
<tr><td valign=top><em>szEmail</em> </td><td>Email address of the player </td></tr>
|
|
<tr><td valign=top><em>szIRCID</em> </td><td>Player's IRC ID </td></tr>
|
|
<tr><td valign=top><em>szIPAddress</em> </td><td>Player's ip address </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason of failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a8" doxytag="GSLoginCB.h::CBLoginRcv_RequestMOTD" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a8">CBLoginRcv_RequestMOTD</a>)(GSubyte ubType, GSchar *szUbiMOTD, GSchar *szGameMOTD, GSint iReason)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description:</b></dt><dd>This callback will be called when the client receives the MOTDs from the server. The messages will never be greater the MOTDLENGTH.</dd></dl>
|
|
<dl compact><dt><b>Related function:</b></dt><dd><a class="el" href="group__group1__1.html#a11">LoginSend_RequestMOTD()</a></dd></dl>
|
|
<dl compact><dt><b>Errors:</b></dt><dd>ERRORROUTER_DBPROBLEM: There is a problem with the database.<br>
|
|
</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>ubType</em> </td><td>The status of the message received back (GSSUCCESS or GSFAIL) </td></tr>
|
|
<tr><td valign=top><em>szUbiMOTD</em> </td><td>The message of the day for the Ubi.com Game Service </td></tr>
|
|
<tr><td valign=top><em>szGameMOTD</em> </td><td>The message of the day for the game. </td></tr>
|
|
<tr><td valign=top><em>iReason</em> </td><td>The reason for the failure if ubType is GSFAIL </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a class="anchor" name="a4" doxytag="GSLoginCB.h::CBLoginRcv_SystemPage" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> typedef GSvoid( * <a class="el" href="GSLoginCB_8h.html#a4">CBLoginRcv_SystemPage</a>)(GSint iSubType, GSchar *szText)
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
<dl compact><dt><b>Description: </b></dt><dd>This callback will be called when the client received a system page wich is usually called by a administrator or when another player adds the client to his friend list.</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign=top><em>iSubType</em> </td><td>The type of message. The possibilities are: <ul>
|
|
<li>
|
|
ADDEDASFRIEND<br>
|
|
The player was added to the friend list of the other player who's name is in the szText parameter </li>
|
|
<li>
|
|
ADDEDASIGNOREE<br>
|
|
The player was added to the ignore list of the other player who's name is in the szText parameter </li>
|
|
<li>
|
|
REMOVEDASIGNOREE<br>
|
|
The player was removed from the ignore list of the other player who's name is in the szText parameter </li>
|
|
</ul>
|
|
</td></tr>
|
|
<tr><td valign=top><em>szText</em> </td><td>The actual message </td></tr>
|
|
</table>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr>
|
|
<p align="right">
|
|
<i>Ubi.com GameService SDK - ©UbiSoft Entertainment 2002 </i><br>
|
|
<i><a href="mailto:gsdevteam@ubisoft.com">GameService development team</a></i>
|
|
</p>
|
|
</body>
|
|
</html>
|