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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0211
tsukaラベルを命令の引数に。5解決


tsuka

リンク

2010/2/11(Thu) 23:00:47|NO.30539

ラベルを命令の引数として渡そうとしたのですが、「モジュール変数の指定が無効です」とエラーがでます。
以下が状況を再現したスクリプトです。


#module #deffunc setLabel label a _label(count) = a count++ return #deffunc gotoLabel int a gosub _label(a) return #global setLabel *a1 setLabel *a2 gotoLabel 0 stop *a1 mes "1" return *a2 mes "2" return



この記事に返信する


木村

リンク

2010/2/12(Fri) 00:20:26|NO.30541

 次のような形でどうでしょうか。

#module #deffunc init array a1 ラベル集.個数=a1 : 個数+ return #deffunc go foreach ラベル集 gosub ラベル集.cnt loop return #global label=*l1 : init label label=*l2 : init label label=*l1 : init label go stop *l1 mes "L1" : return *l2 mes "L2" : return

 ラベルを直に代入する事はできなくても、配列変数の一要素としてならぶち込めたという
悲劇。ごめんなさい本当に……



ANTARES

リンク

2010/2/12(Fri) 04:12:37|NO.30545

 別にarrayじゃなくてもvarでいいようですね。

 labelなんて書くようじゃ、マニュアルを読んでないのがバレバレです。
もっとも、読んでいれば解決したとは限りませんが。



窓口

リンク

2010/2/12(Fri) 04:24:18|NO.30546

#defcfunc の 「ヘルプ内の文章」が間違っています。

HSPにラベル型引数は存在しません。

解決方法としては「木村さん」の方法の通り。

一度、変数に渡してから、array あるいは var の引数で受け取ってください。



ANTARES

リンク

2010/2/12(Fri) 04:56:24|NO.30547

 #defcfuncの説明にはあったんですね。
失礼しました。



tsuka

リンク

2010/2/12(Fri) 17:13:49|NO.30554

なるほど。ドキュメントのミスでしたか。
varにして見ます。
ありがとうございました。



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