闇の精霊の感応(仮)開発日誌 #3 (2018/03/19)

こんばんは。
今回は開発中のBOTについての現状報告の記事です。
・・・BOT自体の基本的な機能は実装していますがまだまだ完成にはちょっと遠い状態です。
が、現在ボス沸き時間帯の管理機能を実装中です。

本家のボス情報管理BOTなどの情報をまとめたdocumentを参考に実装を行っています。
https://docs.google.com/document/d/19O-Ons2uvSkUGawncm9xE2LhcfgEAZ5qsE0_ZhnlzTo/edit

Timers generally start when the boss has died on every channel. Respawn windows (min timer-max timer) are:

Kzarka: 8-12h

Karanda: 14-18h

Kutum: 8-13h

Nouver: 7h30m-12h,

Field Bosses: 12-18h

After Maintenance

Keep in mind that they bring the servers up for testing BEFORE we can log in. So these timers can be ticking away for possibly hours before they open up logins and we can see bosses spawning “early”, but the initial spawn windows (post maintenance/server restart) are as follows:

Karanda: 3-10h

Kzarka & Field Bosses: 5-12h

Kutum: 10-15h

Nouver: 12h-17h

上記document内のボス沸き間隔を元にTimeSpanを使って上記沸き間隔を作成します。

・ShortestEstimatedTime = 通常時最短沸き間隔
・ShortestEstimatedTime_M = メンテナンス後最短沸き間隔
・LongestEstimatedTime = 通常時最長沸き間隔
・LongestEstimatedTime_M = メンテナンス後最長沸き間隔

そして現在時刻に上記のボス沸き間隔を足す関数を(ここではCalculateBossWindowTimeSpan())作ってそれをボス沸き時などに呼び出せば基本的な計算機能はできます。

ですが、これらのコードを書いていて思ったのですがもし途中でBOTのアプリがクラッシュなどしてしまえば計算されたボス沸き時間の情報がリセットされてしまいますね。
というわけで計算されたボス沸き時間はなんらかの方法で外部に保存し、BOTアプリ起動時はそれを読み込む必要があります。
現時点ではデータベース(MariaDB)への保存かテキストファイルへの保存を考えています。

あと、できるだけ機能やデザインなどは本家をパクるリスペクトするのですが、
それに対して一応向こう側からの許可をもらっています。