SRC質問掲示板Mk2
(現在 過去ログ84 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■15324 / inTopicNo.1)  パーソナルデータテーブルシステム
  
□投稿者/ Mr.MAC -(2004/10/11(Mon) 19:54:24) [ID:245vEtqY]
    以前、同じタイトルで質問をさせてもらったMr.MACです。
    あれ以降、しばらく自力で頑張っていましたが、どうしても出来ないことがあってまた書き込ませていただきます。


    a = "$(月)" * (Info(Args(1),特殊能力データ,PN1) + "$(日)")

    If "$(血)" = "A" Then
    "$(血)" = 1
    ElseIf "$(血)" = "B" Then
    "$(血)" = 2
    ElseIf "$(血)" = "O" Then
    "$(血)" = 3
    ElseIf "$(血)" = "AB" Then
    "$(血)" = 4
    Else
    "$(血)" = 0
    EndIf

    b = (Info(Args(1),特殊能力データ,PN2) + "$(年)") + "$(血)"


    X = a + b

    現在はこのように組んでいるのですが、Call関数などで調べてみたところ、
    Info(Args(1),特殊能力データ,PN1)

    Info(Args(1),特殊能力データ,PN2)
    が上手く生まれてくれません。

    イベントファイルでArgs(1)を直接パイロットの名前に変えたときにはちゃんとInfo関数が生まれましたが、
    代わりに a =  の式で乗算がちゃんとされません。

    どうか再度、ご助力のほどをお願いいたします。
引用返信/返信 削除キー/
■15327 / inTopicNo.2)  Re[1]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/10/11(Mon) 20:35:06) [ID:bHkXC2pw]
    TomTomです。

    >現在はこのように組んでいるのですが、Call関数などで調べてみたところ、
    >Info(Args(1),特殊能力データ,PN1)
    >と
    >Info(Args(1),特殊能力データ,PN2)
    >が上手く生まれてくれません。

    まず、これらの式の前で「Confirm Args(1)」と記述して、Args(1)の中身を確かめてください。
    ここで正しい値(パイロット名)が返ってこなければ、サブルーチンを呼び出す段階で何か間違っているということになります。


    >a = "$(月)" * (Info(Args(1),特殊能力データ,PN1) + "$(日)")

    えっとですね、確かに前のツリーで「文字列は""でくくったほうがいい」とは言いました。
    しかし、それはあくまで「文字列」に限った話です。「月」「日」「血」などは「変数の名前」なので、""で括るとただの文字列に変化してしまい、変数として扱われません。
    この場合は

    a = 月 * (Info(Args(1),特殊能力データ,PN1) + 日)

    とするのが正しいでしょう。
    #同様に、ほかの部分も修正してください。
引用返信/返信 削除キー/
■15329 / inTopicNo.3)  Re[2]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/10/11(Mon) 21:27:06) [ID:245vEtqY]
    TomTomさん、前ツリーともども、回答ありがとうございます


    > Args(1)の中身を確かめてください。

    確かめてみると、問題なくパイロット名が返されました。
    しかし、それでもInfo関数が生まれてないのか、計算が狂っています。
    #自分の誕生日である6月27日を使用すれば、aの式は168であるはずなのに162が帰ってきます。

    あと気になったことですが、
    Confirmでパイロット名が聞かれて「はい」「いいえ」で聞き返してくるのは問題ないと思うのですが、
    その直後に『a』を2回、「はい」「いいえ」と聞き返してきました。
    コレは何か関係あるのでしょうか。


    > 変数として扱われません。

    変数などのヘルプを必死で読んで考えてやってみたのですが、まずかったようですね。
    指摘&解説ありがとうございます
引用返信/返信 削除キー/
■15330 / inTopicNo.4)  Re[3]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/10/11(Mon) 21:56:21) [ID:bHkXC2pw]
    TomTomです。

    パイロットデータがどのように設定されているのかわからないので、なぜ計算が狂っているのかはわかりかねますね。
    Confirmの際に「a」と出てくるのは、もしかしたらサブルーチンをCallする際に問題があるのかもしれません。

    使用しているパイロットデータと、計算のサブルーチンを呼ぶCall(およびその前後をいくらか)を提示していただけますか?
