Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: シークレットダイスを実装 #8

Merged
merged 1 commit into from
Oct 27, 2017

Conversation

kumakaba
Copy link
Contributor

概要

未実装とされていたシークレットダイスの機能を、自身への秘話という形で実装するものです。シークレットダイスを行った旨のみ接続Peer先に送信されます。

テスト環境: http://udo.opal.ne.jp/

備考

  • 複数人のBCDiceの結果が並んだ際に誰のものかわかり辛かったため、プレイヤー名を表示するようにしています。
  • BCDiceの結果と通常のチャットとを区別するため、chat-messageにメッセージ種別の判定と、class指定を付加しています。

.direct-message.dicebot-message .msg-text {
color:#CCF;
}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

色指定についてですが、パネル背景色との統一感が気になったので後で変更しようと考えています。

@TK11235
Copy link
Owner

TK11235 commented Oct 27, 2017

RPありがとうございます。
コードに問題はありませんのでマージします。

ただ、シークレットダイスを完全に機能させるためには、非公開にしたロール結果を他プレイヤーに開示する手段が必要だと考えています。機能仕様などは後で変更するかもしれません。

@TK11235 TK11235 merged commit 2a992de into TK11235:master Oct 27, 2017
TK11235 added a commit that referenced this pull request Oct 28, 2017
DMでシークレットダイスを実行すると、「(シークレットダイス)」のログが全員に発信されてしまう。
@TK11235
Copy link
Owner

TK11235 commented Oct 28, 2017

マージ完了後のコメントで大変すみません。
現在ダイスロール周りの作業を行っているのですが、1つ確認したいことがあります。

緊急ではありませんので余裕があれば回答をお願い致します。


概要

PRコメントに、

複数人のBCDiceの結果が並んだ際に

とあるのですが、どのような状況を想定しているのか判断できませんでした。
「PRコメント時点では、~~な時にBCDiceの結果が並ぶ」というような回答を頂けると助かります。

状況

シークレットダイスの実行結果についてなら、以下の図の様にBCDice結果が連続で並ぶことを確認できるのですが、もし「通常のダイスロールにおいて複数プレイヤーのBCDice結果だけが並んで表示される」という状況を意味するのであれば、こちらの環境では再現できませんでした。

216

対応

通常のBCDice結果が並んで表示される状況が容易に再現可能な場合、そのような動作はバグとして修正したいと考えています。

補足

  • コード上の既知の挙動として、同じタイムスタンプを持つチャットが2つ以上入力された場合に、BCDice結果が並んで表示される可能性が考えられます。
    しかしこれは、ミリ秒単位でのタイムスタンプ一致が必要なので、事実上発生しない状況だと考えています。

  • 8995abf でダイレクトメッセージでシークレットダイスを実行した際のチャットログ生成動作を修正しています。

@kumakaba
Copy link
Contributor Author

はい、至極稀な現象ではあると思われますが、複数人(4名)でのテストでダイスロールを連続で振っていた際に1回だけタイムスタンプが一致したらしく、BCDiceの結果が連続で表示されました。
(その後は再現できていません。仰るとおり狙って行うのは困難かと思われます)

それも受けて「ロール結果が誰の物かを確かめるためにその直前のログを見るしかないのは不親切ではないか?」という意見が出たために今回の実装となりました。

@kumakaba
Copy link
Contributor Author

余談ですが、過去5年間のどどんとふの運営経験の中で、同室内のチャット入力の(サーバーサイドでの)マイクロ秒単位での一致は年に1度あるかないかくらいの頻度で発生を確認しています。
同室人数にもよるでしょうが、ミリ秒ですともう少し頻度が上がってしまうかもしれません。

@TK11235
Copy link
Owner

TK11235 commented Oct 29, 2017

お手間を取らせて申し訳ありません。助かります。

タイムスタンプ一致が原因の旨、了解です。
発生しないだろうと皮算用で考えていましたが甘かったようです。

余談ですが、過去5年間のどどんとふの運営経験の中で、同室内のチャット入力の(サーバーサイドでの)マイクロ秒単位での一致は年に1度あるかないかくらいの頻度で発生を確認しています。
同室人数にもよるでしょうが、ミリ秒ですともう少し頻度が上がってしまうかもしれません。

貴重な情報ありがとうございます。

タイムスタンプ一致は「無視できない頻度で発生しうる」と認識して、対応を別途考えてみます。

@kumakaba kumakaba deleted the secret_dice branch November 21, 2017 10:49
usaturn pushed a commit to usaturn/udonarium that referenced this pull request Aug 7, 2021
キャラクターをコピーした際に番号を付与する
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants