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

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

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

■2896 / inTopicNo.1)  変数が読めない^^;
  
□投稿者/ ベルティゴ -(2002/04/13(Sat) 14:07:59)
http://olive.zero.ad.jp/ast/
    久しぶりに書き込みするベルティゴです。

    えぇと、タイトルの通りなのですが・・・
    実は自分が今大改造中のシナリオの新システムとして、
    マップ上で放棄したアイテムの座標を記録し、
    味方がその場に行くと回収し、装備する事が出来ると言う物なのですが、
    その座標を記録しておく変数がうまく動作しないのです。

    Set 装備放棄座標[X(),Y()] アイテム名

    で座標を記録するのですが、会話中に

    $(装備放棄座標[X(対象ユニット),Y(対象ユニット)])

    で読み出すことが出来ないのです。
    $()内の記述がそのまま表示されてしまいます。

    普通に見たところ何ら問題は無さそうなので、
    他の記述がおかしいのかも知れませんが、
    まず第一として上のような変数定義は間違っているかどうかをご指摘下さい。

    それでは。
引用返信/返信 削除キー/
■2899 / inTopicNo.2)  Re[1]: 変数が読めない^^;
□投稿者/ 宇宙世紀0079 -(2002/04/13(Sat) 16:45:21)
    毎度、宇宙世紀です。

    以下のような書き方で試したところ、予告編として表示されました。
    参照する変数に代入できていないのではないかと思います。


    Set 装備放棄座標[X(対象ユニット),Y(対象ユニット)] 予告編
    Talk ナレーター
    現在、$(装備放棄座標[X(対象ユニット),Y(対象ユニット)])にいます
    End

    それでは。
引用返信/返信 削除キー/
■2900 / inTopicNo.3)  Re[2]: 変数が読めない^^;
□投稿者/ ベルティゴ -(2002/04/14(Sun) 00:25:36)
http://olive.zero.ad.jp/ast/
    回答ありがとうございます。
    色々調べてみましたが、やはりうまく出来ません。
    今回は少し詳しく抜き出します。

    If CountItem(対象ユニット) <> 0 Then
    For i = 1 To CountItem(対象ユニット)
    If Info(アイテム,Item(対象ユニット,i),アイテムクラス) <> 固定 Then
    Set 所持装備[j] Item(対象ユニット,i)
    Incr j
    EndIf
    Next
    Endif

    ↑まずこれで自分の装備を調べ、リストアップします。

    Set 装備放棄座標[X(対象ユニット),Y(対象ユニット)] 選択装備
    RemoveItem 対象ユニット 選択装備

    ↑選択された装備を座標を配列に加えた変数に書き出し、
    ユニットから外します。

    行動終了 味方:
    If 装備放棄座標[X(対象ユニット),Y(対象ユニット)] <> 0 Then

    ↑これが問題で、行動終了した味方ユニットの座標と同じ配列に、
    何らかの装備が代入されていれば・・・ という事なのですが、
    放棄した箇所に味方が乗っても、微動だにしません。

    もしかして、何か重大な勘違いをしているんじゃないかと、
    そんな気がしてるのですが・・・
    お忙しいとは思いますが、お気付きの点などありましたら、
    是非ご教授下さい。

    それでは。
引用返信/返信 削除キー/
■2901 / inTopicNo.4)  Re[3]: 変数が読めない^^;
□投稿者/ 宇宙世紀0079 -(2002/04/14(Sun) 02:11:47)
    毎度、宇宙世紀です。

    一度、テストできる形のファイルをアップするなりしていただけませんでしょうか?
    みさせていただいた限りでは問題が無いように思えます。
    何か言える事があるとすれば対象ユニットよりは、対象ユニットIDの方が良いのではないか程度です。

    それでは。
