変数でラベルジャンプ

とりにく
記事: 19
登録日時: 2018年11月21日(水) 09:55

変数でラベルジャンプ

投稿記事by とりにく » 2018年12月21日(金) 08:34

◆ラベル:2
◆ラベル:1
など設定しておいて、どこにジャンプするかを変数で決めたいのですが、どうすればいいですか?

見かけたスクリプトを参考にしてみましたが、「TypeError Cannot rea propetry '0' of undefined」とエラーが出てしまいました
(ラベル名1で作ってます)

コード: 全て選択

for (var i = 0; i < this._list.length; i++) {
 if(this._list.parameters[0] == "//1"){
  this.jumpTo(i)
 }
}


こんな感じでジャンプするラベル名変に数を使えないかと思ったのですが、そもそも↑でエラーでした

コード: 全て選択

for (var i = 0; i < this._list.length; i++) {
 if(this._list.parameters[0] == "//" + $gameVariables.value(変数ID)){
  this.jumpTo(i)
 }
}


よろしくお願いします

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 変数でラベルジャンプ

投稿記事by 剣崎 宗二 » 2018年12月21日(金) 09:29

Game_Interpreter._listは配列なので、

コード: 全て選択

this._list[i].parameters[0]


とするのが正しいかと考えます。
(Game_Interpreter.prototype.command119もご参照ください。var command = this._list[i]; となっております)

また、ラベル名に//が入るのかも少し疑わしいですが、そこはいろいろ実験していただければと。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
とりにく
記事: 19
登録日時: 2018年11月21日(水) 09:55

Re: 変数でラベルジャンプ

投稿記事by とりにく » 2018年12月21日(金) 21:42

コード: 全て選択

for (var i = 0; i < this._list.length; i++) {
 if(this._list[i].parameters[0] == $gameVariables.value(変数ID)){
  this.jumpTo(i)
 }
}


アドバイス参考に、これでいけました、ありがとうございます!

>>ラベル名に//が入るのか
http://rpgmaker-script-wiki.xyz/label_mv.php
このページを参考にしたのですが、自分がラベルの設定をツクールのコマンドでやっていたのが違ってたみたいです
ちゃんと説明の通りコメントアウトでラベルを設定したら、//入りで出来ました
重ね重ねありがとうございます
とりにく
記事: 19
登録日時: 2018年11月21日(水) 09:55

Re: 変数でラベルジャンプ

投稿記事by とりにく » 2018年12月21日(金) 22:01

ちなみに聞きたいんですが、もしラベル名の設定に変数を使いたい場合はどうすればいいですか?

別に使う予定はないんですが、説明ページの「ゲーム処理に関係しないコードならなんでも良い」というのが例えばどういうものなのかがよく分からなく、出されてる一例もコメントアウトで変数は使えないと思うので、疑問だったので。
アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 変数でラベルジャンプ

投稿記事by 剣崎 宗二 » 2018年12月22日(土) 00:35

「ラベル名の設定に変数を使いたい場合」と言う説明がいまいち良くわからないのですが、
「ラベル自体の名前を可変にする」がお望みの機能だと仮定すると、

「this._list[i].parameters[0]の部分が例えば/vで始まる場合、変数より値を取得し、それを比較対象(this._params[0]等)と比較する」
と言う形になると思います。

(ただラベルを可変にするのは予期せぬ事態を引き起こしやすい為あまりお勧めいたしませんが)

ここら辺につきましては、デフォルトの
Game_Interpreter.prototype.command119
及び
Game_Interpreter.prototype.jumpTo
の内容を解析し、具体的に「ラベル」「ジャンプ」とはそれぞれ何か、或いは実行時何が起こっているのか、を理解してから触ると分かりやすいかもしれません。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。

“MV:質問” へ戻る