引用返信/返信 削除キー/
■15331 / inTopicNo.5)  Re[4]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/10/11(Mon) 23:27:18) [ID:245vEtqY]
    使用しているパイロットデータは以下のものです。

    泉野明
    オリジナル野明, 女性, レイバー , AABB, 170
    特殊能力
    PN1=1, 1
    PN2=5, 1
    1, 1, 1, 1, 1, 1, 強気
    精神, 55, 努力, 1
    PAT_IzumiNoa.bmp, Patlabor.mid



    そして、サブルーチンを呼ぶCallは以下のようになっております。


    @機動警察パトレイバー

    スタート:

    式 泉野明

    Call(式,a)

    Continue テスト1.eve


    これでよろしいでしょうか。
引用返信/返信 削除キー/
■15332 / inTopicNo.6)  Re[5]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/10/12(Tue) 00:41:08) [ID:bHkXC2pw]
    >使用しているパイロットデータは以下のものです。

    あーっ、すみません。「年」「月」「日」にどんな値を入力しているのかもわからないと、計算結果を検証できませんね。失念していました。
    これらも教えていただけますか?


    >式 泉野明

    >Call(式,a)

    あっと、「式」というのがサブルーチン名でよろしいですか?
    このような記述をすると、
    ・「泉野明」を引数(Args(1))としてサブルーチン「式」を実行
    ・「a」を引数(Args(1))としてサブルーチン「式」を実行
    と、2回にわたってサブルーチンを実行することになります。
    Confirmで「a」と表示されたのは後の「Call(式,a)」が原因でしょう。

    このCallがどのような動作を意図しているのかも教えていただけるとよいかも。
引用返信/返信 削除キー/
■15335 / inTopicNo.7)  Re[6]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/10/12(Tue) 07:49:45) [ID:245vEtqY]
    > 「年」「月」「日」
    以下のようになってます。動作確認用セーブデータファイルより抜粋です。

    "年","1986"
    "月","6"
    "日","27"

    > あっと、「式」というのがサブルーチン名でよろしいですか?
    はい、よろしいです。

    > Callがどのような動作を意図しているのか
    これはa = の式の値を返すために作ったもので、一応Call関数です。

引用返信/返信 削除キー/
■15336 / inTopicNo.8)  Re[7]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/10/12(Tue) 09:03:27) [ID:CLm6zLb9]
    >> 「年」「月」「日」
    >以下のようになってます。動作確認用セーブデータファイルより抜粋です。

    なるほど、確かにaの計算結果は168になるはずですね。
    PN1の値が0であった場合、162になるのでこれが問題ですね。その原因は次の通りかと思います。

    >Info(Args(1),特殊能力データ,PN1)

    恐らくはPliotコマンドなどで「泉野明」を作成していないんじゃないでしょうか。
    作成されていないパイロットをInfo関数などでデータ取得しようとしてもうまくいきません。
    ダミーのパイロットをいちいち生成するのもアレなので、この文を

    Info(パイロットデータ,Args(1),特殊能力データ,PN1)

    と変更してください。Info関数に「パイロットデータ」を指定することで、
    作成されたパイロットの今の能力ではなく、Pilot.txtに書き込まれているそのままの能力を取得することが出来ます。


    >> Callがどのような動作を意図しているのか
    >これはa = の式の値を返すために作ったもので、一応Call関数です。

    先ほどのレスでも書きましたが「Call(式,a)」は、

    ・「a」を引数(Args(1))としてサブルーチン「式」を実行

    という意味になります。
    #「『式』というサブルーチンの中の『a』という変数の値を返す」という意味にはなりません
    Localコマンドなどでサブルーチンに使用した変数をローカル変数にしていない限り、
    サブルーチンが終了した後もその値を参照することが出来ます。

    ですから、変数「a」の値を確認したい場合、「Call(式,a)」を「Confirm a」と変更すれば、「a」の値を見ることが出来ます。
    #例えばこの場所以降で、「a」の値を使用した計算などを行いたい場合も、普通に計算式内に「a」と記述するだけでOKです。

引用返信/返信 削除キー/
■15338 / inTopicNo.9)  Re[8]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/10/12(Tue) 20:06:29) [ID:245vEtqY]
    言われたとおりに弄くってみたらいけました。
    これらを踏まえてテスト用eveを書いて動作確認したところ。問題なく稼動することが無事判明しました。

    TomTomさん、長らく自分のインクル製作を手伝っていただき、本当にありがとうございます。
    おかげで無事完成にこぎつける事が出来ました。
    それでは、簡単ですがこれで失礼します。
