⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classzigserver__c.html

📁 用来介绍ZIG Library游戏网络引擎的文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<tr><td>&nbsp;</td><td><font size=-1><em>SHOULD OVERRIDE: run the game frame. (a.k.a. "physics" and other stuff) return false to make the server stop. ** THIS FUNCTION SHOULD RETURN AS QUICKLY AS POSSIBLE! **.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a18" doxytag="zigserver_c::broadcast_frame"></a>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a18">broadcast_frame</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>SHOULD OVERRIDE: broadcast frame to players. this is actually always called after update_frame, but it would be conceivable to call more <a class="el" href="classzigserver__c.html#a17">update_frame()</a>'s than <a class="el" href="classzigserver__c.html#a18">broadcast_frame()</a>'s (example: when finer simulation resolution is needed, but you want to keep the same net frequency) return false to make the server stop. ** THIS FUNCTION SHOULD RETURN AS QUICKLY AS POSSIBLE! **.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a19" doxytag="zigserver_c::render_frame"></a>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a19">render_frame</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MAY OVERRIDE: server's frame renderer - MIGHT be overriden in subclass. this function is called once for every server update. you will probably have to override this function if you use <a class="el" href="classzigserver__c.html#a11">run()</a> instead of <a class="el" href="classzigserver__c.html#a12">run_async()</a>. when implementing, return 'false' to cause server shutdown. ** THIS FUNCTION SHOULD RETURN AS QUICKLY AS POSSIBLE! ** if not, server will LAG !!</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a20" doxytag="zigserver_c::poll_input"></a>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a20">poll_input</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MAY OVERRIDE: server's frame renderer - MIGHT be overriden in subclass. this function is called once for every server update. you will probably have to override this function if you use <a class="el" href="classzigserver__c.html#a11">run()</a> instead of <a class="el" href="classzigserver__c.html#a12">run_async()</a>. when implementing, return 'false' to cause server shutdown. ** THIS FUNCTION SHOULD RETURN AS QUICKLY AS POSSIBLE! ** if not, server will LAG !!</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a21" doxytag="zigserver_c::finish"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a21">finish</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>SHOULD OVERRIDE: called at the end of the "run" method. implement this to implement some shutdown procedure that is always called.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a22" doxytag="zigserver_c::accept_client"></a>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a22">accept_client</a> (<a class="el" href="classaddress__c.html">address_c</a> &amp;client_addr, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;custom, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;answer)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: a potential client, whose IP address is given by "client_addr", wants to connect. should accept or deny? HOW TO IMPLEMENT: return 'true' if client should be accepted, return 'false' otherwise. put in the "answer" buffer any extra data you want to pass to your gameclient. in the "custom" packet there is extra data given by your gameclient, just read it.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a23" doxytag="zigserver_c::client_connected"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a23">client_connected</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;custom)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: a client has just been accepted by (connected to) the leetserver NEW (v1.3.4): the parameter "custom" is the same buffer of data that was passed in the "<a class="el" href="classzigserver__c.html#a22">accept_client()</a>" callback (see above), for this same client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a24" doxytag="zigserver_c::client_disconnected"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a24">client_disconnected</a> (int client_id, int zig_reason)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: a client has just disconnected or been disconnected by the leetserver NEW (v1.3.0): the "zig_reason" parameter is one of the ZIGSERVER_DISCONNECTED_xxx constants - you might want to check it for error codes related to internal protocol limitations, etc.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a25" doxytag="zigserver_c::client_incoming_data"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a25">client_incoming_data</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;in, int packet_id)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: incoming game packet from client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a26" doxytag="zigserver_c::client_ping_result"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a26">client_ping_result</a> (int client_id, int ping_value)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: ping result for client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a27" doxytag="zigserver_c::get_server_info"></a>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a27">get_server_info</a> (<a class="el" href="classaddress__c.html">address_c</a> &amp;remote_addr, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;custom, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;answer)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: somebody wants to get some server information (LEET_SERVERINFO message to the server's public UDP requests port). remote_addr is the address of where the request came from. "custom" contains extra request information that was on the request packet (may be empty). "answer" is the buffer where the callback must write the answer to give to the client (it's already empty). return false if should not answer anything (ignore it), return true to return the "answer".</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a28" doxytag="zigserver_c::channel_opened"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a28">channel_opened</a> (int client_id, int channel_id, <a class="el" href="classchannel__c.html">channel_c</a> *ch)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: channel opened.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a29" doxytag="zigserver_c::channel_open_failed"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a29">channel_open_failed</a> (int client_id, int channel_id, int failcode)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: zigserver callback: channel open failure.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a30" doxytag="zigserver_c::client_ziglets_ready"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a30">client_ziglets_ready</a> (int client_id)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: client is now ready! client tells server that it is in "ready" state (has all ziglets required by the server).</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a31" doxytag="zigserver_c::client_ziglets_preparing"></a>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a31">client_ziglets_preparing</a> (int client_id)=0</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>MUST IMPLEMENT: client is now preparing (downloading stuff) client tells server that it is in "preparing" state (does not have all ziglets required by the server but is working on negotiating them with the server).</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a32" doxytag="zigserver_c::get_client_latency"></a>int&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a32">get_client_latency</a> (int client_id)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>retrieve the most-recently measured latency (the "ping time") in milliseconds between the server and a given client</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a33" doxytag="zigserver_c::disconnect_client"></a>void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a33">disconnect_client</a> (int client_id, int timeout)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>disconnect a client. timeout in seconds to give up nice disconnect procedure and just ditch the client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a34" doxytag="zigserver_c::disconnect_client"></a>void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a34">disconnect_client</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> reason, int timeout)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>disconnect a client. timeout in seconds to give up nice disconnect procedure and just ditch the client. parameter: custom disconnect reason to pass to the client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a35" doxytag="zigserver_c::disconnect_client"></a>void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a35">disconnect_client</a> (int client_id)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>disconnect a client. timeout in seconds to give up nice disconnect procedure and just ditch the client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a36" doxytag="zigserver_c::disconnect_client"></a>void&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a36">disconnect_client</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> reason)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>disconnect a client. timeout in seconds to give up nice disconnect procedure and just ditch the client. parameter: custom disconnect reason to pass to the client.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a37" doxytag="zigserver_c::send_message"></a>bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a37">send_message</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;message, int policy=RSP_USE_DEFAULT)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>send a message to a client. returns true on success; NOTE: there is a limit of 32767 bytes maximum for reliable messages. if the message is longer than 32767 bytes, this method returns false and the message is not sent.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a38" doxytag="zigserver_c::broadcast_message"></a>bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a38">broadcast_message</a> (<a class="el" href="classbuffer__c.html">buffer_c</a> &amp;message, int policy=RSP_USE_DEFAULT)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>broadcast a message. returns true on success; NOTE: there is a limit of 32767 bytes maximum for reliable messages. if the message is longer than 32767 bytes, this method returns false and the message is not sent.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a39" doxytag="zigserver_c::send_frame"></a>bool&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a39">send_frame</a> (int client_id, <a class="el" href="classbuffer__c.html">buffer_c</a> &amp;framebuf, int *packet_id=0)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>flush a game packet to a client. returns true on success;</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a40" doxytag="zigserver_c::receive_message"></a><a class="el" href="classbuffer__c.html">buffer_c</a>&nbsp;</td><td valign=bottom><a class="el" href="classzigserver__c.html#a40">receive_message</a> (int client_id)</td></tr>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -