オンラインチャットを実装させたい
Posted: 2024年5月30日(木) 16:31
行き詰ってしまったので質問させてください。
くらむおぼん様のオンライン通信で他のプレイヤーを表示するプラグイン(https://tm.yumineko.com/viewtopic.php?f=5&t=1618)を使って、チャットを実装したいと考えております。
上記の説明の中でNamePopをチャット表示場所として出力させていたのですが、私はこちらには『ゲーム開始時にプレイヤー名を入力させた名前』を表示させたいと思い、
◆プラグインコマンド:InputForm x=250;y=300;v=3;max=8;
◆スクリプト:$gameActors.actor(1).setName($gameVariables.value(3))
として、使われてなかった変数3に代入するようにしました。
実際のチャットは、送受信したメッセージを、Tomoaky様のTMLogWindow.jsを使って表示させるようにしたかったので、入力したメッセージを変数4に代入し、それをログウインドウに出力させようとしました。
発言者の名前:発言者のメッセージ
としたかったので、\V[3]:\V[4]とログウインドウに記述するようにしました。
OnlineAvatarを動かすために必要なコモンイベントは以下のように記述しました。
※タイマー、ジャンプを消去しています。
【アバター】
◆プラグインコマンド:online 3 from chat
◆条件分岐:#03プレイヤー名 ≠ 0
◆プラグインコマンド:namePop 0 \V[3]
◆
:それ以外のとき
◆プラグインコマンド:namePop 0
◆
:分岐終了
◆プラグインコマンド:online 4 from chat
◆条件分岐:#04発言 ≠ 0
◆プラグインコマンド:addLog \V[3]:\V[4]
◆
:それ以外のとき
◆
:分岐終了
【システム】
◆条件分岐:ボタン[キャンセル]が押されている
◆プラグインコマンド:hideLogWindow
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆スイッチの操作:#0001 システム起動 = ON
◆
:それ以外のとき
◆条件分岐:スクリプト:TouchInput.isCancelled();
◆プラグインコマンド:hideLogWindow
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆スイッチの操作:#0001 システム起動 = ON
◆
:分岐終了
◆
:分岐終了
【チャット】
◆プラグインコマンド:showLogWindow
◆プラグインコマンド:InputForm x=250;y=300;v=4;max=50;
◆条件分岐:#04発言 = 0
◆スイッチの操作:#0001 システム起動 = ON
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆イベント処理の中断
◆
:分岐終了
◆変数の操作:#0003 #03プレイヤー名 = $gameParty.allMembers()[0] ? $gameParty.allMembers()[0].name() : 'いない';
◆プラグインコマンド:addLog \V[3]:\V[4]
◆プラグインコマンド:online 3 to chat
◆プラグインコマンド:online 4 to chat
◆スイッチの操作:#0001 システム起動 = ON
◆スイッチの操作:#0002 チャット自動実行 = OFF
このような設定にしたのですが、ネームポップには名前が表示されず、変更した名前もログウインドウには反映されず、ログウインドウには永遠に変数4の内容が流れ続けるという事態になってしまいます。
ローカルの一人プレイならうまく動作するのですが、二人同時にアクセスすると途端にこうなってしまいます。
どなたか解決方法をご存じの方はいらっしゃいませんでしょうか。
よろしくお願いします。
くらむおぼん様のオンライン通信で他のプレイヤーを表示するプラグイン(https://tm.yumineko.com/viewtopic.php?f=5&t=1618)を使って、チャットを実装したいと考えております。
上記の説明の中でNamePopをチャット表示場所として出力させていたのですが、私はこちらには『ゲーム開始時にプレイヤー名を入力させた名前』を表示させたいと思い、
◆プラグインコマンド:InputForm x=250;y=300;v=3;max=8;
◆スクリプト:$gameActors.actor(1).setName($gameVariables.value(3))
として、使われてなかった変数3に代入するようにしました。
実際のチャットは、送受信したメッセージを、Tomoaky様のTMLogWindow.jsを使って表示させるようにしたかったので、入力したメッセージを変数4に代入し、それをログウインドウに出力させようとしました。
発言者の名前:発言者のメッセージ
としたかったので、\V[3]:\V[4]とログウインドウに記述するようにしました。
OnlineAvatarを動かすために必要なコモンイベントは以下のように記述しました。
※タイマー、ジャンプを消去しています。
【アバター】
◆プラグインコマンド:online 3 from chat
◆条件分岐:#03プレイヤー名 ≠ 0
◆プラグインコマンド:namePop 0 \V[3]
◆
:それ以外のとき
◆プラグインコマンド:namePop 0
◆
:分岐終了
◆プラグインコマンド:online 4 from chat
◆条件分岐:#04発言 ≠ 0
◆プラグインコマンド:addLog \V[3]:\V[4]
◆
:それ以外のとき
◆
:分岐終了
【システム】
◆条件分岐:ボタン[キャンセル]が押されている
◆プラグインコマンド:hideLogWindow
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆スイッチの操作:#0001 システム起動 = ON
◆
:それ以外のとき
◆条件分岐:スクリプト:TouchInput.isCancelled();
◆プラグインコマンド:hideLogWindow
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆スイッチの操作:#0001 システム起動 = ON
◆
:分岐終了
◆
:分岐終了
【チャット】
◆プラグインコマンド:showLogWindow
◆プラグインコマンド:InputForm x=250;y=300;v=4;max=50;
◆条件分岐:#04発言 = 0
◆スイッチの操作:#0001 システム起動 = ON
◆スイッチの操作:#0002 チャット自動実行 = OFF
◆イベント処理の中断
◆
:分岐終了
◆変数の操作:#0003 #03プレイヤー名 = $gameParty.allMembers()[0] ? $gameParty.allMembers()[0].name() : 'いない';
◆プラグインコマンド:addLog \V[3]:\V[4]
◆プラグインコマンド:online 3 to chat
◆プラグインコマンド:online 4 to chat
◆スイッチの操作:#0001 システム起動 = ON
◆スイッチの操作:#0002 チャット自動実行 = OFF
このような設定にしたのですが、ネームポップには名前が表示されず、変更した名前もログウインドウには反映されず、ログウインドウには永遠に変数4の内容が流れ続けるという事態になってしまいます。
ローカルの一人プレイならうまく動作するのですが、二人同時にアクセスすると途端にこうなってしまいます。
どなたか解決方法をご存じの方はいらっしゃいませんでしょうか。
よろしくお願いします。