HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0206
Empeld文字列の連結3解決


Empeld

リンク

2009/2/6(Fri) 23:11:33|NO.23267

こんばんは。Empeldといいます。
今回は、文字列の連結について質問をさせて頂きたいと思います。

とあるスクリプトで文字列を連結させてみようと思ったのですが
なかなかうまくいきません。

それが以下のスクリプトなのですが
[配列の要素が無効です]
と言うエラーが出てしまいます。(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



この記事に返信する


Empeld

リンク

2009/2/6(Fri) 23:19:27|NO.23268

追記です。

スクリプトは
39行目をコメントアウトすると動作します。(データの名前)

データの選び方は十字キーで選択、Enterで決定です。



ANTARES

リンク

2009/2/6(Fri) 23:20:42|NO.23269

>dim sys_value_LEVEL,8
 これは配列の宣言ですが、
>sdim sys_value_NAME,8
これは配列の宣言ではありません。sdimの説明を読み直しましょう。



Empeld

リンク

2009/2/6(Fri) 23:29:56|NO.23270

>ANTARESさん

sdimの説明を読み直しました。

sdimはてっきりdimと同じで
sdim 変数,要素の最大

と思ってました・・・ 初歩的ミスです。すみません。 解決です。



ONION software Copyright 1997-2023(c) All rights reserved.