2009/04/14(火)続・UOA ベンダーエージェントの(略

このために UOA 買ったぜ!ベンダーエージェントの使い方以外よくわかんねぇ。
サンプルデータを用意して、パーサーを書いた。バンダナのローカライズにも対応した。
これで行けそうだ。が、コードが凄く汚いので直す必要あり、でも疲れたので暫くやらない。

サンプルデータ:
Bulk Order Deed Blessed 重量: 1 大口 Spined Leather 高品質 個数: 15 leather skirt: 15 leather bustier: 0 leather shorts: 0 female leather armor: 0 studded bustier: 0 studded armor: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Spined Leather 高品質 個数: 15 female leather armor: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Barbed Leather 標準 個数: 15 studded gorget: 15 studded gloves: 15 studded sleeves: 15 studded leggings: 15 studded tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Horned Leather 高品質 個数: 10 studded leggings: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Horned Leather 標準 個数: 15 leather skirt: 0 leather bustier: 0 leather shorts: 0 female leather armor: 0 studded bustier: 0 studded armor: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Barbed Leather 高品質 個数: 15 leather cap: 0 leather gorget: 0 leather gloves: 0 leather sleeves: 0 leather leggings: 0 leather tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Agapite Ingot 高品質 個数: 20 platemail gorget: 0 platemail gloves: 0 plate helm: 0 platemail arms: 0 platemail legs: 0 platemail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Agapite Ingot 高品質 個数: 20 chainmail coif: 0 chainmail leggings: 0 chainmail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Barbed Leather 標準 個数: 20 bone armor: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Dull Copper Ingot 高品質 個数: 20 chainmail coif: 0 chainmail leggings: 0 chainmail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Shadow Iron Ingot 標準 個数: 20 chainmail coif: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Shadow Iron Ingot 標準 個数: 15 ringmail leggings: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Verite Ingot 高品質 個数: 20 ringmail gloves: 0 ringmail sleeves: 0 ringmail leggings: 0 ringmail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Dull Copper Ingot 高品質 個数: 20 platemail legs: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 iron ingots 高品質 個数: 20 platemail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 Dull Copper Ingot 高品質 個数: 10 plate helm: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 cloth 高品質 個数: 20 kilt: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 cloth 高品質 個数: 20 バンダナ: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 cloth 標準 個数: 20 バンダナ: 20 shirt: 20 skirt: 20 thigh boots: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 大口 Copper Ingot 標準 個数: 20 chainmail coif: 0 chainmail leggings: 0 chainmail tunic: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 iron ingots 高品質 個数: 20 ringmail gloves: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 iron ingots 高品質 個数: 20 ringmail leggings: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 iron ingots 高品質 個数: 20 ringmail leggings: 0, 価格: --
Bulk Order Deed Blessed 重量: 1 小口 iron ingots 高品質 個数: 20 ringmail sleeves: 0, 価格: --
出力:
出力内容は、素材-ブツ-品質-数 で、これが内部のハッシュDB のキー名になる。ブツのスペースはアンダースコアに変換してある。
spined-leather_female_large-HQ-15
spined-female_leather_armor-HQ-15
barbed-studded_large-NQ-15
horned-studded_leggings-HQ-10
horned-leather_female_large-NQ-15
barbed-leather_male_large-HQ-15
agapite-plate_large-HQ-20
agapite-chain_large-HQ-20
barbed-bone_armor-NQ-20
dull_copper-chain_large-HQ-20
shadow_iron-chainmail_coif-NQ-20
shadow_iron-ringmail_leggings-NQ-15
verite-ring_large-HQ-20
dull_copper-platemail_legs-HQ-20
iron-platemail_tunic-HQ-20
dull_copper-plate_helm-HQ-10
iron-fences_large-HQ-15
shadow_iron-tear_kite_shield-NQ-10
leather-leather_male_large-HQ-20
leather-studded_armor-HQ-15
cloth-kilt-HQ-20
cloth-bandana-HQ-20
cloth-girl_large-NQ-20
copper-chain_large-NQ-20
iron-ringmail_gloves-HQ-20
iron-ringmail_leggings-HQ-20
iron-ringmail_leggings-HQ-20
iron-ringmail_sleeves-HQ-20
ここまで整形すれば、この形のデータを処理する機能はすでに付いてるので後は本体にマージするだけ。

しっかし、コンピュータが処理するのに優しくないデータを処理するといろいろ例外的な処理が必要になって無駄にコードが増える。そうすると、
  • 気持ち的にすごい疲れる
  • 後の仕様変更やローカライズによるデータの変化の可能性を考えると戦々恐々
で、現状の汚いコードだとデータが変わった時の修正箇所がワケワカメ。


確認中に既存のスクリプトにバグが2個見つかりました。
  • ringmail glove がありませんでした。
  • plate helm が platemail helm になっていました。
直していません。