【解決済み】プラグインでの「$dataEnemies[0].name;」の使用方法について

ごま鍋
記事: 8
登録日時: 2019年1月13日(日) 18:34

【解決済み】プラグインでの「$dataEnemies[0].name;」の使用方法について

投稿記事by ごま鍋 » 2019年9月29日(日) 23:25

こんばんは。ごま鍋といいます。

現在、オリジナルの戦闘プラグインを作成しようと考えています。
画像とウィンドウ、文字は表示できたのですが、エネミーのパラメーターや名前をデータベースから引っ張
ってこようとしたところ、上手くいかず困っています。

var enemy = $dataEnemies[1].name;

単純に上記の記載で上手くいくのでは?と思っていたのですが、結果プラグインが機能しなくなりました・・・

サンプルでついてきた「EnemyBook.js」を読んでみたのですが、解決策が思い浮かびません・・・

基本的なことかもしれず申し訳ございませんが、わかる方がおりましたらご教授お願いします。
最後に編集したユーザー ごま鍋 on 2019年9月30日(月) 02:17 [ 編集 1 回目 ]

奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: プラグインでの「$dataEnemies[0].name;」の使用方法について

投稿記事by 奏ねこま » 2019年9月29日(日) 23:36

何がどう機能しなくなったのかわからないので助言できませんが、とりあえず
var enemy = $dataEnemies[1].name;
この記述自体に問題はないと思います。(enemyにID:1の敵の名前が入るはず)
ごま鍋
記事: 8
登録日時: 2019年1月13日(日) 18:34

Re: プラグインでの「$dataEnemies[0].name;」の使用方法について

投稿記事by ごま鍋 » 2019年9月30日(月) 01:24

奏ねこまさん回答ありがとうございます。
いろいろ試してたら上手くいきました。あってたみたいです。
ありがとうございます。
ただ、違う問題がでてきてしまいました・・・

下記ような問題です。

(function() {
var a = 0; 変数aは正常に動作する。
var enemy = $dataEnemies[1].name; ここに作りたいけど、ここに作るとプラグインが機能しない
                 ここに作ることができれば、迷うことなく使える。
---------------------------------------------------
途中にいろいろある。
----------------------------------------------------


Scene_Sample.prototype.createSampleWindow = function() {
----------------------------------------------------
中にいろいろある
----------------------------------------------------
var enemy = $dataEnemies[1].name; ここに作れば、この関数内のdrawtextEXで表示できる。
};


Scene_Sample.prototype.update = function() {
this.createSampleWindow();ここで作ったから、ここの中では使えるけど他の関数内でも使いたい。
this.〇〇〇();ここの中では使えない。
};
----------------------------------------------------
})();
$data系のグローバル変数は、
(function() {
のすぐ下で使えないものなのでしょうか?
よかったら、ご教授お願いします。
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: プラグインでの「$dataEnemies[0].name;」の使用方法について

投稿記事by 奏ねこま » 2019年9月30日(月) 01:50

ごま鍋 さんが書きました:$data系のグローバル変数は、
(function() {
のすぐ下で使えないものなのでしょうか?

「(function() { のすぐ下」が実行されるときは$data~はまだ存在してませんので。

Scene_Sample.prototype.createSampleWindow の中で取得した $dataEnemies[1].name の値を
Scene_Sample のすべての関数で使いたいなら

var enemy = $dataEnemies[1].name;

ではなく

this.enemy = $dataEnemies[1].name;

としたら良いんじゃないでしょうか。
使うときは this.drawTextEx(this.enemy, ~ という感じで。
ごま鍋
記事: 8
登録日時: 2019年1月13日(日) 18:34

Re: プラグインでの「$dataEnemies[0].name;」の使用方法について

投稿記事by ごま鍋 » 2019年9月30日(月) 02:16

奏ねこまさん回答ありがとうございます。
奏ねこまさんのおかげで上手くいきました~。

$data~のことも、大変勉強になりました。
あとthis.について理解が不足してることも判明したので、勉強してみます。

本当にありがとうございました。

“MV:質問” へ戻る