HTの「創作奮闘記」

絵も描きたい、ゲームも作りたい素人DTMer HTの奮闘記

RPGツクールMV「traitsやeffect等の連想配列の取得に書くスクリプト」

f:id:htmusmaker:20171007055227p:plain

 

 

 

困難!スクリプト探し…。

 

初心者の自分では検索しても関連する話さえ見つけられなかった

幻級と言っても過言ではない そんな

「特徴」「使用効果」などの

 

特殊なデータの取得法をシェアしたいと思います。

 

 

誰も必要としないのかもしれないから

関連する記事がネット上にないのかもしれないですけど

ボクは自作システムの関係で必要だったのでっ!

 

 

 

連想配列なるもの。

 

長く調べ続けて ようやく知ることが出来たのは、

 

traits(特徴)などは連想配列という、

MVのヘルプで書かれてる「array配列)」の一種

 

その一つだけでした。

それ以外(特に肝心の書き方について)は一切情報なし。



 

○○(アクターやクラスなど)の特徴の内容取得や

クラスのレベル別 習得スキル情報の取得

アイテムの使用効果などがコレにあたるっぽいですね。

 

 

実際の書き方については検索結果すべてを見尽くしても

(そもそも この件でヒットした数が極端に少なかった)

一切 出てきません。

 

 

…もしプログラムしたこと無い人にも常識レベルのことで、

誰でも知ってなきゃおかしい

(記事にしなきゃいけないレベルじゃない)

とかだったら すみません…。

 

自分には一度も見たことが無い話でしたので、

記事にすることにしました。

 

 

 順番に。

 

 

 

・アクター1の特徴、一番上にある情報のコード。※

「$dataActors[1].traits[0].code」

 

※これを取得してるっぽいです。

f:id:htmusmaker:20171006225337p:plain

どうやら5列目の「装備」の

5段目にある「スロットタイプ」を取得してるようですね。

この場合だと、「55」と値が返されるみたい。

 

 

この「code」の他には「dataId」と「value」があります。

 

上の場合ですと「dataId」は

スロットタイプが「0を頭」としているようなので、

一番上の0にあたる「通常」の次に来る「二刀流」

「1」が返されます。

 

value」は数値の取得なので上の例では関係なさそうです。

(なんでか「1」が返ってきますけども…)

 

 

 

・クラスIDが1のとき、最初に習得するスキルのID

「$dataClasses[1].learnings[0].skillId」

 

この他には「習得レベル」(level)に、

「習得スキル内スキル名の隣にあるメモ」(note)

取得できます。

 

 

 

・アイテムID1の使用効果、一番上の情報のコード

 「$dataItems[1].effects[0].code」

 

デフォルトでアイテムがポーションなら

「回復の列」の「HP回復の段」を取得するので、

「11」が返されます。

 

「特徴…traits」と同じですね。

 

ここも「dataId」と「value(※)」があります。

 

(※ここでは「value1」と「value2」になります)

 

 

 

見つけた きっかけ。

 

先に言ってしまうと、

なんとなくです。

 

いや、ホント。

 

ショップシステムを作ってたときに

武器・防具のパラメーター取得スクリプトを探してたんですが

まさに そのスクリプトがヒント(?)になりました。

 

 

これなんですけど

〔$dataArmors[1].params[3]〕

 

防御を取得するための値の3のところのカッコが

アクターのときはコレ「 () 」なのに

装備類はコレ「 [ ] 」だったんですよね。

 

↓ここからがホントに「何となく」です。

 

「防具IDの1のところのカッコ( [ ]←)と同じなら、

 ここの後ろにも「.○○」といった具合で

 なんか書けるんじゃないだろうか…」と。

 

 

「params[3]」が防御力の列を呼び出して

値を取得しているのであれば、

同じことをtraitsやらそういったものでもすれば…

 

という感じで、

なんか成功したわけです。

 

 

※後々気づいた話で、

「ここのparamも配列の類だった」というのもあったのですが

全くの素人の自分は そこで気づくことは出来ませんでした。

 

 

いやぁ長かった…。

 

ホントここ数週間あたりで ようやく書けたことなので

出来たときの脱力感ハンパじゃなかったですハイ。

 

 

JSファイルを読んでみても見つけられなかったので

ホントに解決できて嬉しかったぁ~♪

 

 

 

終わりに。

 

スクリプトは上級なんてもんじゃない

異次元ですよ。

 

あやうく飲み込まれるところだった…。

 

 

しかしまぁ、コレで取得する分には

今のところ悩みは無くなった(早々に排除することが出来た)

ということになります。

 

 

とはいっても、取得が出来るだけに過ぎませんから

自分には まだプラグイン製作なんて夢のまた夢。

 

少なくともボクは決して頭良い部類ではないので

上記の分を解決するだけでも一苦労…。

 

 

でも初心者だからこそ

工夫や発想の切り替えによって出来ることもあるはず。

 

今回は その第一歩となるでしょう。

…たぶん。

 

 

それではっ。

 

 

広告を非表示にする