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

368 lines
26 KiB
ReStructuredText

:github_url: hide
.. meta::
:keywords: network
.. _class_MultiplayerPeerExtension:
MultiplayerPeerExtension
========================
**Eredita:** :ref:`MultiplayerPeer<class_MultiplayerPeer>` **<** :ref:`PacketPeer<class_PacketPeer>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Classe che può essere ereditata per implementare livelli personalizzati di rete dell'API multiplayer tramite GDExtension.
.. rst-class:: classref-introduction-group
Descrizione
----------------------
Questa classe è progettata per essere ereditata da un plugin GDExtension per implementare livelli personalizzati di rete per l'API multigiocatore (come WebRTC). Tutti i metodi sottostanti **devono** essere implementati per avere un'implementazione multigiocatore personalizzata funzionante. Vedi anche :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
.. rst-class:: classref-reftable-group
Metodi
------------
.. 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
Descrizioni dei metodi
--------------------------------------------
.. _class_MultiplayerPeerExtension_private_method__close:
.. rst-class:: classref-method
|void| **_close**\ (\ ) |virtual| |required| :ref:`🔗<class_MultiplayerPeerExtension_private_method__close>`
Chiamato quando il peer multigiocatore deve essere chiuso immediatamente (vedi :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>`
Chiamato quando il ``p_peer`` connesso deve essere forzatamente disconnesso (vedi :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>`
Chiamato quando il conteggio dei pacchetti disponibili viene richiesto internamente dalla :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>`
Chiamato quando viene richiesto lo stato della connessione sul :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando la dimensione massima consentita dei pacchetti (in byte) viene richiesta dalla :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>`
Chiamato quando un pacchetto deve essere ricevuto dalla :ref:`MultiplayerAPI<class_MultiplayerAPI>`, dove ``r_buffer_size`` è la dimensione del ``r_buffer`` binario in byte.
.. 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>`
Chiamato per ottenere il canale su cui è stato ricevuto il prossimo pacchetto disponibile. Vedi :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>`
Chiamato per ottenere la modalità di trasferimento utilizzata dal peer remoto per inviare il prossimo pacchetto disponibile. Vedi :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>`
Chiamato quando viene richiesto l'ID del :ref:`MultiplayerPeer<class_MultiplayerPeer>` che ha inviato il pacchetto più recente (vedi :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>`
Chiamato quando un pacchetto deve essere ricevuto dalla :ref:`MultiplayerAPI<class_MultiplayerAPI>`, se :ref:`_get_packet()<class_MultiplayerPeerExtension_private_method__get_packet>` non è implementato. Usalo quando estendi questa classe tramite 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>`
Chiamato quando viene letto il canale di trasferimento da utilizzare su questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando viene letta la modalità di trasferimento da utilizzare su questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando viene richiesto l'ID univoco di questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :ref:`MultiplayerPeer.get_unique_id()<class_MultiplayerPeer_method_get_unique_id>`). Il valore deve essere compreso tra ``1`` e ``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>`
Chiamato quando viene richiesto lo stato "rifiuta nuove connessioni" su questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando viene richiesto lo stato "è il server" sulla :ref:`MultiplayerAPI<class_MultiplayerAPI>`. Vedi :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>`
Chiamato per verificare se il server può fungere da ripetitore nella configurazione attuale. Vedi :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>`
Chiamato quando la :ref:`MultiplayerAPI<class_MultiplayerAPI>` viene interrogata. Vedi :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>`
Chiamato quando un pacchetto deve essere inviato tramite la :ref:`MultiplayerAPI<class_MultiplayerAPI>`, dove ``p_buffer_size`` è la dimensione del ``p_buffer`` binario in byte.
.. 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>`
Chiamato quando un pacchetto deve essere inviato dalla :ref:`MultiplayerAPI<class_MultiplayerAPI>`, se :ref:`_put_packet()<class_MultiplayerPeerExtension_private_method__put_packet>` non è implementato. Usalo quando estendi questa classe tramite 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>`
Chiamato quando lo stato "rifiuta nuove connessioni" è impostato su questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando il peer di destinazione da utilizzare è impostato per questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :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>`
Chiamato quando il canale da utilizzare è impostato per questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :ref:`MultiplayerPeer.transfer_channel<class_MultiplayerPeer_property_transfer_channel>`).
.. 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>`
Chiamato quando la modalità di trasferimento è impostata su questo :ref:`MultiplayerPeer<class_MultiplayerPeer>` (vedi :ref:`MultiplayerPeer.transfer_mode<class_MultiplayerPeer_property_transfer_mode>`).
.. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)`
.. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)`
.. |constructor| replace:: :abbr:`constructor (Questo metodo è utilizzato per creare un tipo.)`
.. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi può essere chiamato direttamente usando il nome della classe.)`
.. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)`
.. |bitfield| replace:: :abbr:`BitField (Questo valore è un intero composto da una maschera di bit dei seguenti flag.)`
.. |void| replace:: :abbr:`void (Nessun valore restituito.)`