幻日幻月環

作成した伺かの更新情報などをつぶやくところ

for文の利用例

この記事は伺か Advent Calendar 2014に投稿したものです。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「for文の利用例」。
過去にもforの解説をしましたので、基本的な解説はそちらを読んでみてください。
今回はその利用例と、上限を好きに決めるサンプルの提示を行います。

詳細は続きに。
今回は、ネットワーク更新時の表示を少し変更してみます。
実際はスクリプトを書く必要はないのですが、ある程度は表示があったほうが、見た目としては良いかもしれません。
今回は、MD5チェックなどのスクリプトを省いたものを作ります。
ネットワーク更新は、1ファイルごとにOnUpdate.OnDownloadBeginというイベントが通知されます。
その中に、スクリプトを書くと、ファイル受信ごとに実行されます。
このイベントでは、(R0)にファイルの名前、(R1)にファイルの番号(0から)、(R2)にファイル個数-1の数字が入っています。


*OnUpdate.OnDownloadBegin
:\_q更新中...
(for、0、(R2)、1、
(when、(R1)>=(C0)、◆、◇)
)\_q


実行結果
for_sample01.png

「Rポストと狛犬」のスクリプトを改造する場合は以下です。
打ち消し線が引かれているスクリプトは削除してください。
dic02_Event.txt

*OnUpdate.OnDownloadBegin
:(R0)をダウンロード中です。

# \_qはメッセージを一瞬で表示する「さくらスクリプト」。

:\_q更新中...
(for、0、(R2)、1、
(when、(R1)>=(C0)、◆、◇)
)\_q

*OnUpdate.OnMD5CompareBegin
:\_q(R0)のMD5照合を行います。\_q

*OnUpdate.OnMD5CompareComplete
:君\_q (R1)\_q
僕\_q (R2)\_q
一致。

*OnUpdate.OnMD5CompareFailure
:君\_q (R1)\_q
僕\_q (R2)\_q
不一致……あれ?


ネットワーク更新の場合、ファイル数はシェル更新などがなければ50以内に収まるので困りませんが、上限が大きいものだと困るかもしれません。
これを踏まえて、上限を自動的に30個にして表示する機能を作ります。
HPとか経験値とか、最大値がある数字に使えるかもしれません。



:まずは表示する値を入れる。
$表示値=271
$表示最大値=683
$表示幅=30
表示テスト。
(表示値)/(表示最大値)
$バー表示値=(表示値)*100
$バー表示最大=(表示最大値)*100
$バー表示刻み=(表示最大値)*100/(表示幅)
\_q(for、(バー表示刻み)、(バー表示最大)、(バー表示刻み)、
(when、(バー表示値)>(C0)、|、-)
)\_q
$バー表示値=
$バー表示最大=
$バー表示刻み=


実行結果
for_sample02.png
PageTop

コメント


管理者にだけ表示を許可する