装備拡張は使えそうな目処が立った。 | Aqua Shop Gonbe(SL)日記

装備拡張は使えそうな目処が立った。

先に書いた「装備拡張スクリプト」ですが、その後検証していて、あれ?と言う事態に陥りました。

既に導入済みだった へぷたなすくろーるさんの「特定のアクター専用装備」と競合したのか?エラーが発生。
内容を両者比べて見ていた所、単純に導入位置の問題では?と思い当たり、
 Artificial Providenceさんの「装備拡張&装備拡張画面 」の下へと位置を下げたら、問題が消えました。v(^-^)v

次に拡張したスロットへ、イベントから装着させる方法の検証へと入ったのですが・・・これが上手くいかない。
再度スクリプト内容を確認しましたが、どう見ても問題無さそう。

で、アレコレと装着関数への引数の指定を変えて試した所、やっと分かりました。

具体的に書くと、以下のような感じですね。

装着関数
ch_eq(a, b, c)
a:装着対象のアクターID
b:装着スロット番号
c:防具のアイテムID

つうことで、次のような装備状態のアクターに、



次の3つの防具をイベントから装着させて、



次のような装着状態にしたい場合の話です。



勿論、メニュー画面からの装着なら、問題無くできたのですよ。
でもイベントからスクリプトで実行すると、全然装着されず、防具だけ持ち物から消えてしまったんです。

原因は、スロット番号の指定にありました。
定義として、以下のような設定をしていました。



スロット番号ですが、当初は
SLT_NAME       = ["手","足","魔法具","お守り","宝珠","紋章","特殊"](既存の設定で0~4は定義済みなので、5番以降の定義になる)

の内容から、紋章だと10を指定していました。
魔法具なら7ですね。

それが間違いでした。
これはスロットタイプの番号で、スロット番号とは次の物が該当するのでした。

SLT_ARMOR  = [2, 3, 5, 6, 10, 8, 4, 4, 7, 9, 11, 11]

これで0番は武器だから、その次から数えると、スロットタイプ10は5番か・・・
魔法具は7だから9番か・・・

てな感じで指定しましたが、これまた駄目。
で、またもアレコレ思い悩んでいたのですが、ここの定義の先頭は、実は2番だったのです。

#通常時の腕装備(デフォルトでは武器・盾)

  SLT_ARM1   = [0, 1]

と言う部分が上にあって、これは武器と盾で、こちらが0番と1番なんです。
なので、その次の部分は2番から始まるわけで、10の魔法具は6番、7の紋章は10番だったのでした。

これで引数を直して実行したら、目出度く予定通りの位置に装着されました。o(^▽^)o

ちなみに、この
ch_eq(a, b, c)する前には、当然該当防具を持っていないと駄目です。
一番最初は、自動的に付与されると思って、持っても居ない防具の装着を指示していました。
(;^_^A

さて・・・続きの制作をするには、一応最初からプレイしつつ、検証しなくてはならないな。。。

ノンビリと又やってみるかな。
(;^_^A


PS. この記事を書いている最中に地震がありました。
最初の小さな揺れの段階で、妙な予感を感じて、すぐにリビングの水槽の前に陣取って、しばらく様子を見ていたら、いきなりグラグラっと大きく揺れだして、水槽の水が溢れだしました。

慌てて、水槽系の電源を全てコンセントから外し、ガラスぶたも外して状態を見ていましたので、それほどの問題は無かったですが、やはり床はビショビショで、海水だから、必死で揺れがおさまってから拭き取ってました。
(;^_^A

なんか、最近ちょっと怖いですね。
噴火もあるし、地震もまた大きなものが起き始めている感じで。
嫌だな~。。。怖いな~。。。