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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0506
Cydia.hatenaHSPでコマンドプロンプト的なソースコードを作ったのですが...13解決


Cydia.hatena

リンク

2013/5/6(Mon) 17:05:22|NO.53845


*cmd mmplay 3 *cmdd color 0,0,0 aaa="Cydia OS root#" e="0" hantei=1 hanteione=1 tikuseki=0 boxf color 0,255,255 *cmdst onkey *cmdtype color 255,255,255 pos tikuseki*8,0 mes aaa if aaa="Cydia OS root#":tikuseki=15 stop *cmdtype onkey 0 tikuseki=tikuseki+1 mojicode=iparam if mojicode=8:mmplay 10:goto *cmdd if mojicode=45:aaa="-" if mojicode=48:aaa="0" if mojicode=49:aaa="1" if mojicode=50:aaa="2" if mojicode=51:aaa="3" if mojicode=52:aaa="4" if mojicode=53:aaa="5" if mojicode=54:aaa="6" if mojicode=55:aaa="7" if mojicode=56:aaa="8" if mojicode=57:aaa="9" if mojicode=65:aaa="A" if mojicode=66:aaa="B" if mojicode=67:aaa="C" if mojicode=68:aaa="D" if mojicode=69:aaa="E" if mojicode=70:aaa="F" if mojicode=71:aaa="G" if mojicode=72:aaa="H" if mojicode=73:aaa="I" if mojicode=74:aaa="J" if mojicode=75:aaa="K" if mojicode=76:aaa="L" if mojicode=77:aaa="M" if mojicode=78:aaa="N" if mojicode=79:aaa="O" if mojicode=80:aaa="P" if mojicode=81:aaa="Q" if mojicode=82:aaa="R" if mojicode=83:aaa="S" if mojicode=84:aaa="T" if mojicode=85:aaa="U" if mojicode=86:aaa="V" if mojicode=87:aaa="W" if mojicode=88:aaa="X" if mojicode=89:aaa="Y" if mojicode=90:aaa="Z" if mojicode=13:aaa="":mmplay 3:goto *chantei if aaa="Cydia OS root#":goto *cmdd ;入力した文字を数値に変換している hanteione=10^tikuseki*mojicode hantei=hantei*hanteione goto *cmdst *chantei ;新しいコマンドを追加するときにつかう↓ ;mes ""+hantei+"" if hantei=1260442080:goto *de if hantei=1829946464:goto *game if hantei=-1411298208:goto *bios if hantei=1775616296:goto *cmdhelp if hantei=-513622160:goto *notepad if hantei=1:pos 0,15:mes "コマンドを入力してください。わからない場合は「HELP」と打ってください。" pos 0,15:if hantei=1:else:mes "このコマンドは存在いたしません。" onkey goto *cmd wait 200 goto *cmdd *de end *game *cmdhelp *notepad *bios
というコードでコマンドプロンプトもどきを作成したのですが、
どういうわけか、EXIT、GAME、REBOOT、NOTEPADのコマンドを打ってもすべて
「このコマンドは存在いたしません。」と出てしまいます。

if hantei=1260442080:goto *de if hantei=1829946464:goto *game if hantei=-1411298208:goto *bios if hantei=1775616296:goto *cmdhelp if hantei=-513622160:goto *notepad
の位置がいけないのでしょうか?
誰か教えてください!!



この記事に返信する


KA

リンク

2013/5/6(Mon) 18:26:11|NO.53852

取りあえず、判定の内容を確認しましょう。



Him

リンク

2013/5/6(Mon) 18:27:59|NO.53853

数値変換がよく分かりませんが判定するだけなら文字の方が簡単じゃないですか?


*cmd mmplay 3 *cmdd aaa="Cydia OS root#" bbb = "", "DE", "GAME", "BIOS", "HELP", "NOTEPAD" ccc = "" hantei = 0 *cmdst onkey *cmdtype redraw 0 color boxf color 255,255,255 pos 0, 0 mes aaa pos 8 * 15, 0 mes ccc redraw 1 stop *cmdtype mojicode=iparam if mojicode=8:mmplay 10:goto *cmdd if mojicode=13:mmplay 3:goto *chantei ccc + strf ("%c", mojicode) goto *cmdst *chantei repeat length(bbb) if ccc = bbb(cnt) { hantei = cnt break } loop if hantei { gosub *command } else { pos 0, 15 mes "このコマンドは存在いたしません。" wait 200 } goto *cmdd *command switch hantei case 1 end swbreak default dialog ccc swbreak swend return



通りすがり

リンク

2013/5/6(Mon) 19:24:13|NO.53855

そのソースはいわゆる"ドナルドウズ"の一部を文字列だけ改変したもののようですね。
さも自分が作ったような言い方をするのはやめるべきだと思います。

そういえば他スレッドの話で恐縮ですが
>キャラやBGMだけ差し替えたようなコピーが生まれるだけになりそう。
とありましたが、
現にDonaldowsのコピーは何個も見てきました。(剽窃含む
なぜか人気があるのですね。

質問と関係なくて申し訳ありません。



Cydia.hatena

リンク

2013/5/6(Mon) 21:29:24|NO.53858

通りすがりさん
すみません。そんなつもりはなかったのですが...



Cydia.hatena

リンク

2013/5/6(Mon) 21:36:34|NO.53859

Himさん、コードありがとうございます。
実行してみたところ、
すべてのコマンドがend命令になってしまいますが
その1つ1つのコマンドに命令をあたえれませんか?
GAME=ダイアログ表示
NOTEPAD=exec命令でメモ帳起動
EXIT(BE)=end命令
BIOS=mes命令
みたいな感じに。
おそらくif命令を使うと思いますが...



Cydia.hatena

リンク

2013/5/6(Mon) 21:42:32|NO.53860

お知らせ。
私は中学生2年生のため、1日中PCを動かせるわけではありません。
10時以降はほとんどの可能性で応答できませんのでご注意ください。



Him

リンク

2013/5/7(Tue) 00:32:25|NO.53863

私の環境ではend命令が実行されるのは"DE"と入力した場合のみなので
全てendになるのであれば私には解決できそうにないです。すみません。



Cydia.hatena

リンク

2013/5/7(Tue) 19:20:24|NO.53873


switch hantei case 1 default dialog ccc swbreak swend
の部分を消さないとErrorと出てしまいます。
そのコードは一体何ですか?何かDLLファイルとかが必要な奴ですか?
教えてください!
おそらく、このコードを消したためにDE以外のコマンドを打っても
end命令へ飛んでしまうのだと思いますが...



流星群

リンク

2013/5/7(Tue) 20:17:14|NO.53876

F1ヘルプ見ようよ…
説明すると、
それはswitch文といって、
分岐命令の一種です。
switch〜swendまでがswitch文です。
caseは分岐する値です。
例えば

switch a case 1 mes "aは1" swbreak default swend
の場合、変数aの値が1の場合のみ
aが1と表示されます。
詳しくはスクリプトエディタで
switchと入力し、F1を押して下さい。



流星群

リンク

2013/5/7(Tue) 20:20:41|NO.53877

連投すいません。

>NO.53873の
>の部分を消さないとErrorと出てしまいます。
>おそらく、このコードを消したために

これじゃ消したのかせいなのか消してないせいなのか
よくわからない文章になっていますよ。

質問する時はちゃんと自分の書いていることを理解して、
せいりしてから書き込み送信したほうが
こたえやすいですよ。



Cydia.hatena

リンク

2013/5/10(Fri) 21:50:07|NO.53938

返信遅れました。
switchのことはわかったのですが、どうやったら実行できますか?
Errorでて実行できません



Cydia.hatena

リンク

2013/5/11(Sat) 18:46:59|NO.53969

解決できました。
すみません



Cydia.hatena

リンク

2013/5/17(Fri) 19:21:52|NO.54092

色々迷惑をおかけして申し訳ありませんでした。



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