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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0907
ウサギ新規命令ができない(T0T)16解決


ウサギ

リンク

2008/9/7(Sun) 20:33:54|NO.19121


a="馬鹿" ID=bID screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*henkan stop *henkan repeat strlen(a) x=strmid (a,0,cnt*2) objprm ID,x wait 10 loop stop
の作業を新規命令として、登録したいのですが・・・・
うまくいきません!どうしたらいいでしょうか???



この記事に返信する


かっぺい

リンク

2008/9/7(Sun) 22:03:08|NO.19124

#define、#deffuncでF1ヘルプを見てみてはどうでしょうか。



SYAM

リンク

2008/9/7(Sun) 22:34:06|NO.19129

もひとつ、質問の仕方にちょっと問題があるので次から気をつけてみてください。
「うまくいかない」とだけ書くのではなく、

「どうなってほしい」から、「何をした」結果、「どうなった」
…ということを教えてください。
そのほうが、回答する側もドンピシャな回答をしやすいのです。


たとえばですよ
「画面に線を引きたいんですがうまく行きません」

…のような質問だと、回答のしようがありません。
どこが悪い以前に、何が起きてるのかも判らないですね。

これが、
「line命令で line 0,0,100,100 のようにしたけど線が表示されません」

…のような質問の仕方だと、回答する側にもずいぶん考える材料が増えます。
「color命令で色指定ちゃんとした?背景と同じ色になってない?」とか
「書き込み先として他のウインドウIDが指定されていない?」とか
色々考えられるわけです。


スパッと回答が帰ってくる方が質問する側にとってもありがたいことなワケですし
ちょいと気をつけてみてください。



ウサギ

リンク

2008/9/8(Mon) 19:40:32|NO.19179

すいません・・・・今度からきを付けます!
#deffunc intID,str a
a="馬鹿" ID=bID screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*henkan stop *henkan repeat strlen(a) x=strmid (a,0,cnt*2) objprm ID,x wait 10 loop stop としましたができません!助けてください!



SYAM

リンク

2008/9/8(Mon) 20:58:40|NO.19188

「どうなってほしい」が抜けてます・・・。
いったい何がしたいのかがわからないことにはアドバイスもできません。

とりあえずわかるのは、1行目の書きかたから間違っています。
エラーメッセージも1行目を指していますよね。
ヘルプの途中に書いてあるサンプルと見比べてください。余計な , が入ってませんか。



かっぺい

リンク

2008/9/8(Mon) 22:41:09|NO.19220

まず、#deffunc,#defcfunc命令を使うときには、
命令を書く前にに#module、やりたいことをすべて書いてから#globalで囲むように記述しましょう。
また、#deffuncはgosub命令で命令が書いてある場所に飛ぶようなものなので、
やりたいことが終わったらreturn命令を#deffuncでやりたいことの最後に書いてください。
なお、詳細については自分で調べてみてください。



Quiet

リンク

2008/9/8(Mon) 23:02:14|NO.19221

モジュール機能を理解したい場合は

ttp://yokohama.cool.ne.jp/chokuto/advanced/module.html

ここなど参考にしたらどうでしょう。



ウサギ

リンク

2008/9/14(Sun) 08:45:36|NO.19459


#deffunc intID str a repeat strlen(a) x=strmid (a,0,cnt*2) objprm ID,x wait 10 loop stop #global screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*henkan stop speak B,"馬鹿"
として、SPEAKという命令でRPGのときの会話みたいにっテロップ?みたいなのをさせたいのですが・・
うまくいきません助けてください



-71

リンク

2008/9/14(Sun) 08:54:39|NO.19460

エラーが起きて「うまくいきません」といのは、大抵ヘルプなりサンプルを見れば自力で解決できるはずです。
今回もそれ然り、エラーメッセージを読んでいけば解決できるでしょう。

