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

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

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

■12892 / inTopicNo.1)  関係のないコマンドが呼び出される。
  
□投稿者/ Chico -(2004/03/16(Tue) 21:14:17)
    どうも、Chicoです。
    ----今回の質問------------------------------------------

    現在作成中の設計システム、および武器廃棄システムにてエラーが出ます。
    エラーは下記の通り。

    Lib\スペシャルパワー.eve:106行目
    サブルーチンの呼び出し先ラベルである「SPアニメ_」がみつかりません
    105: Else
    106: Call ("SPアニメ_" & aname[i]) uid1 uid2
    107: EndIf

    そして、両プログラムを記載します。


    -----設計システム---------------------

    設計メニュー:
    <.\Lib\設計SET.eve>
    ForEach 味方
    If NotInfo(対象ユニットID,ユニットクラス) = 戦艦 Then
    If IsEquiped(対象ユニットID,LvAce) = 1 Then
    Set 設計ユニット[対象ユニット] 対象ユニット
    EndIf
    EndIf
    Next
    Set 設計ユニット[終了] 終了
    Ask 設計ユニット どれを? 拡大
    Switch 選択
    Case 終了
    Continue
    Case Else
    ユニットA = 選択
    UnSet 設計ユニット[選択] 選択
    Talk
    次のユニットをどうぞ
    End
    Ask 設計ユニット どれを? 拡大
    ユニットB = 選択
    If 設計[ユニットA,ユニットB,1] Then
    Talk
    $(設計[ユニットA,ユニットB,1])ができますが、よろしいですか?:選択したユニットはなくなります。
    End
    Ask OK?
    はい
    いいえ
    End
    Switch 選択
    Case 1
    Set 完成ユニット (設計[ユニットA,ユニットB,1])
    RemoveUnit ユニットA
    RemoveUnit ユニットB
    Unit 完成ユニット 0
    アイテム装備 Lv1
    Talk
    $(完成ユニット)が完成しました。:$(ユニットA & ユニットB)は設計素材として処分されました。
    End
    UnSet 設計ユニット
    Goto 設計メニュー
    Case 2
    Goto 設計メニュー
    UnSet 設計ユニット
    EndSw
    Else
    Talk
    できませんでした。
    End
    Goto 設計メニュー
    EndIf
    EndSw
    Exit

    -------武器廃棄システム-------------------------------------------

    武装廃棄:
    Set 何回? 0
    Set 武器の数 Info(ユニット,対象ユニットID,武器数)
    For i = 1 to 武器の数
    Set 武器の名前[info(対象ユニットID,武器,i)] info(対象ユニットID,武器,i)
    Next
    選択:
    Ask "武器の名前" "どれを廃棄しますか?" "拡大" "キャンセル可"
    Set Swid 選択
    Switch 選択
    Case Else
    Talk システム
    本当によろしいですか?
    End
    Ask OK?
    はい
    いいえ
    End
    Switch 選択
    Case 1
    Disable Unit(対象ユニットID) 選択武器君
    Incr 何回?
    Set 封印された武器[選択武器君] 選択武器君
    UnSet 武器の名前
    UnSet 武器の数
    Case 2
    Goto "選択"
    EndSw
    EndSw
    Return

    **ユニットコマンド 武器廃棄 味方:
    **ユニットコマンド 味方 武装廃棄:
    Goto "武装廃棄"
    Exit

    *エピローグ:
    ForEach 味方
    Enable 封印された武器
    Next
    Exit





    初歩的なミスだったら、済みません。
    よろしくお願いします。
引用返信/返信 削除キー/
■12895 / inTopicNo.2)  Re[1]: 関係のないコマンドが呼び出される。
□投稿者/ GAMEMASTER -(2004/03/16(Tue) 21:28:07)
http://nagoya.cool.ne.jp/gamemaster/
     GAMEMASTERです。

    > 現在作成中の設計システム、および武器廃棄システムにてエラーが出ます。
    > エラーは下記の通り。
    >
    > Lib\スペシャルパワー.eve:106行目
    > サブルーチンの呼び出し先ラベルである「SPアニメ_」がみつかりません
    > 105: Else
    > 106: Call ("SPアニメ_" & aname[i]) uid1 uid2
    > 107: EndIf
    >
    > そして、両プログラムを記載します。
    >
    > (後略)

     Returnコマンドで終了しているサブルーチンに対してGoToコマンドが使用されていますが、ヘルプに記載されている通りサブルーチンにGoToコマンドが関与していると正常に動作しません。
     ReturnコマンドをExitコマンドに置き換えましょう。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■12897 / inTopicNo.3)  Re[2]: 関係のないコマンドが呼び出される。
□投稿者/ Chico -(2004/03/16(Tue) 21:39:14)
    武器廃棄システムについてはご指摘どおり変更すると直りました。
    ありがとうございます。

引用返信/返信 削除キー/
■12900 / inTopicNo.4)  Re[3]: 関係のないコマンドが呼び出される。
□投稿者/ 野牛 -(2004/03/16(Tue) 22:11:42)
    設計メニューについて,Continueで終わっているところから見るとインターミッションコマンドのようですが,そのファイル内にラベル「プロローグイベント:」はありますでしょうか?
    ヘルプのIntermissioncommandの項に,

    「fileは通常のイベントファイルと同様に実行されます。プロローグイベントにコマンドを配置し、インターミッションコマンドの処理を行ってください。」

    とありますので,インターミッションコマンドに関してはプロローグラベルが必須な気がします(確かめてはいませんが)。
    設計メニューラベルの上にプロローグラベルを配置してみるとどうでしょうか。

    あと,「設計メニュー」内で読み込んでいる「設計SET.eve」の内容がわかりませんが,そこで行っている処理が原因ということはありませんでしょうか?
