KLWPでFF11の現在の期間限定目標を表示させる
FF11のブログと迷ったんだけど、KLWP関連記事だからこっちでいいや。ということで、応用すれば何か他のにも使えそうだけど今の所思いつかない。
FF11の期間限定目標は、月曜から日曜まで、4時間毎に目標が切り替わる。
現在の時間帯を算出する
各時間帯はこんな感じで4時間毎に切り替わる。
- 00:00 – 03:59
- 04:00 – 07:59
- 08:00 – 11:59
- 12:00 – 15:59
- 16:00 – 19:59
- 20:00 – 23:59
各時間帯をどうやってコードにするかというと分換算になおして、不等号を使って何時~何時までという感じに$if()$
を使って振り分ける。
現在時刻を0:00からの経過分にするには、単純に (現在の時間 x 60) + 現在の分
で算出できる。
例えば07:59
であれば、 7 x 60 + 59 = 479
となる。
現在の(00:00からの)経過分が04:00(=240分) ~ 07:59(=479分)の間にあるか?の式は
$if(df(h) * 60 + df(m) > 240 & df(h) * 60 + df(m) <= 479, o, x)$
で判定できる。
これを繰り返して、その時間帯であれば成、違うなら否として次条件の計算へと繰り返していく。
$if(
df(h) * 60 + df(m) <= 239, A,
df(h) * 60 + df(m) > 240 & df(h) * 60 + df(m) <= 479, B,
df(h) * 60 + df(m) > 480 & df(h) * 60 + df(m) <= 719, C,
df(h) * 60 + df(m) > 720 & df(h) * 60 + df(m) <= 959, D,
df(h) * 60 + df(m) > 960 & df(h) * 60 + df(m) <= 1199, E, F
)$
コード内の &
は「かつ」を表す。
$gv(hoge)$
= 4
のとき、
$if(2 + 2 = gv(hoge) & 2 * 2 = gv(hoge), o, x)$
= o
これをグローバル変数で$gv(xitime)$
とした。
現在の曜日を算出する
KLWPには$df(f)$
というコードが用意されていて、これは月曜を1
、日曜を7
として、現在の曜日を数値化する。
これで今日の曜日を特定する。
現在の曜日と時間帯を算出する
グローバル変数で$gv(xitext)$
に $df(f)$$gv(xitime)$
を設定する。
これで、例えば土曜の21:16であれば、6F
というコードで表現される。
現在の期間限定目標が何なのか表示させる
あとは力技で書いていくだけ。
$if(
gv(xitext) = 1a | gv(xitext) = 4e | gv(xitext) = 6c, バード類を倒す,
gv(xitext) = 1b | gv(xitext) = 4f | gv(xitext) = 6d, リザード類を倒す,
gv(xitext) = 1c | gv(xitext) = 3a | gv(xitext) = 6e, アンデッド類を倒す,
gv(xitext) = 1d | gv(xitext) = 3b | gv(xitext) = 6f, 戦利品(印章),
gv(xitext) = 1e | gv(xitext) = 3c | gv(xitext) = 5a, Treasure Casketを開ける,
gv(xitext) = 1f | gv(xitext) = 3d | gv(xitext) = 5b, アクアン類を倒す,
gv(xitext) = 2a | gv(xitext) = 5e | gv(xitext) = 7c, アモルフ類を倒す,
gv(xitext) = 2b | gv(xitext) = 5f | gv(xitext) = 7d, ヴァーミン類を倒す,
gv(xitext) = 2c | gv(xitext) = 4a | gv(xitext) = 7e, アルカナ類を倒す,
gv(xitext) = 2d | gv(xitext) = 4b | gv(xitext) = 7f, 経験値(5000exp),
gv(xitext) = 2e | gv(xitext) = 4c | gv(xitext) = 6a, 物理ダメージで倒す,
gv(xitext) = 2f | gv(xitext) = 4d | gv(xitext) = 6b, ビースト類を倒す,
gv(xitext) = 3f | gv(xitext) = 5d | gv(xitext) = 7b, プラントイド類を倒す,
gv(xitext) = 3e | gv(xitext) = 5c | gv(xitext) = 7a, 魔法ダメージで倒す, error
)$
コード内の |
は「または」を表す。
$gv(hoge)$
= 4
のとき、
$if(2 + 2 = gv(hoge) | 3 * 3 = gv(hoge), o, x)$
= o