DWC_ConnectToGameServerByGroupID

構文

#include <dwc.h>
BOOL DWC_ConnectToGameServerByGroupID(DWCTopologyType topology,
                                      u32 groupID,
                                      DWCMatchedSCCallback matchedCallback,
                                      void *matchedParam,
                                      DWCNewClientCallback newClientCallback,
                                      void *newClientParam,
                                      DWCConnectAttemptCallback attemptCallback,
                                      u8 *connectionUserData,
                                      void *attemptParam);

引数

topology 接続形態。DWCTopologyTypeの中から一つ指定します。
groupID 接続するグループID
matchedCallback 接続完了コールバック関数へのポインタ。1人接続するごとに呼ばれる。
matchedParam 接続完了コールバック用パラメータ。
newClientCallback 新規接続クライアント通知コールバック関数へのポインタ。
newClientParam 新規接続クライアント通知コールバック用パラメータ。
attemptCallback 接続受付判定コールバック関数へのポインタ。
connectionUserData 自分の接続受付判定用パラメータバッファへのポインタ。u8[DWC_CONNECTION_USERDATA_LEN]分のバッファであること。このバッファの内容は、ライブラリにコピーされるので、本関数呼出し後は開放されていても構わない。NULLを指定した場合、自分の接続受付判定用バッファの内容はすべて0に設定される。
attemptParam 接続受付判定コールバック用パラメータ

返り値

TRUE 処理開始。コールバック関数で結果が通知される。
FALSE 本関数を呼んで良い状態ではない

説明

指定されたグループIDを持つサーバホストに再接続を試みます。現在自分が参加しているグループのIDは、DWC_GetGroupID関数で取得することができますので、マッチメイクを行って誰かと接続した際にこのIDを保存しておくと、一度切断しても、そのグループがクライアントホストを受け付けている限りは再接続することができます。

グループが友達指定ピアマッチメイクやサーバクライアントマッチメイクで形成されている場合、最初のサーバホストが切断して抜けたグループは、クライアントホストを受け付けなくなることに留意してください。ただし、友達指定ピアマッチメイクのときにサーバホストが一人きりになった場合は受付を再開します。

また、グループIDによる接続は、自分が参加していたかどうかは問われないため、友達の状態としてグループIDを友達に公開しておくと、それを使って友達が参加しているグループに接続することも可能になります。
ただし、参加しようとしてるグループが友達限定であることを想定していた場合、次のような問題が発生します。
通常、友達指定ピアマッチメイクやサーバクライアントマッチメイクでは、「友達」か「友達の友達」しかグループに存在しないため、相互に友達同士としての通信が可能ですが、このようなグループIDによる接続を何も考慮せずに実装すると、「友達の友達の友達」のような、友達同士としての通信が不可能な関係が同じグループに発生する可能性があります。相互に友達同士としての通信を保つためには、合流しようとしている友達がグループのサーバホストであることを確認しておく必要があります。自分がサーバホストであるかどうかはDWC_IsServerMyself関数で確認できます。

接続不良などの原因によりサーバ交代が発生した場合、同じグループIDを持つサーバホストが複数見つかることがあります。この場合は最も接続人数が多いグループに接続します。

履歴

5.1pr2より前の変更履歴はこちら