引用返信/返信 削除キー/
■12903 / inTopicNo.5)  エラーは消えました。しかし・・・
□投稿者/ Chico -(2004/03/17(Wed) 19:53:46)
    エラーは発生しなくなりました。
    しかし、他の問題が発生しました。

    Set 設計[Zガンダム,ガンダム,1] ZZガンダム
    でセットし、
    選択したユニットを[ユニットA]と[ユニットB]という変数へ入れます。
    If 設計[ユニットA,ユニットB,1] = 設計一覧 Then
    で判定して合ったら設計イベントを発生しようと思ったのですが、Zガンダムとガンダムを選択してもイベントは発生してくれません。
    イベントデータを掲示するのでアドバイスお願いします。

    ###設計メイン.eve###################################
    <\Lib\設計SET.eve>
    プロローグ:
    設計SET

    スタート:
    ForEach 味方 全て
    Set 設計ユニット[対象ユニットID] 対象ユニットID
    Next
    Set 設計ユニット[終了] 終了
    Ask 設計ユニット どれを? 拡大
    Switch 選択
    Case 終了
    Continue
    Case Else
    ユニットA = 選択
    UnSet 設計ユニット[選択] 選択
    UnSet 選択
    Talk
    次のユニットをどうぞ
    End
    Ask 設計ユニット どれを? 拡大
    ユニットB = 選択
    If 設計 = 設計一覧 Then
    Talk
    $(設計[ユニットA,ユニットB,1])ができますが、よろしいですか?:選択したユニットはなくなります。
    End
    Ask OK?
    はい
    いいえ
    End
    Switch 選択
    Case 1
    Set 完成ユニット (設計[ユニットA,ユニットB,1])
    RemoveUnit ユニットA
    RemoveUnit ユニットB
    Unit 完成ユニット 0
    アイテム装備 Lv1
    Talk
    $(完成ユニット)が完成しました。:$(ユニットA & ユニットB)は設計素材として処分されました。
    End
    UnSet 設計ユニット
    Goto 設計メニュー
    Case 2
    UnSet 設計ユニット
    Goto スタート
    EndSw
    Else
    Talk
    できませんでした。
    End
    Goto スタート
    EndIf
    EndSw
    Exit


    ###設計SET.eve###################################

    設計SET:
    Set 設計[Zガンダム,ガンダム,1] ZZガンダム

    Set 設計[ZZガンダム,Zガンダム,1] νガンダム

    Set 設計[νガンダム,ジェガン,1] Hi−νガンダム

    Set 設計[エヴァ初号機,ジャベリン,1] エヴァ参号機

    設計一覧:
    Set 設計一覧[エヴァ初号機,ジャベリン,1] エヴァ参号機
    Set 設計一覧[Zガンダム,ガンダム,1] ZZガンダム
    Set 設計一覧[ZZガンダム,Zガンダム,1] νガンダム
    Set 設計一覧[νガンダム,ジェガン,1] Hi−νガンダム
    Exit








引用返信/返信 削除キー/
■12904 / inTopicNo.6)  Re[5]: エラーは消えました。しかし・・・
□投稿者/ 野牛 -(2004/03/17(Wed) 20:45:51)
    ○問題の条件判定の部分なんですが・・・

     If 設計 = 設計一覧 Then

     の部分ですよね。これだと,ユニットAもユニットBも,この判定式に全く関わってないんですが・・・
     ユニットAとユニットBを選択し,その組み合わせで作れる機体が存在するかどうかで分岐させるのでしたら,配列の因数を省略せず,

     If 設計[ユニットA,ユニットB,1] != 0 OR 設計[ユニットA,ユニットB,1] != 0 then

     でよいと思います。


    ○追加1
     「設計SET」はサブルーチンですので,ExitではなくReturnで閉じましょう。
     そうでないと不具合が起きるかもしれないと,ヘルプのCallの項に書いてあります。

    ○追加2
     「スタート:」というラベルは,通常,戦闘開始前処理に使われるものであるので,別の名前にしたほうが良いと思います。このままでは,「プロローグイベントを閉じないままスタートイベントを定義しているイベントファイル」になっていますので。

    ○追加3

     $(ユニットA & ユニットB)は設計素材として処分されました。

     の部分ですが,半角の&は,文字列結合用演算子ですので,Zとガンダムを選択した場合,そのままでは

     「Zガンダムガンダムは設計素材として処分されました。」

     といわれると思うのですがいいんでしょうか?

     「Zガンダム&ガンダムは…」

     と表示したいのであれば,

     $(ユニットA & & & ユニットB)

     とする必要があるかと。真中の&は全角,その横の2個は半角(演算子)です。
解決済み!
引用返信/返信 削除キー/
■12905 / inTopicNo.7)  Re[6]: エラーは消えました。しかし・・・
□投稿者/ Chico -(2004/03/17(Wed) 22:57:23)
    基礎の部分の開発は現在的に完了しました。
    残りはバグの発見、そして設計データの作成のみとなりました。
    皆様のお陰で長年の夢がかないそうです。
    では、ありがとうございました。
解決済み!
引用返信/返信 削除キー/
■12906 / inTopicNo.8)  Re[7]: エラーは消えました。しかし・・・
□投稿者/ 野牛 -(2004/03/18(Thu) 08:43:14)
    あ,自分のレスにミス発見。

     If 設計[ユニットA,ユニットB,1] != 0 OR 設計[ユニットB,ユニットA,1] != 0 then

    が正しい判定文でした。
    ユニットAとユニットBのどちらを先に選んでもOKになってます。 
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -