「ツクマテ」の皆様、お世話になっております。今回も、どうぞよろしくお願いいたします。
アクターの名前や顔グラを、IDではなく以下の様な条件で表示する際の記述を教えていただきたいです。
【解決!】① var boss = 防具 n番 を装備しているアクターの名前;
【解決!】② var reader = ステート n番 を付与されているアクターの名前;
【解決!】③トリアコンタン様の「ゲーム内用語辞典プラグイン」で以下のような条件分岐を
使用したいと思っています。
if (隠しアイテムA と同じ名前のアクターがいる場合) {
選択中の隠しアイテムA と同じ名前のアクターの顔グラを表示;
} else {
return null;(※同じ名前が無い、改名などで無くなった場合の処理です)
}
一応、Window_Glossary.prototype.drawPicture 内に this.drawActorFace($gameActors.actor(1), x, y);
で顔グラの表示が可能であることは確認しているのですが、今は指定した ID のアクターに固定されて
いる有様です(苦笑)。
どうぞよろしくお願いいたします。
※トリアコンタン様の「ゲーム内用語辞典プラグイン」はこちら!
https://raw.githubusercontent.com/triac ... lossary.js
【解決済み】アクターの名前や顔グラを、IDではなく条件で表示する際の記述を教えていただきたく・・・
トピックの投稿
返信へ【解決済み】アクターの名前や顔グラを、IDではなく条件で表示する際の記述を教えていただきたく・・・
最後に編集したユーザー 蓮賀まさとき [ 2023年3月12日(日) 21:24 ], 累計 5 回
・ツクールは、「触ってる歴」だけはムダに長いです(^^;
・スクリプトは「XP」で興味を持ち、「VX」「MV」でもレイアウトを変更したり、
画像やテキスト、新たなウィンドウを追加するなど、デフォルトの簡単な応用で
カスタマイズを楽しんでいます。
・スクリプトは「XP」で興味を持ち、「VX」「MV」でもレイアウトを変更したり、
画像やテキスト、新たなウィンドウを追加するなど、デフォルトの簡単な応用で
カスタマイズを楽しんでいます。
返信 2 / 2ページ
【解決済み】アクターの名前や顔グラを、IDではなく条件で表示する際の記述を教えていただきたく・・・
WTR様
大変お世話になっております! またまたご回答くださって、ありがとうございます!
いえいえ、「これ試してみて」と言うものを提示していただけるだけでとてもありがたいです♪
なんて思ってましたが、外しちゃダメなのは e && の方だったとは! いやはや、お恥ずかしい(苦笑)。
さて、本題の顔グラ表示ですが、ご教授いただいたコードを当てはめてみましたところ・・・
Uncaught TypeError: this._itemData.name is not a function
at drawActorFace.$gameActors._data.find.e (SceneGlossary.js:2830)
at Array.find (<anonymous>)
at Window_Glossary.drawPicture (SceneGlossary.js:2830)
at Window_Glossary.drawItemSub (SceneGlossary.js:2632)
at Bitmap._callLoadListeners (rpg_core.js:1681)
at Bitmap.decode (rpg_core.js:1655)
at Bitmap._onLoad (rpg_core.js:1628)
と、出てしまいました。ですが、this._itemData.name の () を外してみたところ、想定通り選択中の
アイテムと同名のアクターの顔グラが表示されました!! ありがとうございます!!!
まだ、辞典を立ち上げた直後の最初に表示されるページや、読み込む画像ファイルが変わる際は
表示されない(一度他の項目やページに切り替えて戻ると表示される)と言った不具合が残っていますが、
これはステータス画面での遅延の無い表示の仕組みなどを調べてみようと思います。
ともかく、顔グラを流用できるようになったことで、手間や容量を大幅に軽減することができそうです。
WTR様、ご教授ありがとうございました!!
これであとは、if (隠しアイテムA と同じ名前のアクターがいる場合) { の記述が分かれば・・・。
こちらも、まずはデフォルト内の item に関する記述を調べてみるとします。
●3月12日・追記
しばらくして気づいたのですが、WTR様のコードは分岐の条件にもピタリと当てはまってくれました!
しかも、現在選択中のアイテムで判定した方がより確実ですしね! これで、“イベントのみに登場する
アクターのいない人物” を掲載してもエラーを出さずに済みます♪
表示遅延の検証はまだこれからですが、とにかく表示には成功しましたので、本件はこれにて
【解決済み】といたします。
プラグイン作者のトリアコンタン様、お時間を割いてご教授くださった剣崎 宗二様、WTR様、
本当にありがとうございました!!
大変お世話になっております! またまたご回答くださって、ありがとうございます!
いえいえ、「これ試してみて」と言うものを提示していただけるだけでとてもありがたいです♪
あぁ、some は装備スロット用でしたか! 防具もアクターも複数だから some は外せないな・・・WTR さんが書きました:ちゃんと動いたとされるコードは、アクターの装備をチェックしているので
複数ある装備スロットのいずれかに指定の装備があるか、という条件チェックに some を使っていますが
名前を条件にするなら some は不要です。
なんて思ってましたが、外しちゃダメなのは e && の方だったとは! いやはや、お恥ずかしい(苦笑)。
あらら、そうなんですね! それではご提案を頂戴して、actor で行くことにします。WTR さんが書きました:find で使われている e とか、some で使われている x はなんでもいいです。
配列を検索する find で e と書いているのはおそらく
配列の要素 (= element) という意味で e にしてるのかなと思いましたが、べつに1文字である必要もなく
わかりやすい名前をつけていいです。
アクターを検索しているのだから actor にするとかもアリです。
さて、本題の顔グラ表示ですが、ご教授いただいたコードを当てはめてみましたところ・・・
Uncaught TypeError: this._itemData.name is not a function
at drawActorFace.$gameActors._data.find.e (SceneGlossary.js:2830)
at Array.find (<anonymous>)
at Window_Glossary.drawPicture (SceneGlossary.js:2830)
at Window_Glossary.drawItemSub (SceneGlossary.js:2632)
at Bitmap._callLoadListeners (rpg_core.js:1681)
at Bitmap.decode (rpg_core.js:1655)
at Bitmap._onLoad (rpg_core.js:1628)
と、出てしまいました。ですが、this._itemData.name の () を外してみたところ、想定通り選択中の
アイテムと同名のアクターの顔グラが表示されました!! ありがとうございます!!!
まだ、辞典を立ち上げた直後の最初に表示されるページや、読み込む画像ファイルが変わる際は
表示されない(一度他の項目やページに切り替えて戻ると表示される)と言った不具合が残っていますが、
これはステータス画面での遅延の無い表示の仕組みなどを調べてみようと思います。
ともかく、顔グラを流用できるようになったことで、手間や容量を大幅に軽減することができそうです。
WTR様、ご教授ありがとうございました!!
これであとは、if (隠しアイテムA と同じ名前のアクターがいる場合) { の記述が分かれば・・・。
こちらも、まずはデフォルト内の item に関する記述を調べてみるとします。
●3月12日・追記
しばらくして気づいたのですが、WTR様のコードは分岐の条件にもピタリと当てはまってくれました!
コード: 全て選択
if ($gameActors._data.find(actor => actor && actor.name() === this._itemData.name)) {
this.drawActorFace($gameActors._data.find(actor => actor && actor.name() === this._itemData.name), x, y);
} else {
return null;
}アクターのいない人物” を掲載してもエラーを出さずに済みます♪
表示遅延の検証はまだこれからですが、とにかく表示には成功しましたので、本件はこれにて
【解決済み】といたします。
プラグイン作者のトリアコンタン様、お時間を割いてご教授くださった剣崎 宗二様、WTR様、
本当にありがとうございました!!
・ツクールは、「触ってる歴」だけはムダに長いです(^^;
・スクリプトは「XP」で興味を持ち、「VX」「MV」でもレイアウトを変更したり、
画像やテキスト、新たなウィンドウを追加するなど、デフォルトの簡単な応用で
カスタマイズを楽しんでいます。
・スクリプトは「XP」で興味を持ち、「VX」「MV」でもレイアウトを変更したり、
画像やテキスト、新たなウィンドウを追加するなど、デフォルトの簡単な応用で
カスタマイズを楽しんでいます。