|
よこしまさん かずやさん こんにちは となりのニャンコです
以前に質問したいと言いましたが質問内容を考えているうちに出来てしまいました。
お聞きしたかったことは、getline コマンドについてでした。どうしても動かなかっ
たので質問したかったわけですが、動いたので別の質問をしたいと思います。
「電報」という機能をご存じでしょうか
TALK と入力すると、現在通話中の会員さんのID一覧が表示されます。
ID NAME
aaa00000 となりのニャンコ
bbb11111 うちの三毛
******
次に相手のIDを入力して
1行だけメッセージを送るというものです。
できあがったスクリプトは以下のとうりです。
Talk:
chat off
chat on
send "TALK" + "^M"
wait "ID"
timeout 1
##dc = 0
beginloop
getline #talk[##dc]
if(timeout)goto Denmenu
##dc = ##dc + 1
endloop
Denmenu:
##sa=1
beginloop
##sa=##sa+1
if(part(#talk[##sa],0,6)=="******")##mc=##sa
if(##sa >= ##dc)breakloop
endloop
Dencount:
#talk[##mc]=""
##mc=##mc+1
if(##mc==21)goto Denmenugo
goto Dencount
Denmenugo:
menu"全員に送る","確定(このメニューを終了)","キャンセル",\
#talk[1],#talk[2],#talk[3],#talk[4],#talk[5]
timeout 0
##me=1
switch result
case 0
send "all" + "^M"
goto Dennuuryoku
case 1
getchat #chat
send #chat + "^M"
goto Dennuuryoku
case 2
chat off
chat on
send "^M"
goto Dennuuryoku
case 3
getchat #chat
setchat #chat + part(#talk[1],0,9)
case 4
getchat #chat
setchat #chat + part(#talk[2],0,9)
case 5
getchat #chat
setchat #chat + part(#talk[3],0,9)
case 6
getchat #chat
setchat #chat + part(#talk[4],0,9)
case 7
getchat #chat
setchat #chat + part(#talk[5],0,9)
case -1
goto Dennuuryoku
endswitch
goto Denmenugo
Dennuuryoku:
wait "メッセージを入力して下さい:"
chat off
chat on
ime on
wait "よろしいですか[Y/n]"
send "Y" + "^M"
ime off
exit
ここでは5人しか対応していませんが
実際のものは、かなりの余裕をつけて30人としてあります。
case 3 から case 7
の部分ですがこれだと5人だからたいしたことないのですが
30人だとどうなるかわかるでしょ
どうにかなりますか。
あっそうそう、getline コマンドのタイムアウト時間の目安も教えて下さい。
|
|