システムカスタマイズについてダラダラやるよーその9

システムカスタマイズについてダラダラやるよーその8 - 永字八法の続き。
NScripterのシステムカスタマイズについて、1から話をしてみようと思う。その第9回目。
今回はオートモードについて。

オートモード

何も操作しなくても、一定時間ごとにクリックを押したのと同じ扱いになるモード。
元々NScripterにもデフォルトで存在しているが、何か操作すると解除されると言う弱装版である。
現在のところ、ユーザーの要求では、選択肢などがあったとしても解除されない強装版が求められているようなので、本稿でもそれを実装してみた。
現在のところ、Aキーでオートモードのオンオフが切り替えられるようになっている。

どれくらい待つのか。

ボイスの有無で少し変わる。
ボイスがない場合は、文字数の長さに比例+最低限の時間が待ち時間になる。
ボイスがある場合は、ボイスモードによる。

ボイスとの関係

ボイスモードと関係する。
ボイスモードがマルチであれば、ボイスの長さに関係なくテキストの長さだけが問題となる。
ボイスモードがシングルであれば、やはりボイスの長さに関係なくテキストの長さで待つが、次にボイスが演奏される時には、演奏前に今のボイスの演奏終了を待つ処理が入る。

次回予告

バックログ

現在のスクリプト

00.txt
;$V2000G1000S800,600L10000
01.txt
*start
	gosub *start_window
	gosub *start_cast
	gosub *start_textwindow
	gosub *start_text
	gosub *start_nameplate
	gosub *start_saveload
	gosub *start_if
	gosub *start_if1
	gosub *start_if2
	gosub *start_if3
	gosub *start_if4
	gosub *start_if5
	gosub *start_if6
	gosub *start_skip
	gosub *start_sound
	gosub *start_sprite
	gosub *start_global
10.txt
click

[キャラ1/0001]
うぐう。\

名前欄が消えるかな?\

[キャラ2/0002]
が、がお。\

もう一度、消えるかな?\

[キャラ3/0003]
ぶらーぼ\

[キャラ15/0004]

[キャラ4/0006]
あ\

[/0007]
い\

[キャラ6/0008]
う\
え\
お\
か\
き\
く\
け\
こ\
さ\
し\
す\
せ\
そ\
た\
ち\
つ\
て\
と\
97.txt
end
*define
	gosub *define_numalias
	gosub *define_global
	gosub *define_window
	gosub *define_background
	gosub *define_cast
	gosub *define_textwindow
	gosub *define_text
	gosub *define_nameplate
	gosub *define_saveload
	gosub *define_bexec
	gosub *define_debug
	gosub *define_exec
	gosub *define_fileexist
	gosub *define_if
	gosub *define_linear
	gosub *define_newsposition
	gosub *define_skip
	gosub *define_sound
	gosub *define_sprite

game
98.txt
*loadgosub_lb
	gosub *loadgosub_chvol
return
99.txt
*define_numalias

	; numalias 定義用の一時変数
	mov %0,100 ; 100番から。
	
	; スプライト番号は逆に奥から。
	mov %1,900

return

*define_global