mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2026-01-06 22:09:55 +03:00
Currently including `zh_CN` and `es` which both have very high completion ratios. Others will be added once they reach a significant percentage too. These RST files will be used by godot-docs in place of its `classes` folder after we sync with https://github.com/godotengine/godot-docs/pull/5458. The update workflow is manual for now (example for `zh_CN`): - Build `godotengine/godot` in the branch we currently track (now `3.x`) - Run `godot --doctool -l zh_CN` - Run `cd doc && make rst LANGARG=zh_CN` - Copy `doc/_build/rst/*` to `classes/zh_CN/` here - Make sure to have `classes/zh_CN/index.rst` copied from `docs/classes`
290 lines
19 KiB
ReStructuredText
290 lines
19 KiB
ReStructuredText
:github_url: hide
|
|
|
|
.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
|
|
.. DO NOT EDIT THIS FILE, but the MultiplayerAPI.xml source instead.
|
|
.. The source is found in doc/classes or modules/<name>/doc_classes.
|
|
|
|
.. _class_MultiplayerAPI:
|
|
|
|
MultiplayerAPI
|
|
==============
|
|
|
|
**Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
|
|
|
|
API multijugador de alto nivel.
|
|
|
|
Descripción
|
|
----------------------
|
|
|
|
This class implements most of the logic behind the high-level multiplayer API. See also :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>`.
|
|
|
|
By default, :ref:`SceneTree<class_SceneTree>` has a reference to this class that is used to provide multiplayer capabilities (i.e. RPC/RSET) across the whole scene.
|
|
|
|
It is possible to override the MultiplayerAPI instance used by specific Nodes by setting the :ref:`Node.custom_multiplayer<class_Node_property_custom_multiplayer>` property, effectively allowing to run both client and server in the same scene.
|
|
|
|
\ **Note:** The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
|
|
|
|
Propiedades
|
|
----------------------
|
|
|
|
+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------+
|
|
| :ref:`bool<class_bool>` | :ref:`allow_object_decoding<class_MultiplayerAPI_property_allow_object_decoding>` | ``false`` |
|
|
+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------+
|
|
| :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>` | :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` | |
|
|
+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------+
|
|
| :ref:`bool<class_bool>` | :ref:`refuse_new_network_connections<class_MultiplayerAPI_property_refuse_new_network_connections>` | ``false`` |
|
|
+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------+
|
|
| :ref:`Node<class_Node>` | :ref:`root_node<class_MultiplayerAPI_property_root_node>` | |
|
|
+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------+
|
|
|
|
Métodos
|
|
--------------
|
|
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`clear<class_MultiplayerAPI_method_clear>` **(** **)** |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`PoolIntArray<class_PoolIntArray>` | :ref:`get_network_connected_peers<class_MultiplayerAPI_method_get_network_connected_peers>` **(** **)** |const| |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`int<class_int>` | :ref:`get_network_unique_id<class_MultiplayerAPI_method_get_network_unique_id>` **(** **)** |const| |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`int<class_int>` | :ref:`get_rpc_sender_id<class_MultiplayerAPI_method_get_rpc_sender_id>` **(** **)** |const| |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`bool<class_bool>` | :ref:`has_network_peer<class_MultiplayerAPI_method_has_network_peer>` **(** **)** |const| |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`bool<class_bool>` | :ref:`is_network_server<class_MultiplayerAPI_method_is_network_server>` **(** **)** |const| |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`poll<class_MultiplayerAPI_method_poll>` **(** **)** |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`send_bytes<class_MultiplayerAPI_method_send_bytes>` **(** :ref:`PoolByteArray<class_PoolByteArray>` bytes, :ref:`int<class_int>` id=0, :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` mode=2 **)** |
|
|
+-----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Señales
|
|
--------------
|
|
|
|
.. _class_MultiplayerAPI_signal_connected_to_server:
|
|
|
|
- **connected_to_server** **(** **)**
|
|
|
|
Emitido cuando esta MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` se conectó con éxito a un servidor. Sólo se emite en los clientes.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_signal_connection_failed:
|
|
|
|
- **connection_failed** **(** **)**
|
|
|
|
Emitido cuando esta MultiplayerAPI :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` falla al establecer una conexión con un servidor. Sólo se emite en los clientes.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_signal_network_peer_connected:
|
|
|
|
- **network_peer_connected** **(** :ref:`int<class_int>` id **)**
|
|
|
|
Emitido cuando este MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` se conecta con un nuevo par. ID es el ID del nuevo par. Los clientes son notificados cuando otros clientes se conectan al mismo servidor. Al conectarse a un servidor, un cliente también recibe esta señal para el servidor (con el ID siendo 1).
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_signal_network_peer_disconnected:
|
|
|
|
- **network_peer_disconnected** **(** :ref:`int<class_int>` id **)**
|
|
|
|
Emitida cuando esta MultiplayerAPI :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` se desconecta de un par. Los clientes son notificados cuando otros clientes se desconectan del mismo servidor.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_signal_network_peer_packet:
|
|
|
|
- **network_peer_packet** **(** :ref:`int<class_int>` id, :ref:`PoolByteArray<class_PoolByteArray>` packet **)**
|
|
|
|
Se emite cuando esta MultiplayerAPI :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` recibe un ``packet`` con datos personalizados (ver :ref:`send_bytes<class_MultiplayerAPI_method_send_bytes>`). ID es el ID del par que envió el paquete.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_signal_server_disconnected:
|
|
|
|
- **server_disconnected** **(** **)**
|
|
|
|
Emitida cuando esta MultiplayerAPI de :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` se desconecta del servidor. Sólo se emite en los clientes.
|
|
|
|
Enumeraciones
|
|
--------------------------
|
|
|
|
.. _enum_MultiplayerAPI_RPCMode:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_DISABLED:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_REMOTE:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_MASTER:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_PUPPET:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_SLAVE:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_REMOTESYNC:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_SYNC:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_MASTERSYNC:
|
|
|
|
.. _class_MultiplayerAPI_constant_RPC_MODE_PUPPETSYNC:
|
|
|
|
enum **RPCMode**:
|
|
|
|
- **RPC_MODE_DISABLED** = **0** --- Se utiliza con :ref:`Node.rpc_config<class_Node_method_rpc_config>` o :ref:`Node.rset_config<class_Node_method_rset_config>` para desactivar un método o propiedad para todas las llamadas RPC, por lo que no está disponible. Por defecto para todos los métodos.
|
|
|
|
- **RPC_MODE_REMOTE** = **1** --- Se utiliza con :ref:`Node.rpc_config<class_Node_method_rpc_config>` o :ref:`Node.rset_config<class_Node_method_rset_config>` para establecer un método a ser llamado o una propiedad a ser cambiada sólo en el extremo remoto, no localmente. Análogo a la palabra clave ``remote``. Las llamadas y los cambios de propiedad se aceptan de todos los pares remotos, sin importar si son maestros o títeres del nodo.
|
|
|
|
- **RPC_MODE_MASTER** = **2** --- Se utiliza con :ref:`Node.rpc_config<class_Node_method_rpc_config>` o :ref:`Node.rset_config<class_Node_method_rset_config>` para establecer un método a ser llamado o una propiedad a ser cambiada sólo en el maestro de la red para este nodo. Análogo a la palabra clave ``master``. Sólo acepta llamadas o cambios de propiedades de los títeres de red del nodo, ver :ref:`Node.set_network_master<class_Node_method_set_network_master>`.
|
|
|
|
- **RPC_MODE_PUPPET** = **3** --- Se utiliza con :ref:`Node.rpc_config<class_Node_method_rpc_config>` o :ref:`Node.rset_config<class_Node_method_rset_config>` para establecer un método a ser llamado o una propiedad a ser cambiada sólo en las marionetas para este nodo. Análogo a la palabra clave ``puppet``. Sólo acepta llamadas o cambios de propiedades del maestro de red del nodo, ver :ref:`Node.set_network_master<class_Node_method_set_network_master>`.
|
|
|
|
- **RPC_MODE_SLAVE** = **3** --- *Deprecated.* Use :ref:`RPC_MODE_PUPPET<class_MultiplayerAPI_constant_RPC_MODE_PUPPET>` instead. Analogous to the ``slave`` keyword.
|
|
|
|
- **RPC_MODE_REMOTESYNC** = **4** --- Se comporta como :ref:`RPC_MODE_REMOTE<class_MultiplayerAPI_constant_RPC_MODE_REMOTE>` pero también hace que la llamada o la propiedad cambie localmente. Análogo a la palabra clave ``remotesync``.
|
|
|
|
- **RPC_MODE_SYNC** = **4** --- *Deprecated.* Use :ref:`RPC_MODE_REMOTESYNC<class_MultiplayerAPI_constant_RPC_MODE_REMOTESYNC>` instead. Analogous to the ``sync`` keyword.
|
|
|
|
- **RPC_MODE_MASTERSYNC** = **5** --- Se comporta como :ref:`RPC_MODE_MASTER<class_MultiplayerAPI_constant_RPC_MODE_MASTER>` pero también hace que la llamada o la propiedad cambie localmente. Análogo a la palabra clave ``mastersync``.
|
|
|
|
- **RPC_MODE_PUPPETSYNC** = **6** --- Se comporta como :ref:`RPC_MODE_PUPPET<class_MultiplayerAPI_constant_RPC_MODE_PUPPET>` pero también hace que la llamada o la propiedad cambie localmente. Análogo a la palabra clave ``puppetsync``.
|
|
|
|
Descripciones de Propiedades
|
|
--------------------------------------------------------
|
|
|
|
.. _class_MultiplayerAPI_property_allow_object_decoding:
|
|
|
|
- :ref:`bool<class_bool>` **allow_object_decoding**
|
|
|
|
+-----------+----------------------------------+
|
|
| *Default* | ``false`` |
|
|
+-----------+----------------------------------+
|
|
| *Setter* | set_allow_object_decoding(value) |
|
|
+-----------+----------------------------------+
|
|
| *Getter* | is_object_decoding_allowed() |
|
|
+-----------+----------------------------------+
|
|
|
|
If ``true`` (or if the :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` has :ref:`PacketPeer.allow_object_decoding<class_PacketPeer_property_allow_object_decoding>` set to ``true``), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.
|
|
|
|
\ **Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_property_network_peer:
|
|
|
|
- :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>` **network_peer**
|
|
|
|
+----------+-------------------------+
|
|
| *Setter* | set_network_peer(value) |
|
|
+----------+-------------------------+
|
|
| *Getter* | get_network_peer() |
|
|
+----------+-------------------------+
|
|
|
|
El objeto paritario para manejar el sistema RPC (que permite efectivamente la conexión en red cuando se establece). Dependiendo del par en sí mismo, el MultiplayerAPI se convertirá en un servidor de red (compruébelo con :ref:`is_network_server<class_MultiplayerAPI_method_is_network_server>`) y establecerá el modo de red del nodo raíz como maestro, o se convertirá en un par normal con el nodo raíz establecido como marioneta. Todos los nodos hijos están configurados para heredar el modo de red por defecto. El manejo de los eventos relacionados con la red (conexión, desconexión, nuevos clientes) se hace conectando a las señales de MultiplayerAPI.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_property_refuse_new_network_connections:
|
|
|
|
- :ref:`bool<class_bool>` **refuse_new_network_connections**
|
|
|
|
+-----------+-------------------------------------------+
|
|
| *Default* | ``false`` |
|
|
+-----------+-------------------------------------------+
|
|
| *Setter* | set_refuse_new_network_connections(value) |
|
|
+-----------+-------------------------------------------+
|
|
| *Getter* | is_refusing_new_network_connections() |
|
|
+-----------+-------------------------------------------+
|
|
|
|
Si ``true``, el MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` rechaza las nuevas conexiones entrantes.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_property_root_node:
|
|
|
|
- :ref:`Node<class_Node>` **root_node**
|
|
|
|
+----------+----------------------+
|
|
| *Setter* | set_root_node(value) |
|
|
+----------+----------------------+
|
|
| *Getter* | get_root_node() |
|
|
+----------+----------------------+
|
|
|
|
The root node to use for RPCs. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.
|
|
|
|
This effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene.
|
|
|
|
Descripciones de Métodos
|
|
------------------------------------------------
|
|
|
|
.. _class_MultiplayerAPI_method_clear:
|
|
|
|
- void **clear** **(** **)**
|
|
|
|
Borra el estado actual de la red MultiplayerAPI (no deberías llamar a esto a menos que sepas lo que estás haciendo).
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_get_network_connected_peers:
|
|
|
|
- :ref:`PoolIntArray<class_PoolIntArray>` **get_network_connected_peers** **(** **)** |const|
|
|
|
|
Devuelve los ID de todos los pares conectados de esta MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>`.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_get_network_unique_id:
|
|
|
|
- :ref:`int<class_int>` **get_network_unique_id** **(** **)** |const|
|
|
|
|
Devuelve el ID de par único de este MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>`.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_get_rpc_sender_id:
|
|
|
|
- :ref:`int<class_int>` **get_rpc_sender_id** **(** **)** |const|
|
|
|
|
Devuelve la identificación del remitente para la RPC que se está ejecutando actualmente.
|
|
|
|
\ **Nota:** Si no está dentro de una RPC este método devolverá 0.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_has_network_peer:
|
|
|
|
- :ref:`bool<class_bool>` **has_network_peer** **(** **)** |const|
|
|
|
|
Devuelve ``true`` si hay un conjunto de :ref:`network_peer<class_MultiplayerAPI_property_network_peer>`.
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_is_network_server:
|
|
|
|
- :ref:`bool<class_bool>` **is_network_server** **(** **)** |const|
|
|
|
|
Devuelve ``true`` si esta MultiplayerAPI's :ref:`network_peer<class_MultiplayerAPI_property_network_peer>` está en modo servidor (escuchando las conexiones).
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_poll:
|
|
|
|
- void **poll** **(** **)**
|
|
|
|
Método utilizado para la votación del MultiplayerAPI. Sólo tienes que preocuparte por esto si utilizas la anulación de :ref:`Node.custom_multiplayer<class_Node_property_custom_multiplayer>` o pones :ref:`SceneTree.multiplayer_poll<class_SceneTree_property_multiplayer_poll>` en ``false``. De forma predeterminada, :ref:`SceneTree<class_SceneTree>` sondeará su API multijugador por ti.
|
|
|
|
\ **Nota:** Este método hace que se llamen RPC y RSET, por lo que se ejecutarán en el mismo contexto de esta función (por ejemplo, ``_process``, ``physics``, :ref:`Thread<class_Thread>`).
|
|
|
|
----
|
|
|
|
.. _class_MultiplayerAPI_method_send_bytes:
|
|
|
|
- :ref:`Error<enum_@GlobalScope_Error>` **send_bytes** **(** :ref:`PoolByteArray<class_PoolByteArray>` bytes, :ref:`int<class_int>` id=0, :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` mode=2 **)**
|
|
|
|
Envía los ``bytes`` en bruto dados a un par específico identificado por ``id`` (véase el :ref:`NetworkedMultiplayerPeer.set_target_peer<class_NetworkedMultiplayerPeer_method_set_target_peer>`). El ID predeterminado es ``0``, es decir, la difusión a todos los pares.
|
|
|
|
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
|
|
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
|
|
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
|