gosubで引数を受け取る(2)
 トイレに行ったら早速思いついたので、作ってみました。以下スクリプト。

*define
defsub a
game

*inc
getparam i%10
_inc %%10
return

*dec
getparam i%10
_dec %%10
return

*a
getparam $0
csvopen $0,"r"
*a_loop
csvread $1,%1
gosub "*" + $1 %%1
csveof %1
if %1 == 0 goto *a_loop
return

*start
a "test.txt"
%100、%101@
end


 test.txtの中身は
inc,100
dec,101
 になっています。
 これ、使えますね……。現在鋭意製作中のシナリオプレイヤーでは、フラグ操作をする際にファイルから文字列読んで、"inc"ならこれして"dec"ならこれして……とif文で分岐させまくっていたのですが、これならスリムに出来そうです。問題は引数を合わせる必要がある点ですが、gosub部分を一番引数の多い命令に合わせて作っておき、使わない引数には空文字入れておけば大丈夫そうです。
 いやぁ、何でもやってみるもんですね!
[PR]
by lyricist_m | 2009-02-20 03:34 | NScripter
<< 文章の途中で色を変える gosubで引数を受け取る >>