SendNetworkString: Difference between revisions
(Added an example) Tag: Source edit |
m (Tweaked example slightly) |
||
Line 20: | Line 20: | ||
== Examples == | == Examples == | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Script "ClientScript" (void) CLIENTSIDE | Script "ClientScript" (void) CLIENTSIDE | ||
{ | { | ||
// Since the third argument (client) was not specified, the print will appear for all players | // Since the third argument (client) was not specified, the print will appear for all players | ||
NamedSendNetworkString("ReceiveStringOnServer", "Hello Server"); | NamedSendNetworkString("ReceiveStringOnServer", "Hello Server"); | ||
} | |||
Script "ReceiveStringOnServer" (int str) NET | |||
{ | |||
Print(s:"Received '", s:str, s:"' from a client"); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[category:ACS functions]] | [[category:ACS functions]] |
Revision as of 11:24, 22 April 2023
This article documents a Zandronum-specific ACS feature which may not be supported by ZDoom and its other child ports. |
int SendNetworkString (int script, str string [, int client])
int NamedSendNetworkString (str script, str string [, int client])
Usage
Sends an ACS string from the server to the client(s), or from a client to the server, then executes a script on the receiver's end. If run offline, the script will be executed on the local machine like normal. Note that just like with RequestScriptPuke and NamedRequestScriptPuke, there is no guarantee that the server will receive the string from the client. If the packet containing the string is lost, the server will not receive it at all. Therefore, modders should anticipate the possibility that a string might not be received and should try to rectify the problem if necessary.
Parameters
- script: The script to be run on the receiver's end upon receiving the string.
- string: The string that will be sent across the network.
- client: If specified, the string will only be sent to this client. By default, this is -1 which means that all clients receive the string. This only matters when called by the server.
Return value
Returns 1 if the string could be sent successfully, or 0 if wasn't. The function might explicitly fail for a couple of reasons:
- The script doesn't exist.
- If called on the server's end, the client doesn't exist or the script doesn't have the CLIENTSIDE flag.
- If called on the client's end, the script doesn't have the NET flag.
Examples
Script "ClientScript" (void) CLIENTSIDE
{
// Since the third argument (client) was not specified, the print will appear for all players
NamedSendNetworkString("ReceiveStringOnServer", "Hello Server");
}
Script "ReceiveStringOnServer" (int str) NET
{
Print(s:"Received '", s:str, s:"' from a client");
}