というより、失礼な話ですが、このソースは間違いが多すぎて、こちらとしてはどこから手直しすべきか判断しかねるしだいです。

いきなりやりたい事に飛びつくのではなく、モジュール機能等を使ってもう少し遊んでから取り組んでもいいのではないでしょうか。



SYAM

リンク

2008/9/14(Sun) 09:26:07|NO.19461

●エラーメッセージとヘルプは読みましたか?
実行すると#global の行にエラーがあるというメッセージが出ます。
#globalのヘルプを参照すると、真っ先に #module の話が出てくるはずです。

そして、
この話はあなたがスクリプトをここに貼り付ける前に かっぺい さんが書かれています。
エラーの原因はまさにそれなのに、なぜ無視するのです?



ウサギ

リンク

2008/9/14(Sun) 09:44:07|NO.19462

#module
#deffunc speak intID str a repeat strlen(a) x=strmid (a,0,cnt*2) objprm ID,x wait 10 loop stop #global screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*henkan stop speak BID "馬鹿"
としてみました。そしたら、エラーが1行目に出ます。
、をのけました。#moduleもつけました。
どこが間違えてるか、わかりません。教えてください



あり

リンク

2008/9/14(Sun) 10:21:40|NO.19463

まず

#deffunc speak intID str a
に2ヶ所間違いがあります。 #deffuncのヘルプと見比べて何が違うのか、考えてください。

そして多分、その後に出るエラーのほうが問題点に気付きにくいと思われますが
まずは上の問題点をクリアしましょう。



ウサギ

リンク

2008/9/14(Sun) 10:29:59|NO.19464

#deffunc speak intID str a

#deffunc speak var intID, str a
にしたらあっているのでしょうか?
そうして実行すると、
???(19) : error 4 : パラメーター式の記述が無効です (19行目)
--> speak bid "馬鹿"
と表示されます。
どう間違っているのでしょうか?



あり

リンク

2008/9/14(Sun) 11:55:58|NO.19468

>???(19) : error 4 : パラメーター式の記述が無効です (19行目)
>--> speak bid "馬鹿"
>と表示されます。
エラーが19行目にあると言われているので
>speak bid "馬鹿"
のどこかが問題だと言うのはわかると思います。

エラーの内容が
>error 4 : パラメーター式の記述が無効です
という事は、問題はパラメーター指定の仕方が間違っていると教えてくれている訳です。
パラメーター指定は
>bid "馬鹿"
の部分なので、もう答えは出たような物でしょう?

あと
>#deffunc speak var intID, str a
>にしたらあっているのでしょうか?
これは
#deffunc speak int ID, str a
でいいと思います。



ウサギ

リンク

2008/9/14(Sun) 13:24:34|NO.19471


#module #deffunc speak int ID, str a repeat strlen(a) x=strmid (a,0,cnt*2) objprm ID,x wait 10 loop stop #global screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*HENKAN stop *HENKAN speak BID,"馬鹿"
としたら、”変換”というボタンを押すと,エラーがでます。
どこが悪いのでしょうか?



かっぺい

リンク

2008/9/14(Sun) 13:48:11|NO.19472

問題はライン5のx=strmid(a,0,cnt*2)です。
strmidのaのところは変数でなければならないのに、
文字になっているからです。
だから、

#module #deffunc speak int ID, str a repeat strlen(a) message=a ;aの中身をmessageに入れる(aの変数化) x=strmid (message,0,cnt*2) objprm ID,x wait 10 loop stop #global screen 0,500,400 b = "" mesbox b,300,200,1,0 bID = stat pos 300,0 button goto"変換",*HENKAN stop *HENKAN speak BID,"馬鹿"
のようにすればいいのです。



ウサギ

リンク

2008/9/14(Sun) 13:53:00|NO.19473

どこがミスってたかわかりました。
おバカな私に、辛抱強く教えてくれた皆様。ありがとうございました。
ミスばっかりの文ですいませんでした・・・



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