引用返信/返信 削除キー/
■2902 / inTopicNo.5)  Re[3]: 変数が読めない^^;
□投稿者/ schnee -(2002/04/14(Sun) 02:14:27)
    どうも、schneeです。
    ちょっと気になったので、少々。

    >If Info(アイテム,Item(対象ユニット,i),アイテムクラス) <> 固定 Then
    >Set 所持装備[j] Item(対象ユニット,i)
    >Incr j

    の部分で使っているjは、Setを使って設定してありますか?
    設定していないと、Incrの前に既にjを使っているためにユニットが装備している
    一番目のアイテムが配列に格納されなくなり(配列のゼロ番には何も入らない)、
    所持装備[1]に二番目の装備アイテムが格納されるようです。
    一応は動作させてはみましたが、Local宣言だけでも上手くは動かないようです。
    動作不良はそれが原因なのではないでしょうか。
    IncrをSetの前の行に持ってくれば、宣言しなくても動くかも知れません。
    (現状でSet jをすると、jは1つ余計に大きくなるっぽいですし。)
    私の勘違いかもしれませんが、確認してくださいませんか?
    あと、序にもう一つ。
    もしインクルにするなら、*行動終了の方が良いんじゃないかなぁと思います。
    当たり前すぎるかもしれませんが一応。

    今回はこの辺りで失礼します。
引用返信/返信 削除キー/
■2915 / inTopicNo.6)  Re[4]: 変数が読めない^^;
□投稿者/ ベルティゴ -(2002/04/14(Sun) 17:00:20)
http://olive.zero.ad.jp/ast/
    お二人の意見を参考にさせていただきましたが、やはり解決出来ませんでした。
    宇宙世紀さんの言うように、製作中のシナリオを丸ごとアップしました。
    あくまでテスト中であるために、途中までしかやってないものや、
    完全に動かないものもありますので、他の所はいじらないようにお願いします。

    それでは申し訳ありませんが、よろしくお願いします。
    http://olive.zero.ad.jp/ast/astraea.lzh
引用返信/返信 削除キー/
■2929 / inTopicNo.7)  量が多いですが・・・
□投稿者/ schnee -(2002/04/14(Sun) 22:56:32)
    私なりに書き換えたスクリプトを張っておきます。
    (If>Switchとか、変数の置き換えとか)
    尚、キャラ毎の設定部分は省略してあります。

    現状ですと、装備個所を二つ消費するアイテム(大型アイテム?)
    を装備していてもアイテムを一個と判断し装備しまう(結果、大型アイテムは外れる)
    ので、その辺は改良せねばなりませんが。
    他にもバグや欠陥があるでしょうが、参考程度に使ってください、ベルティゴさん。
    (iとかNumberとかはローカル変数宣言した方が安全かもしれません。<心配性)

    #####

    Set 放棄物 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Set 放棄物装備個所 Info(放棄物, 装備個所)
    Set 使用スロット数 0

    If 放棄物 <> "" Then
    Talk2 無人 「$(放棄物)」が放棄されています。
    ClearPicture
    Refresh

    Ask 回収して装備しますか?
    はい
    いいえ
    End

    Switch 選択
    Case 1
    Set Number CountItem(対象ユニット)
    If Number > 0 Then

    For i = 1 To Number
    If Info(Item(対象ユニット, i), 装備個所) = 放棄物装備個所 Then
    Incr 使用スロット数
    EndIf
    Next
    Endif

    Switch 放棄物装備個所
    Case "ハンドウェポン"
    If ハンドウェポン数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    Case "肩部オプション"
    If 肩部オプション数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    Case "大腿部オプション"
    If 大腿部オプション数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    Case "脛部オプション"
    If 脛部オプション数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    Case "追加装甲ラッチ"
    If 追加装甲ラッチ数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    Case "マガジンラッチ"
    If マガジンラッチ数[Unit(対象ユニット)] > 使用スロット数 Then
    Talk2 無人 「$(放棄物)」を装備しました。
    ClearPicture
    Refresh

    Item 放棄物
    Equip 対象ユニット 放棄物
    UnSet 装備放棄座標[X(対象ユニット),Y(対象ユニット)]
    Else
    Talk2 無人 「$(放棄物)」を装備する為に必要なスロット数が不足しています。
    ClearPicture
    Refresh
    EndIf
    EndSw
    Case 2
    EndSw
    EndIf

    Exit

引用返信/返信 削除キー/
■2931 / inTopicNo.8)  Re[5]: 変数が読めない^^;
□投稿者/ ヒロキ -(2002/04/15(Mon) 02:05:37)
    こんばんは、ヒロキです。

    該当するっぽい個所をいじってみました。
    一応動作確認はしたんで、参考にでもして下さい。

    それでは

    #Data\ユニットコマンド.eve
    ユニットコマンド 装備放棄 味方 (装備放棄座標[X(),Y()] = ""):

    Local 所持装備
    Set j 1

    For i = 1 To CountItem(対象ユニット)
    If Info(アイテム,Item(対象ユニット,i),アイテムクラス) != "固定" Then
    Set 所持装備[j] Item(対象ユニット,i)
    Incr j
    EndIf
    Next

    Set 所持装備[j] キャンセル

    Ask 所持装備 どの装備を放棄しますか?
    Set 選択装備 所持装備[選択]

    If 選択装備 != キャンセル Then
    Talk2 無人 「$(選択装備)」を放棄します。
    Redraw

    Confirm よろしいですか?

    If 選択 = 1 Then
    Set 装備放棄座標[X(),Y()] 選択装備
    Talk ナレーター
    ($(X()),$(Y())) に $(装備放棄座標[X(),Y()])を放棄しました。
    End
    Talk2 無人 「$(選択装備)」を放棄しました。
    Redraw
    RemoveItem 対象ユニット 選択装備
    EndIf
    EndIf

    Exit

    ユニットコマンド 装備回収 味方 (装備放棄座標[X(),Y()] != ""):
    *行動終了 味方:
    If 装備放棄座標[X(),Y()] = "" Exit

    Local ArmPoint 使用スロット数
    Local ハンドウェポン数 肩部オプション数 大腿部オプション数 脛部オプション数 追加装甲ラッチ数 マガジンラッチ数

    使用スロット数 = 0

    Switch Unit()
    Case エターシェル(ハリオ機) エターシェル(レアリィ機)
    Set ハンドウェポン数 2
    Set 肩部オプション数 0
    Set 大腿部オプション数 1
    Set 脛部オプション数 0
    Set 追加装甲ラッチ数 0
    Set マガジンラッチ数 (2 + 機体改修回数[Unit(),ラッチ])
    Case ボナパルト(アニー機)
    Set ハンドウェポン数 2
    Set 肩部オプション数 0
    Set 大腿部オプション数 1
    Set 脛部オプション数 1
    Set 追加装甲ラッチ数 1
    Set マガジンラッチ数 (4 + 機体改修回数[ボナパルト(アニー機),ラッチ])
    Case ALEX-W
    Set ハンドウェポン数 2
    Set 肩部オプション数 1
    Set 大腿部オプション数 1
    Set 脛部オプション数 1
    Set 追加装甲ラッチ数 0
    Set マガジンラッチ数 (3 + 機体改修回数[ALEX-W,ラッチ])
    EndSW

    Talk2 無人 「$(装備放棄座標[X(),Y()])」が放棄されています。
    Redraw

    ArmPoint = Info(アイテム,装備放棄座標[X(),Y()],装備個所)

    Confirm 回収して装備しますか?

    If 選択 = 1 Then
    For i = 1 To CountItem(対象ユニット)
    If Info(アイテム,Item(対象ユニット,i),装備個所) = ArmPoint Then
    Incr 使用スロット数
    EndIf
    Next

    If Eval("$(ArmPoint)数") > 使用スロット数 Then
    Talk2 無人 「$(装備放棄座標[X(),Y()])」を装備しました。
    Redraw

    Item 装備放棄座標[X(),Y()]
    Equip 装備放棄座標[X(),Y()]
    UnSet 装備放棄座標[X(),Y()]
    Else
    Talk2 無人 「$(装備放棄座標[X(),Y()])」を装備する為に必要なスロット数が不足しています。
    Redraw
    EndIf
    EndIf

    Exit

引用返信/返信 削除キー/
■2932 / inTopicNo.9)  Re[6]: 変数が読めない^^;
□投稿者/ ベルティゴ -(2002/04/15(Mon) 14:21:17)
http://olive.zero.ad.jp/ast/
    回答どうもありがとうございます。
    動作不良のおかげでデバッグが及ばなかった後半部まで
    手直ししていただけて感謝しています。
    お二人のおかげでこのインクルードを動作させることが出来ました。
    特にヒロキさんの方は、まだこっちが理解できない部分もあるので、
    これが解かる様にもっと勉強したいと思います^^;

    それでは。
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -