//============================================================================= // アクターのステータス表示を変更するプラグイン // FTKR_CustomSimpleActorStatus.js // プラグインNo : 9 // 作成者 : フトコロ // 作成日 : 2017/03/09 // 最終更新日 : 2019/05/12 // バージョン : v3.5.3 //============================================================================= // GraphicalDesignMode.js // ---------------------------------------------------------------------------- // Copyright (c) 2015 Triacontane // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php //============================================================================= var Imported = Imported || {}; Imported.FTKR_CSS = true; var FTKR = FTKR || {}; FTKR.CSS = FTKR.CSS || {}; //============================================================================= /*: * @plugindesc v3.5.3 アクターのステータス表示を変更するプラグイン * @author フトコロ * * @noteParam CSS_画像 * @noteRequire 1 * @noteDir img/pictures/ * @noteType file * @noteData actors * * @noteParam CSS_画像 * @noteRequire 1 * @noteDir img/pictures/ * @noteType file * @noteData items * * @noteParam CSS_画像 * @noteRequire 1 * @noteDir img/pictures/ * @noteType file * @noteData weapons * * @noteParam CSS_画像 * @noteRequire 1 * @noteDir img/pictures/ * @noteType file * @noteData armors * * @param face * @text --顔画像の設定-- * @default * * @param Face Image Width * @desc アクターの顔画像幅を設定します * デフォルトは144 * @default 144 * @parent face * * @param Face Image Height * @desc アクターの顔画像高さを設定します * デフォルトは144 * @default 144 * @parent face * * @param Face Position X * @desc 顔画像を描画エリア内のどこに表示するか。 * 0 - 左寄せ, 1 - 中央, 2 - 右寄せ * @default 1 * @parent face * * @param chara * @text --歩行キャラの設定-- * @default * * @param Chara Image Width * @desc アクターの歩行キャラの画像幅を設定します * デフォルトは48 * @default 48 * @parent chara * * @param Chara Image Height * @desc アクターの歩行キャラの画像高さを設定します * デフォルトは48 * @default 48 * @parent chara * * @param Chara Position X * @desc アクターの歩行キャラを描画エリア内のどこに表示するか。 * 0 - 左寄せ, 1 - 中央, 2 - 右寄せ * @default 1 * @parent chara * * @param Chara Direction * @desc アクターの歩行キャラの向きを設定します。 * 0 - 正面固定, 1 - マップ上の先頭プレイヤーの向き * @default 0 * @parent chara * * @param sv * @text --SVキャラの設定-- * @default * * @param Sv Image Width * @desc アクターのSVキャラの画像幅を設定します * デフォルトは64 * @default 64 * @parent sv * * @param Sv Image Height * @desc アクターのSvキャラの画像高さを設定します * デフォルトは64 * @default 64 * @parent sv * * @param Sv Position X * @desc アクターのSvキャラを描画エリア内のどこに表示するか。 * 0 - 左寄せ, 1 - 中央, 2 - 右寄せ * @default 1 * @parent sv * * @param Enabled Sv Motion * @desc Svキャラのモーションを有効にするか設定します * 0 - 無効にする, 1 - 常に有効にする, 2 - 戦闘時以外有効 * @default 1 * @parent sv * * @param Sv Image Motion * @desc Svキャラの標準モーションを設定します * @default wait * @parent sv * * @param Enabled State Motion * @desc ステートモーションを有効にするか設定します * 1 - 有効にする, 0 - 無効にする * @default 1 * @parent sv * * @param state * @text --ステートの設定-- * @default * * @param Enable CSS States * @desc ステートアイコンの表示を専用の描画処理に変えるか。 * 1 - 有効にする, 0 - 無効にする * @default 1 * @parent state * * @param Animation Wait * @desc ステートアイコンの切り替え時間を指定します * デフォルトは40 * @default 40 * @parent state * * @param Enable Overlap * @desc ステートアイコンの重なり表示を有効にする * 1 - 有効にする, 0 - 無効にする * @default 0 * @parent state * * @param Overlap Rate * @desc アイコンの重なりを許容する比率を設定します。 * @default 0.5 * @parent state * * @param State Icon Padding * @desc アイコン表示に必要な余白を指定します。 * @default 4 * @type number * @min 0 * @parent state * * @param Enable Auto Scale * @desc 行の高さまたは表示幅に合わせてアイコンサイズを調整するか * 1 - 有効にする, 0 - 無効にする * @default 0 * @parent state * * @param pdiff * @text --通常能力値(差分)の設定-- * @default * * @param Enabled Escapecharacters By PDIFF * @desc 差分表示に制御文字使えるようにする * @type boolean * @on 有効 * @off 無効 * @default true * @parent pdiff * * @param Format PDIFF Plus * @desc 増加の場合の表示を設定します。 * %1 - 増加値 * @default \c[24]+ %1 * @parent pdiff * * @param Format PDIFF Minus * @desc 減少の場合の表示を設定します。 * %1 - 減少値 * @default \c[25]- %1 * @parent pdiff * * @param xparam * @text --能力値の設定-- * @default * * @param Disp Decimals Param * @desc 能力値が率で表されるパラメータの表示方法を選択します。 * @type select * @option 少数で表示 * @value 0 * @option パーセント(%)で表示 * @value 1 * @default 0 * @parent xparam * * @param equip * @text --装備パラメータの設定-- * @default * * @param Equip Right Arrow * @desc 装備を変える時に表示する右矢印記号を指定します。 * @default \c[16]→ * @parent equip * * @param ediff * @text --装備パラメータ(差分)の設定-- * @default * * @param Enabled Escapecharacters By EDIFF * @desc 差分表示に制御文字使えるようにする * @type boolean * @on 有効 * @off 無効 * @default true * @parent ediff * * @param Format EDIFF Plus * @desc 増加の場合の表示を設定します。 * %1 - 増加値 * @default \c[24]+ %1 * @parent ediff * * @param Format EDIFF Minus * @desc 減少の場合の表示を設定します。 * %1 - 減少値 * @default \c[25]- %1 * @parent ediff * * @param aopdiff * @text --AOP能力値(差分)の設定-- * @default * * @param Enabled Escapecharacters By AOPDIFF * @desc 差分表示に制御文字使えるようにする * @type boolean * @on 有効 * @off 無効 * @default true * @parent aopdiff * * @param Format AOPDIFF Plus * @desc 増加の場合の表示を設定します。 * %1 - 増加値 * @default \c[24]+ %1 * @parent aopdiff * * @param Format AOPDIFF Minus * @desc 減少の場合の表示を設定します。 * %1 - 減少値 * @default \c[25]- %1 * @parent aopdiff * * @param ediffaop * @text --AOP装備パラメータ(差分)の設定-- * @default * * @param Enabled Escapecharacters By EDIFFAOP * @desc 差分表示に制御文字使えるようにする * @type boolean * @on 有効 * @off 無効 * @default true * @parent ediffaop * * @param Format EDIFFAOP Plus * @desc 増加の場合の表示を設定します。 * %1 - 増加値 * @default \c[24]+ %1 * @parent ediffaop * * @param Format EDIFFAOP Minus * @desc 減少の場合の表示を設定します。 * %1 - 減少値 * @default \c[25]- %1 * @parent ediffaop * * @param image * @text --カスタム画像の設定-- * @default * * @param Image Position X * @desc カスタム画像を描画エリア内のどこに表示するか。 * 0 - 左寄せ, 1 - 中央, 2 - 右寄せ * @default 1 * @parent image * * @param message * @text --メッセージの設定-- * @default * * @param Display LevelUp Message * @desc レベルアップ時のメッセージを設定します。 * %1 - アクター名, %2 - 現在レベル, %3 - 上昇したレベル * @default \C[17]%3 Level Up! * @parent message * * @param customParam * @text --カスタムパラメータの設定-- * * @param --Custom Param 0-- * @default * @parent customParam * * @param Custom 0 Display Name * @desc Custom(0)の表示名を設定します * @default \c[16]現在の経験値 * @parent customParam * * @param Custom 0 References * @desc Custom(0)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 0 Unit * @desc Custom(0)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 1-- * @default * @parent customParam * * @param Custom 1 Display Name * @desc Custom(1)の表示名を設定します * @default * @parent customParam * * @param Custom 1 References * @desc Custom(1)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default a.currentExp() * @parent customParam * * @param Custom 1 Unit * @desc Custom(1)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 2-- * @default * @parent customParam * * @param Custom 2 Display Name * @desc Custom(2)の表示名を設定します * @default \c[16]次のレベルまで * @parent customParam * * @param Custom 2 References * @desc Custom(2)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 2 Unit * @desc Custom(2)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 3-- * @default * @parent customParam * * @param Custom 3 Display Name * @desc Custom(3)の表示名を設定します * @default * @parent customParam * * @param Custom 3 References * @desc Custom(3)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default a.nextRequiredExp() * @parent customParam * * @param Custom 3 Unit * @desc Custom(3)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 4-- * @default * @parent customParam * * @param Custom 4 Display Name * @desc Custom(4)の表示名を設定します * @default * @parent customParam * * @param Custom 4 References * @desc Custom(4)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 4 Unit * @desc Custom(4)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 5-- * @default * @parent customParam * * @param Custom 5 Display Name * @desc Custom(5)の表示名を設定します * @default * @parent customParam * * @param Custom 5 References * @desc Custom(5)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 5 Unit * @desc Custom(5)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 6-- * @default * @parent customParam * * @param Custom 6 Display Name * @desc Custom(6)の表示名を設定します * @default * @parent customParam * * @param Custom 6 References * @desc Custom(6)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 6 Unit * @desc Custom(6)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 7-- * @default * @parent customParam * * @param Custom 7 Display Name * @desc Custom(7)の表示名を設定します * @default * @parent customParam * * @param Custom 7 References * @desc Custom(7)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 7 Unit * @desc Custom(7)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 8-- * @default * @parent customParam * * @param Custom 8 Display Name * @desc Custom(8)の表示名を設定します * @default * @parent customParam * * @param Custom 8 References * @desc Custom(8)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 8 Unit * @desc Custom(8)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 9-- * @default * @parent customParam * * @param Custom 9 Display Name * @desc Custom(9)の表示名を設定します * @default * @parent customParam * * @param Custom 9 References * @desc Custom(9)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 9 Unit * @desc Custom(9)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 10-- * @default * @parent customParam * * @param Custom 10 Display Name * @desc Custom(10)の表示名を設定します * @default * @parent customParam * * @param Custom 10 References * @desc Custom(10)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 10 Unit * @desc Custom(10)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 11-- * @default * @parent customParam * * @param Custom 11 Display Name * @desc Custom(11)の表示名を設定します * @default * @parent customParam * * @param Custom 11 References * @desc Custom(11)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 11 Unit * @desc Custom(11)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 12-- * @default * @parent customParam * * @param Custom 12 Display Name * @desc Custom(12)の表示名を設定します * @default * @parent customParam * * @param Custom 12 References * @desc Custom(12)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 12 Unit * @desc Custom(12)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 13-- * @default * @parent customParam * * @param Custom 13 Display Name * @desc Custom(13)の表示名を設定します * @default * @parent customParam * * @param Custom 13 References * @desc Custom(13)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 13 Unit * @desc Custom(13)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 14-- * @default * @parent customParam * * @param Custom 14 Display Name * @desc Custom(14)の表示名を設定します * @default * @parent customParam * * @param Custom 14 References * @desc Custom(14)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 14 Unit * @desc Custom(14)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 15-- * @default * @parent customParam * * @param Custom 15 Display Name * @desc Custom(15)の表示名を設定します * @default * @parent customParam * * @param Custom 15 References * @desc Custom(15)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 15 Unit * @desc Custom(15)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 16-- * @default * @parent customParam * * @param Custom 16 Display Name * @desc Custom(16)の表示名を設定します * @default * @parent customParam * * @param Custom 16 References * @desc Custom(16)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 16 Unit * @desc Custom(16)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 17-- * @default * @parent customParam * * @param Custom 17 Display Name * @desc Custom(17)の表示名を設定します * @default * @parent customParam * * @param Custom 17 References * @desc Custom(17)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 17Unit * @desc Custom(17)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 18-- * @default * @parent customParam * * @param Custom 18 Display Name * @desc Custom(18)の表示名を設定します * @default * @parent customParam * * @param Custom 18 References * @desc Custom(18)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 18 Unit * @desc Custom(18)の単位を設定します。 * @default * @parent customParam * * @param --Custom Param 19-- * @default * @parent customParam * * @param Custom 19 Display Name * @desc Custom(19)の表示名を設定します * @default * @parent customParam * * @param Custom 19 References * @desc Custom(19)の値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customParam * * @param Custom 19 Unit * @desc Custom(19)の単位を設定します。 * @default * @parent customParam * * @param customGauge * @text --カスタムゲージの設定-- * * @param Gauge Param Digit * @desc 現在値と最大値の表示幅を指定した桁数に設定する * @default 4 * @parent customGauge * * @param --Gauge Param 0-- * @default * @parent customGauge * * @param Gauge 0 Display Name * @desc Gauge(0)の表示名を設定します * @default \C[16]EXP * @parent customGauge * * @param Gauge 0 References * @desc Gauge(0)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 0 Current * @desc Gauge(0)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default a.isMaxLevel() ? '--------' : a.currentExp() * @parent customGauge * * @param Gauge 0 Max * @desc Gauge(0)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default a.isMaxLevel() ? '--------' : a.nextLevelExp() * @parent customGauge * * @param Gauge 0 Color1 * @desc Gauge(0)のゲージの色1を設定します。 * @default 17 * @parent customGauge * * @param Gauge 0 Color2 * @desc Gauge(0)のゲージの色2を設定します。 * @default 6 * @parent customGauge * * @param --Gauge Param 1-- * @default * @parent customGauge * * @param Gauge 1 Display Name * @desc Gauge(1)の表示名を設定します * @default * @parent customGauge * * @param Gauge 1 References * @desc Gauge(1)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 1 Current * @desc Gauge(1)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 1 Max * @desc Gauge(1)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 1 Color1 * @desc Gauge(1)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 1 Color2 * @desc Gauge(1)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 2-- * @default * @parent customGauge * * @param Gauge 2 Display Name * @desc Gauge(2)の表示名を設定します * @default * @parent customGauge * * @param Gauge 2 References * @desc Gauge(2)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 2 Current * @desc Gauge(2)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 2 Max * @desc Gauge(2)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 2 Color1 * @desc Gauge(2)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 2 Color2 * @desc Gauge(2)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 3-- * @default * @parent customGauge * * @param Gauge 3 Display Name * @desc Gauge(3)の表示名を設定します * @default * @parent customGauge * * @param Gauge 3 References * @desc Gauge(3)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 3 Current * @desc Gauge(3)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 3 Max * @desc Gauge(3)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 3 Color1 * @desc Gauge(3)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 3 Color2 * @desc Gauge(3)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 4-- * @default * @parent customGauge * * @param Gauge 4 Display Name * @desc Gauge(4)の表示名を設定します * @default * @parent customGauge * * @param Gauge 4 References * @desc Gauge(4)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 4 Current * @desc Gauge(4)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 4 Max * @desc Gauge(4)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 4 Color1 * @desc Gauge(4)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 4 Color2 * @desc Gauge(4)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 5-- * @default * @parent customGauge * * @param Gauge 5 Display Name * @desc Gauge(5)の表示名を設定します * @default * @parent customGauge * * @param Gauge 5 References * @desc Gauge(5)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 5 Current * @desc Gauge(5)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 5 Max * @desc Gauge(5)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 5 Color1 * @desc Gauge(5)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 5 Color2 * @desc Gauge(5)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 6-- * @default * @parent customGauge * * @param Gauge 6 Display Name * @desc Gauge(6)の表示名を設定します * @default * @parent customGauge * * @param Gauge 6 References * @desc Gauge(6)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 6 Current * @desc Gauge(6)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 6 Max * @desc Gauge(6)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 6 Color1 * @desc Gauge(6)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 6 Color2 * @desc Gauge(6)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 7-- * @default * @parent customGauge * * @param Gauge 7 Display Name * @desc Gauge(7)の表示名を設定します * @default * @parent customGauge * * @param Gauge 7 References * @desc Gauge(7)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 7 Current * @desc Gauge(7)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 7 Max * @desc Gauge(7)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 7 Color1 * @desc Gauge(7)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 7 Color2 * @desc Gauge(7)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 8-- * @default * @parent customGauge * * @param Gauge 8 Display Name * @desc Gauge(8)の表示名を設定します * @default * @parent customGauge * * @param Gauge 8 References * @desc Gauge(8)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 8 Current * @desc Gauge(8)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 8 Max * @desc Gauge(8)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 8 Color1 * @desc Gauge(8)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 8 Color2 * @desc Gauge(8)のゲージの色2を設定します。 * @default * @parent customGauge * * @param --Gauge Param 9-- * @default * @parent customGauge * * @param Gauge 9 Display Name * @desc Gauge(9)の表示名を設定します * @default * @parent customGauge * * @param Gauge 9 References * @desc Gauge(9)で表示する値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 9 Current * @desc Gauge(9)の現在値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 9 Max * @desc Gauge(9)の最大値の参照先を設定します。 * アクターを a として、ステータスの参照先を記述すること。 * @default * @parent customGauge * * @param Gauge 9 Color1 * @desc Gauge(9)のゲージの色1を設定します。 * @default * @parent customGauge * * @param Gauge 9 Color2 * @desc Gauge(9)のゲージの色2を設定します。 * @default * @parent customGauge * * @param paramName * @text --表示名の設定-- * * @param XPARAM Name * @desc 追加能力値の表示名を設定します。 * @type struct * @default {"hit":"命中率","eva":"回避率","cri":"会心率","cev":"会心回避率","mev":"魔法回避率","mrf":"魔法反射率","cnt":"反撃率","hrg":"HP再生率","mrg":"MP再生率","trg":"TP再生率"} * @parent paramName * * @param SPARAM Name * @desc 特殊能力値の表示名を設定します。 * @type struct * @default {"tgr":"狙われ率","grd":"防御効果率","rec":"回復効果率","pha":"薬の知識","mcr":"MP消費率","tcr":"TPチャージ率","pdr":"物理ダメージ率","mdr":"魔法ダメージ率","fdr":"床ダメージ率","exr":"経験獲得率"} * @parent paramName * * @help *----------------------------------------------------------------------------- * 概要 *----------------------------------------------------------------------------- * このプラグインは、アクターのステータス表示のレイアウトをより詳細に設定できる * 処理を実装します。 * * このプラグインの拡張プラグイン(FTKR_CSS_***.js)と組み合わせることで * メニュー画面や、バトル画面などさまざまなステータス画面を設定できるように * なります。 * * このプラグインの v3.0.0 から採用するステータスごとの表示位置指定方式については、 * 拡張プラグインの v2.0.0 以降を使用してください。 * ※従来の方式についても、v1の拡張プラグインで使用可能 * * * プラグインの使い方は、下のオンラインマニュアルページを見てください。 * https://github.com/futokoro/RPGMaker/blob/master/FTKR_CustomSimpleActorStatus.ja.md * * *----------------------------------------------------------------------------- * 設定方法 *----------------------------------------------------------------------------- * 1.「プラグインマネージャー(プラグイン管理)」に、このプラグインを追加して * ください。 * * 2. 拡張プラグイン(FTKR_CSS_***.js)と組み合わせる場合は、このプラグインが * 上になるように配置してください。 * * 3. GraphicalDesignMode.jsと組み合わせる場合は、 * このプラグインが下になるように配置してください。 * * 4. このプラグインを使う上で、設定が必須なプラグインパラメータはありません。 * * *----------------------------------------------------------------------------- * プラグインのライセンスについて(License) *----------------------------------------------------------------------------- * このプラグインはMITライセンスのもとで公開しています。 * This plugin is released under the MIT License. * * Copyright (c) 2017,2018 Futokoro * http://opensource.org/licenses/mit-license.php * * * プラグイン公開元 * https://github.com/futokoro/RPGMaker/blob/master/README.md * * *----------------------------------------------------------------------------- * 変更来歴 *----------------------------------------------------------------------------- * * v3.5.3 - 2019/05/12 : 機能追加 * 1. アイテムの所持数を表示するコード(numItem)を追加。 * 2. 装備品の表示コード(equip(%1))に、ショップ画面用の専用処理を追加。 * * v3.5.2 - 2019/04/14 : 機能追加 * 1. 特殊能力値(xparam)と追加能力値(sparam)を表示するコード他を追加。 * * v3.5.1 - 2019/03/05 : 不具合修正、機能追加 * 1. 拡張プラグインのパラメータ"statusList"の"value"の値を正しく読み取れない * 不具合を修正。 * 2. 選択中の装備品を装備できない時に特定も文字を表示させるコード notequip を * 追加。※装備画面とショップ画面で使用可能 * * v3.5.0 - 2018/12/29 : 機能追加 * 1. セーブしたウィンドウ設定を変更するプラグインコマンドを追加。 * * v3.4.7 - 2018/12/27 : 不具合修正 * 1. FTKR_CSS_ShopStatus v2.2.2 の不具合修正対応。 * 2. FTKR_OriginalSceneWindow でアイテムデータ画像が表示できない不具合対応。 * * v3.4.6 - 2018/12/15 : 不具合修正(軽量化) * 1. カスタムパラメータとカスタムゲージの表示処理を見直し。 * 2. プラグインコマンドの判定処理を見直し。 * * v3.4.5 - 2018/12/13 : 不具合修正(軽量化) * 1. code(x)の形のパラメータの判定時に必ずeval()で評価していた処理を見直し。 * * v3.4.4 - 2018/12/02 : 不具合修正 * 1. カスタム画像で、存在しない画像IDを指定した場合にエラーになる不具合を修正。 * * v3.4.3 - 2018/11/03 : 仕様変更 * 1. ediff(x)、aopdiff(x)、ediffaop(x)の表示内容の設定を、pdiff(x)から独立。 * * v3.4.2 - 2018/10/28 : 不具合修正 * 1. オリジナルパラメータおよびオリジナルゲージの数値が、一部のシーンで正常に * 表示できない不具合を修正。 * * v3.4.1 - 2018/10/11 : 機能追加、仕様変更 * 1. パラメータの差分表示に制御文字を無効にする機能を追加。 * 2. パラメータの差分表示で 0 の場合に表示しないように変更。 * * v3.4.0 - 2018/10/10 : 機能追加 * 1. ediff(x)およびediffaop(x)のコードをFTKR_CSS_ShopStatusから移動。 * * v3.3.4 - 2018/09/28 : 機能追加 * 1. ステータスコードに、AOPパラメータ表示用のコードを追加。 * * v3.3.3 - 2018/09/28 : 機能追加 * 1. ステータスコードに、パラメータ表示用のコードを追加。 * * v3.3.2 - 2018/09/19 : 機能追加 * 1. ステータスコードに、アイテム用のコードを追加。 * * v3.3.1 - 2018/09/19 : 不具合修正 * 1. 戦闘不能時に、ステートアイコンを表示しない不具合を修正。 * * v3.3.0 - 2018/09/15 : 機能追加 * 1. ステータスコードに、アイテム用のコードを追加。 * 2. ステータスアイコン同士間の余白サイズを設定する機能を追加。 * 3. ステータスアイコンを高さ幅が不足しても最低1つは表示させるように変更。 * 4. プラグインパラメータ Enable Auto Scale を有効にした場合に、表示幅が小さい * 場合でもサイズ調整するように変更。 * * v3.2.0 - 2018/09/11 : FTKR_GDM_WindowEditor.js 用の記述を修正。 * * v3.1.1 - 2018/09/09 : GraphicalDesignMode.js 用の記述を削除 * * v3.1.0 - 2018/08/30 : 機能追加 * 1. 拡張プラグインのプラグインパラメータで表示するステータスをリストで * 選択できる機能を追加。 * * v3.0.2 - 2018/08/25 : 不具合修正 * 1. 拡張プラグインで、余白と背景透明度を 0 に設定した場合に、設定が無効になる * 不具合を修正。 * * v3.0.1 - 2018/08/20 : 不具合修正 * 1. 拡張プラグインでステータスウィンドウの設定を有効にした場合にエラーになる * 不具合を修正。 * * v3.0.0 - 2018/08/19 : 仕様変更 * 1. ステータスの表示とパラメータの入力に、ステータスごとの表示位置指定方式を採用。 * 2. FTKR_GDM_WindowEditor対応版に修正。 * 3. ヘルプの記述を削減。 * 4. 顔画像のサイズを調整する機能を追加。 * 5. GraphicalDesignMode.jsとの連携機能を、FTKR_GDM_Editorに移行。 * * v2.7.2 - 2018/08/18 : 不具合修正 * 1. 拡張プラグイン使用時にステートアイコンが表示されない不具合を修正。 * * v2.7.1 - 2018/08/17 : 不具合修正 * 1. バトルシーンでステータスウィンドウが非表示でも、ステートアイコンが * 表示される不具合を修正。 * * v2.7.0 - 2018/03/17 : 機能追加 * 1. カスタム画像をゲーム中に変更するプラグインコマンドを追加。 * * v2.6.3 - 2018/03/12 : 処理変更 * 1. 顔画像やカスタム画像の表示透過度の判定部を関数として独立。 * 2. コード処理部にアクターが設定されていない場合の例外処理を追加。 * * v2.6.2 - 2018/03/11 : 不具合修正 * 1. 角括弧で設定したコードが正しく表示されない不具合を修正。 * 2. デザインモード中にstateコードを変更した際に、ステートアイコンの表示が * 一部更新されない不具合を修正。 * * v2.6.1 - 2018/01/07 : 処理変更 * 1. 顔画像、歩行キャラ、SVキャラのX座標方向の寄せ表示部分を関数として独立。 * * v2.6.0 - 2017/11/18 : 機能追加 * 1. FTKR_CSS_***Status系の拡張プラグインをGraphicalDesignMode.jsに * 対応する処理を追加。 * * v2.5.1 - 2017/11/08 : 不具合修正 * 1. FTKR_OriginalSceneWindow.jsで生成したウィンドウが有る場合に * シーン開始時にエラーになる不具合を修正。 * * v2.5.0 - 2017/11/08 : 機能追加 * 1. 横線を表示するコード「line」を追加。 * 2. GraphicalDesignMode.jsとFTKR_CSS_GDM.jsにより、デザインモード中に * ゲーム内でレイアウトを変更する機能を追加。 * * v2.4.3 - 2017/11/02 : 不具合修正 * 1. 装備画面でフリーズする不具合を修正。 * * v2.4.2 - 2017/11/01 : 不具合修正 * 1. カスタムパラメータとカスタムゲージで、名前が表示されない不具合を修正。 * 2. 装備のパラメータが表示されない不具合を修正。 * * v2.4.1 - 2017/10/19 : 不具合修正 * 1. カスタムパラメータとカスタムゲージで、アイコンを表示したときに * 表示位置がずれる場合がある不具合を修正。 * * v2.4.0 - 2017/10/16 : 仕様変更 * 1. カスタムゲージで、現在値および最大値に文字列を表示できるように変更。 * * v2.3.0 - 2017/07/23 : 機能追加 * 1. 表示コードの判定部の記述を見直し。 * 2. 括弧で数値を指定する表示コードに対して、数値ではなくスクリプトで * 指定できるように修正。 * 3. FTKR_AddOriginalParametersで作成したオリジナルパラメータの * 装備パラメータを表示するコード「eaop(x)」を追加。 * * v2.2.0 - 2017/06/19 : 機能変更、機能追加 * 1. テキストコードに、JS計算式の評価処理を追加。 * 2. JS計算式の評価コードで、文字列のまま表示する機能を追加。 * * v2.1.0 - 2017/06/19 : 機能変更、機能追加 * 1. カスタム画像の設定仕様を変更。 * 2. カスタム画像を複数設定できる機能を追加。 * * v2.0.0 - 2017/06/18 : メニュー画面の変更機能を分離 * * v1.8.0 - 2017/06/17 : 機能追加 * 1. カスタムパラメータに単位を表示する機能を追加。 * * v1.7.6 - 2017/06/10 : 不具合修正 * 1. YEP_BuffsStatesCore.jsと組み合わせた時にステートカウントの表示が * 正しく更新されない不具合を修正。 * * v1.7.5 - 2017/06/10 : 不具合修正 * 1. テキストコードに制御文字を入力すると、正しく表示できない不具合を修正。 * * v1.7.4 - 2017/06/09 : YEP_BuffsStatesCore.jsに対応 * * v1.7.3 - 2017/06/08 : 機能追加 * 1. ステートアイコンの表示処理をMVデフォルトに戻す機能を追加。 * * v1.7.2 - 2017/06/07 : 不具合修正、機能追加 * 1. 波括弧による描画エリアの拡張が正しく機能しない不具合を修正。 * 2. eval()によるJS計算結果を表示するコードを追加。 * * v1.7.1 - 2017/06/05 : 不具合修正、機能追加 * 1. 歩行キャラが正しく表示されない不具合を修正。 * 2. 歩行キャラの向きを、マップ上のプレイヤーに合わせる機能を追加。 * 3. SVキャラのモーションを無効にする機能を追加。 * 4. カスタム画像を表示する位置を調整する機能を追加。 * * v1.7.0 - 2017/06/02 : 機能追加、不具合修正 * 1. アクター毎に個別に設定できるカスタムゲージを追加。 * 2. クラス毎に個別に設定できるカスタムゲージを追加。 * 3. プラグインパラメータを無効にした場合 * スキル画面のステータス欄が表示しない不具合を修正。 * * v1.6.0 - 2017/06/01 : 機能見直し、機能追加 * 1. カスタムゲージの表示内容の調整機能を見直し。 * 2. カスタムゲージのゲージバーを非表示にする機能を追加。 * 3. カスタムゲージに現在値と最大値の替わりに指定した値を設定する機能を追加。 * * v1.5.3 - 2017/05/13 : 機能追加 * 1. 装備画面で使用可能な、パラメータ表示コードを追加。 * * v1.5.2 - 2017/05/12 : 不具合修正、機能追加、不要なパラメータを削除 * 1. アクターを横に並べたときに描画エリアを拡張すると、隣のアクターの * 表示エリアにも拡張される不具合を修正。 * 2. 画像の表示位置の調整機能を追加。 * * v1.5.1 - 2017/05/11 : 不具合修正、機能追加 * 1. ステータスウィンドウに表示できる人数よりもパーティーが少ない場合に * エラーになる不具合を修正。 * 2. 表示したSVキャラの位置を固定するように変更。 * * v1.5.0 - 2017/05/10 : 機能追加 * 1. FTKR_FacialImageDifference.jsに対応。 * * v1.4.4 - 2017/05/08 : 不具合修正 * 1. メニュー画面のアクターのスプライトが正しく更新されない不具合を修正。 * * v1.4.3 - 2017/05/06 : 不具合修正、機能追加 * 1. アクターを横に並べた時に、顔画像が正しく表示されない不具合を修正。 * 2. 縦のカーソル間隔を設定する機能を追加。 * * v1.4.2 - 2017/05/04 : 機能追加 * 1. カスタムパラメータとカスタムゲージに、セルフ変数を適用。 * * v1.4.1 - 2017/04/25 : 不具合修正 * 1. 「逃げる」でバトルを終了した場合、ステータス上のSVキャラの * 表示位置がずれる不具合を修正。 * * v1.4.0 - 2017/04/21 : 仕様変更、機能追加 * 1. 詳細ステータス画面の表示変更機能を拡張プラグインとして分離。 * 2. スキル画面の表示変更機能を拡張プラグインとして分離。 * 3. 顔画像の表示仕様を変更。 * 4. カスタム画像をタグの仕様を変更し、ディプロイメントでカスタム画像を * 保存するように変更。 * 5. メニュー画面の簡易ステータスウィンドウの設定変更機能を追加。 * * v1.3.1 - 2017/04/21 : 機能追加 * 1. FTKR_ExSvMotion.jsに対応。 * * v1.3.0 - 2017/04/19 : 機能変更 * 1. ステートアイコンの表示仕様を変更。 * * v1.2.5 - 2017/04/15 : 機能追加 * 1. ステートアイコンの表示位置を微調整 * 2. 行の高さに合わせてステートアイコンサイズを自動調整する機能を追加。 * * v1.2.4 - 2017/04/12 : 顔画像の縦横のサイズを合わせるように修正 * * v1.2.3 - 2017/04/11 : ヘルプ修正 * * v1.2.2 - 2017/04/11 : 機能追加 * 1. 指定した画像を表示する機能を追加。 * 2. 複数列を跨いで表示させる機能を追加。 * 3. ステートを縦に並べて表示させる機能を追加。 * * v1.2.1 - 2017/04/01 : 機能削除、機能追加 * 1. ステータスのparam(x)に対してMV標準の制御文字を使用できる機能を削除。 * 2. カスタムパラメータを20個まで設定できるように変更。 * 3. 詳細ステータス画面の表示エリア間のラインの線色、太さ、透明度を * 変更する機能を追加。 * 4. 簡易ステータス画面の表示内容を変更する機能をON/OFFする * プラグインパラメータを追加。 * * v1.2.0 - 2017/03/20 : 仕様変更 * 1. ステートアイコンを並べて表示した時に表示エリア内に収まらない場合、 * アイコンを重ねて表示するように変更。 * 2. ステータスのprofile、param(x)、custom(x)、gauge(x)、text(x)の表示に、 * MV標準の制御文字を使用できるように変更。 * * v1.1.1 - 2017/03/18 : 機能追加 * 1. 詳細ステータスの表示内容を変更する機能をON/OFFする * プラグインパラメータを追加。 * 2. FTKR_SEP_ShowSkillStatus.jsと組み合わせている場合、プロフィール文に * 制御文字を使用できるように変更。 * 3. ヘルプ内容を修正。 * * v1.1.0 - 2017/03/17 : 仕様変更、機能追加、不具合修正 * 1. Text間のスペースを設定するプラグインパラメータの仕様を変更。 * 2. 装備と好きな文字列を表示させるパラメータを追加。 * 3. 詳細ステータスの表示内容を変更する機能を追加。 * 4. カスタムパラメータとカスタムゲージを10個まで設定できるように変更。 * 5. ニックネームが表示されない不具合を修正。 * * v1.0.3 - 2017/03/16 : 機能追加 * 1. 表示名や値の参照先を自由に設定できるカスタムゲージの表示機能を追加。 * * v1.0.2 - 2017/03/16 : 機能追加 * 1. で、1行に複数のステータスを表示する機能を追加。 * * v1.0.1 - 2017/03/10 : 機能追加 * 1. 攻撃力や防御力等のパラメータを表示できる機能を追加。 * 2. 表示名や値の参照先を自由に設定できるカスタムパラメータの * 表示機能を追加。 * * v1.0.0 - 2017/03/09 : 初版作成 * *----------------------------------------------------------------------------- */ //============================================================================= /*~struct~status: * @param text * @desc 表示するステータスを選択 * リストにない場合は、直接テキストで記述 * @default * @type select * @option 名前 * @value name * @option 二つ名 * @value nickname * @option 職業 * @value class * @option レベル * @value level * @option HP * @value hp * @option MP * @value mp * @option TP * @value tp * @option 顔画像 * @value face * @option 顔画像(サイズ指定) * @value face(%1) * @option 歩行キャラ画像 * @value chara * @option SV戦闘キャラ画像 * @value sv * @option ステート(横) * @value state * @option ステート(縦) * @value state2(%1) * @option プロフィール * @value profile * @option 通常能力値 * @value param(%1) * @option 通常能力値(素) * @value pbase(%1) * @option 通常能力値(増加分) * @value pdiff(%1) * @option 追加能力値 * @value xparam(%1) * @option 特殊能力値 * @value sparam(%1) * @option 装備 * @value equip(%1) * @option 装備通常能力値 * @value eparam(%1) * @option 装備追加能力値 * @value exparam(%1) * @option 装備特殊能力値 * @value esparam(%1) * @option 装備通常能力値差分 * @value ediff(%1) * @option 装備追加能力値差分 * @value exdiff(%1) * @option 装備特殊能力値差分 * @value esdiff(%1) * @option 装備不可表示 * @value notequip(%1) * @option カスタムパラメータ * @value custom(%1) * @option カスタムゲージ * @value gauge(%1) * @option アクター別カスタムゲージ * @value agauge(%1) * @option クラス別カスタムゲージ * @value cgauge(%1) * @option カスタム画像 * @value image * @option カスタム画像(登録ID) * @value image(%1) * @option メッセージ * @value message * @option テキスト * @value text(%1) * @option JS計算式(数値表示) * @value eval(%1) * @option JS計算式(文字列表示) * @value streval(%1) * @option 横線 * @value line * @option AOP能力値 * @value aop(%1) * @option AOP能力値(素) * @value aopbase(%1) * @option AOP能力値(増加分) * @value aopdiff(%1) * @option AOP装備パラメータ * @value eaop(%1) * @option AOP装備パラメータ差分 * @value ediffaop(%1) * @option アイテム名 * @value iname * @option アイテムアイコン * @value iicon * @option アイテム説明 * @value idesc * @option アイテムタイプ * @value itype * @option アイテム装備タイプ * @value ietype * @option アイテム範囲 * @value iscope * @option アイテム属性 * @value ielement * @option アイテム設定詳細 * @value iparam(%1) * @option アイテムカスタム画像 * @value iimage(%1) * @option アイテム所持数 * @value inumber * @option マップ名 * @value mapname * * @param value * @desc code(%1)の形式で設定するステータスの%1の内容を入力 * @default * * @param x * @desc 表示するX座標 * @default 0 * * @param y * @desc 表示するY座標 * @default 0 * * @param width * @desc 表示する幅 * @default 0 * */ /*~struct~xparam: * * @param hit * @desc 命中率の表示名 * @default 命中率 * * @param eva * @desc 回避率の表示名 * @default 回避率 * * @param cri * @desc 会心率の表示名 * @default 会心率 * * @param cev * @desc 会心回避率の表示名 * @default 会心回避率 * * @param mev * @desc 魔法回避率の表示名 * @default 魔法回避率 * * @param mrf * @desc 魔法反射率の表示名 * @default 魔法反射率 * * @param cnt * @desc 反撃率の表示名 * @default 反撃率 * * @param hrg * @desc HP再生率の表示名 * @default HP再生率 * * @param mrg * @desc MP再生率の表示名 * @default MP再生率 * * @param trg * @desc TP再生率の表示名 * @default TP再生率 * */ /*~struct~sparam: * * @param tgr * @desc 狙われ率の表示名 * @default 狙われ率 * * @param grd * @desc 防御効果率の表示名 * @default 防御効果率 * * @param rec * @desc 回復効果率の表示名 * @default 回復効果率 * * @param pha * @desc 薬の知識の表示名 * @default 薬の知識 * * @param mcr * @desc MP消費率の表示名 * @default MP消費率 * * @param tcr * @desc TPチャージ率の表示名 * @default TPチャージ率 * * @param pdr * @desc 物理ダメージ率の表示名 * @default 物理ダメージ率 * * @param mdr * @desc 魔法ダメージ率の表示名 * @default 魔法ダメージ率 * * @param fdr * @desc 床ダメージ率の表示名 * @default 床ダメージ率 * * @param exr * @desc 経験獲得率の表示名 * @default 経験獲得率 * */ (function() { var paramParse = function(obj) { return JSON.parse(JSON.stringify(obj, paramReplace)); }; var paramReplace = function(key, value) { try { return JSON.parse(value || null); } catch (e) { return value; } }; //============================================================================= // プラグイン パラメータ //============================================================================= var parameters = PluginManager.parameters('FTKR_CustomSimpleActorStatus'); //オリジナルステータス設定オブジェクト FTKR.CSS.cssStatus = { face:{ width:Number(parameters['Face Image Width'] || 0), height:Number(parameters['Face Image Height'] || 0), posiX:Number(parameters['Face Position X'] || 0), }, chara:{ width:Number(parameters['Chara Image Width'] || 0), height:Number(parameters['Chara Image Height'] || 0), posiX:Number(parameters['Chara Position X'] || 0), direction:Number(parameters['Chara Direction'] || 0), }, svChara:{ width:Number(parameters['Sv Image Width'] || 0), height:Number(parameters['Sv Image Height'] || 0), enable:Number(parameters['Enabled Sv Motion'] || 0), motion:String(parameters['Sv Image Motion'] || ''), state:Number(parameters['Enabled State Motion'] || 0), posiX:Number(parameters['Sv Position X'] || 0), }, state:{ enable :Number(parameters['Enable CSS States'] || 0), wait :Number(parameters['Animation Wait'] || 0), overlap :Number(parameters['Enable Overlap'] || 0), autoScale :Number(parameters['Enable Auto Scale'] || 0), rate :Number(parameters['Overlap Rate'] || 0), iconPadding :Number(parameters['State Icon Padding'] || 0), }, param:{ decimals :paramParse(parameters['Disp Decimals Param']), }, pdiff:{ plus :paramParse(parameters['Format PDIFF Plus']), minus :paramParse(parameters['Format PDIFF Minus']), enabledEc :paramParse(parameters['Enabled Escapecharacters By PDIFF']), }, equip:{ arrow:String(parameters['Equip Right Arrow'] || ''), }, ediff:{ plus :paramParse(parameters['Format EDIFF Plus']), minus :paramParse(parameters['Format EDIFF Minus']), enabledEc :paramParse(parameters['Enabled Escapecharacters By EDIFF']), }, aopdiff:{ plus :paramParse(parameters['Format AOPDIFF Plus']), minus :paramParse(parameters['Format AOPDIFF Minus']), enabledEc :paramParse(parameters['Enabled Escapecharacters By AOPDIFF']), }, ediffaop:{ plus :paramParse(parameters['Format EDIFFAOP Plus']), minus :paramParse(parameters['Format EDIFFAOP Minus']), enabledEc :paramParse(parameters['Enabled Escapecharacters By EDIFFAOP']), }, gauge:{ digit :Number(parameters['Gauge Param Digit'] || 0), }, image:{ posiX:Number(parameters['Image Position X'] || 0), }, message:{ levelUp:String(parameters['Display LevelUp Message'] || ''), }, customs:[ {name:String(parameters['Custom 0 Display Name'] || ''), unit:String(parameters['Custom 0 Unit'] || ''), formula:String(parameters['Custom 0 References'] || ''),}, {name:String(parameters['Custom 1 Display Name'] || ''), unit:String(parameters['Custom 1 Unit'] || ''), formula:String(parameters['Custom 1 References'] || ''),}, {name:String(parameters['Custom 2 Display Name'] || ''), unit:String(parameters['Custom 2 Unit'] || ''), formula:String(parameters['Custom 2 References'] || ''),}, {name:String(parameters['Custom 3 Display Name'] || ''), unit:String(parameters['Custom 3 Unit'] || ''), formula:String(parameters['Custom 3 References'] || ''),}, {name:String(parameters['Custom 4 Display Name'] || ''), unit:String(parameters['Custom 4 Unit'] || ''), formula:String(parameters['Custom 4 References'] || ''),}, {name:String(parameters['Custom 5 Display Name'] || ''), unit:String(parameters['Custom 5 Unit'] || ''), formula:String(parameters['Custom 5 References'] || ''),}, {name:String(parameters['Custom 6 Display Name'] || ''), unit:String(parameters['Custom 6 Unit'] || ''), formula:String(parameters['Custom 6 References'] || ''),}, {name:String(parameters['Custom 7 Display Name'] || ''), unit:String(parameters['Custom 7 Unit'] || ''), formula:String(parameters['Custom 7 References'] || ''),}, {name:String(parameters['Custom 8 Display Name'] || ''), unit:String(parameters['Custom 8 Unit'] || ''), formula:String(parameters['Custom 8 References'] || ''),}, {name:String(parameters['Custom 9 Display Name'] || ''), unit:String(parameters['Custom 9 Unit'] || ''), formula:String(parameters['Custom 9 References'] || ''),}, {name:String(parameters['Custom 10 Display Name'] || ''), unit:String(parameters['Custom 10 Unit'] || ''), formula:String(parameters['Custom 10 References'] || ''),}, {name:String(parameters['Custom 11 Display Name'] || ''), unit:String(parameters['Custom 11 Unit'] || ''), formula:String(parameters['Custom 11 References'] || ''),}, {name:String(parameters['Custom 12 Display Name'] || ''), unit:String(parameters['Custom 12 Unit'] || ''), formula:String(parameters['Custom 12 References'] || ''),}, {name:String(parameters['Custom 13 Display Name'] || ''), unit:String(parameters['Custom 13 Unit'] || ''), formula:String(parameters['Custom 13 References'] || ''),}, {name:String(parameters['Custom 14 Display Name'] || ''), unit:String(parameters['Custom 14 Unit'] || ''), formula:String(parameters['Custom 14 References'] || ''),}, {name:String(parameters['Custom 15 Display Name'] || ''), unit:String(parameters['Custom 15 Unit'] || ''), formula:String(parameters['Custom 15 References'] || ''),}, {name:String(parameters['Custom 16 Display Name'] || ''), unit:String(parameters['Custom 16 Unit'] || ''), formula:String(parameters['Custom 16 References'] || ''),}, {name:String(parameters['Custom 17 Display Name'] || ''), unit:String(parameters['Custom 17 Unit'] || ''), formula:String(parameters['Custom 17 References'] || ''),}, {name:String(parameters['Custom 18 Display Name'] || ''), unit:String(parameters['Custom 18 Unit'] || ''), formula:String(parameters['Custom 18 References'] || ''),}, {name:String(parameters['Custom 19 Display Name'] || ''), unit:String(parameters['Custom 19 Unit'] || ''), formula:String(parameters['Custom 19 References'] || ''),}, ], gauges:[ {name:String(parameters['Gauge 0 Display Name'] || ''), ref:String(parameters['Gauge 0 References'] || ''), current:String(parameters['Gauge 0 Current'] || ''), max:String(parameters['Gauge 0 Max'] || ''), color1:Number(parameters['Gauge 0 Color1'] || 0), color2:Number(parameters['Gauge 0 Color2'] || 0),}, {name:String(parameters['Gauge 1 Display Name'] || ''), ref:String(parameters['Gauge 1 References'] || ''), current:String(parameters['Gauge 1 Current'] || ''), max:String(parameters['Gauge 1 Max'] || ''), color1:Number(parameters['Gauge 1 Color1'] || 0), color2:Number(parameters['Gauge 1 Color2'] || 0),}, {name:String(parameters['Gauge 2 Display Name'] || ''), ref:String(parameters['Gauge 2 References'] || ''), current:String(parameters['Gauge 2 Current'] || ''), max:String(parameters['Gauge 2 Max'] || ''), color1:Number(parameters['Gauge 2 Color1'] || 0), color2:Number(parameters['Gauge 2 Color2'] || 0),}, {name:String(parameters['Gauge 3 Display Name'] || ''), ref:String(parameters['Gauge 3 References'] || ''), current:String(parameters['Gauge 3 Current'] || ''), max:String(parameters['Gauge 3 Max'] || ''), color1:Number(parameters['Gauge 3 Color1'] || 0), color2:Number(parameters['Gauge 3 Color2'] || 0),}, {name:String(parameters['Gauge 4 Display Name'] || ''), ref:String(parameters['Gauge 4 References'] || ''), current:String(parameters['Gauge 4 Current'] || ''), max:String(parameters['Gauge 4 Max'] || ''), color1:Number(parameters['Gauge 4 Color1'] || 0), color2:Number(parameters['Gauge 4 Color2'] || 0),}, {name:String(parameters['Gauge 5 Display Name'] || ''), ref:String(parameters['Gauge 5 References'] || ''), current:String(parameters['Gauge 5 Current'] || ''), max:String(parameters['Gauge 5 Max'] || ''), color1:Number(parameters['Gauge 5 Color1'] || 0), color2:Number(parameters['Gauge 5 Color2'] || 0),}, {name:String(parameters['Gauge 6 Display Name'] || ''), ref:String(parameters['Gauge 6 References'] || ''), current:String(parameters['Gauge 6 Current'] || ''), max:String(parameters['Gauge 6 Max'] || ''), color1:Number(parameters['Gauge 6 Color1'] || 0), color2:Number(parameters['Gauge 6 Color2'] || 0),}, {name:String(parameters['Gauge 7 Display Name'] || ''), ref:String(parameters['Gauge 7 References'] || ''), current:String(parameters['Gauge 7 Current'] || ''), max:String(parameters['Gauge 7 Max'] || ''), color1:Number(parameters['Gauge 7 Color1'] || 0), color2:Number(parameters['Gauge 7 Color2'] || 0),}, {name:String(parameters['Gauge 8 Display Name'] || ''), ref:String(parameters['Gauge 8 References'] || ''), current:String(parameters['Gauge 8 Current'] || ''), max:String(parameters['Gauge 8 Max'] || ''), color1:Number(parameters['Gauge 8 Color1'] || 0), color2:Number(parameters['Gauge 8 Color2'] || 0),}, {name:String(parameters['Gauge 9 Display Name'] || ''), ref:String(parameters['Gauge 9 References'] || ''), current:String(parameters['Gauge 9 Current'] || ''), max:String(parameters['Gauge 9 Max'] || ''), color1:Number(parameters['Gauge 9 Color1'] || 0), color2:Number(parameters['Gauge 9 Color2'] || 0),}, ], }; var xparamName = paramParse(parameters['XPARAM Name']); if (xparamName) { FTKR.CSS.cssStatus.xparam = Object.entries(xparamName).map(function(obj){return obj[1];}); } else { console.error('プラグインパラメータ XPARAM Name が設定されていません。'); return; } var sparamName = paramParse(parameters['SPARAM Name']); if (sparamName) { FTKR.CSS.cssStatus.sparam = Object.entries(sparamName).map(function(obj){return obj[1];}); } else { console.error('プラグインパラメータ SPARAM Name が設定されていません。'); return; } //SV戦闘キャラ用の影画像の高さ Window_Base.SV_SHADOW_HEIGHT = 48; //============================================================================= // 自作関数(グローバル) //============================================================================= FTKR.gameData = FTKR.gameData || { user :null, target :null, item :null, number :0, }; if (!FTKR.setGameData) { FTKR.setGameData = function(user, target, item, number) { FTKR.gameData = { user :user || null, target :target || null, item :item || null, number :number || 0 }; }; } if (!FTKR.evalFormula) { FTKR.evalFormula = function(formula) { var datas = FTKR.gameData; try { var s = $gameSwitches._data; var v = $gameVariables._data; var a = datas.user; var b = datas.target; var item = datas.item; var number = datas.number; if (b) var result = b.result(); var value = eval(formula); if (isNaN(value)) value = 0; return value; } catch (e) { console.error(e); return 0; } }; } if (!FTKR.evalStrFormula) { FTKR.evalStrFormula = function(formula) { var datas = FTKR.gameData; try { var s = $gameSwitches._data; var v = $gameVariables._data; var a = datas.user; var b = datas.target; var item = datas.item; var number = datas.number; if (b) var result = b.result(); var value = eval(formula); return value; } catch (e) { return formula; } }; } //============================================================================= // 自作処理 //============================================================================= // textの形式のメタデータを読み取って{id,text}を返す var readEntrapmentCodeToTextEx = function(obj, codeTitles) { var regs = convertEntrapmentRegArrayEx(codeTitles); var notedata = obj.note.split(/[\r\n]+/); var setMode = 'none'; var results = []; for (var i = 0; i < notedata.length; i++) { var line = notedata[i]; if (matchRegs(line, regs, 'start')) { var data = { id:RegExp.$1, text:'' }; setMode = 'read'; } else if (matchRegs(line, regs, 'end')) { setMode = 'none'; results.push(data); } else if (setMode === 'read') { data.text += line + ';'; } } return results; }; var convertEntrapmentRegArrayEx = function(codeTitles) { return codeTitles.map(function(codeTitle) { return { start:new RegExp('<' + codeTitle + ':[ ]*(.+)>', 'i'), end :new RegExp('<\/' + codeTitle + '>', 'i') }; }); }; var matchRegs = function(data, regs, prop) { return regs.some(function(reg){ return prop ? data.match(reg[prop]) : data.match(reg); }); }; var convertEscapeCharacters = function(text) { if (text == null) text = ''; var window = SceneManager._scene._windowLayer.children[0]; return window ? window.convertEscapeCharacters(text) : text; }; var setArgStr = function(arg) { return convertEscapeCharacters(arg); }; var setArgNum = function(arg) { try { return Number(eval(setArgStr(arg))); } catch (e) { return 0; } }; // 配列の要素の合計 Math.sam = function(arr) { return arr.reduce( function(prev, current, i, arr) { return prev + current; }); }; Math._getDec = function(value) { var list = (value + '').split('.'); return list[1] !== undefined && list[1].length > 0 ? list[1].length : 0; }; // 少数で表現された割合をパーセント表示の整数に変換する (例:0.5 を 50 に変換) Math.percent = function(dec) { var decnum = Math._getDec(dec); var int = +(dec + '').replace('.', ''); var diffdec = 2 - decnum; return diffdec ? int * Math.pow(10, diffdec) : int; } Number.prototype._getDec = function() { var list = (this + '').split('.'); return list[1] !== undefined && list[1].length > 0 ? list[1].length : 0; }; // 少数で表現された数値をパーセント表示の数値に変換する (例:0.5 を 50 に変換) Number.prototype.percent = function(dec) { dec = dec || 0; var decnum = this._getDec(); var int = +(this + '').replace('.', ''); var diffdec = 2 + dec - decnum; return Math.floor(int * Math.pow(10, diffdec)) / Math.pow(10, dec); } //配列の要素を、すべて数値に変換する。 Array.prototype.num = function() { return this.map(function(elm) { return Number(elm); }); } //============================================================================= // バトル終了後に、逃走フラグを削除 //============================================================================= var _Scene_Map_start = Scene_Map.prototype.start; Scene_Map.prototype.start = function() { _Scene_Map_start.call(this); BattleManager._escaped = false; }; //============================================================================= // DataManager //============================================================================= var _DatabaseLoaded = false; var _DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded; DataManager.isDatabaseLoaded = function() { if (!_DataManager_isDatabaseLoaded.call(this)) return false; if (!_DatabaseLoaded) { this.cssActorImageNotetags($dataActors); this.cssActorImageNotetags($dataItems); this.cssActorImageNotetags($dataWeapons); this.cssActorImageNotetags($dataArmors); this.cssCustomParamNotetags($dataActors); this.cssCustomParamNotetags($dataClasses); _DatabaseLoaded = true; } return true; }; DataManager.cssActorImageNotetags = function(group) { for (var n = 1; n < group.length; n++) { var obj = group[n]; obj.cssbgi = []; var datas = readEntrapmentCodeToTextEx(obj, ['CSS_画像', 'CSS_IMAGE']); if (datas.length) this.readCssBgiMetaDatas(obj, datas); } }; DataManager.setCssBgiBase = function(obj, index, name) { obj.cssbgi[index] = { name :name, offsetX :0, offsetY :0, width :0, height :0, scale :100, }; }; DataManager.readCssBgiMetaDatas = function(obj, metaDatas) { for (var t = 0; t < metaDatas.length; t++) { this.setCssBgiBase(obj, t, metaDatas[t].id); var datas = metaDatas[t].text.split(';'); for (var i = 0; i < datas.length; i++) { var data = datas[i]; var match = /(.+):[ ]*(.+)/.exec(data); if (!match) continue; switch (match[1].toUpperCase()) { case 'BGI OFFSET X': obj.cssbgi[t].offsetX = Number(match[2]); break; case 'BGI OFFSET Y': obj.cssbgi[t].offsetY = Number(match[2]); break; case 'BGI WIDTH': obj.cssbgi[t].width = Number(match[2]); break; case 'BGI HEIGHT': obj.cssbgi[t].height = Number(match[2]); break; case 'BGI SCALE': obj.cssbgi[t].scale = Number(match[2]); break; } } } }; DataManager.cssCustomParamNotetags = function(group) { for (var n = 1; n < group.length; n++) { var obj = group[n]; obj.cssGauges = []; var datas = readEntrapmentCodeToTextEx(obj, ['CSS_カスタム', 'CSS_CUSTOM']); this.readCssCustomParamMetaDatas(obj, datas); } }; DataManager.readCssCustomParamMetaDatas = function(obj, metaDatas) { for (var t = 0; t < metaDatas.length; t++) { var dataId = Number(metaDatas[t].id); obj.cssGauges[dataId] = {}; var datas = metaDatas[t].text.split(';'); for (var i = 0; i < datas.length; i++) { var data = datas[i]; var match = /(.+):[ ]*(.+)/.exec(data); if (!match) continue; switch (match[1].toUpperCase()) { case 'NAME': case '表示名': obj.cssGauges[dataId].name = match[2]; break; case 'REFERENCES': case '参照先': obj.cssGauges[dataId].ref = match[2]; break; case 'CURRENT': case '現在値': obj.cssGauges[dataId].current = match[2]; break; case 'MAX': case '最大値': obj.cssGauges[dataId].max = match[2]; break; case 'COLOR': case '色': var colors = match[2].replace(/\s/g,'').split(','); obj.cssGauges[dataId].color1 = Number(colors[0]); obj.cssGauges[dataId].color2 = colors[1] ? Number(colors[1]) : Number(colors[0]); break; } } } }; //============================================================================= // プラグインコマンド //============================================================================= var _CSS_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { switch (command.toUpperCase()) { case 'CSS_カスタム画像変更': case 'CSS_CHANGE_CUSTOM_IMAGE': this.cssChangeCustomImage(args); break; case 'CSS_ウィンドウ設定変更': case 'CSS_CHANGE_WINDOW_SETTING': this.cssChangeWindowSetting(args); break; default: _CSS_Game_Interpreter_pluginCommand.call(this, command, args); break; } }; Game_Interpreter.prototype.cssChangeCustomImage = function(args) { switch (setArgStr(args[0]).toUpperCase()) { case 'アクター': case 'ACTOR': var actor = $gameActors.actor(setArgNum(args[1])); break; case 'パーティー': case 'PARTY': var actor = $gameParty.members()[setArgNum(args[1])]; break; default : return; } if (!actor) return; actor.setupCssbgi( setArgNum(args[2]), setArgStr(args[3]), setArgNum(args[4]), setArgNum(args[5]), setArgNum(args[6]), setArgNum(args[7]), setArgNum(args[8]) ); }; Game_Interpreter.prototype.cssChangeWindowSetting = function(args) { switch(setArgStr(args[0].toUpperCase())) { case 'バトル': case 'BATTLE': this.cssChangeWindowSettingParam($gameSystem._cssBattleWindow, args); return; default: return; } }; Game_Interpreter.prototype.cssChangeWindowSettingParam = function(param, args) { if (!param) return; switch(setArgStr(args[1].toUpperCase())) { case 'ENABLED': case 'カスタム機能': param.enabled = Boolean(setArgStr(args[2])); break; case 'NUMVISIBLEROUS': case '表示行数': param.numVisibleRows = setArgNum(args[2]); break; case 'FONTSIZE': case 'フォントサイズ': param.fontSize = setArgNum(args[2]); break; case 'PADDING': case '余白': param.padding = setArgNum(args[2]); break; case 'LINEHEIGHT': case '行高さ': param.lineHeight = setArgNum(args[2]); break; case 'OPACITY': case '背景透明度': param.opacity = setArgNum(args[2]); break; case 'HIDEFRAME': case '枠非表示': param.hideFrame = Boolean(setArgStr(args[2])); break; case 'MAXCOLS': case '表示列数': param.maxCols = setArgNum(args[2]); break; case 'CURSORHEIGHT': case 'カーソル行数': param.cursorHeight = setArgNum(args[2]); break; case 'HSPACE': case '表示行間隔': param.hspace = setArgNum(args[2]); break; default: break; } }; //============================================================================= // Game_Actor //============================================================================= var _Game_Actor_levelUp = Game_Actor.prototype.levelUp; Game_Actor.prototype.levelUp = function() { _Game_Actor_levelUp.call(this); if (!this._levelUpCount) this._levelUpCount = 0; this._levelUpCount += 1; }; var _Game_Actor_setup = Game_Actor.prototype.setup; Game_Actor.prototype.setup = function(actorId) { _Game_Actor_setup.call(this, actorId); ImageManager.loadFace(this.faceName()); this.actor().cssbgi.forEach( function(bgi){ if (bgi) ImageManager.loadPicture(bgi.name); }); this._cssbgi = this.actor().cssbgi.filter(function(bgi){ return bgi && bgi.name; }); ImageManager.loadSvActor(this.battlerName()); }; Game_Actor.prototype.cssbgi = function(imageId) { return this._cssbgi[imageId]; }; Game_Actor.prototype.setupCssbgi = function(imageId, name, x, y, width, height, scale) { var bgi = this._cssbgi[imageId]; bgi = { name : name || bgi.name, offsetX : x >= 0 ? x : bgi.offsetX, offsetY : y >= 0 ? y : bgi.offsetY, width : width >= 0 ? width : bgi.width, height : height >= 0 ? height : bgi.height, scale : scale >= 0 ? scale : bgi.scale, }; this._cssbgi[imageId] = bgi; }; //ステートモーションを取得する Game_Actor.prototype.getStateMotion = function() { if(Imported.FTKR_ESM) { return this.getEsmMotion(); } else { switch (this.stateMotionIndex()) { case 1: return 'abnormal'; case 2: return 'sleep'; case 3: return 'dead'; } return ''; } }; //============================================================================= // Window_Base //============================================================================= var _Window_Base_initialize = Window_Base.prototype.initialize; Window_Base.prototype.initialize = function(x, y, width, height) { _Window_Base_initialize.call(this, x, y, width, height); this.sprite = []; this._stateIconSprite = []; this._faceSprite = []; }; Window_Base.prototype.clearCssSprite = function(index) { if (this.sprite && this.sprite[index]) { this.sprite[index].setBattler(); } if (this._stateIconSprite && this._stateIconSprite[index]) { this._stateIconSprite[index].forEach( function(sprite){ sprite.setup(null); }); } }; Window_Base.prototype.clearItem = function(index) { this.clearCssSprite(index); }; var _CSS_Window_Selectable_clearItem = Window_Selectable.prototype.clearItem; Window_Selectable.prototype.clearItem = function(index) { _CSS_Window_Selectable_clearItem.call(this, index); Window_Base.prototype.clearItem.call(this, index); }; Window_Base.prototype.showActorNum = function() { return this.maxPageItems ? this.maxPageItems() : 1; }; Window_Base.prototype.convertCssNumber = function(actor, value) { if (!value) return 0; if (!isNaN(value)) { return Number(value); } return Number(this.evalCssCustomFormula(actor, value)); }; Window_Base.prototype.evalCssCustomFormula = function(actor, formula) { if (!formula) return ''; FTKR.setGameData(actor); return FTKR.evalFormula(formula); }; Window_Base.prototype.evalCssStrFormula = function(actor, formula) { if (!formula) return ''; FTKR.setGameData(actor); return FTKR.evalStrFormula(formula); }; Window_Base.prototype.isEnabledChangePaintOpacity = function(actor) { return actor && actor.isBattleMember(); }; //制御文字を考慮して入力したテキスト長を求める Window_Base.prototype.convertTextWidth = function(text) { var textObj = { text : text, width : 0 }; textObj.text = this.convertEscapeCharacters(textObj.text); this.convertEscapeCharactersTextWidth(textObj); textObj.width += this.textWidth(textObj.text); return textObj.width; }; Window_Base.prototype.convertEscapeCharactersTextWidth = function(obj) { var reg = /i\[(\d+)\]/i; while (reg.test(obj.text)) { obj.text = (conv.toUpperCase()).replace(reg, ''); obj.width += Window_Base._iconWidth + 4; } reg = /c\[(\d+)\]/i; while (reg.test(obj.text)) { obj.text = (obj.text.toUpperCase()).replace(reg, ''); } reg = /lw\[(\d+),?([^\]]+)\]/i; var result; while (result = reg.exec(obj.text)) { obj.width += Number(result[1]); obj.text = (obj.text.toUpperCase()).replace(reg, ''); } return obj; }; /*------------------------------------------------------------- アクターの簡易ステータスを表示する関数 drawCssActorStatus(index, actor, x, y, width, height, lss) index :アクターの表示番号 actor :アクターオブジェクト x :x座標 y :y座標 width :表示エリアの幅 height:表示エリアの高さ lss :簡易ステータスオブジェクト -------------------------------------------------------------*/ Window_Base.prototype.drawCssActorStatus = function(index, actor, x, y, width, height, lss) { if (lss && lss.statusList) { lss.statusList.forEach(function(status){ this.drawCssActorStatusText(index, actor, x, y, width, height, status, lss); },this); } else { this.drawCssActorStatus_v2(index, actor, x, y, width, height, lss); } }; Window_Base.prototype.drawCssActorStatus_v2 = function(index, actor, x, y, width, height, lss) { if (!lss) lss = {}; var w = width; var h = height; var wrs = lss.widthRate.split(',').num(); var spc = lss.space.split(',').num(); this._dispWidth = width - spc[0] - spc[3]; var aws = []; var axs = []; var status = [lss.text1.split(','), lss.text2.split(','), lss.text3.split(',')]; for (var i = 0; i < 3; i++) { aws[i] = (w - Math.sam(spc)) * wrs[i] / Math.sam(wrs); axs[i] = i > 0 ? axs[i-1] + aws[i-1] + spc[i]: x + spc[0]; this.drawCssActorStatusText(index, actor, axs[i], y, aws[i], height, status[i], lss); this._dispWidth -= aws[i] + spc[i+1]; } }; /*------------------------------------------------------------- 描画エリアを表示する関数 drawCssActorStatusText(index, actor, x, y, width, statusnames, lss) index :アクターの表示番号 actor :アクターオブジェクト x :描画エリアのx座標 y :描画エリアのy座標 width :描画エリアの幅 statusnames :描画エリアの表示コードの配列 lss :簡易ステータスオブジェクト -------------------------------------------------------------*/ Window_Base.prototype.drawCssActorStatusText = function(index, actor, x, y, width, height, status, lss) { if (lss && lss.statusList) { var dx = this.parseIntCssStatus(status.x, x, y, width, height); var dy = this.parseIntCssStatus(status.y, x, y, width, height); var dw = this.parseIntCssStatus(status.width, x, y, width, height); dw = dw < 0 ? width - x - dx : Math.min(dw, width); var text = status.text; if (/([^\(]+)\(\%1\)/i.test(status.text)) { text = text.format(status.value); } this.drawCssActorStatusBases(index, actor, x + dx, y + dy, dw, text, lss); } else { this.drawCssActorStatusText_v2(index, actor, x, y, width, height, status, lss); } }; Window_Base.prototype.parseIntCssStatus = function(value, x, y, width, height) { if (!isNaN(value)) { return parseInt(value); } else { var line = this.lineHeight(); return eval(value); } }; Window_Base.prototype.drawCssActorStatusText_v2 = function(index, actor, x, y, width, height, statusnames, lss) { var dy = this.lineHeight(); var line = 0; statusnames.forEach( function(status) { line += this.drawCssActorStatusBases(index, actor, x, y + dy * line, width, status, lss); },this); }; Window_Base.prototype.drawCssActorStatusBases = function(index, actor, x, y, width, status, lss) { if (lss && lss.statusList) { var match = status.match(/^\[(.+)\]$/); var statuses = !match ? [status] : match[1].split('/'); var len = statuses.length; var sIn = Number(lss.spaceIn); if (len > 1) width = (width - sIn * (len - 1))/ len; statuses.forEach( function(element, i) { var dx = (width + sIn) * i; this.drawCssActorStatusBase(index, actor, x + dx, y, width, element, lss); },this); } else { return this.drawCssActorStatusBases_v2(index, actor, x, y, width, status, lss); } }; Window_Base.prototype.drawCssActorStatusBases_v2 = function(index, actor, x, y, width, status, lss) { var matchA = status.match(/^\{(.+)\}$/); if (matchA) { status = matchA[1]; width = this._dispWidth; } var matchB = status.match(/^\[(.+)\]$/); var statuses = !matchB ? [status] : matchB[1].split('/'); var line = 0; var len = statuses.length; var sIn = Number(lss.spaceIn); if (len > 1) width = (width - sIn * (len - 1))/ len; statuses.forEach( function(element, i) { var dx = (width + sIn) * i; line = Math.max(this.drawCssActorStatusBase(index, actor, x + dx, y, width, element, lss), line); },this); return line; }; /*------------------------------------------------------------- 表示コードを判定する関数 drawCssActorStatusBase(index, actor, x, y, width, status, lss) index :アクターの表示番号 actor :アクターオブジェクト x :描画エリアのx座標 y :描画エリアのy座標 width :描画エリアの幅 status  :描画する表示コード lss :簡易ステータスオブジェクト -------------------------------------------------------------*/ Window_Base.prototype.drawCssActorStatusBase = function(index, actor, x, y, width, status, lss) { var css = FTKR.CSS.cssStatus; var match = status.match(/([^\(]+)\((.+)\)/); if (match) { return this.drawCssActorStatusBase_A(index, actor, x, y, width, match, lss, css); } else { return this.drawCssActorStatusBase_B(index, actor, x, y, width, status, lss, css); } }; // 括弧で表示する内容を指定する表示コード Window_Base.prototype.drawCssActorStatusBase_A = function(index, actor, x, y, width, match, lss, css) { switch(match[1].toUpperCase()) { case 'IPARAM': return this.drawCssItemParam(actor, x, y, width, match[2], lss); case 'STREVAL': return this.drawCssEval(actor, x, y, width, match[2], false); case 'EVAL': return this.drawCssEval(actor, x, y, width, match[2], true); case 'TEXT': return this.drawCssText(actor, x, y, width, match[2]); case 'NOTEQUIP': return this.drawCssCannotEquip(actor, x, y, width, match[2], lss); case 'EQUIP': return this.drawCssActorEquip(actor, x, y, width, match[2], lss); default: // if (!actor) return 1; FTKR.setGameData(actor, lss.target, lss.item); match[2] = this.convertCssNumber(actor, match[2]); return this.drawCssActorStatusBase_A1(index, actor, x, y, width, match, lss, css); } }; // 括弧で表示する内容を指定する表示コード(括弧内をevalで計算させる場合) Window_Base.prototype.drawCssActorStatusBase_A1 = function(index, actor, x, y, width, match, lss, css) { switch(match[1].toUpperCase()) { case 'EDIFFAOP': return this.drawCssActorEquipAopDiff(actor, x, y, width, match[2], lss); case 'EXDIFF': return this.drawCssActorEquipXPDiff(actor, x, y, width, match[2], lss); case 'ESDIFF': return this.drawCssActorEquipSPDiff(actor, x, y, width, match[2], lss); case 'EDIFF': return this.drawCssActorEquipDiff(actor, x, y, width, match[2], lss); case 'AOPDIFF': return this.drawCssActorAopParamDiff(actor, x, y, width, match[2], lss); case 'AOPBASE': return this.drawCssActorAopParamBase(actor, x, y, width, match[2], lss); case 'PDIFF': return this.drawCssActorParamDiff(actor, x, y, width, match[2], lss); case 'PBASE': return this.drawCssActorParamBase(actor, x, y, width, match[2], lss); case 'IIMAGE': return this.drawCssItemImage(actor, x, y, width, match[2], lss); case 'EXPARAM': return this.drawCssActorEquipXParam(actor, x, y, width, match[2], lss); case 'ESPARAM': return this.drawCssActorEquipSParam(actor, x, y, width, match[2], lss); case 'EPARAM': return this.drawCssActorEquipParam(actor, x, y, width, match[2], lss); case 'EAOP': return this.drawCssActorEquipAopParam(actor, x, y, width, match[2], lss); case 'AOP': return this.drawCssActorAopParam(actor, x, y, width, match[2], lss); case 'AGAUGE': return this.drawCssActorCustomGauge(actor, x, y, width, match[2]); case 'CGAUGE': return this.drawCssClassCustomGauge(actor, x, y, width, match[2]); case 'XPARAM': return this.drawCssActorXParam(actor, x, y, width, match[2]); case 'SPARAM': return this.drawCssActorSParam(actor, x, y, width, match[2]); case 'PARAM': return this.drawCssActorParam(actor, x, y, width, match[2]); case 'CUSTOM': return this.drawCssActorCustom(actor, x, y, width, css.customs[match[2]]); case 'GAUGE': return this.drawCssActorGauge(actor, x, y, width, css.gauges[match[2]]); case 'STATE2': return this.drawCssActorIcons(index, actor, x, y, width, match[2]); case 'FACE': return this.drawCssActorFace(actor, x, y, width, lss, match[2]); case 'IMAGE': return this.drawCssActorImage(actor, x, y, width, match[2]); default: return 1; } }; // 括弧を使わない表示コード Window_Base.prototype.drawCssActorStatusBase_B = function(index, actor, x, y, width, status, lss, css) { switch (status.toUpperCase()) { case 'IICON': return this.drawCssItemIcon(actor, x, y, width, lss); case 'INAME': return this.drawCssItemName(actor, x, y, width, lss); case 'IDESC': return this.drawCssItemDesc(actor, x, y, width, lss); case 'ITYPE': return this.drawCssItemType(actor, x, y, width, lss); case 'IETYPE': return this.drawCssItemEType(actor, x, y, width, lss); case 'ISCOPE': return this.drawCssItemScope(actor, x, y, width, lss); case 'IELEMENT': return this.drawCssItemElement(actor, x, y, width, lss); case 'INUMBER': return this.drawCssItemNumber(actor, x, y, width, lss); case 'MAPNAME': return this.drawCssMapName(actor, x, y, width, lss); case 'FACE': return this.drawCssActorFace(actor, x, y, width, lss); case 'ECHARA': return this.drawCssEnemyChara(actor, x, y, width); case 'CHARA': return this.drawCssActorChara(actor, x, y, width, css.chara); case 'SV': return this.drawCssActorSvChara(index, actor, x, y, width, css.svChara); case 'NICKNAME': return this.drawCssActorNickname(actor, x, y, width); case 'NAME': return this.drawCssActorName(actor, x, y, width); case 'LEVEL': return this.drawCssActorLevel(actor, x, y, width); case 'HP': return this.drawCssActorHp(actor, x, y, width); case 'MP': return this.drawCssActorMp(actor, x, y, width); case 'TP': return this.drawCssActorTp(actor, x, y, width); case 'CLASS': return this.drawCssActorClass(actor, x, y, width); case 'STATE': return this.drawCssActorIcons(index, actor, x, y, width); case 'PROFILE': return this.drawCssProfile(actor, x, y, width); case 'IMAGE': return this.drawCssActorImage(actor, x, y, width, 0); case 'MESSAGE': return this.drawCssActorMessage(actor, x, y, width); case 'LINE': return this.drawCssLine(x, y, width); default: return 1; } }; //------------------------------------------------------------------------ //アイテム名の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemIcon = function(actor, x, y, width, lss) { var index = lss.item ? lss.item.iconIndex : 0; this.drawIcon(index, x, y); return 1; }; //------------------------------------------------------------------------ //アイテムアイコンの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemName = function(actor, x, y, width, lss) { var name = lss.item ? lss.item.name : ''; this.drawText(name, x, y, width); return 1; }; //------------------------------------------------------------------------ //アイテムの説明の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemDesc = function(actor, x, y, width, lss) { var name = lss.item ? lss.item.description : ''; this.drawTextEx(name, x, y); return 2; }; //------------------------------------------------------------------------ //アイテムの設定の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemParam = function(actor, x, y, width, param, lss) { var item = lss.item; if (!item) return 1; this.drawText(item[param], x, y, width); return 1; }; //------------------------------------------------------------------------ //アイテムのタイプ(スキルタイプ、武器タイプ、防具タイプ) //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemType = function(actor, x, y, width, lss) { this.drawText(DataManager.itemTypeName(lss.item), x, y, width); return 1; }; Window_Base.ITEM_TYPES = [ '', '一般アイテム', '大事なもの', '隠しアイテムA', '隠しアイテムB', ]; DataManager.itemTypeName = function(item) { if (this.isSkill(item)) { return $dataSystem.skillTypes[item.stypeId]; } else if (this.isItem(item)) { return Window_Base.ITEM_TYPES[item.itypeId]; } else if (this.isWeapon(item)) { return $dataSystem.weaponTypes[item.wtypeId]; } else if (this.isArmor(item)) { return $dataSystem.armorTypes[item.atypeId]; } else { return ''; } }; //------------------------------------------------------------------------ //アイテムの装備タイプ //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemEType = function(actor, x, y, width, lss) { var name = lss.item ? $dataSystem.equipTypes[lss.item.etypeId] : ''; this.drawText(name, x, y, width); return 1; }; //------------------------------------------------------------------------ //アイテムの範囲 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemScope = function(actor, x, y, width, lss) { var name = lss.item ? Window_Base.ITEM_SCOPE[lss.item.scope] : ''; this.drawText(name, x, y, width); return 1; }; Window_Base.ITEM_SCOPE = [ '', '敵単体', '敵全体', '敵1体ランダム', '敵2体ランダム', '敵3体ランダム', '敵4体ランダム', '味方単体', '味方全体', '味方単体(戦闘不能)', '味方全体(戦闘不能)', '使用者' ]; //------------------------------------------------------------------------ //アイテムの属性 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemElement = function(actor, x, y, width, lss) { var name = lss.item && lss.item.damage ? $dataSystem.elements[lss.item.damage.elementId] : ''; this.drawText(name, x, y, width); return 1; }; //------------------------------------------------------------------------ //アイテムのカスタム画像の表示 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemImage = function(actor, dx, dy, width, id, lss) { var item = lss.item; if (!item || !item.cssbgi) return 1; id = id || 0; var bgi = item.cssbgi[id]; if (!bgi) return 1; var bitmap = ImageManager.loadPicture(bgi.name); if (!bitmap) return 1; var sw = bgi.width || bitmap.width; var sh = bgi.height || bitmap.height; var sx = bgi.offsetX || 0; var sy = bgi.offsetY || 0; var dh = sh * bgi.scale / 100; var dw = sw * bgi.scale / 100; var offsetX = FTKR.CSS.cssStatus.image.posiX * (width - dw) / 2; dx = Math.floor(dx + offsetX); this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh); return Math.ceil(dh / this.lineHeight()) || 1; }; //------------------------------------------------------------------------ //アイテムの所持数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssItemNumber = function(actor, x, y, width, lss) { if (lss.item){ var numItems = $gameParty.numItems(lss.item); this.drawText(numItems, x, y, width, 'right'); } return 1; }; //------------------------------------------------------------------------ //マップ名の表示 //------------------------------------------------------------------------ Window_Base.prototype.drawCssMapName = function(actor, x, y, width, lss) { this.drawText($gameMap.displayName(), x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターの顔画像の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorFace = function(actor, x, y, width, lss, scale) { var dy = this.lineHeight(); scale = scale || Math.ceil(Window_Base._faceHeight / dy); this.changePaintOpacity(this.isEnabledChangePaintOpacity(actor)); this.drawCssFace(actor, x, y, width, dy * scale); this.changePaintOpacity(true); return scale; }; Window_Base.prototype.drawCssFace = function(actor, dx, dy, width, height) { var fw = FTKR.CSS.cssStatus.face.width || Window_Base._faceWidth; var fh = FTKR.CSS.cssStatus.face.height || Window_Base._faceHeight; var scaleh = height / fh; var scaleW = width / fw; if (scaleh < scaleW) { var dh = height; var dw = fw * scaleh; } else { var dh = fh * scaleW; var dw = width; } var offsetX = this.cssFacePositionX(actor) * (width - dw) / 2; dx = Math.floor(dx + offsetX); var bitmap = ImageManager.loadFace(actor.faceName()); var sw = fw; var sh = fh; var sx = actor.faceIndex() % 4 * sw; var sy = Math.floor(actor.faceIndex() / 4) * sh; this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh); }; Window_Base.prototype.cssFacePositionX = function(actor) { return FTKR.CSS.cssStatus.face.posiX; }; //------------------------------------------------------------------------ //エネミーの戦闘画像の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssEnemyChara = function(actor, dx, dy, width) { if (!actor) return 1; var bitmap = ImageManager.loadPicture(actor.battlerName()); if (!bitmap) return 1; var sw = bitmap.width; var sh = bitmap.height; var sx = 0; var sy = 0; var dh = sh; var dw = sw; this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh); return Math.ceil(dh / this.lineHeight()) || 1; }; //------------------------------------------------------------------------ //アクターの歩行キャラの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorChara = function(actor, x, y, width, chara) { var dy = this.lineHeight(); var line = Math.ceil(chara.height / dy); this.changePaintOpacity(this.isEnabledChangePaintOpacity(actor)); this.drawCssChara(actor, x, y, width, dy * line, chara); this.changePaintOpacity(true); return line; }; Window_Base.prototype.drawCssChara = function(actor, dx, dy, width, height, chara) { var faceName = actor.characterName(); var index = actor.characterIndex(); var dh = chara.height; var dw = dh || width || chara.width; var offsetX = this.cssCharaPositionX(actor, chara) * (width - dw) / 2; var offsetY = (height - dh) / 2; dx = Math.floor(dx + offsetX); dy = Math.floor(dy + offsetY); var bitmap = ImageManager.loadCharacter(faceName); var direction = chara.direction ? $gamePlayer._direction / 2 - 1 : 0; var sw = chara.width; var sh = chara.height; var sx = (index % 4 * 3 + 1) * sw; var sy = (Math.floor(index / 4) * 4 + direction) * sh; this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh); }; Window_Base.prototype.cssCharaPositionX = function(actor, chara) { return chara.posiX; }; //------------------------------------------------------------------------ //アクターのSV戦闘キャラの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorSvChara = function(index, actor, x, y, width, svChara) { var dy = this.lineHeight(); var line = Math.ceil(svChara.height / dy); this.changePaintOpacity(this.isEnabledChangePaintOpacity(actor)); this.drawCssSvChara(index, actor, x, y, width, dy * line, svChara); this.changePaintOpacity(true); return line; }; Window_Base.prototype.drawCssSvChara = function(index, actor, dx, dy, width, height, svChara) { if (this.enableCssSvCharaMotion(svChara)) { this.drawCssSvSprite(index, actor, dx, dy, width, height, svChara); } else { this.drawCssSvImage(index, actor, dx, dy, width, height, svChara); } }; Window_Base.prototype.enableCssSvCharaMotion = function(svChara) { return $gameSystem.isSideView() && (svChara.enable === 1 || svChara.enable === 2 && !$gameParty.inBattle()); }; Window_Base.prototype.drawCssSvSprite = function(index, actor, dx, dy, width, height, svChara) { index = index % this.showActorNum(); var sprite = this.sprite[index]; if (!sprite) { sprite = new Sprite_Actor(actor); this.addChild(sprite); this.sprite[index] = sprite; } else { sprite.setBattler(actor); } var offsetX = this.cssSvPositionX(actor, svChara) * (width - svChara.width) / 2; var sx = Math.floor(dx + offsetX + this.padding + svChara.width / 2); var sy = Math.floor(dy + height + this.padding); sprite.setHome(sx, sy); sprite.startMove(0,0,0); sprite.stopMove(); if (!Imported.FTKR_ESM) { var stateMotion = actor.getStateMotion(); var motion = svChara.state && stateMotion ? stateMotion : svChara.motion; sprite.startMotion(motion); } }; Window_Base.prototype.drawCssSvImage = function(index, actor, dx, dy, width, height, svChara) { var dh = svChara.height; var dw = dh || width || svChara.width; var offsetX = this.cssSvPositionX(actor, svChara) * (width - dw) / 2; var offsetY = (height - dh) / 2; dx = Math.floor(dx + offsetX); dy = Math.floor(dy + offsetY); var bitmap = ImageManager.loadSvActor(actor.battlerName()); var sw = svChara.width; var sh = svChara.height; this.contents.blt(bitmap, 0, 0, sw, sh, dx, dy, dw, dh); }; Window_Base.prototype.cssSvPositionX = function(actor, svChara) { return svChara.posiX; }; //------------------------------------------------------------------------ //アクターの名前の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorName = function(actor, x, y, width) { if (!actor) return 1; this.changeTextColor(this.hpColor(actor)); this.drawText(actor.name(), x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターのクラス名の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorClass = function(actor, x, y, width) { this.resetTextColor(); this.drawText(actor.currentClass().name, x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターの二つ名の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorNickname = function(actor, x, y, width) { this.resetTextColor(); this.drawText(actor.nickname(), x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターのレベルの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorLevel = function(actor, x, y, width) { var value = actor.level; var tw = this.textWidth(String(value)); this.changeTextColor(this.systemColor()); this.drawText(TextManager.levelA, x, y, width - tw - 4); this.resetTextColor(); this.drawText(value, x + width - tw, y, tw, 'right'); return 1; }; //------------------------------------------------------------------------ //アクターのステートアイコンの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorIcons = function(index, actor, x, y, width, line) { if (FTKR.CSS.cssStatus.state.enable) { return this.drawCssIconsSprite(index, actor, x, y, width, line); } else { this.drawActorIcons(actor, x, y, width); return 1; } }; Window_Base.prototype.drawCssIconsSprite = function(index, actor, x, y, width, line) { var css = FTKR.CSS.cssStatus.state; var iw = Window_Base._iconWidth; var iconPadding = css.iconPadding; index = index % this.showActorNum(); var iconSprites = this._stateIconSprite[index]; if (!iconSprites) { iconSprites = []; } if(css.autoScale) { var scale = this.iconScale(width); iw = iw * scale; } var maxlen = line ? this.lineHeight() * line : width; var offset = css.overlap ? this.getOverlapValue(actor, iw, maxlen, css) : iw; var showNum = Math.max(Math.floor((maxlen - iconPadding) / offset), 1); if (showNum < iconSprites.length) { iconSprites.forEach(function(sprite,i){ if (i < showNum) return; this.removeChild(sprite); },this); iconSprites = iconSprites.slice(0, showNum); } for (var i = 0; i < showNum; i++) { var sprite = iconSprites[i]; if (!sprite) { sprite = new Sprite_CssStateIcon(i, showNum); this.addChild(sprite); sprite.setup(actor, showNum); iconSprites[i] = sprite; } else { sprite.setup(actor, showNum); } sprite.move(x + this.padding, y + this.padding); sprite.offsetMove(offset * i, line); if(css.autoScale) sprite.setScale(scale); } this._stateIconSprite[index] = iconSprites; return line ? line : 1; }; Window_Base.prototype.getOverlapValue = function(actor, iw, maxlen, css) { var iconlen = actor.allIcons().length; var iconPadding = FTKR.CSS.cssStatus.state.iconPadding; var diff = Math.max((maxlen - iw - iconPadding) / (iconlen - 1), iw * css.rate); return diff && diff < iw ? diff : iw; }; Window_Base.prototype.iconOverlapOffset = function(iw, number, width, vartical) { var iconPadding = FTKR.CSS.cssStatus.state.iconPadding; var len = vartical ? (number - 1) * this.lineHeight() + iconPadding : width - iw - iconPadding; var diff = number > 1 ? len / (number - 1) : 0; return diff < iw ? diff : iw; }; Window_Base.prototype.iconScale = function(width) { var iconPadding = FTKR.CSS.cssStatus.state.iconPadding; var iw = Window_Base._iconWidth; var len = Math.min(this.lineHeight(), width); return Math.min(Math.max(len - iconPadding, 0) / iw); }; //アイコンの表示スケールを指定できる表示関数 Window_Base.prototype.drawCssIcon = function(iconIndex, x, y, scale, auto) { var iconPadding = FTKR.CSS.cssStatus.state.iconPadding; scale = scale || 1; var bitmap = ImageManager.loadSystem('IconSet'); var pw = Window_Base._iconWidth; var ph = Window_Base._iconHeight; if (auto) scale = Math.min(Math.max(this.lineHeight() - iconPadding, 0) / pw, 1); var sx = iconIndex % 16 * pw; var sy = Math.floor(iconIndex / 16) * ph; this.contents.blt(bitmap, sx, sy, pw, ph, x, y, pw * scale, ph * scale); }; //------------------------------------------------------------------------ //アクターのHPの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorHp = function(actor, x, y, width) { this.drawActorHp(actor, x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターのMPの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorMp = function(actor, x, y, width) { this.drawActorMp(actor, x, y, width); return 1; }; //------------------------------------------------------------------------ //アクターのTPの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorTp = function(actor, x, y, width) { this.drawActorTp(actor, x, y, width); return 1; }; //------------------------------------------------------------------------ //パラメータの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorParam = function(actor, x, y, width, paramId) { if (paramId < 0 && paramId > 7) return 0; this.changeTextColor(this.systemColor()); this.drawText(TextManager.param(paramId), x, y, width); this.resetTextColor(); this.drawText(actor.param(paramId), x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //素のパラメータの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorParamBase = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 7) return 0; this.changeTextColor(this.systemColor()); this.drawText(TextManager.param(paramId), x, y, width); this.resetTextColor(); this.drawText(actor.paramBase(paramId), x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //パラメータ差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorParamDiff = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 7) return 1; var param = actor.param(paramId); var base = actor.paramBase(paramId); var diff = param - base; this.drawParamDiffValue(diff, x, y, width, FTKR.CSS.cssStatus.pdiff); return 1; }; Window_Base.prototype.drawParamDiffValue = function(value, x, y, width, formatParams) { this.changeTextColor(this.paramchangeTextColor(value)); var text = ''; if (value > 0) { text = formatParams.plus.format(value); } else if (value < 0) { text = formatParams.minus.format(-value); } if (formatParams.enabledEc) { this.drawTextEx(text, x, y); } else { this.drawText(text, x, y, width, 'right'); } this.resetTextColor(); }; //------------------------------------------------------------------------ //追加能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorXParam = function(actor, x, y, width, paramId) { if (paramId < 0 && paramId > 9) return 0; this.changeTextColor(this.systemColor()); this.drawText(FTKR.CSS.cssStatus.xparam[paramId], x, y, width); this.resetTextColor(); var text = actor.xparam(paramId); if (FTKR.CSS.cssStatus.param.decimals) { text = text.percent() + '%'; } this.drawText(text, x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //特殊能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorSParam = function(actor, x, y, width, paramId) { if (paramId < 0 && paramId > 9) return 0; this.changeTextColor(this.systemColor()); this.drawText(FTKR.CSS.cssStatus.sparam[paramId], x, y, width); this.resetTextColor(); var text = actor.sparam(paramId); if (FTKR.CSS.cssStatus.param.decimals) { text = text.percent() + '%'; } this.drawText(text, x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //指定したアイテムを装備した時のパラメータの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipParam = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 7) return 0; this.drawTextEx(FTKR.CSS.cssStatus.equip.arrow, x, y); var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (this.checkShowEquipParam(actor, target)) { var newValue = target.param(paramId); var diffvalue = newValue - actor.param(paramId); this.changeTextColor(this.paramchangeTextColor(diffvalue)); this.drawText(newValue, x, y, width, 'right'); } return 1; }; Window_Base.prototype.checkShowEquipParam = function(actor, target) { return !!actor && !!target; }; //------------------------------------------------------------------------ //指定したアイテムを装備した時の追加能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipXParam = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 9) return 0; this.drawTextEx(FTKR.CSS.cssStatus.equip.arrow, x, y); var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (this.checkShowEquipParam(actor, target)) { var newValue = target.xparam(paramId); var diffvalue = newValue - actor.xparam(paramId); this.changeTextColor(this.paramchangeTextColor(diffvalue)); if (FTKR.CSS.cssStatus.param.decimals) { newValue = newValue.percent() + '%'; } this.drawText(newValue, x, y, width, 'right'); } return 1; }; //------------------------------------------------------------------------ //指定したアイテムを装備した時の特殊能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipSParam = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 9) return 0; this.drawTextEx(FTKR.CSS.cssStatus.equip.arrow, x, y); var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (this.checkShowEquipParam(actor, target)) { var newValue = target.sparam(paramId); var diffvalue = newValue - actor.sparam(paramId); this.changeTextColor(this.paramchangeTextColor(diffvalue)); if (FTKR.CSS.cssStatus.param.decimals) { newValue = newValue.percent() + '%'; } this.drawText(newValue, x, y, width, 'right'); } return 1; }; //------------------------------------------------------------------------ //装備パラメータ差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipDiff = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 7) return 1; var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (target) { var newValue = target.param(paramId); var diffvalue = newValue - actor.param(paramId); this.drawParamDiffValue(diffvalue, x, y, width, FTKR.CSS.cssStatus.ediff); } return 1; }; //------------------------------------------------------------------------ //追加能力値の装備パラメータ差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipXPDiff = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 9) return 1; var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (target) { var newValue = target.xparam(paramId); var diffvalue = newValue - actor.xparam(paramId); if (FTKR.CSS.cssStatus.param.decimals) { diffvalue = diffvalue.percent() + '%'; } this.drawParamDiffValue(diffvalue, x, y, width, FTKR.CSS.cssStatus.ediff); } return 1; }; //------------------------------------------------------------------------ //特殊能力値の装備パラメータ差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipSPDiff = function(actor, x, y, width, paramId, lss) { if (paramId < 0 && paramId > 9) return 1; var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (target) { var newValue = target.sparam(paramId); var diffvalue = newValue - actor.sparam(paramId); if (FTKR.CSS.cssStatus.param.decimals) { diffvalue = diffvalue.percent() + '%'; } this.drawParamDiffValue(diffvalue, x, y, width, FTKR.CSS.cssStatus.ediff); } return 1; }; //------------------------------------------------------------------------ //AOP能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorAopParam = function(actor, x, y, width, paramId, lss) { if (!Imported.FTKR_AOP) return 1; if (paramId < 0 && FTKR.AOP.useParamNum > 9) return 1; this.changeTextColor(this.systemColor()); this.drawText(FTKR.AOP.params[paramId].text, x, y, width); this.resetTextColor(); this.drawText(actor.aopParam(paramId), x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //素のAOP能力値の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorAopParamBase = function(actor, x, y, width, paramId, lss) { if (!Imported.FTKR_AOP) return 1; if (paramId < 0 && FTKR.AOP.useParamNum > 9) return 1; this.changeTextColor(this.systemColor()); this.drawText(FTKR.AOP.params[paramId].text, x, y, width); this.resetTextColor(); this.drawText(actor.aopParamBase(paramId), x, y, width, 'right'); return 1; }; //------------------------------------------------------------------------ //AOP能力値差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorAopParamDiff = function(actor, x, y, width, paramId, lss) { if (!Imported.FTKR_AOP) return 1; if (paramId < 0 && FTKR.AOP.useParamNum > 9) return 1; var param = actor.aopParam(paramId); var base = actor.aopParamBase(paramId); var diff = param - base; this.drawParamDiffValue(diff, x, y, width, FTKR.CSS.cssStatus.aopdiff); return 1; }; //------------------------------------------------------------------------ //指定したアイテムを装備した時のAOPパラメータの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipAopParam = function(actor, x, y, width, paramId, lss) { if (!Imported.FTKR_AOP) return 1; if (paramId < 0 && FTKR.AOP.useParamNum > 9) return 1; this.drawTextEx(FTKR.CSS.cssStatus.equip.arrow, x, y); var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (this.checkShowEquipParam(actor, target)) { var newValue = target.aopParam(paramId); var diffvalue = newValue - actor.aopParam(paramId); this.changeTextColor(this.paramchangeTextColor(diffvalue)); this.drawText(newValue, x, y, width, 'right'); } return 1; }; //------------------------------------------------------------------------ //AOP装備パラメータ差分の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquipAopDiff = function(actor, x, y, width, paramId, lss) { if (!Imported.FTKR_AOP) return 1; if (paramId < 0 && FTKR.AOP.useParamNum > 7) return 1; var target = lss.target; var item = FTKR.gameData.item; if (item && !actor.canEquip(item)) return 1; if (target) { var newValue = target.aopParam(paramId); var diffvalue = newValue - actor.aopParam(paramId); this.drawParamDiffValue(diffvalue, x, y, width, FTKR.CSS.cssStatus.ediffaop); } return 1; }; //------------------------------------------------------------------------ //カスタムパラメータの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorCustom = function(actor, x, y, width, custom) { if (!custom) return 1; var name = custom.name || ''; var formula = custom.formula || ''; var unit = custom.unit || ''; var tux = this.convertTextWidth(unit); var value = this.evalCssCustomFormula(actor, formula); this.changeTextColor(this.systemColor()); var tx = this.convertTextWidth(name); this.drawTextEx(name, x, y); this.resetTextColor(); this.drawText(value, x + tx, y, width - tx - tux, 'right'); if (unit) this.drawTextEx(unit, x + width - tux, y); return 1; }; //------------------------------------------------------------------------ //カスタムゲージの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorGauge = function(actor, x, y, width, gauge) { if (!gauge) return 1; var current = this.evalCssStrFormula(actor, gauge.current); var max = this.evalCssStrFormula(actor, gauge.max); if (gauge.color1 >= 0 && gauge.color2 >= 0) { var rate = isNaN(max) ? 1 : current / max; var color1 = this.textColor(gauge.color1); var color2 = this.textColor(gauge.color2); this.drawGauge(x, y, width, rate, color1, color2); } this.changeTextColor(this.systemColor()); var tx = this.convertTextWidth(gauge.name); this.drawTextEx(gauge.name, x, y); if (gauge.ref) { var ref = this.evalCssStrFormula(actor, gauge.ref); this.resetTextColor(); this.drawText(ref, x + tx, y, width - tx, 'right'); } else { if (tx) this.drawCssCurrentAndMax(tx, current, max, x, y, width, this.normalColor(), this.normalColor()); } return 1; }; Window_Base.prototype.drawCssCurrentAndMax = function(labelWidth, current, max, x, y, width, color1, color2) { var gauge = FTKR.CSS.cssStatus.gauge; var valueWidth = this.textWidth('0') * gauge.digit; var slashWidth = this.textWidth('/'); var x1 = x + width - valueWidth; var x2 = x1 - slashWidth; var x3 = x2 - valueWidth; if (x3 >= x + labelWidth) { this.changeTextColor(color1); this.drawText(current, x3, y, valueWidth, 'right'); this.changeTextColor(color2); this.drawText('/', x2, y, slashWidth, 'right'); this.drawText(max, x1, y, valueWidth, 'right'); } else { this.changeTextColor(color1); this.drawText(current, x1, y, valueWidth, 'right'); } }; //------------------------------------------------------------------------ //装備の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorEquip = function(actor, x, y, width, equipId, lss) { if ((equipId +'').toUpperCase() === 'SHOP') { equipId = lss.item.etypeId - 1; } else { FTKR.setGameData(actor, lss.target, lss.item); equipId = this.convertCssNumber(actor, equipId); } var equip = actor.equips()[equipId]; if (equip) { this.drawCssIcon(equip.iconIndex, x, y, 1, true); var iw = Window_Base._iconWidth + 4; this.resetTextColor(); this.drawText(equip.name, x + iw, y, width - iw); } return 1; }; //------------------------------------------------------------------------ //装備可否の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssCannotEquip = function(actor, x, y, width, text, lss) { var item = FTKR.gameData.item || lss.item; if (!item) return 1; if (!actor.canEquip(item)) { text = text == 'null' ? '装備不可' : text; this.drawTextEx(text, x, y); } return 1; }; //------------------------------------------------------------------------ //プロフィールの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssProfile = function(actor, x, y, width) { this._setItem = actor.actor(); var texts = actor.profile().split('\n'); var dy = this.lineHeight(); texts.forEach( function(text, i) { this.drawTextEx(text, x, y + dy * i); },this); return texts.length; }; //------------------------------------------------------------------------ //テキストの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssText = function(actor, x, y, width, text) { if (!text) return 1; var text = this.evalCssStrFormula(actor, text); this.changeTextColor(this.systemColor()); this.drawTextEx(text, x, y); this.resetTextColor(); return 1; }; //------------------------------------------------------------------------ //JS評価式の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssEval = function(actor, x, y, width, text, isNumber) { if (!text) return 1; if (isNumber) { var value = this.evalCssCustomFormula(actor, text); var align = 'right'; } else { var value = this.evalCssStrFormula(actor, text); var align = 'left'; } this.resetTextColor(); this.drawText(value, x, y, width, align); return 1; }; //------------------------------------------------------------------------ //カスタム画像の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorImage = function(actor, x, y, width, id) { if (!actor) return 1; this.changePaintOpacity(this.isEnabledChangePaintOpacity(actor)); var line = this.drawCssImage(actor, x, y, width, id); this.changePaintOpacity(true); return line; }; Window_Base.prototype.drawCssImage = function(actor, dx, dy, width, id) { var bgi = actor.cssbgi(id) ? actor.cssbgi(id) : actor.actor().cssbgi[id]; if (!bgi) return 1; var bitmap = ImageManager.loadPicture(bgi.name); if (!bitmap) return 1; var sw = bgi.width || bitmap.width; var sh = bgi.height || bitmap.height; var sx = bgi.offsetX || 0; var sy = bgi.offsetY || 0; var dh = sh * bgi.scale / 100; var dw = sw * bgi.scale / 100; var offsetX = FTKR.CSS.cssStatus.image.posiX * (width - dw) / 2; dx = Math.floor(dx + offsetX); this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh); return Math.ceil(dh / this.lineHeight()) || 1; }; //------------------------------------------------------------------------ //アクターに設定したカスタムゲージの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorCustomGauge = function(actor, x, y, width, paramId) { var gauge = actor.actor().cssGauges[paramId]; if (!gauge) return 1; return this.drawCssActorGauge(actor, x, y, width, gauge); }; //------------------------------------------------------------------------ //クラスに設定したカスタムゲージの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssClassCustomGauge = function(actor, x, y, width, paramId) { var gauge = actor.currentClass().cssGauges[paramId]; if (!gauge) return 1; return this.drawCssActorGauge(actor, x, y, width, gauge); }; //------------------------------------------------------------------------ //アクターの状態の変化に対するメッセージの表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssActorMessage = function(actor, x, y, width) { if (!actor._levelUpCount) return 1; var text = FTKR.CSS.cssStatus.message.levelUp.format(actor.name(), actor.level, actor._levelUpCount); this.drawTextEx(text, x, y); actor._levelUpMessage = true; return 1; }; var _Scene_Base_start = Scene_Base.prototype.start; Scene_Base.prototype.start = function() { _Scene_Base_start.call(this); if ($gameParty) { $gameParty.members().forEach( function(actor){ if (actor && actor._levelUpMessage) { actor._levelUpCount = 0; actor._levelUpMessage = false; } }); } }; //------------------------------------------------------------------------ //横線の表示関数 //------------------------------------------------------------------------ Window_Base.prototype.drawCssLine = function(x, y, width, thick, color) { var thick = thick > 0 ? thick : 2; var color = color > 0 ? color : 0; var lineY = y + this.lineHeight() / 2 - thick / 2; this.contents.paintOpacity = 48; this.contents.fillRect(x, lineY, width, thick, this.textColor(color)); this.contents.paintOpacity = 255; return 1; }; //------------------------------------------------------------------------ // ウィンドウレイアウトの初期値設定用の修正 //------------------------------------------------------------------------ var _CSS_Window_Base_initialize = Window_Base.prototype.initialize; Window_Base.prototype.initialize = function(x, y, width, height) { this.initCssLayout(); _CSS_Window_Base_initialize.call(this, x, y, width, height); }; Window_Base.prototype.initCssLayout = function() { var lss = this.standardCssLayout(); if (lss && lss.enabled) { this._customFontSize = lss.fontSize; this._customPadding = lss.padding; this._customLineHeight = lss.lineHeight; this._customBackOpacity = lss.opacity; this._customHideFrame = lss.hideFrame; } this._lssStatus = this.standardCssStatus(); }; Window_Base.prototype.standardCssLayout = function() { return {}; } Window_Base.prototype.standardCssStatus = function() { return {}; }; Window_Selectable.prototype.initCssLayout = function() { Window_Base.prototype.initCssLayout.call(this); var lss = this.standardCssLayout(); if (lss && lss.enabled) { this._customMaxCols = lss.maxCols; this._customCursorHeight = lss.cursorHeight; this._customHorSpacing = lss.hspace; } }; //============================================================================= // customデータの参照 //============================================================================= var _CSS_Window_Base_standardFontSize = Window_Base.prototype.standardFontSize; Window_Base.prototype.standardFontSize = function() { return this._customFontSize ? this._customFontSize : _CSS_Window_Base_standardFontSize.call(this); }; var _CSS_Window_Base_standardPadding = Window_Base.prototype.standardPadding; Window_Base.prototype.standardPadding = function() { return this._customPadding >= 0 ? this._customPadding : _CSS_Window_Base_standardPadding.call(this); }; var _CSS_Window_Base_lineHeight = Window_Base.prototype.lineHeight; Window_Base.prototype.lineHeight = function() { return this._customLineHeight ? this._customLineHeight : _CSS_Window_Base_lineHeight.call(this); }; var _CSS_Window_Base_standardBackOpacity = Window_Base.prototype.standardBackOpacity; Window_Base.prototype.standardBackOpacity = function() { return this._customBackOpacity >= 0 ? this._customBackOpacity : _CSS_Window_Base_standardBackOpacity.call(this); }; //------------------------------------------------------------------------ // _customHideFrame //------------------------------------------------------------------------ //ウィンドウ枠の表示 Window_Base.prototype._refreshFrame = function() { Window.prototype._refreshFrame.call(this); if (this._customHideFrame) { this._windowFrameSprite.alpha = 0;//フレームだけ消す } else { this._windowFrameSprite.alpha = 1; } }; //------------------------------------------------------------------------ // _customSpacing //------------------------------------------------------------------------ Window_Base.prototype.spacing = function() { return 0; }; var _CSS_Window_Selectable_spacing = Window_Selectable.prototype.spacing; Window_Selectable.prototype.spacing = function() { return this._customSpacing !== undefined ? this._customSpacing : _CSS_Window_Selectable_spacing.call(this); }; Window_Selectable.prototype.customSpacing = function() { return this._customSpacing !== undefined ? this._customSpacing : this.spacing(); }; //------------------------------------------------------------------------ // _customMaxCols //------------------------------------------------------------------------ var _CSS_Window_Selectable_maxCols = Window_Selectable.prototype.maxCols; Window_Selectable.prototype.maxCols = function() { return this._customMaxCols ? this._customMaxCols : _CSS_Window_Selectable_maxCols.call(this); }; Window_Selectable.prototype.customMaxCols = function() { return this._customMaxCols ? this._customMaxCols : this.maxCols(); }; //------------------------------------------------------------------------ // _customCursorHeight //------------------------------------------------------------------------ Window_Selectable.prototype.cursorHeight = function() { return this._customCursorHeight; }; //------------------------------------------------------------------------ // _customHorSpacing //------------------------------------------------------------------------ Window_Selectable.prototype.itemHeightSpace = function() { return this._customHorSpacing; }; //============================================================================= // customデータの反映 //============================================================================= //書き換え Window_Selectable.prototype.maxRows = function() { return Math.max(Math.ceil(this.maxItems() / this.customMaxCols()), 1); }; //書き換え Window_Selectable.prototype.row = function() { return Math.floor(this.index() / this.customMaxCols()); }; //書き換え Window_Selectable.prototype.maxPageItems = function() { return this.maxPageRows() * this.customMaxCols(); }; //書き換え Window_Selectable.prototype.topIndex = function() { return this.topRow() * this.customMaxCols(); }; //書き換え Window_Selectable.prototype.cursorDown = function(wrap) { var index = this.index(); var maxItems = this.maxItems(); var maxCols = this.customMaxCols(); if (index < maxItems - maxCols || (wrap && maxCols === 1)) { this.select((index + maxCols) % maxItems); } }; //書き換え Window_Selectable.prototype.cursorUp = function(wrap) { var index = this.index(); var maxItems = this.maxItems(); var maxCols = this.customMaxCols(); if (index >= maxCols || (wrap && maxCols === 1)) { this.select((index - maxCols + maxItems) % maxItems); } }; //書き換え Window_Selectable.prototype.cursorRight = function(wrap) { var index = this.index(); var maxItems = this.maxItems(); var maxCols = this.customMaxCols(); if (maxCols >= 2 && (index < maxItems - 1 || (wrap && this.isHorizontal()))) { this.select((index + 1) % maxItems); } }; //書き換え Window_Selectable.prototype.cursorLeft = function(wrap) { var index = this.index(); var maxItems = this.maxItems(); var maxCols = this.customMaxCols(); if (maxCols >= 2 && (index > 0 || (wrap && this.isHorizontal()))) { this.select((index - 1 + maxItems) % maxItems); } }; //書き換え Window_Command.prototype.numVisibleRows = function() { return Math.ceil(this.maxItems() / this.customMaxCols()); }; //書き換え Window_Selectable.prototype.itemWidth = function() { return Math.floor((this.width - this.padding * 2 + this.customSpacing()) / this.customMaxCols() - this.customSpacing()); }; var _Window_Selectable_itemHeight = Window_Selectable.prototype.itemHeight; Window_Selectable.prototype.itemHeight = function() { return this.cursorHeight() ? this.lineHeight() * this.cursorHeight() : _Window_Selectable_itemHeight.call(this); }; Window_Selectable.prototype.unitHeight = function() { return this.itemHeight() + this.itemHeightSpace(); }; Window_Selectable.prototype.unitWidth = function() { return this.itemWidth() + this.customSpacing(); }; var _CSS_Window_Selectable_maxPageRows = Window_Selectable.prototype.maxPageRows; Window_Selectable.prototype.maxPageRows = function() { if (this.itemHeightSpace() !== undefined) { var pageHeight = this.height - this.padding * 2; return Math.floor(pageHeight / this.unitHeight()); } else { return _CSS_Window_Selectable_maxPageRows.call(this); } }; var _CSS_Window_Selectable_topRow = Window_Selectable.prototype.topRow; Window_Selectable.prototype.topRow = function() { return this.itemHeightSpace() !== undefined ? Math.floor(this._scrollY / this.unitHeight()) : _CSS_Window_Selectable_topRow.call(this); }; var _CSS_Window_Selectable_setTopRow = Window_Selectable.prototype.setTopRow; Window_Selectable.prototype.setTopRow = function(row) { if (this.itemHeightSpace() !== undefined) { var scrollY = row.clamp(0, this.maxTopRow()) * this.unitHeight(); if (this._scrollY !== scrollY) { this._scrollY = scrollY; this.refresh(); this.updateCursor(); } } else { return _CSS_Window_Selectable_setTopRow.call(this, row); } }; var _CSS_Window_Selectable_itemRect = Window_Selectable.prototype.itemRect; Window_Selectable.prototype.itemRect = function(index) { if (this.itemHeightSpace() !== undefined) { var rect = new Rectangle(); var maxCols = this.customMaxCols(); rect.width = this.itemWidth(); rect.height = this.itemHeight(); rect.x = index % maxCols * this.unitWidth() - this._scrollX; rect.y = Math.floor(index / maxCols) * this.unitHeight() - this._scrollY; return rect; } else { return _CSS_Window_Selectable_itemRect.call(this, index); } }; //============================================================================= // Sprite_Battlerの修正 // Sprite_Actorの修正 //============================================================================= FTKR.CSS.Sprite_Battler_initMembers = Sprite_Battler.prototype.initMembers; Sprite_Battler.prototype.initMembers = function() { FTKR.CSS.Sprite_Battler_initMembers.call(this); this._canMove = true; }; //------------------------------------------------------------------------ // SV戦闘キャラの位置を変更できないようにする //------------------------------------------------------------------------ Sprite_Actor.prototype.stopMove = function() { this._canMove = false; }; Sprite_Actor.prototype.canMove = function() { return this._canMove; }; FTKR.CSS.Sprite_Actor_updateTargetPosition = Sprite_Actor.prototype.updateTargetPosition; Sprite_Actor.prototype.updateTargetPosition = function() { if (!this.canMove()) return; FTKR.CSS.Sprite_Actor_updateTargetPosition.call(this); }; }());//END //============================================================================= // Sprite_CssStateIcon // ステートアイコン用のスプライト //============================================================================= function Sprite_CssStateIcon() { this.initialize.apply(this, arguments); } Sprite_CssStateIcon.prototype = Object.create(Sprite_StateIcon.prototype); Sprite_CssStateIcon.prototype.constructor = Sprite_CssStateIcon; Sprite_CssStateIcon.prototype.initialize = function(index, showNum) { Sprite_StateIcon.prototype.initialize.call(this); this._index = index; this._showNum = showNum; }; Sprite_CssStateIcon._iconWidth = 32; Sprite_CssStateIcon._iconHeight = 32; Sprite_CssStateIcon.prototype.initMembers = function() { this._battler = null; this._iconIndex = 0; this._animationCount = this.animationWait(); this._animationIndex = 0; this.anchor.x = 0; this.anchor.y = 0; if (Imported.YEP_BuffsStatesCore) { if (!this._turnCounterSprite) { this._turnCounterSprite = new Sprite(); this.addChild(this._turnCounterSprite); } var w = Window_Base._iconWidth; var h = Window_Base._iconHeight; this._turnCounterSprite.bitmap = new Bitmap(w, h); this._turnCounterSprite.anchor.x = 0; this._turnCounterSprite.anchor.y = 0; } }; Sprite_CssStateIcon.prototype.setup = function(battler, showNum) { this.initMembers(); this._battler = battler; this._showNum = showNum; this.setFrame(); }; Sprite_CssStateIcon.prototype.updateIcon = function() { var icons = []; // if (this._battler && this._battler.isAlive()) { if (this._battler) { icons = this._battler.allIcons(); } if (icons.length > 0) { this._animationIndex++; if (this._animationIndex >= Math.ceil(icons.length / this._showNum)) { this._animationIndex = 0; } this._iconIndex = icons[this._animationIndex * this._showNum + this._index]; } else { this._animationIndex = 0; this._iconIndex = 0; } }; Sprite_CssStateIcon.prototype.animationWait = function() { return FTKR.CSS.cssStatus.state.wait; }; Sprite_CssStateIcon.prototype.setScale = function(scale) { this.scale._x = scale; this.scale._y = scale; }; Sprite_CssStateIcon.prototype.offsetMove = function(offset, vartical) { !vartical ? this.x += offset : this.y += offset; }; Sprite_CssStateIcon.prototype.update = function() { Sprite.prototype.update.call(this); this.updateOpacity(); this._animationCount++; if (this._animationCount >= this.animationWait()) { this.updateIcon(); this.updateFrame(); this._animationCount = 0; } }; Sprite_CssStateIcon.prototype.updateOpacity = function() { if (this.opacity != this.parent.openness) { this.opacity = this.parent.openness; } }; //============================================================================= // YEP_BuffsStatesCoreの修正 //============================================================================= if (Imported.YEP_BuffsStatesCore) { Sprite_CssStateIcon.prototype.updateTurnAndCounter = function() { this._turnCounterSprite.bitmap.clear(); if (!this._battler) return; var group = this._battler.statesAndBuffs(); if (group.length <= 0) return; var state = group[this._animationIndex * this._showNum + this._index]; if (!state) return; if (typeof state === 'number') { if (Yanfly.Param.BSCEnemyBTurn) { this.drawBuffTurns(state); if (Yanfly.Param.BSCShowBuffRate) { this.drawBuffRate(state) } } } else { if (Yanfly.Param.BSCEnemyTurn) this.drawStateTurns(state); if (Yanfly.Param.BSCEnemyCounter) this.drawStateCounter(state); } }; }//YEP_BuffsStatesCore.js END //EOF