ページ 11

【解決済み】先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月17日(金) 23:53
by にいやん
パーティの先頭にいるアクターが覚えているスキルを使って道を開くというギミックを作りたいのですが、ちょっとやり方がわからないのでここで質問させて下さい。

ゲームデータから先頭アクターのスキル名を上から順に最大で8個まで文字列として変数に代入してから、選択肢の表示を使って代入した文字列を選択するといったものなのですが、肝心の先頭のアクターのスキル名を取得する方法が分かりません。

↓こんな感じで先頭アクターのデータを取得はできたのですが任意の行と列にあるスキル名の取得方法が分かりません。
どなたか分かる方、教えていただきたいです。(全てのアクターに8個までしか技を覚えないようにしています。)
sample001.png
sample001.png (131.64 KiB) 閲覧数: 2182 回

Re: 先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月18日(土) 00:18
by まっつUP
にいやん様
お世話になります。

以下の記述で隊員の先頭アクターの習得スキルの中で
IDが一番小さいスキルの名前がbに格納されます。
実際にコンソールに正しく出力されるかお試しください。
なお、そのアクターの習得スキルがないとエラーを吐くので注意してください。
(8つ取得したい場合はfor文で回して配列にぶち込むなどしてください。)
(スクリプトコマンド)
var a = $gameParty.members()[0]._skills[0];
var b = $dataSkills[a].name;
console.log(a)
console.log(b)

Re: 先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月18日(土) 00:30
by Trb
こんばんは。
上のまっつUP様のやり方でもいいですが、もう少し短く書くと

$gameParty.leader().skills()[0].name

これでも同じように取得できます。
パーティーの2番目以降のキャラはmembers()[a]で取得しないといけないですが
先頭に限ってはleader()で取得できます。

Re: 先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月18日(土) 01:04
by にいやん
まっつUPさん、Trbさん、どちらのスクリプトも上手く動作しました、ありがとうございました!

Re: 先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月18日(土) 01:11
by まっつUP
_skillsだと特徴で追加されたスキルが対象外になるかもしれないので
skills()の方がいいと思います。(忘れてました)

追記:skills()だとそのIDのスキルの情報を直接得ることになるので
ぼくが書いた二行目の下りのほとんどが省略できますね。

Re: 先頭アクターのスキル名を変数に代入する方法

Posted: 2017年2月18日(土) 01:19
by にいやん
まっつUPさん、補足ありがとうございました、助かりました!