解決済み!
引用返信/返信 削除キー/
■15502 / inTopicNo.10)  Re[9]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/11/06(Sat) 00:28:47) [ID:8cMkVuna]
    再度上げてしまい申し訳ありません。
    先日、ウィルス云々でPCをリカバしたのですが、その際にこのデータとかを保存するのを忘れてしまい、1から作り直してました。
    自分の立てたスレッドを見ながら必死で復帰してたのですが、いかんせん完璧に覚えてないので一部間違いがあったのか、また動作しなくなりました。


    式:

    a = 月 * (Info(パイロットデータ,Args(1),特殊能力データ,PN1) + 日)

    If 血 = "A" Then
    血 = 1
    ElseIf 血 = "B" Then
    血 = 2
    ElseIf 血 = "O" Then
    血 = 3
    ElseIf 血 = "AB" Then
    血 = 4
    Else
    血 = 0
    EndIf

    b = (Info(パイロットデータ,Args(1),特殊能力データ,PN2) + 年) + 血

    X = a + b
    Return

    式がこのようになっていて、『Args(1)』が呼び出されません。
    #あらかじめ Confirm Args(1) で確認しました。

    何度も申し訳ありませんが、またご助力のほどお願い致します。
引用返信/返信 削除キー/
■15516 / inTopicNo.11)  Re[10]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/11/06(Sat) 17:43:44) [ID:UNOi1fFK]
    TomTomです。

    >#あらかじめ Confirm Args(1) で確認しました。

    とのことですが、確認した結果どうだったのでしょうか。
    確認の結果が正しかったのか正しくなかったのかがわからないと、ちょいと判断材料にはならないです。

    ひとまず式に問題はなさそうなので、考えられる点を。
    ・パイロットデータの記述が間違っている
    ・Args(1)がパイロットIDやユニットIDで渡されいる
     #ちゃんと試してはいませんが、Info関数を「パイロットデータ」指定で実行した場合、
     #「パイロット名称」出なければ正常に動作しないかもしれません。
    こんなところでしょうか。
引用返信/返信 削除キー/
■15521 / inTopicNo.12)  Re[11]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/11/07(Sun) 10:05:25) [ID:8cMkVuna]
    肝心の部分を抜かしていてて申し訳ありません。
    確認の結果、何も表示されずに「はい」「いいえ」が問われました。
    また、「a」を求める式のArgs(1)に直接パイロット名を入力してConfirmで結果を求めると、問題なく正しい答えが返ってきました。

    >パイロットデータの記述が間違っている
    投稿データのうち、能力や特殊能力を弄っただけの物なので間違ってはいないと思うのですが、一応今回使ったデータを載せます。

    ロジャー=スミス
    Oロジャー, 男性, メガデウス, AAAA, 200
    特殊能力
    PN1=9, 1
    PN2=3, 1
    142, 158, 152, 127, 176, 157, 強気
    SP, 60, 信頼, 1
    BIG-O_RogerSmith.bmp, BIG-O.mid


    >パイロットIDやユニットIDで渡されている
    私としてはIDで渡すように組んだつもりは無いのですが、念のため。

    @THEビッグオー

    スタート:
    Global 年
    Global 月
    Global 日
    Global 血
    Input 年 生まれた年を入力してください 1960
    Input 月 生まれた月を入力してください 1
    Input 日 生まれた日を入力してください 1
    Input 血 血液型を入力してください A

    式 ロジャー=スミス

    Confirm Args(1)

    Continue 001.eve

    これがテストの為に組んだeveファイルです。

引用返信/返信 削除キー/
■15522 / inTopicNo.13)  Re[12]: パーソナルデータテーブルシステム
□投稿者/ Mr.tonkati -(2004/11/07(Sun) 11:16:28) [ID:ilM5azDl]
    初めまして、おはようございます。Mr.tonkatiです。

    横から失礼いたします。

    > Confirm Args(1)

    このArgsはサブルーチン内でしか使えないです…。
    サブルーチン「式」の最後の方にでもおいてみてはいかがでしょう。

    では、失礼しました。
引用返信/返信 削除キー/
■15523 / inTopicNo.14)  Re[13]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/11/07(Sun) 11:32:57) [ID:8cMkVuna]
    >TomTomさま、Mr.tonkatiさま

    Mr.tonkatiさま、ご指摘どうもありがとうございます。

    先ほど、再度動かしてみたところ、なんら問題なく動くことが確認されました。
    ご迷惑をお掛けしてしまい、誠に申し訳ありません。
    今度はちゃんとバックアップをとり、またご迷惑をお掛けすることの無い様に尽力いたします。
    本当に、失礼しました
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -