ca45382 / shioribotdotnet Goto Github PK
View Code? Open in Web Editor NEWC#製のプリコネR クラバト支援Discord bot
License: MIT License
C#製のプリコネR クラバト支援Discord bot
License: MIT License
春雨(元・ぐろりあすの人) のために周回数・ボスの位置を知る機能を作る。
ただし、来月からは全ボスクラバトになるのでこの機能はいらなくなるので作るか不明
#120 の続き
本凸の際にボス倒したときは持ち越し所持になるが、
持ち越しでボスを倒した場合は持ち越しを持たない処理などを作る
予約 1 2 あ あ
と予約でエラー
Splitした後に3つ目以降は連結する必要がありそう
宣言開始と凸終了を交互に連打すると、メッセージを毎回投稿しなおしてバグる
詳細は後で記載する
以前使っていたように 「!time 残HP 与えたダメージ」で計算できるツールを作成する。
発展版として進行Chで今の残りダメージに対するオーバーキルダメージによる計算も実装したい
linux上でBrotliの解凍ができない問題があった。
Brotli.netがバグを発生させていることがわかったのでSystem.IO.Compressionで対応する。
TLの秒数を短くした場合の時間に修正する
例 :
クリスのUB最初2回はオート、その後はクリス全部連打
1:08 ラビ連打
0:24 ラビ連打
0:05 クリス連打
これを 「!tl [URL] 56」というコマンドを打つと
クリスのUB最初2回はオート、その後はクリス全部連打
0:34 ラビ連打
0:00 ラビ連打
0:00 クリス連打
に変換される
無限にZenToHanしたりsplitしたりしているのでその辺をまとめたい
ReceiveMessageControllerの28行目
m_playerData = new MySQLPlayerDataController().LoadPlayerData(guildID, userID);
エラー内容
A MessageReceived handler has thrown an unhandled exception.:
System.NullReferenceException: Object reference not set to an instance of an object.
原因を探している
前回のクラバトでの完了報告が残ってしまう場合があるので、クラバト初日の4:59にリセット処理を入れる
キャンセルされる場合、
・キャンセルされる人にメンションを飛ばす
・次の予約の人に(いれば)メンションを飛ばす
5匹分×2種類ぶん書くの面倒くさい
~~~~~~~~6月~~~~~~~~
みたいなやつ
ここを修正してほしい。
shioriBotDotNet/Script/ClanBattle/BattleProgress.cs
Lines 43 to 50 in ad12889
関数の中と外にエラー文を返す部分があるのでそこを何とか修正したい
進行で、finした場合に持ち越し登録されるが、秒数が+20秒される仕様になっている。
しかし、本戦が終了した際に秒数を打ち込むのでいちいち-20秒しなければならないのが面倒という意見が出たので、+20秒する仕様をなくすか考える
の2つで投票を行う予定
際限なく予約できるのをBOT側で弾きたい
メッセージが何かの拍子に更新がかからなかった時に手動で更新したい
このローカル変数で判定をやりくりしてるのが妙にトリッキーな気がするので考えさせてください
Originally posted by @cllightz in #125 (comment)
Python版シオリbotの機能の凸報告機能を作成
追加する機能
以下予定機能
* (ボス番号)(物 / 魔 / b / m)
ボス凸履歴を登録
例:1物 3b 5m
* (ボス番号)(物 / 魔 / b / m)(万ダメージ)
ボス凸履歴を登録すると同時に、ボスに出したダメージを登録
例:1物135 1m135(1ボスに135万ダメージ)
* (ボス番号)(物 / 魔 / b / m)(〆 / -)
ボス撃破履歴を登録
例:3魔〆 5m-
* (ボス番号)(物 or 魔 or b or m)(〆 or -)(秒数)
ボス撃破履歴を登録すると同時に、残り秒数を登録
例:1物〆90 1m-90(1ボス撃破、90秒持越)
* rt(持越時間) / rolled(持越時間) / 持越(持越時間)
持越時間の事後登録、もしくは変更
例:rolled 90 で90秒の持越時間を登録
rolled (指定なし)で現在登録している持越時間を削除
* rv / revert / 元に戻す
凸リストをひとつ前の状態に戻す
* man
チュートリアルを表示
検討中の機能
または別途作成予定
* nt(ボス番号) / notice(ボス番号) / ボス通知(ボス番号)
そのボスの番が来たら通知(持越希望先もこのコマンドで変更可)
例:notice 135 で1 3 5ボス到達で通知
notice (指定なし)で現在設定している通知設定を解除
* 持越呼出
持越中の人全員にメンションを送る
* 未消化呼出
未消化の人全員にメンションを送る
課題一覧
「1ボス」だけでなく「ゴブリングレート」のような名前も出してあげた方が親切そう(紐付け用のコマンドを用意する必要アリ)
再現手順
Python版シオリbotで作成していた持ち越し登録機能を作成
以下の機能を追加する
以下の機能を削除する
エラーメッセージか、何かいい方法があれば
今までDeleteFlagはBoolean型だったがそれをbyteにして、Delete(削除), Valid(有効) みたいな列挙型を入れるようにする。
それによって、データベースのカラムを節約できる。
DiscordのIDを今まではstringで保持していたが、Discord.NETはulongで保持しているので一貫性を維持するためにすべてのIDをulongに対応する。
凸確定した際に削除・編集などできないようにすれば問題ない
ミスった際にどのように対処するか考える必要がある。
キャンペーン通知のように、イベント終了日に朝通知を出してほしい
・同一ボスに対して最大3つまで予約できる
・予約削除時は同一ボスの予約がまとめて消える(最大3つ)
厳密には予約ではないが、連凸する場合などのコメント表示は欲しいので反映させる
1ニャル等の詳細を書く都合上、難しいかもしれませんが一応提案。
凸宣言部屋で✅や🏁を押した際に、凸報告でも
✅なら1凸消化済、
🏁なら0.5凸消化済、
というふうに連動させられると凸報告忘れがなくなって便利かもしれない。
14周目, 2ボス以降の予約一覧です.
1. 14周目 3ボス へごちんはっしー 持ち越しで殴ります
2. 14周目 4ボス ローデン 持ち越し約20秒
3. 14周目 5ボス ユウ
4. 15周目 1ボス ふっきー 持越討伐
5. 15周目 3ボス ふっきー
6. 15周目 3ボス ほげ
7. 15周目 3ボス ふが
以上の7件です
14-2以降の予約一覧です
14-3 へごちんはっしー 持ち越しで殴ります
14-4 ローデン 持ち越し約20秒
14-5 ユウ
15-1 ふっきー 持越討伐
15-2
15-3 ふっきー
ほげ
ふが
以上の7件です
再現
予約 10 1 てすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすと
別に保持するものもないし、newめんどいしstaticでよくね?
mySQLConnector.Database.BeginTransaction()
が返す IDbContextTransaction
は IDisposable
なので、トランザクション処理の末尾で明示的に Commit()
せずとも、using文による自動的な Dispose()
によって Commit()
してくれるかもしれない?
その場合、書き方がスッキリする箇所が多そう。
要検証。
もう少し簡潔に書けそうな気がしますが悩み中です
Originally posted by @cllightz in #125 (comment)
様々なクラス内で同じものを指す定数が別々に定義されているため、これを一箇所にまとめたい。
凸宣言・予約一覧のリアクションをすべてボタンに対応することで連打したときにバグるのを回避できる。
\d
の部分と \D{1,3}
の部分を再度取り直す処理がもったいないので、最初に Regex.Match(m_commandEventArgs.Name, @"(\d)(\D{1,3})")
を呼んで、その返り値のMatchのGroupsを活用しましょう
Originally posted by @cllightz in #125 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.