Spawn Checkerメモ

Spawn Checkerメモ

今回は前回のハウジングスクリプトについての解説(自分用のメモ)です。
そういえば名前をつけてなかったので「Spawn Checker」と命名しますかw
今回説明するのは、スクリプト自体ではなくスクリプトの理論?みたいな部分です。
まずは一番重要な、現実時間とゲーム時間を同期させるためのデータです。

--- 季節のアグリント出現時間の基準データ

DT20111125 = 1322226000;

DTBASE = DT20111125;

--- シューゴの出現時間の基準データ

spawn_time = DT20111125 + 108000;

--- ゲーム内時間で1ヶ月

FREQ = 223200;

FREQ_SEASON = FREQ \* 3;

まずは一番上の変数から
「DT20111125」 は1970-01-01 09:00:00~2011-11-25 22:00:00までの
秒数の合計になります。

なぜ2011-11-25 22:00:00なのかと言うとこの時間は木が沸いた現実時間になります。
正確な時間ではありませんが、ずれは数秒のはずなので誤差だと思われます。
「DTBASE」は「DT20111125」を代入しているだけでたいして意味はありません。
てか変数二つ使わなくても、もうちょっとスマートな方法があると思います。
後々の修正で削除予定。

「FREQ」はコメント行にもあるとおりゲーム時間一ヶ月(31日)が経過するのに必要な現実時間の秒数です。
どうやらAIONはすべての月、31日のようです。
ココまで書けば普段からコードを扱う仕事や詳しい人などはわかると思いますが
わからない人のために簡単に説明すると現実時間をベースにゲーム時間取得してそこから残りの時間を算出しています。

計算的には
今の現実時間 -- 過去に木が沸いた時間(DT20111125) = 経過した秒数
経過した秒数 % ゲーム時間一ヶ月分の秒数 = ゲーム時間一ヶ月分の秒数で割り切れなかったあまり
ゲーム時間一ヶ月分の秒数で割り切れなかったあまり = 沸くまでの残りの秒数
とまぁこんな感じですね。

基本的には「DT20111125(現実時間)」 = 06/01(ゲーム時間)というかんじで同期しているので
ゲーム時間で固定沸きするようなMOBなどはこれを基本に組むことですべてつかえますね。

とまぁ解説は以上。
解説と書いてるけど自分用のメモ程度の記事なので人によってはわかりにくいかもなぁー

Profile

Kazuki Hayashi

I'm a full stack engineer.
I love programming and alcohol.