
この記事は伺か Advent Calendar 2014に投稿したものです。
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiとukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
今回は、「for文の利用例」。
過去にもforの解説をしましたので、基本的な解説はそちらを読んでみてください。
今回はその利用例と、上限を好きに決めるサンプルの提示を行います。
詳細は続きに。
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiとukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
今回は、「for文の利用例」。
過去にもforの解説をしましたので、基本的な解説はそちらを読んでみてください。
今回はその利用例と、上限を好きに決めるサンプルの提示を行います。
詳細は続きに。
今回は、ネットワーク更新時の表示を少し変更してみます。
実際はスクリプトを書く必要はないのですが、ある程度は表示があったほうが、見た目としては良いかもしれません。
今回は、MD5チェックなどのスクリプトを省いたものを作ります。
ネットワーク更新は、1ファイルごとにOnUpdate.OnDownloadBeginというイベントが通知されます。
その中に、スクリプトを書くと、ファイル受信ごとに実行されます。
このイベントでは、(R0)にファイルの名前、(R1)にファイルの番号(0から)、(R2)にファイル個数-1の数字が入っています。
実行結果

「Rポストと狛犬」のスクリプトを改造する場合は以下です。
打ち消し線が引かれているスクリプトは削除してください。
dic02_Event.txt
ネットワーク更新の場合、ファイル数はシェル更新などがなければ50以内に収まるので困りませんが、上限が大きいものだと困るかもしれません。
これを踏まえて、上限を自動的に30個にして表示する機能を作ります。
HPとか経験値とか、最大値がある数字に使えるかもしれません。
実行結果
実際はスクリプトを書く必要はないのですが、ある程度は表示があったほうが、見た目としては良いかもしれません。
今回は、MD5チェックなどのスクリプトを省いたものを作ります。
ネットワーク更新は、1ファイルごとにOnUpdate.OnDownloadBeginというイベントが通知されます。
その中に、スクリプトを書くと、ファイル受信ごとに実行されます。
このイベントでは、(R0)にファイルの名前、(R1)にファイルの番号(0から)、(R2)にファイル個数-1の数字が入っています。
*OnUpdate.OnDownloadBegin
:\_q更新中...
(for、0、(R2)、1、
(when、(R1)>=(C0)、◆、◇)
)\_q
実行結果

「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
$バー表示値=
$バー表示最大=
$バー表示刻み=
実行結果



