やっと制御構文に入りますよーw
変数実装がこのBBS書きこみ制作の最初の頃だったかんじするんですがw
とりあえずサンプル書きました
コメントに関しては
全力でスクリプトを書いてるので そんな余裕なかったりw
いつもは余力を残して書いているので
コメントを書く部分が残っているかんじのような
いつもはコーディング70%コメント30%
今はコーディング100%とw
#module sub_sys_label i_name,i_ID,i_l_value ;i_nameラベル変数の名前 ;i_nameラベル変数のID ;i_nameラベル変数の値、コマンド番号を格納する(だったようなw) #modinit str p_name,int p_ID,var p_l_value ; sdim i_name,500 ; sdim i_ID,500 ; sdim i_l_value,500 i_name=p_name i_ID=p_ID i_l_value=p_l_value return ;getter #modcfunc local get_i_name return i_name #modcfunc local get_i_ID return i_ID #modfunc local get_i_l_value var p_gil p_gil = i_l_value return #modfunc local set_i_l_value var _p4set_value i_l_value = _p4set_value return #modfunc local dump logmes "dump "+i_ID logmes "dump "+i_name logmes "dump "+i_l_value return #modfunc local get4op var p_r p_r=""+i_ID+":"+i_name+":"+i_l_value return #global #module m_repeat_block rep_var,max_rep_var,num_l_repeat,l_repeat,num_l_loop,l_loop,num_fin_rep,fin_rep,num_ar_l_break,ar_l_break,num_ar_l_continue,ar_l_continue #modinit rep_var = 0 num_l_repeat = -1 num_l_loop = -1 num_fin_rep = -1 num_l_break = -1 num_l_continue = -1 return #modfunc set_l_repeat str _p_name,int _p_ID,var _p_l_value if num_l_repeat = -1{ newmod l_repeat,sub_sys_label,_p_name,_p_ID,_p_l_value num_l_repeat = 1 return } dialog "you did reg label:A",2 return #modfunc set_l_loop str _p_name,int _p_ID,var _p_l_value if num_l_loop = -1{ newmod l_loop,sub_sys_label,_p_name,_p_ID,_p_l_value num_l_loop = 1 return } dialog "you did reg label:B",2 return #modfunc set_fin_rep str _p_name,int _p_ID,var _p_l_value if num_fin_rep = -1{ newmod fin_rep,sub_sys_label,_p_name,_p_ID,_p_l_value num_fin_rep = 1 return } dialog "you did reg label:C",2 return #modfunc set_rep_var int p max_rep_var = p return #modfunc get_rep_var var p_r p_r = rep_var return #modfunc sys_repeat var p_label ; logmes "OK1" ; loc_index = p_r - 1 if rep_var >= max_rep_var{ logmes ""+rep_var logmes ""+max_rep_var f_jump@=1:p_label=*end_rep2@ return } rep_var++ f_jump@=0:return #modfunc sys_loop var p_label ; logmes "OK2" f_jump@=1:p_label=*begin_rep@ return #global f_def=1 f_do=0 ;repeat 3 *tmp_rep if f_def==1{ newmod obj_test_rep,m_repeat_block tmp_l=*begin_rep set_l_repeat obj_test_rep,"begin",1,tmp_l set_rep_var obj_test_rep,3 } if f_do==1{ *begin_rep: tmp_ll=*tmp_rep sys_repeat obj_test_rep,tmp_ll if f_jump==1:f_jump=0:goto tmp_ll print "HELLO" await 1 } ;loop if f_def==1{ tmp_l=*end_rep set_l_loop obj_test_rep,"end",2,tmp_l } if f_do==1{ *end_rep: tmp_ll=*tmp_rep sys_loop obj_test_rep,tmp_ll if f_jump==1:f_jump=0:goto *begin_rep } *end_rep2 if f_def==1{ tmp_l=*end_rep2 set_fin_rep obj_test_rep,"end_rep2",3,tmp_l } if f_def==1{ f_def=0:f_do=1:goto *tmp_rep } stop