質問 プレイヤーのチャット

  • Thread starter 本人からの要望のため
  • Start date

本人からの要望のため

私の運営するサーバーではプレイヤーによってチャットのフォーマットを変えられるようにしたいのですが、どのようにしたらプレイヤーごとに違うメッセージを送れるかわかりません。

例えば10人参加者がいたとして、個人的なフォーマットを有効化している人たちには
<steve> 〜 (from : osaka) とチャットが流れ、
無効化している時は
<steve> 〜
となるようにしています。

しかし、この処理をどうやればいいのかわからなくて困ってます。
どなたか最適なやり方を教えてくださいませんでしょうか。
 

N04h

Staff member
12 月 22, 2017
55
73
18
24
長野県
n04h.jp
それは
・それぞれがそのチャット表示を設定できるもの
なのか
・それぞれが自分のチャットに付加させるもの
なのか

どっちでしょうか?
 

本人からの要望のため

文に書いてある通りで、そのプレイヤーが設定したらチャットのフォーマットがその人だけ変わります。
ですので後者が正しいと思います
 

aieuo

Well-known member
1月 27, 2018
302
206
43
変えた人の時だけ
PlayerChatEventで $event->setFormat("<{%0}> {%1} (from: osaka)");
とかはどうですか?
 
最後の編集:

本人からの要望のため

変えた人の時だけ
PlayerChatEventで $event->setFormat("<{%0}> {%1} (from: osaka)");
とかはどうですか?
setFormat関数は全てのチャットに影響します。A,B,CさんがいたとしてAさんが発言したとします。
Bさんは有効化しており、Cさんは無効化してます。

この状況でsetFormatした場合、B,Cさんともに同じ文字で送られます。

今回考えたいのはチャットを送る側ではなく受け取る側な訳です
 

N04h

Staff member
12 月 22, 2017
55
73
18
24
長野県
n04h.jp
後者ならそのチャットイベントでつける設定にしてる人だった場合は付与してあげればいいと思うけど
そうではないのかな?
 

aieuo

Well-known member
1月 27, 2018
302
206
43
setFormat関数は全てのチャットに影響します。A,B,CさんがいたとしてAさんが発言したとします。
Bさんは有効化しており、Cさんは無効化してます。

この状況でsetFormatした場合、B,Cさんともに同じ文字で送られます。

今回考えたいのはチャットを送る側ではなく受け取る側な訳です
なるほど..そうでしたか
ごめんなさい
 

本人からの要望のため

後者ならそのチャットイベントでつける設定にしてる人だった場合は付与してあげればいいと思うけど
そうではないのかな?
自分は鯖民全員の情報を確認してフォーマットを適応する人、しない人で配列にいれる。
chat eventをキャンセルしてbroadcastMessageで送信

この形にしてるのですが、やはりこれ以外はないのでしょうか?
 

N04h

Staff member
12 月 22, 2017
55
73
18
24
長野県
n04h.jp
あれ、送る側が設定すると付与されるものではなくて、受け取る側が表示するしないっていう設定かな?