読者です 読者をやめる 読者になる 読者になる

RPGツクールMVの用語データを変数に一括代入するスクリプト

f:id:junosakura:20160825023008p:plain

用語の制御文字が見当たらなかったので変数に一括代入するスクリプトを書きました。どうとでもしてくれライセンス(WTFPL)です。

魔法力にするかMATにするか悩む、悩んでいるあいだにスキルの説明を書きたい、といったケースに活用できます。

サンプル

f:id:junosakura:20160825031827p:plain

スクリプトは一度に12行まで記述できます。必要に応じてコメントや改行などを削除してください。

for(i=0;i<10;i++){$gameVariables.setValue(21+i,$dataSystem.terms.basic[i])}
for(i=0;i<10;i++){$gameVariables.setValue(31+i,$dataSystem.terms.params[i])}
for(i=0;i<26;i++){$gameVariables.setValue(41+i,$dataSystem.terms.commands[i])}

基本ステータス

基本ステータスの用語、全10項目を変数に一括代入します。

おまけとして変数名を自動登録しています。エディタ上では表示されません。不要な場合は該当箇所を削除してください。

// 代入先の定義(任意の値)
id = 21;

// 変数名の定義(おまけ)
keys = ["lv-long", "lv", "hp-long", "hp", "mp-long", "mp", "tp-long", "tp", "exp-long", "exp"];

// 処理
for (i = 0; i < 10; i++) {

  // 用語の一括代入
  $gameVariables.setValue(id + i, $dataSystem.terms.basic[i]);

  // 変数名の一括代入(おまけ)
  $dataSystem.variables[id + i] = keys[i];

}

能力値

能力値の用語、全10項目を変数に一括代入します。

おまけとして変数名を自動登録しています。エディタ上では表示されません。不要な場合は該当箇所を削除してください。

// 代入先の定義(任意の値)
id = 31;

// 変数名の定義(おまけ)
keys = ["mhp", "mmp", "atk", "def", "mat", "mdf", "agi", "luk", "hit", "eva"];

// 処理
for (i = 0; i < 10; i++) {

  // 用語の一括代入
  $gameVariables.setValue(id + i, $dataSystem.terms.params[i]);

  // 変数名の一括代入(おまけ)
  $dataSystem.variables[id + i] = keys[i];

}

コマンド

コマンドの用語、全26項目を変数に一括代入します。この用語は2項目のnull値を含みます。

おまけとして変数名を自動登録しています。エディタ上では表示されません。不要な場合は該当箇所を削除してください。

// 代入先の定義(任意の値)
id = 41;

// 変数名(おまけ)
keys = ["fight", "escape", "attack", "guard", "item", "skill", "equip", "status", "formation", "save", "game-end", "options", "weapon", "armor", "key-item", "do-equip", "optimize", "clear", "new-game", "continue", "", "to-title", "cancel", "", "buy", "sell"];

// 処理
for (i = 0; i < 26; i++) {

  // 用語の一括代入
  $gameVariables.setValue(id + i, $dataSystem.terms.commands[i]);

  // 変数名の一括代入(おまけ)
  $dataSystem.variables[id + i] = keys[i];

}

メッセージ

メッセージのうちオプションの用語、6項目を変数に一括代入します。全項目については後述。

おまけとして変数名を自動登録しています。エディタ上では表示されません。不要な場合は該当箇所を削除してください。

// 代入先の定義(任意の値)
id = 68;

// 変数名,キー名(必須)
keys = ["alwaysDash", "commandRemember", "bgmVolume", "bgsVolume", "meVolume", "seVolume"];

// 処理
for (i = 0; i < keys.length; i++) {

  // 用語の一括代入
  data = eval("$dataSystem.terms.messages." + keys[i]);
  $gameVariables.setValue(id + i, data);

  // 変数名の一括代入(おまけ)
  $dataSystem.variables[id + i] = keys[i];
}

上記スクリプトkeys を変更することで全51項目を一括代入できます。ただし以下の点にご注意ください。

  • あまり使い道がありません。
  • %1 などの変換には対応していません。
  • アップデートやプラグイン等で項目数が変更された場合、不具合が生じる可能性があります。
    • キー名順の場合、変数番号にズレが生じます。
    • データベース順の場合、配列を修正する必要があります。
// キー名順の場合
keys = Object.keys($dataSystem.terms.messages);

// データベース順の場合
keys = ["alwaysDash","commandRemember","bgmVolume","bgsVolume","meVolume","seVolume","possession","expTotal","expNext","saveMessage","loadMessage","file","partyName","emerge","preemptive","surprise","escapeStart","escapeFailure","victory","defeat","obtainExp","obtainGold","obtainItem","levelUp","obtainSkill","useItem","criticalToEnemy","criticalToActor","actorDamage","actorRecovery","actorGain","actorLoss","actorDrain","actorNoDamage","actorNoHit","enemyDamage","enemyRecovery","enemyGain","enemyLoss","enemyDrain","enemyNoDamage","enemyNoHit","evasion","magicEvasion","magicReflection","counterAttack","substitute","buffAdd","debuffAdd","buffRemove","actionFailure"];

利用は自己責任で。よいツクールライフを。