Files
godot-docs-l10n/classes/uk/class_multiplayerpeerextension.rst
2025-09-30 13:31:55 +02:00

368 lines
28 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. meta::
:keywords: network
.. _class_MultiplayerPeerExtension:
MultiplayerPeerExtension
========================
**Успадковує:** :ref:`MultiplayerPeer<class_MultiplayerPeer>` **<** :ref:`PacketPeer<class_PacketPeer>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Клас, який може бути спадковим для реалізації користувацького багатокористувацького API мережних шарів через GDExtension.
.. rst-class:: classref-introduction-group
Опис
--------
Цей клас призначений для того, щоб бути у спадок від GDExtension плагіна, щоб реалізувати користувацькі шари мереж для багатокористувацького API (наприклад, WebRTC). Всі методи нижче **must** будуть реалізовані, щоб мати робочу індивідуальну багатокористувацьку реалізацію. Дивись ще :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_close<class_MultiplayerPeerExtension_private_method__close>`\ (\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_disconnect_peer<class_MultiplayerPeerExtension_private_method__disconnect_peer>`\ (\ p_peer\: :ref:`int<class_int>`, p_force\: :ref:`bool<class_bool>`\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_available_packet_count<class_MultiplayerPeerExtension_private_method__get_available_packet_count>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConnectionStatus<enum_MultiplayerPeer_ConnectionStatus>` | :ref:`_get_connection_status<class_MultiplayerPeerExtension_private_method__get_connection_status>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_max_packet_size<class_MultiplayerPeerExtension_private_method__get_max_packet_size>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`_get_packet<class_MultiplayerPeerExtension_private_method__get_packet>`\ (\ r_buffer\: ``const uint8_t **``, r_buffer_size\: ``int32_t*``\ ) |virtual| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_packet_channel<class_MultiplayerPeerExtension_private_method__get_packet_channel>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` | :ref:`_get_packet_mode<class_MultiplayerPeerExtension_private_method__get_packet_mode>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_packet_peer<class_MultiplayerPeerExtension_private_method__get_packet_peer>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`_get_packet_script<class_MultiplayerPeerExtension_private_method__get_packet_script>`\ (\ ) |virtual| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_transfer_channel<class_MultiplayerPeerExtension_private_method__get_transfer_channel>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` | :ref:`_get_transfer_mode<class_MultiplayerPeerExtension_private_method__get_transfer_mode>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_unique_id<class_MultiplayerPeerExtension_private_method__get_unique_id>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_refusing_new_connections<class_MultiplayerPeerExtension_private_method__is_refusing_new_connections>`\ (\ ) |virtual| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_server<class_MultiplayerPeerExtension_private_method__is_server>`\ (\ ) |virtual| |required| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_server_relay_supported<class_MultiplayerPeerExtension_private_method__is_server_relay_supported>`\ (\ ) |virtual| |const| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_poll<class_MultiplayerPeerExtension_private_method__poll>`\ (\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`_put_packet<class_MultiplayerPeerExtension_private_method__put_packet>`\ (\ p_buffer\: ``const uint8_t*``, p_buffer_size\: :ref:`int<class_int>`\ ) |virtual| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`_put_packet_script<class_MultiplayerPeerExtension_private_method__put_packet_script>`\ (\ p_buffer\: :ref:`PackedByteArray<class_PackedByteArray>`\ ) |virtual| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_refuse_new_connections<class_MultiplayerPeerExtension_private_method__set_refuse_new_connections>`\ (\ p_enable\: :ref:`bool<class_bool>`\ ) |virtual| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_target_peer<class_MultiplayerPeerExtension_private_method__set_target_peer>`\ (\ p_peer\: :ref:`int<class_int>`\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_transfer_channel<class_MultiplayerPeerExtension_private_method__set_transfer_channel>`\ (\ p_channel\: :ref:`int<class_int>`\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_transfer_mode<class_MultiplayerPeerExtension_private_method__set_transfer_mode>`\ (\ p_mode\: :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>`\ ) |virtual| |required| |
+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_MultiplayerPeerExtension_private_method__close:
.. rst-class:: classref-method
|void| **_close**\ (\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__close>`
Викликається, коли багатокористувацький одноліток повинен бути негайно закритий (див. :ref:`MultiplayerPeer.close()<class_MultiplayerPeer_method_close>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__disconnect_peer:
.. rst-class:: classref-method
|void| **_disconnect_peer**\ (\ p_peer\: :ref:`int<class_int>`, p_force\: :ref:`bool<class_bool>`\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__disconnect_peer>`
Зателефонуйте, коли підключений ``p_peer`` повинен бути занадто відключений (див. :ref:`MultiplayerPeer.disconnect_peer()<class_MultiplayerPeer_method_disconnect_peer>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_available_packet_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_available_packet_count**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_available_packet_count>`
Викликається, коли наявна кількість пакетів внутрішньо запитується :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_connection_status:
.. rst-class:: classref-method
:ref:`ConnectionStatus<enum_MultiplayerPeer_ConnectionStatus>` **_get_connection_status**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_connection_status>`
Зателефонуйте, коли статус підключення запитується на :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.get_connection_status()<class_MultiplayerPeer_method_get_connection_status>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_max_packet_size:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_max_packet_size**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_max_packet_size>`
Викликається при максимальному допустимому розмірі пакета (в байтах) запитується :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_packet:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **_get_packet**\ (\ r_buffer\: ``const uint8_t **``, r_buffer_size\: ``int32_t*``\ ) |virtual| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_packet>`
Викликається, коли пакет потрібно отримати :ref:`MultiplayerAPI<class_MultiplayerAPI>`, з ``r_buffer_size`` є розміром бінарних ``r_buffer`` в байтах.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_packet_channel:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_packet_channel**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_packet_channel>`
Зателефонуйте, щоб отримати канал, над яким було отримано наступний пакет. Подивитися :ref:`MultiplayerPeer.get_packet_channel()<class_MultiplayerPeer_method_get_packet_channel>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_packet_mode:
.. rst-class:: classref-method
:ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` **_get_packet_mode**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_packet_mode>`
Зателефонуйте, щоб отримати режим передачі, який використовується для відправки наступного пакета. Подивитися :ref:`MultiplayerPeer.get_packet_mode()<class_MultiplayerPeer_method_get_packet_mode>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_packet_peer:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_packet_peer**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_packet_peer>`
Зателефонуйте, коли ID :ref:`MultiplayerPeer<class_MultiplayerPeer>`, який відправив останні пакети запитують (див. :ref:`MultiplayerPeer.get_packet_peer()<class_MultiplayerPeer_method_get_packet_peer>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_packet_script:
.. rst-class:: classref-method
:ref:`PackedByteArray<class_PackedByteArray>` **_get_packet_script**\ (\ ) |virtual| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_packet_script>`
Зателефонуйте, коли пакет потрібно отримати за допомогою :ref:`MultiplayerAPI<class_MultiplayerAPI>`, якщо :ref:`_get_packet()<class_MultiplayerPeerExtension_private_method__get_packet>` не реалізовано. Використовуйте цей клас за допомогою GDScript.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_transfer_channel:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_transfer_channel**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_transfer_channel>`
Зателефоновано при передачі каналу до використання на цьому ``MultiplayerPerr`` (див. :ref:`MultiplayerPeer.transfer_channel<class_MultiplayerPeer_property_transfer_channel>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_transfer_mode:
.. rst-class:: classref-method
:ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` **_get_transfer_mode**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_transfer_mode>`
Викликається, коли режим передачі, який потрібно використовувати, зчитується на цьому :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.transfer_mode<class_MultiplayerPeer_property_transfer_mode>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__get_unique_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_unique_id**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__get_unique_id>`
Викликається, коли запитується унікальний ідентифікатор цього :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. method ``MultiplayerPeer.get_unique_id``). Значення має бути в діапазоні від ``1`` до ``2147483647``.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__is_refusing_new_connections:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_refusing_new_connections**\ (\ ) |virtual| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__is_refusing_new_connections>`
Зателефонуйте, коли статус "відновити нові з'єднання" запитується на цьому :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.refuse_new_connections<class_MultiplayerPeer_property_refuse_new_connections>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__is_server:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_server**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__is_server>`
Зателефоновано, коли статус "is server" запитується на :ref:`MultiplayerAPI<class_MultiplayerAPI>`. Подивитися :ref:`MultiplayerAPI.is_server()<class_MultiplayerAPI_method_is_server>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__is_server_relay_supported:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_server_relay_supported**\ (\ ) |virtual| |const| :ref:`🔗<class_MultiplayerPeerExtension_private_method__is_server_relay_supported>`
Зателефоновано для перевірки, якщо сервер може діяти як реле в поточній конфігурації. :ref:`MultiplayerPeer.is_server_relay_supported()<class_MultiplayerPeer_method_is_server_relay_supported>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__poll:
.. rst-class:: classref-method
|void| **_poll**\ (\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__poll>`
Зателефоновано при опитуванні :ref:`MultiplayerAPI<class_MultiplayerAPI>`. Подивитися :ref:`MultiplayerAPI.poll()<class_MultiplayerAPI_method_poll>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__put_packet:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **_put_packet**\ (\ p_buffer\: ``const uint8_t*``, p_buffer_size\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_MultiplayerPeerExtension_private_method__put_packet>`
Викликані, коли пакет потрібно надсилати :ref:`MultiplayerAPI<class_MultiplayerAPI>`, з ``p_buffer_size`` є розміром бінарних ``p_buffer`` в байтах.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__put_packet_script:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **_put_packet_script**\ (\ p_buffer\: :ref:`PackedByteArray<class_PackedByteArray>`\ ) |virtual| :ref:`🔗<class_MultiplayerPeerExtension_private_method__put_packet_script>`
Зателефонуйте, коли пакет потрібно надсилати :ref:`MultiplayerAPI<class_MultiplayerAPI>`, якщо :ref:`_put_packet()<class_MultiplayerPeerExtension_private_method__put_packet>` не реалізовано. Використовуйте цей клас за допомогою GDScript.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__set_refuse_new_connections:
.. rst-class:: classref-method
|void| **_set_refuse_new_connections**\ (\ p_enable\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_MultiplayerPeerExtension_private_method__set_refuse_new_connections>`
Зателефонуйте, коли статус "відновити нові з'єднання" встановлюється на цьому :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.refuse_new_connections<class_MultiplayerPeer_property_refuse_new_connections>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__set_target_peer:
.. rst-class:: classref-method
|void| **_set_target_peer**\ (\ p_peer\: :ref:`int<class_int>`\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__set_target_peer>`
Зателефонуйте, коли ціль-учасники використовувати для цього :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.set_target_peer()<class_MultiplayerPeer_method_set_target_peer>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__set_transfer_channel:
.. rst-class:: classref-method
|void| **_set_transfer_channel**\ (\ p_channel\: :ref:`int<class_int>`\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__set_transfer_channel>`
Зателефоновано, коли канал використовувати для цього :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.transfer_канал<class_MultiplayerPeer_property_transfer_канал>`).
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerPeerExtension_private_method__set_transfer_mode:
.. rst-class:: classref-method
|void| **_set_transfer_mode**\ (\ p_mode\: :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>`\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__set_transfer_mode>`
Зателефоновано, коли режим передачі встановлений на цьому :ref:`MultiplayerPeer<class_MultiplayerPeer>` (див. :ref:`MultiplayerPeer.transfer_mode<class_MultiplayerPeer_property_transfer_mode>`).
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
.. |void| replace:: :abbr:`void (Значення не повертається.)`