今回は、文字列の連結について質問をさせて頂きたいと思います。
とあるスクリプトで文字列を連結させてみようと思ったのですが
なかなかうまくいきません。
それが以下のスクリプトなのですが
[配列の要素が無効です]
と言うエラーが出てしまいます。(39行目です)
どこが悪いのかよく見直してみたのですが、見つかりませんでした。
解る方がいらっしゃればご指導お願いします。
↓スクリプト(とても長いです、すみません。)
#include "hspda.as" screen 0,640,480,8,0,0 buffer 2,640,480,8,650,0 gsel 2 cls 4 color 255,255,255 pos 640/2-16*3,(480/3)*2 mes "何かキーを押してね" gsel 0 gcopy 2,0,0,640,480 repeat stick keycheck if keycheck ! 0 : break wait 1 loop exist "savedata.txt" if strsize < 0 : gosub *makedata : else : vload "savedata.txt" goto *fileselect *fileselect break_key = 0 gsel 2 cls 4 color 255,255,255 boxf 5,5,634,474 color 0,0,0 boxf 10,10,629,469 repeat 8 color 255,255,255 boxf sys_value_X(cnt),sys_value_Y(cnt),sys_value_X(cnt)+153,sys_value_Y(cnt)+228 color 0,0,0 boxf sys_value_X(cnt)+1,sys_value_Y(cnt)+1,sys_value_X(cnt)+152,sys_value_Y(cnt)+227 color 255,255,255 boxf sys_value_X(cnt)+2,sys_value_Y(cnt)+2,sys_value_X(cnt)+18,sys_value_Y(cnt)+18 color 0,0,0 pos sys_value_X(cnt)+6,sys_value_Y(cnt)+2 mes cnt color 255,255,255 pos sys_value_X(cnt)+18,sys_value_Y(cnt)+2 39: mes "NAME:"+sys_value_NAME(cnt) pos sys_value_X(cnt)+2,sys_value_Y(cnt)+18 mes "LV. :"+sys_value_LEVEL(cnt) mes "HP. :"+sys_value_HP(cnt) mes "MP. :"+sys_value_MP(cnt) loop gsel 0 cls 4 gcopy 2,0,0,640,480 gsel 0 sys_sel = 0 repeat redraw 0 pos 0,0 gcopy 2,0,0,640,480 stick key if key & 1 { sys_sel = sys_sel - 1 if sys_sel < 0 : sys_sel = 0 } if key & 2 { sys_sel = sys_sel - 4 if sys_sel < 0 : sys_sel = 0 } if key & 4 { sys_sel = sys_sel + 1 if sys_sel > 7 : sys_sel = 7 } if key & 8 { sys_sel = sys_sel + 4 if sys_sel > 7 : sys_sel = 7 } if key & 16 or key & 32 : break_key = 1 system_X = ( 10 + sys_sel \ 4 * 155 ) + 153 system_Y = ( 10 + sys_sel / 4 * 230 ) + 228 title "ファイル:"+sys_sel color 0,127,0 line system_X,9,system_X,469 line 9,system_Y,629,system_Y line system_X+1,9,system_X+1,469 line 9,system_Y+1,629,system_Y+1 color 0,63,0 line system_X+2,9,system_X+2,469 line 9,system_Y+2,629,system_Y+2 redraw 1 if break_key = 1 : break wait 1 loop gsel 0 cls 4 color 255,255,255 boxf 5,5,634,474 color 0,0,0 boxf 10,10,629,469 pos 15,15 color 255,255,255 if sys_value_DATA(sys_sel) = 0 : goto *makefile *save cls 4 color 255,255,255 boxf 5,5,634,474 color 0,0,0 boxf 10,10,629,469 pos 15,15 color 255,255,255 mes "NAME:"+sys_value_NAME(sys_sel) mes "LV. :"+sys_value_LEVEL(sys_sel) mes "HP. :"+sys_value_HP(sys_sel) mes "MP. :"+sys_value_MP(sys_sel) sys_value_DATA(sys_sel) = 1 vsave "savedata.txt" wait 100 goto *fileselect *makefile mes "NAME" input sys_value_NAME(sys_sel) mes "LV. " input sys_value_LEVEL(sys_sel) mes "HP. " input sys_value_HP(sys_sel) mes "MP. " input sys_value_MP(sys_sel) mes button "OK.",*save stop *makedata gsel 0 cls 4 color 255,255,255 pos 640/2-16*3,(480/3)*2 mes "お待ち下さい・・・" dim sys_value_DATA,8 dim sys_value_LEVEL,8 sdim sys_value_NAME,8 dim sys_value_HP,8 dim sys_value_MP,8 dim sys_value_X,8 dim sys_value_Y,8 repeat 8 sys_value_X(cnt) = 10+((cnt\4)*155) sys_value_Y(cnt) = 10+((cnt/4)*230) loop vsave "savedata.txt" return