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

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

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

■15200 / inTopicNo.1)  パーソナルデータテーブルシステム
  
□投稿者/ Mr.MAC -(2004/09/25(Sat) 11:26:28) [ID:245vEtqY]
    はじめまして。
    ワンダースワンのコンパクトシリーズにあった、
    パーソナルデータテーブルをインクルード化しようと苦心しているのですが、
    SPを変更させる方法が掴めず、手詰まりとなっています。
    パターンを呼び出すための式はTomTom様のTomLibraryより一部使わせていただき、ほぼ完成しております。
    上記のように、このシステムの重要な部分の一つが自分だけでは完成できないと思い書き込みしました。
    勝手で申し訳ありませんが、力をお貸しください。
引用返信/返信 削除キー/
■15201 / inTopicNo.2)  Re[1]: パーソナルデータテーブルシステム
□投稿者/ フェルミ -(2004/09/25(Sat) 12:49:01) [ID:VdgRv0QT]
    No15200に返信(Mr.MACさんの記事)
    > はじめまして。
    > ワンダースワンのコンパクトシリーズにあった、
    > パーソナルデータテーブルをインクルード化しようと苦心しているのですが、
    > SPを変更させる方法が掴めず、手詰まりとなっています。
    > パターンを呼び出すための式はTomTom様のTomLibraryより一部使わせていただき、ほぼ完成しております。
    > 上記のように、このシステムの重要な部分の一つが自分だけでは完成できないと思い書き込みしました。
    > 勝手で申し訳ありませんが、力をお貸しください。

    単純にSPだけが異なるパイロットを6つぐらい作ってみてはどうでしょうか。
    SRC2.0からは特殊能力メッセージがありますので、複数作っても容量はかさみませんしね。
引用返信/返信 削除キー/
■15202 / inTopicNo.3)  Re[1]: パーソナルデータテーブルシステム
□投稿者/ TomTom -(2004/09/25(Sat) 13:04:44) [ID:W5AuCyaF]
    TomTomです。なんだか名前が出ているので(笑)

    えーと、そのシステムのことは知らないので的をはずしているかもしれませんが、
    内容から察するに何らかの条件でステータスが変わるとかそういうことでしょうか。

    とりあえず、パイロットの所持するSPを動的に変更することは不可能なので、
    フェルミさんの言うとおりSP違いのパイロットを作っておくか、
    Open、Printコマンドなどを使用して、データを直接、テキストファイルに書き込むくらいしか方法はないかと思います。
引用返信/返信 削除キー/
■15208 / inTopicNo.4)  Re[2]: パーソナルデータテーブルシステム
□投稿者/ Mr.MAC -(2004/09/26(Sun) 23:44:05) [ID:245vEtqY]
    >フェルミ様、TomTom様
    回答ありがとうございます。
    やはり動的に変更するのは無理ですかー
    では、SP違いの複数パイロットを作るのでやってみます。
    それでは。
解決済み!
引用返信/返信 削除キー/
■15235 / inTopicNo.5)  追加質問
□投稿者/ Mr.MAC -(2004/09/29(Wed) 22:45:19) [ID:245vEtqY]
    どうも、先日当スレにて質問させていただいたMr.MACです
    そして今回また、製作中のパーソナルデータテーブルシステムで行き詰ってしまったのでageてしまいます;


    今度はパイロットの呼び出しについてなのですが、

    PDTキャラ:
    If Round(Y,1) Mod = 0 Then
    Unit (Args(3)
    Pilot $(Args(1) + (1)) Args(2)
    Ride $(Args(1) + (1))
    ElseIf Round(Y,1) Mod = 1 Then
    Unit (Args(3)
    Pilot $(Args(1) + (2)) Args(2)
    Ride $(Args(1) + (2))
    ElseIf Round(Y,1) Mod = 2 Then
    Unit (Args(3)
    Pilot $(Args(1) + (3)) Args(2)
    Ride $(Args(1) + (3))
    ElseIf Round(Y,1) Mod = 3 Then
    Unit (Args(3)
    Pilot $(Args(1) + (4)) Args(2)
    Ride $(Args(1) + (4))
    Else
    Unit (Args(3)
    Pilot $(Args(1) + (5)) Args(2)
    Ride $(Args(1) + (5))
    EndIf

    Exit

    と言う感じに組んでいるのですが、案の定「括弧の対応が取れていません」と言われます。
    どのように組んだら良いのか、ご助力お願いします。
引用返信/返信 削除キー/
■15236 / inTopicNo.6)  Re[2]: 追加質問
□投稿者/ TomTom -(2004/09/29(Wed) 22:50:19) [ID:W5AuCyaF]
    TomTomです。

    >Unit (Args(3)

    正しくは

    Unit Args(3)

    ですね。また、

    >Pilot $(Args(1) + (1)) Args(2)

    ですが、

    Pilot "$(Args(1))(1)" Args(2)

    が正しいでしょう。

引用返信/返信 削除キー/
■15237 / inTopicNo.7)  Re[3]: 追加質問
□投稿者/ Mr.MAC -(2004/09/30(Thu) 00:48:03) [ID:245vEtqY]
    TomTomさん、非常に速い回答ありがとうございます。
    パイロット呼び出しのほうはコレで何とかなりそうです。


    が、いけたと思った式がまったく上手くいかず、またも頭を痛ませてしまったので書き込ませてもらいます。

    PDT準備:
    Global 年
    Global 月
    Global 日
    Global 血
    # Input 年 生まれた年を入力してください 1960
    # Input 年 生まれた月を入力してください 1
    # Input 年 生まれた日を入力してください 1
    # Input 年 血液型を入力してください A

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

    式:
    Call PDT準備
    (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血 = X

    X / 6 = Y

    Return

    式とそれに関わる関数とかはこんな感じになってます。
    これで動かしてみると、ちょうど式を呼び出したところで
    「サブルーチンの呼び出し先ラベルである「0」がみつかりません」
    と言われました。
    すみませんが、再度ご助力のほどお願いします。
引用返信/返信 削除キー/
■15238 / inTopicNo.8)  Re[4]: 追加質問
□投稿者/ TomTom -(2004/09/30(Thu) 10:35:52) [ID:CLm6zLb9]
    TomTomです。

    > (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血 = X
    >
    > X / 6 = Y

    えーっと、何か根本的なところで勘違いをしてらっしゃるようです。
    変数に値を設定するときは、「左辺に受け入れ先の変数名」を「右辺に代入する式」を記述します。
    (変数「血」に値を代入するときは「血 = 1」としていますよね。それと同じことです)
    つまりこの2つの式は、

     X = (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血
     Y = X / 6

    このようにするのが正しい記述となります。
    #少なくとも提示された情報では。
    #「Info(Args(1),特殊能力データ,PN1)」で返される値によっては、正常に動作するとは限りません

    また、別の話になりますが

    > If 血 = A Then

    このような場合、「If 血 = "A" Then」として、「A」が文字列であることを明確にしたほうがよいです。
    何らかの拍子に「A」という名前の変数を作成してしまった場合、「変数『血』と変数『A』の値を比べる」という動作をしてしまうので、正常な動作が出来なくなります。

    > これで動かしてみると、ちょうど式を呼び出したところで
    > 「サブルーチンの呼び出し先ラベルである「0」がみつかりません」
    > と言われました。

    「サブルーチンの呼び出し先ラベルである「0」がみつかりません」などのメッセージの直後に、3行ほどイベントの内容が表示されるはずなので、それらの情報も記してもらえると助かります。

引用返信/返信 削除キー/
■15243 / inTopicNo.9)  Re[5]: 追加質問
□投稿者/ Mr.MAC -(2004/09/30(Thu) 23:05:07) [ID:245vEtqY]
    TomTomさん、毎度毎度ありがとうございます


    > メッセージの直後に、3行ほどイベントの内容が表示されるはずなので、それらの情報も記してもらえると助かります。

    この情報が、前レスで書いた

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

    X / 6 = Y

    でして。
    とりあえず仰られたように修正すると、バグなく動くことは動きました。
    ただ、指摘されたとおり「Info(Args(1),特殊能力データ,PN1)」がうまく動作しないようです。
    この「Info(Args(1),特殊能力データ,PN1)」は、パイロットに指定された2種類の個人数字を返すものなのです。
    それでPN1とPN2の二つのデータを読み込み用パイロットに覚えさせ、引き出そうと思ったのですが、結果はだめでした。
    コレについて別の方法、または自分の考えたやり方の改善等のご助力お願いします。
引用返信/返信 削除キー/
■15244 / inTopicNo.10)  Re[6]: 追加質問
□投稿者/ TomTom -(2004/10/01(Fri) 03:02:55) [ID:W5AuCyaF]
    TomTomです。

    > > メッセージの直後に、3行ほどイベントの内容が表示されるはずなので、それらの情報も記してもらえると助かります。
    >
    > この情報が、前レスで書いた
    >
    > (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血 = X
    >
    > X / 6 = Y
    >
    > でして。

    いや、あのコードの中にエラーが出た文が含まれているのは解っていることなので、「正確にどの位置でエラーが出たか」を記していただきたい、と言うことです。


    > ただ、指摘されたとおり「Info(Args(1),特殊能力データ,PN1)」がうまく動作しないようです。
    > この「Info(Args(1),特殊能力データ,PN1)」は、パイロットに指定された2種類の個人数字を返すものなのです。
    > それでPN1とPN2の二つのデータを読み込み用パイロットに覚えさせ、引き出そうと思ったのですが、結果はだめでした。

    ちょっとどういう動作を行おうとしてるのか見当が付かないです。
    データを含む、「Info(Args(1),特殊能力データ,PN1)」に関連する処理を見せていただけますか?
引用返信/返信 削除キー/
■15245 / inTopicNo.11)  Re[7]: 追加質問
□投稿者/ Mr.MAC -(2004/10/01(Fri) 08:11:43) [ID:245vEtqY]
    えっと、説明下手でごめんなさい。


    > 「正確にどの位置で〜」
    デスクトップ\SRC全般\SRC2.0\俺作品\ClosingWorld\Data\include.eve:27行目
    サブルーチンの呼び出し先ラベルである「0」がみつかりません
    26: Call PDT準備
    27: (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血 = X
    28:

    これがエラー文を丸々コピーしたものです。
    これ以上正確な場所と言われても、テスト.eveの中でこの式を呼び出した時、としか言い様がありません。申し訳ないです。


    > 関連する処理

    泉野明
    野明, 女性, レイバー , AABB, 170
    特殊能力
    PN1, 1
    PN2, 5
    底力, 1
    ガッツ, 1
    S防御Lv1, 7, Lv2, 15, Lv3, 24, Lv4, 33, Lv5, 42, Lv6, 50
    切り払いLv1, 13, Lv2, 28, Lv3, 37, Lv4, 43, Lv5, 53
    143, 130, 145, 152, 165, 160, 強気
    精神, 55, 努力, 1, ド根性, 1, 熱血, 4, ひらめき, 7, 集中, 15, 気合, 25
    PAT_IzumiNoa.bmp, Patlabor.mid

    コレのようにパイロットデータのオリジナルに「PN1」と「PN2」を作り、

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

    を使って呼び出して、

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

    この式に代入させようと思っておりました。

    以上です。本当に説明が下手で申し訳ありません。
引用返信/返信 削除キー/
■15246 / inTopicNo.12)  Re[8]: 追加質問
□投稿者/ TomTom -(2004/10/01(Fri) 09:26:41) [ID:CLm6zLb9]
    TomTomです。

    > > 「正確にどの位置で〜」
    > デスクトップ\SRC全般\SRC2.0\俺作品\ClosingWorld\Data\include.eve:27行目
    > サブルーチンの呼び出し先ラベルである「0」がみつかりません
    > 26: Call PDT準備
    > 27: (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血 = X
    > 28:
    >
    > これがエラー文を丸々コピーしたものです。
    > これ以上正確な場所と言われても、テスト.eveの中でこの式を呼び出した時、としか言い様がありません。申し訳ないです。

    はい、これで結構です。最初は、実は27行目は素通しで「X / 6 = Y」でエラーが出ていたらどうしよう、などと考えていたので。
    正確なエラー箇所を示してもらえると、そういう悩みが少なくなるのですよー。
    #たまに巨大なコードを貼り付け、なおかつ正確なエラー箇所も示さない人がいるので困ります。


    > > 関連する処理
    >
    > 泉野明
    > 野明, 女性, レイバー , AABB, 170
    > 特殊能力
    > PN1, 1
    > PN2, 5
    >
    > コレのようにパイロットデータのオリジナルに「PN1」と「PN2」を作り、
    >
    > 「Info(Args(1),特殊能力データ,PN1)」
    >
    > を使って呼び出して、
    >
    > X = (月 * (Info(Args(1),特殊能力データ,PN1)) + 日) + Info(Args(1),特殊能力データ,PN2) + 血
    >
    > この式に代入させようと思っておりました。

    Info関数の「特殊能力データ」というのは特殊能力の「=」より右側を取得する関数です。このときパイロット特殊能力
    例えば「ネコ=猫, 1」とあった場合は、「Info(パイロット名,特殊能力データ,ネコ)」が返す値は「猫」になるわけです。

    この場合、「PN1=1, 1」「PN2=5, 1」と特殊能力に指定すればよいでしょう。


引用返信/返信 削除キー/
■15248 / inTopicNo.13)  Re[9]: 追加質問
□投稿者/ Mr.MAC -(2004/10/02(Sat) 00:54:43) [ID:245vEtqY]
    TomTomさん、毎度の回答ありがとうございます。
    おかげで式もまともに動作するようになりました。

    で、式が動作するようになったのは良いんですが、
    パターン呼び出し式が間違っているのか、パターン1のパイロット("$(Args(1))(1)")しか呼び出されません。

    PDTキャラ:
    Call 式
    If Y Mod = 0 Then
    Unit Args(3) Args(4)
    Pilot "$(Args(1))(1)" Args(2)
    Ride "$(Args(1))(1)"
    ElseIf Y Mod = 1 => 2 Then
    Unit Args(3) Args(4)
    Pilot "$(Args(1))(2)" Args(2)
    Ride "$(Args(1))(2)"



    Else
    Unit Args(3) Args(4)
    Pilot "$(Args(1))(5)" Args(2)
    Ride "$(Args(1))(5)"
    EndIf
    Return

    呼び出し式はこのような形に組んでます。
    申し訳ありませんが、またご助力お願いします。
引用返信/返信 削除キー/
■15250 / inTopicNo.14)  Re[10]: 追加質問
□投稿者/ TomTom -(2004/10/02(Sat) 04:34:42) [ID:W5AuCyaF]
    TomTomです。

    >If Y Mod = 0 Then

    If文の式の内容が、ちとグチャグチャです。
    Modというのは「Modの左の数字を右の数字で割った余り」という意味ですので、この式では意味が通りません。
    そもそも、式として成り立っていないので誤動作を起こしているのでしょう。

    (1)〜(5)までを判定する、ということなら

    If (Y Mod 5 = 0) Then
    ElseIf (Y Mod 5 = 1) Then

    このようにしていけばよいでしょう。
    #If文の式の中に計算式などを含める場合は、カッコで括らないと誤動作を起こす場合があります。

    ところで今までの質問の内容を見るに、式に関しての理解が不足しているように思います。
    いま一度(解らなければ何度でも)、ヘルプの「式」「変数」「関数」あたりをよく読み直してみてはいかがでしょうか。
    ついでにヘルプ全体を読み返しておくとベターです。
引用返信/返信 削除キー/
■15261 / inTopicNo.15)  Re[11]: 追加質問
□投稿者/ Mr.MAC -(2004/10/03(Sun) 18:29:05) [ID:245vEtqY]
    TomTomさん、いろんな質問に答えていただき本当にありがとうございます。
    教えてもらったことを参考に組んでみたものの、まだ誤作動が残っているようで上手くパイロットが呼び出せなかったりしますが、しばらくは自分の力で頑張ろうと思います。

    > 式に関しての理解が不足しているように思います。
    > いま一度(解らなければ何度でも)、ヘルプの「式」「変数」「関数」あたりをよく読み直してみてはいかがでしょうか。
    > ついでにヘルプ全体を読み返しておくとベターです。

    わかりました。頑張って理解できるようになります。

引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -