【解決済み】「スクリプト」機能にて、ゲーム変数を式としたswitch文の構文チェック依頼

さしみ

ユーザー
初めまして。
件名の通り、switch文が正常に動作せず困っております。
javascriptの解説サイトなども当たりましたが、自分では原因が特定できませんでした。
よろしければお力をお貸しいただけないでしょうか。

  • 実装したい内容
敵のデータベースから「特徴欄最上部に設定した弱点属性のID」を変数に取得し、
 それをスクリプト内のswitch文で属性名に置き換える。
(文章の表示機能でエネミー図鑑を自作するため)
今回は火属性が弱点の敵で検証したため、case 2に該当してほしい。
  • 実施した内容
◆変数の操作:0014 敵図鑑_弱点属性 = $dataEnemies[1].traits[0].dataId;
スクリプト:switch ($gameVariables.value(14)){
case 1:
$gameVariables.setValue(14,'物理'); break;
case 2:
$gameVariables.setvalue(14, '炎'); break;
case 3:
$gameVariables.setvalue(14, '水'); break;
default:
$gameVariables.setValue(14,'なし');
}
  • 結果
 変数0014の中身を確認したところ、「2」のままでした。

以上です。
よろしくお願いいたします。
 

タシラカ

ユーザー
こんにちは
一見合ってるように見えるので試しに同じテストコードを書いたら出来てしまいましたよ?
強いていうなら炎と水のsetvaluesetValueのスペルミスがあり軽く手直ししましたが
エラーが出るはずなのでこちらへの書き写しミスでしょう。

あるいは何らかのプラグインの影響でミスがそのまま通ったのが原因かもしれませんね。

属性IDを対応用語に変換する場合はこちらの方が簡単なのでオススメしておきます。
JavaScript:
var elementId = $dataEnemies[1].traits[0].dataId;
var elementTerm = $dataSystem.elements[elementId] || 'なし';
$gameVariables.setValue(14, elementTerm);
 

さしみ

ユーザー
こんにちは
一見合ってるように見えるので試しに同じテストコードを書いたら出来てしまいましたよ?
強いていうなら炎と水のsetvaluesetValueのスペルミスがあり軽く手直ししましたが
エラーが出るはずなのでこちらへの書き写しミスでしょう。

あるいは何らかのプラグインの影響でミスがそのまま通ったのが原因かもしれませんね。

属性IDを対応用語に変換する場合はこちらの方が簡単なのでオススメしておきます。
JavaScript:
var elementId = $dataEnemies[1].traits[0].dataId;
var elementTerm = $dataSystem.elements[elementId] || 'なし';
$gameVariables.setValue(14, elementTerm);
回答ありがとうございます。
原因を調べましたが、「画像無しエラーで強制終了を回避するプラグイン」かなにかが原因でエラーが出ていなかったのが真相のようです。
(コード自体はスペルミスで正しく動作していませんでした)
お勧めされたコードに置き換えたところ、正常に動作するのを確認しましたので使用させていただきます。

スレッドを解決済みとさせていただきます。ありがとうございました。
 
トップ