独学ツクールブログ

ツクールでのオリジナル作品の話を中心に創作関係の徒然な語り。

<< RGSS奮闘記29:アイテムを分類する11 | main | 『LOST』その15:発注 >>

[ - ] スポンサーサイト

一定期間更新がないため広告を表示しています

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] RGSS奮闘記30:アイテムを分類する・おまけ

これだけ頑張って作った素材だが、実は導入には苦労が伴う。
そうだね属性設定だね。
ということで、おまけとして属性一括変更スクリプトネタを。



さて、改造の説明の中で説明したとおり、アイテムと武器の属性はelement_set、防具の属性はguard_element_setという名の配列に格納されている。
ということは、ここにまとめてIDをぶち込む処理を作ってしまえばいい。

まずは、属性を設定したいアイテムのIDの配列を作ってしまおう。

hash = {
21 => [0, 1, 2, 12],
22 => [4, 5, 6, 9],
23 => [10, 11, 13, 15],
}
という具合である。
ここで、「=>」の左(キー)は属性ID、右(値)はその属性を付与したいアイテムのIDの配列である。

そして、データの読み込み。
items = load_data("Data/Items.rxdata")
そしてeachを使って、属性IDを属性の配列にぶち込む。
items.each {|item|
  if item && item.name != ""
    hash.each_pair {|id, array|
      if array.include?(item.id)
        item.element_set.unshift(id).sort!
      end
    }
  end
}
データの先頭は空(nil)なので、ifでそれをスキップする。また、名前が空白なのは恐らくアイテム欄での区切りスペースなどだろうからそれも弾く。
each_pairメソッドを使い、キーと値を同時に取得して回す。
arrayには「=>」の右の配列が順番に入り、include?メソッドは引数がその配列に含まれているかどうかを返す。
含まれていれば、unshiftメソッドでidに入っている属性IDをelement_setに追加。sort!メソッドで番号順に並べなおす。
ちなみにsort!は必須ではないが一応実行しているものである。

最後にデータをファイルに保存しなおす。
save_data(items, "Data/Items.rxdata")
まとめると下記のとおりである。
hash = {
21 => [0, 1, 2, 12],
22 => [4, 5, 6, 9],
23 => [10, 11, 13, 15],
}
items = load_data("Data/Items.rxdata")
items.each {|item|
  if item && item.name != ""
    hash.each_pair {|id, array|
      if array.include?(item.id)
        item.element_set.unshift(id).sort!
      end
    }
  end
}
save_data(items, "Data/Items.rxdata")
武器と防具についても同様である。ただし防具はelement_setではなくguard_element_setであることだけ異なる。

このスクリプトは素材ページにおまけとして記載しておく。


タグ:
[Ruby] [RGSS] [素材] [Scene_Item]

| 2011.02.06 Sunday 19:43 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 19:43 | - | - |

コメント

コメントする






この記事のトラックバックURL

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< October 2019 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM