所持アイテム記憶・呼出



コンセプト パーティー変更時に所持アイテムを無くしたい。
完成すると パーティーごとに所持アイテムを管理できる。




ストーリーが同時進行するパーティーのアイテム管理にはデータベースで設定している「最大アイテム数」×「パーティー数」分の変数が必要になってくる。つまり、三組のパーティーと最大アイテム数が100個の場合には必要とする変数は「300個」ということ。膨大な変数が必要となってくる。また、アイテム数取得には一個ずつイベントを入れないといけないので「キーボードの操作を記録するソフト」は必需品。これが無いと死ぬ。俺が使っているのは「RecKey」というやつです。



アイテム

アイテム

「所持アイテム格納」イベントから説明します。
このイベントで使う変数は二つ。「アイテム格納先」と「全アイテム数」です。この二つの内容としてはアイテムを格納する変数番号指定用の変数と格納したアイテムの種類数(データベースのアイテム最大数と同数)を保管します。
最初の「1001」を代入しているのはアイテムの格納先を変数番号「1001番」から開始することを意味します。ウェイトはこの方がうまく行ったので入れました。消してもうまく動いたという方は消しても問題ないです。
次に「変数の操作」で所持アイテムを「アイテム格納先」の値の番号の変数に代入します。その後「アイテム格納先」に「1」を加算します。これで次の変数番号にアイテムを代入します。
後はこれをデータベースで設定したアイテム数分繰り返すだけです。余白でも入れます。後で増やしても対応できるように。ちなみに何百個もマウスで貼り付けてアイテムを変えて・・・というのはハッキリ言って無理なのでここで「キーボードの操作内容を繰り返してくれるソフトウェア」を使用します。俺が使っているのは「RecKey」というやつです。ベクターかどっかで探してください。
二枚目の画像がこのイベントの最後の部分で、アイテム数を指定した変数番号に格納して「アイテム格納先」変数を加算して最後に「全アイテム数」を取得します。まず、加算が終わった「アイテム格納先」の値を「全アイテム数」に代入します。そして、一番最初に「アイテム格納先」に代入した値「1001」を減算します。これで現在のパーティーの所持アイテムとアイテムの数が保存されました。
複数パーティーのアイテムを保存するには最初の「1001」を代入した所を条件分岐で「〜がパーティーにいる」とかの条件で格納先の変数番号を変えてやることで対応できると思います。最後の部分も一応条件分岐で変えると後でエラーになりにくく出来ると思います。

アイテム

アイテム

「アイテム全消去」の説明をします。
ここで新しく使う変数は「格納先アイテムID」です。これは「データベース」のアイテムID指定用の変数です。最初に「格納先アイテムID」に「1」を代入します。その後繰り返し処理で「アイテムの増減」で「格納先アイテムID」の番号のアイテムを「99」減らします。そして「格納先アイテムID」に「1」を加算して次のアイテムを無くします。条件分岐で「格納先アイテムID」が先に処理した「所持アイテム格納」イベントで取得した「全アイテム数」より「大きい」と繰り返し処理を中断・イベントを終了します。

最後に「所持アイテム呼出」について説明します。
ここで「格納アイテム数」という変数が出てきます。これは「アイテム格納先」の番号に格納された値を「格納アイテム数」に代入してアイテムを増やす処理に使います。
繰り返し処理で最初に「アイテム格納先」の番号の変数を「格納アイテム数」に代入します。次に「アイテムの増減」で「格納先アイテムID」の値のアイテムを「格納アイテム数」だけ増やします。ここまでで「所持アイテム格納」と「アイテム全消去」を実行して各変数に値が格納されていることを前提とします。つまり、格納先の変数も全アイテム数も「最大値」になっているはずです。
で、「アイテム格納先」と「格納先アイテムID」を「1」減算して条件分岐で「1001」より「小さい」と繰り返し処理・イベントを終了します。この条件分岐も「〜がパーティーにいる」などの分岐で終了する変数番号「1001」を自在に変えてやることで複数のパーティーに対応できると思います。







テンプレートのpondt