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

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

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

■19911 / inTopicNo.1)  ハードポイントごとに装備アイテム数を参照する方法
  
□投稿者/ M -(2007/05/05(Sat) 13:16:11) [ID:HeJo2Hdx]
    一定の条件を満たすことで、特定の装備枠(ハードポイントであらかじめ作成)に自動的にアイテムを装備させるシステムを作っています。

    実際に作成中の内容を例に説明します。ちなみにロマサガの技ひらめきシステムの仮再現です。

    レオン
    レオン, (ロマサガ2(レオン専用)), 1, 2
    陸, 6, M, 4000, 190
    特殊能力
    ハードポイントLv2=武器
    武器クラス=剣 槍 斧 弓
    ハードポイントLv4=技
    2000, 50, 500, 50
    AABA, SagaR2_LeonU.bmp

    ↑のようなユニットが、敵に攻撃をした際、一定確率で(細かい内容は省きます)

    なぎ払い
    なぎ払い, 技, 技
    特殊能力なし
    0, 0, 0, 0, 0
    なぎ払い, 1000, 1, 1, +0, -, 5, -, AABA, +0, 突

    ↑のようなアイテムを自動的に装備するわけです。

    ---
    *攻撃 レオン 敵:
    〜〜
    Item なぎ払い
    Equip レオン なぎ払い
    Fix なぎ払い
    〜〜
    Exit
    ---

    その際、すでに装備枠(この場合「技」スロット)が一杯だった場合、新しく装備するアイテムの代わりに、一番古いアイテムが装備枠からはずされてしまいます。
    これを防ぐために、装備枠が一杯の場合は自動的にアイテムを装備させる処理を実行させないようにしたいのですが、Info関数では装備中の全種類のアイテム数をまとめて参照することしかできないようでした。
    ハードポイントごとに装備中のアイテムの数を参照する方法はないものでしょうか?
引用返信/返信 削除キー/
■19913 / inTopicNo.2)  Re[1]: ハードポイントごとに装備アイテム数を参照する方法
□投稿者/ axiom -(2007/05/05(Sat) 17:08:11) [ID:GQSzpbQo]
http://www.lilie.jp/itemworld/
    2007/05/05(Sat) 17:10:45 編集(投稿者)

    ちょっと複雑な処理になりますが、一応可能だと思います。

    必要になるのは
     (1) 装備している"技アイテム"の数
     (2) 装備可能な"技アイテム"の最大数
    ですので、分けて考えましょう。

    (1)は、技装備する人の装備アイテム数を調べます。
    あとは対象者のi番目に装備しているアイテムの
    装備個所が"技"だったら、カウントを取る処理を作りましょう。

    (2)は、技装備する人の特殊能力数を調べます。
    あとは対象者のi番目の特殊能力が"ハードポイント"で
    特殊能力データ(=の後ろの部分)が"技"だったら、
    特殊能力レベルのカウントを取る処理を作りましょう。

    Info関数のデータ区分には「ユニット」を指定してください。
    アイテムによって追加されているものも対象となります。


    ちなみに以下は即興で作った具体例。
    Args(1)には"技"装備可能なユニットのUnitIDを入れてください。
    (動作確認してませんが、大筋であってるはずです)


    (1) 装備個所が"技"なアイテムの装備数を調べる

    装備技数 = 0
    For i = 1 To CountItem(Args(1))
     If Info(アイテム,Item(Args(1),i),装備個所) = "技" Then
      装備技数 = 装備技数 + 1
     Endif
    Next

    (2) "ハードポイント=技"の特殊能力レベルを調べる

    技最大数 = 0
    For i = 1 To Info(ユニット,Args(1),特殊能力数)
     If Info(ユニット,Args(1),特殊能力,i) = "ハードポイント" And _
       Info(ユニット,Args(1),特殊能力データ,i) = "技" Then
      技最大数 = 技最大数 + Info(ユニット,Args(1),特殊能力レベル,i)
     Endif
    Next

    Info関数のデータ区分を省略すると、
    予期せぬ動作を引き起こしかねないので、
    普段から省略しないようにしましょう。

    今回の場合「ユニットデータ」を
    自動的に参照されると正しく動作しません。
引用返信/返信 削除キー/
■19914 / inTopicNo.3)  Re[2]: ハードポイントごとに装備アイテム数を参照する方法
□投稿者/ M -(2007/05/05(Sat) 18:01:39) [ID:HeJo2Hdx]
    教えていただいた例を参考に(というかほとんどそのまま)試してみたところ、無事作動しました!完璧です。
    Forコマンドはまだ使いこなせていないので、こういう使い方ができるのかと、感心させられました。奥が深いですね…。
    仮にヒントだけ貰っていたとしても、今の僕では作り上げられなかったと思います。わざわざ正確な例まで提示していただいて本当に助かりました。どうもありがとうございました!
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -