SendNetworkString

Revision as of 11:24, 22 April 2023 by Buu342 (talk | contribs) (Added an example)
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 "ReceiveStringOnServer" (int str) NET
{
    Print(s:"Received '", s:str, s:"' from a client");
}
Script "ClientScript" (void) CLIENTSIDE
{
    // Since the third argument (client) was not specified, the print will appear for all players
    NamedSendNetworkString("ReceiveStringOnServer", "Hello Server");
}