//=============================================================================
// スキル画面にサブコマンドを追加するプラグイン
// FTKR_SkillSubCommand.js
// プラグインNo : 22
// 作成者 : フトコロ
// 作成日 : 2017/04/15
// 最終更新日 :
// バージョン : v1.0.0
//=============================================================================
var Imported = Imported || {};
Imported.FTKR_SSC = true;
var FTKR = FTKR || {};
FTKR.SSC = FTKR.SSC || {};
//=============================================================================
/*:
@plugindesc v1.0.0 A plugin that adds subcommands to the skill screen
@author Futokoro
@url https://github.com/munokura/futokoro-MV-plugins
@license MIT License
@help
English Help Translator: munokura
This is an unofficial English translation of the plugin help,
created to support global RPG Maker users.
Feedback is welcome to improve translation quality
(see: https://github.com/munokura/futokoro-MV-plugins ).
Original plugin by Futokoro.
Please check the URL below for the latest version of the plugin.
URL https://github.com/futokoro/RPGMaker
-----
-----------------------------------------------------------------------------
Overview
-----------------------------------------------------------------------------
Implementing this plugin adds the ability to display subcommands.
Subcommands have the following standard functions:
1. Execute a skill.
2. Delete (forget) a learned skill.
-----------------------------------------------------------------------------
Setup Instructions
-----------------------------------------------------------------------------
1. Add this plugin to the "Plugin Manager."
2. This plugin cannot be used in conjunction with FTKR_SkillExpansion.js.
3. This plugin cannot be used in conjunction with FTKR_SEP_ShowSkillStatus.js.
-----------------------------------------------------------------------------
Skill Deletion Conditions
-----------------------------------------------------------------------------
By default, skills can be deleted unconditionally.
However, you can set deletion conditions by adding the following notetags to skills.
Condition Expression
[About the Value of the Condition Expression (eval)]
The condition expression (eval) allows you to use non-fixed values by entering a calculation formula, like a damage calculation formula.
The following code can be used:
a.param - References the user's parameters. (a.atk is the user's attack power)
s[x] - References the state of switch ID x.
v[x] - References the value of variable ID x.
iv[x] - References the value of item self variable ID x. (*1)
(*1) FTKR_ItemSelfVariables.js is required to use self variables.
Input Example)
Deletion is possible when switch ID 1 is ON.
s[1]
[Setting Multiple Conditions]
The following two input examples have the same meaning.
1. Arrange multiple condition expressions vertically
Condition 1
Condition 2
1. Arrange multiple condition expressions horizontally using '&&'
Condition 1 && Condition 2
-----------------------------------------------------------------------------
About Custom Commands
-----------------------------------------------------------------------------
You can set custom commands that execute common events.
Note that the menu will automatically close when a common event is executed.
Set this using the following plugin parameters.
: Set the command name to display in the subcommand.
: Set the ID of the common event to execute.
You can obtain information about the actor and skill that executed the subcommand using the following script.
Actor Game Data
$gameParty.menuActor()
⇒ Actor ID
$gameParty.menuActor()._actorId
⇒ Actor Name
$gameParty.menuActor()._name
Skill Data
$gameParty.lastItem()
⇒ Skill ID
$gameParty.lastItem().id
⇒ Skill Name
$gameParty.lastItem().name
-----------------------------------------------------------------------------
License for this Plugin
-----------------------------------------------------------------------------
This plugin is released under the MIT License.
Copyright (c) 2017 Futokoro
http://opensource.org/licenses/mit-license.php
-----------------------------------------------------------------------------
Change History
-----------------------------------------------------------------------------
v1.0.0 - 2017/04/15: First version created
-----------------------------------------------------------------------------
@param Enable Confirmation
@desc When forgetting a skill, should a confirmation screen be displayed? 1 - Confirm, 0 - Don't confirm
@default 1
@param --サブコマンド--
@text --Subcommand--
@param Command Use Format
@desc Describes what will be displayed when you use the execution command.
@default Use
@param Command Forget Format
@desc Describes what will be displayed when you execute the "Forget" command.
@default Forget
@param Command Cancel Format
@desc Describes what will be displayed when you execute the command "Stop".
@default Cancel
@param --確認画面--
@text --Confirmation screen--
@param Conf Title Format
@desc Describes the confirmation content when deleting a skill. %1 - Actor name, %2 - Skill name
@default Will you forget [%2]?
@param Confirmation Ok Format
@desc Describes what will be displayed when you click "Execute" in the confirmation command.
@default Ok
@param Confirmation Cancel Format
@desc Describes the display content of the confirmation command "Do not execute."
@default Cancel
@param --カスタムコマンド1--
@text --Custom Command 1--
@param Custom1 Format
@desc Describes the display content of "Custom Command 1" in the execution command.
@param Custom1 EventID
@desc Set the ID of the common event to be executed by Custom Command 1.
*/
/*:ja
@plugindesc v1.0.0 スキル画面にサブコマンドを追加するプラグイン
@author Futokoro
@url https://github.com/munokura/futokoro-MV-plugins
@license MIT License
@help
-----------------------------------------------------------------------------
概要
-----------------------------------------------------------------------------
本プラグインを実装することで、サブコマンドを表示する機能を追加します。
サブコマンドは標準で以下の機能を持っています。
1. スキルを実行する。
2. 習得済みのスキルを削除する(忘れる)。
-----------------------------------------------------------------------------
設定方法
-----------------------------------------------------------------------------
1.「プラグインマネージャー(プラグイン管理)」に、本プラグインを追加して
ください。
2. 本プラグインは、FTKR_SkillExpansion.jsと組み合わせて使用できません。
3. 本プラグインは、FTKR_SEP_ShowSkillStatus.jsと組み合わせて
使用できません。
-----------------------------------------------------------------------------
スキルの削除条件
-----------------------------------------------------------------------------
標準でスキルは無条件に削除可能です。
これに対して、以下のノートタグをスキルに追記することで、削除するための
条件を設定することができます。
条件式
[条件式(eval) の値について]
条件式(eval)は、ダメージ計算式のように、計算式を入力することで、
固定値以外の値を使用することができます。以下のコードを使用できます。
a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
s[x] - スイッチID x の状態を参照します。
v[x] - 変数ID x の値を参照します。
iv[x] - アイテムのセルフ変数ID x の値を参照します。(*1)
(*1) セルフ変数を使用する場合は、FTKR_ItemSelfVariables.jsが必要です。
入力例)
スイッチID1 が ON の時に削除可能。
s[1]
[複数の条件を設定する場合]
以下の2種類の入力例は同じ意味です。
1. 縦に複数の条件式を並べる
条件式1
条件式2
1. '&&'を使用して横に複数の条件式を並べる
条件式1 && 条件式2
-----------------------------------------------------------------------------
カスタムコマンドについて
-----------------------------------------------------------------------------
コモンイベントを実行できるカスタムコマンドを設定できます。
なお、コモンイベントを実行すると、自動的にメニューが閉じます。
以下のプラグインパラメータで設定します。
:サブコマンドで表示するコマンド名を設定してください。
:実行するコモンイベントのIDを設定してください。
サブコマンドを実行したアクターとスキルの情報は以下のスクリプトで
取得できます。
アクターのゲームデータ
$gameParty.menuActor()
⇒ アクターID
$gameParty.menuActor()._actorId
⇒ アクター名
$gameParty.menuActor()._name
スキルのデータ
$gameParty.lastItem()
⇒ スキルID
$gameParty.lastItem().id
⇒ スキル名
$gameParty.lastItem().name
-----------------------------------------------------------------------------
本プラグインのライセンスについて(License)
-----------------------------------------------------------------------------
本プラグインはMITライセンスのもとで公開しています。
This plugin is released under the MIT License.
Copyright (c) 2017 Futokoro
http://opensource.org/licenses/mit-license.php
-----------------------------------------------------------------------------
変更来歴
-----------------------------------------------------------------------------
v1.0.0 - 2017/04/15 : 初版作成
-----------------------------------------------------------------------------
@param Enable Confirmation
@desc スキルを忘れる時に確認画面で実行確認するか。 1 - 確認する, 0 - 確認しない
@default 1
@param --サブコマンド--
@text --サブコマンド--
@param Command Use Format
@desc 実行コマンドの「使う」の表示内容を記述します。
@default 使う
@param Command Forget Format
@desc 実行コマンドの「忘れる」の表示内容を記述します。
@default 忘れる
@param Command Cancel Format
@desc 実行コマンドの「やめる」の表示内容を記述します。
@default やめる
@param --確認画面--
@text --確認画面--
@param Conf Title Format
@desc スキル削除実行時の確認内容を記述します。 %1 - アクター名, %2 - スキル名
@default [%2]を忘れますか?
@param Confirmation Ok Format
@desc 確認コマンドの「実行する」の表示内容を記述します。
@default 実行する
@param Confirmation Cancel Format
@desc 確認コマンドの「実行しない」の表示内容を記述します。
@default 実行しない
@param --カスタムコマンド1--
@text --カスタムコマンド1--
@param Custom1 Format
@desc 実行コマンドの「カスタムコマンド1」の表示内容を記述します。
@param Custom1 EventID
@desc カスタムコマンド1で実行するコモンイベントのIDを設定します。
*/
//=============================================================================
//=============================================================================
// プラグイン パラメータ
//=============================================================================
FTKR.SSC.parameters = PluginManager.parameters('FTKR_SkillSubCommand');
//メニュー表示
FTKR.SSC.enableConf = Number(FTKR.SSC.parameters['Enable Confirmation'] || 0);
FTKR.SSC.itemOk = false;
FTKR.SSC.subComOk = false;
FTKR.SSC.confOk = false;
//スキルのパラメータ名
FTKR.SSC.confTitle = {
format: String(FTKR.SSC.parameters['Conf Title Format'] || ''),
};
FTKR.SSC.conf = {
okFormat: String(FTKR.SSC.parameters['Confirmation Ok Format'] || ''),
cancelFormat: String(FTKR.SSC.parameters['Confirmation Cancel Format'] || ''),
};
FTKR.SSC.sepSub = {
useFormat: String(FTKR.SSC.parameters['Command Use Format'] || ''),
forgetFormat: String(FTKR.SSC.parameters['Command Forget Format'] || ''),
cancelFormat: String(FTKR.SSC.parameters['Command Cancel Format'] || ''),
};
FTKR.SSC.custom = [
{
format: String(FTKR.SSC.parameters['Custom1 Format'] || ''),
eventId: Number(FTKR.SSC.parameters['Custom1 EventID'] || 0),
}
];
//=============================================================================
// DataManager
//=============================================================================
FTKR.SSC.DatabaseLoaded = false;
FTKR.SSC.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
DataManager.isDatabaseLoaded = function () {
if (!FTKR.SSC.DataManager_isDatabaseLoaded.call(this)) return false;
if (!FTKR.SSC.DatabaseLoaded) {
this.eicForgetNoteTags($dataSkills);
FTKR.SSC.DatabaseLoaded = true;
}
return true;
};
DataManager.eicForgetNoteTags = function (group) {
var note1a = //i;
var note1aj = //i;
var note1b = /<\/EIC 削除条件>/i;
var note1bj = /<\/EIC FORGET>/i;
for (var n = 1; n < group.length; n++) {
var obj = group[n];
var notedata = obj.note.split(/[\r\n]+/);
var setMode = 'none';
obj.seprequired = '';
obj.forget = '';
for (var i = 0; i < notedata.length; i++) {
var line = notedata[i];
if (line.match(note1a) || line.match(note1aj)) {
var text = '';
setMode = 'anydata';
} else if (note1b.test(line) || note1bj.test(line)) {
setMode = 'none';
obj.seprequired = text;
} else if (setMode === 'anydata') {
text += line + ';';
}
}
this.makeSscData(obj);
obj.seprequired = '';
}
};
DataManager.makeSscData = function (skill) {
var sepdata = skill.seprequired;
if (sepdata) {
var datas = sepdata.split(';');
skill.forget += '(';
for (var i = 0; i < datas.length; i++) {
var data = datas[i];
if (data.match(/(.+)/i)) {
skill.forget += RegExp.$1;
if (datas[i + 1]) skill.forget += ')&&(';
}
}
skill.forget += ')';
}
};
//=============================================================================
// Game_Actor
//=============================================================================
Game_Actor.prototype.sscSkill = function (skillId) {
return Imported.FTKR_SEP ? this.getSkill(skillId) : $dataSkills[skillId];
};
Game_Actor.prototype.isForgetOk = function (skillId) {
var skill = this.sscSkill(skillId);
return this.evalSscFormula(skill.forget, skill);
};
Game_Actor.prototype.evalSscFormula = function (formula, item) {
if (!formula) return true;
try {
var a = this;
var s = $gameSwitches._data;
var v = $gameVariables._data;
if (Imported.FTKR_ISV) var iv = item._selfVariables._data;
var value = eval(formula);
if (isNaN(value)) value = false;
return value;
} catch (e) {
console.log(e);
return false;
}
};
//=============================================================================
// Window_Selectable
//=============================================================================
Window_Selectable.prototype.actSelect = function (index) {
this.activate();
this.select(index);
this.refresh();
};
//=============================================================================
// Window_SkillType
//=============================================================================
Window_SkillType.prototype.setSubComWindow = function (window) {
this._ssCsubCommandWindow = window;
this.update();
};
Window_SkillType.prototype.setConfTitleWindow = function (window) {
this._sscConfTitleWindow = window;
this.update();
};
Window_SkillType.prototype.setSepConfWindow = function (window) {
this._sscConfWindow = window;
this.update();
};
FTKR.SSC.Window_SkillType_update = Window_SkillType.prototype.update;
Window_SkillType.prototype.update = function () {
FTKR.SSC.Window_SkillType_update.call(this);
var scw = this._ssCsubCommandWindow;
if (scw) FTKR.SSC.subComOk ? scw.show() : scw.hide();
var ctw = this._sscConfTitleWindow;
var cfw = this._sscConfWindow;
if (ctw && cfw) {
if (FTKR.SSC.enableConf && FTKR.SSC.confOk) {
ctw.show();
cfw.show();
} else {
ctw.hide();
cfw.hide();
}
}
};
//=============================================================================
// Window_SkillList
//=============================================================================
FTKR.SSC.Window_SkillList_isCurrentItemEnabled =
Window_SkillList.prototype.isCurrentItemEnabled;
Window_SkillList.prototype.isCurrentItemEnabled = function () {
return this._data[this.index()] && !$gameParty.inBattle() ?
true : FTKR.SSC.Window_SkillList_isCurrentItemEnabled.call(this);
};
Window_SkillList.prototype.setSubComWindow = function (window) {
this._ssCsubCommandWindow = window;
this.update();
};
Window_SkillList.prototype.setConfWindow = function (window) {
this._sscConfWindow = window;
this.update();
};
Window_SkillList.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
var skillId = this.item() ? this.item().id : 0;
if (skillId) {
var scw = this._ssCsubCommandWindow;
if (scw) {
scw.setEnabled(this.isEnabled(this.item()));
scw.setSkillId(skillId);
}
if (this._sscConfWindow) {
var actor = this._actor;
this._sscConfWindow.setEnabled(actor.isForgetOk(skillId));
}
}
};
//=============================================================================
// Window_SepSubCommand
// スキル選択後の実行用コマンドを表示・処理するウィンドウ
//=============================================================================
function Window_SepSubCommand() {
this.initialize.apply(this, arguments);
}
Window_SepSubCommand.prototype = Object.create(Window_Selectable.prototype);
Window_SepSubCommand.prototype.constructor = Window_SepSubCommand;
Window_SepSubCommand.prototype.initialize = function (x, y, width, height) {
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this._actor = null;
this._data = [];
this._enabled = false;
this._skillId = null;
this._symbol = '';
};
Window_SepSubCommand.prototype.setActor = function (actor) {
if (this._actor !== actor) {
this._actor = actor;
this.refresh();
}
};
Window_SepSubCommand.prototype.maxItems = function () {
return this._data ? this._data.length : 1;
};
Window_SepSubCommand.prototype.item = function () {
return this._data && this.index() >= 0 ? this._data[this.index()] : null;
};
Window_SepSubCommand.prototype.makeItemList = function () {
this._data = [];
var actor = this._actor;
if (!actor || !this._skillId) return;
var sep = FTKR.SSC.sepSub;
this._data = [
{ symbol: 'use', enabled: this._enabled, disp: sep.useFormat },
{ symbol: 'forget', enabled: actor.isForgetOk(this._skillId), disp: sep.forgetFormat },
{ symbol: 'cancel', enabled: true, disp: sep.cancelFormat },
];
if (FTKR.SSC.custom[0].format && FTKR.SSC.custom[0].eventId) {
var data = {
symbol: 'custom',
enabled: true,
disp: FTKR.SSC.custom[0].format,
};
this._data.splice(-1, 0, data);
}
};
Window_SepSubCommand.prototype.isCurrentItemEnabled = function () {
return this.isEnabled(this.index());
};
Window_SepSubCommand.prototype.isEnabled = function (index) {
return this._actor && this._data[index].enabled;
};
Window_SepSubCommand.prototype.drawItem = function (index) {
var rect = this.itemRect(index);
this.changePaintOpacity(this.isEnabled(index));
this.drawText(this._data[index].disp, rect.x, rect.y, rect.width);
this.changePaintOpacity(1);
};
Window_SepSubCommand.prototype.refresh = function () {
this.makeItemList();
this.createContents();
this.drawAllItems();
};
Window_SepSubCommand.prototype.setSkillId = function (skillId) {
if (this._skillId === skillId) return;
this._skillId = skillId;
this.refresh();
};
Window_SepSubCommand.prototype.setEnabled = function (enabled) {
if (this._enabled === enabled) return;
this._enabled = enabled;
this.refresh();
};
//=============================================================================
// Window_SepConfTitle
//=============================================================================
function Window_SepConfTitle() {
this.initialize.apply(this, arguments);
}
Window_SepConfTitle.prototype = Object.create(Window_Base.prototype);
Window_SepConfTitle.prototype.constructor = Window_SepConfTitle;
Window_SepConfTitle.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._actor = null;
this._skillId = null;
this.refresh();
};
Window_SepConfTitle.prototype.setActor = function (actor) {
if (this._actor !== actor) this._actor = actor;
};
Window_SepConfTitle.prototype.refresh = function () {
this.contents.clear();
this.drawStsText(FTKR.SSC.confTitle.format);
};
Window_SepConfTitle.prototype.drawStsText = function (format) {
if (this._actor && this._skillId) {
var skill = this._actor.sscSkill(this._skillId);
var width = this.width - this.standardPadding() * 2;
this.drawDescTitle(format, 0, 0, width, skill);
}
};
//アクター名、スキル名が使用できるタイトル文を表示する関数
Window_SepConfTitle.prototype.drawDescTitle = function (format, x, y, width, skill) {
var name = skill ? skill.name : '';
var params = [this._actor._name, name];
this.drawFormatTextEx(format, x, y, params, width);
};
// 制御文字を使えるフォーマットテキスト描画関数
Window_SepConfTitle.prototype.drawFormatTextEx = function (fmt, x, y, params) {
var text = fmt.format(params[0], params[1], params[2], params[3], params[4]);
return this.drawTextEx(text, x, y);
};
//=============================================================================
// Window_SepConf
// 確認用コマンドを表示・処理するウィンドウ
//=============================================================================
function Window_SepConf() {
this.initialize.apply(this, arguments);
}
Window_SepConf.prototype = Object.create(Window_Selectable.prototype);
Window_SepConf.prototype.constructor = Window_SepConf;
Window_SepConf.prototype.initialize = function (x, y, width, height) {
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this._actor = null;
this._data = [];
this._enabled = false;
this._dicision = false;
};
Window_SepConf.prototype.setActor = function (actor) {
if (this._actor !== actor) {
this._actor = actor;
this.refresh();
}
};
Window_SepConf.prototype.maxCols = function () {
return 2;
};
Window_SepConf.prototype.maxItems = function () {
return this._data ? this._data.length : 1;
};
Window_SepConf.prototype.item = function () {
return this._data && this.index() >= 0 ? this._data[this.index()] : null;
};
Window_SepConf.prototype.makeItemList = function () {
this._data = [
{ dicision: true, disp: FTKR.SSC.conf.okFormat },
{ dicision: false, disp: FTKR.SSC.conf.cancelFormat }
];
};
Window_SepConf.prototype.isEnabled = function (index) {
return this._actor && (this._enabled || index > 0);
};
Window_SepConf.prototype.isCurrentItemEnabled = function () {
return this.isEnabled(this.index());
};
Window_SepConf.prototype.drawItem = function (index) {
var rect = this.itemRect(index);
this.changePaintOpacity(this.isEnabled(index));
this.drawText(this._data[index].disp, rect.x, rect.y, rect.width, 'center');
this.changePaintOpacity(1);
};
Window_SepConf.prototype.refresh = function () {
this.makeItemList();
this.createContents();
this.drawAllItems();
};
Window_SepConf.prototype.setEnabled = function (enabled) {
if (this._enabled === enabled) return;
this._enabled = enabled;
this.refresh();
};
//=============================================================================
// Scene_Skill
//=============================================================================
FTKR.SSC.Scene_Skill_create = Scene_Skill.prototype.create;
Scene_Skill.prototype.create = function () {
FTKR.SSC.Scene_Skill_create.call(this);
this.createSscSubCommandWindow();
if (FTKR.SSC.enableConf) {
this.createSscConfTitleWindow();
this.createSscConfWindow();
}
this.refreshActor();
};
Scene_Skill.prototype.createSscSubCommandWindow = function () {
var wy = this._itemWindow.y;
var ww = 240;
var wh = Graphics.boxHeight - wy;
this._ssCsubCommandWindow = new Window_SepSubCommand(0, wy, ww, wh);
var window = this._ssCsubCommandWindow;
window.setHandler('ok', this.onSubComOk.bind(this));
window.setHandler('cancel', this.onSubComCancel.bind(this));
this._skillTypeWindow.setSubComWindow(window);
this._itemWindow.setSubComWindow(window);
this.addWindow(window);
};
Scene_Skill.prototype.createSscConfTitleWindow = function () {
var wx = Graphics.boxWidth / 4;
var wh = this._helpWindow.fittingHeight(1);
var ww = Graphics.boxWidth / 2;
var wy = Graphics.boxHeight / 2 - wh;
this._sscConfTitleWindow = new Window_SepConfTitle(wx, wy, ww, wh);
this._skillTypeWindow.setConfTitleWindow(this._sscConfTitleWindow);
this.addWindow(this._sscConfTitleWindow);
};
Scene_Skill.prototype.createSscConfWindow = function () {
var ctw = this._sscConfTitleWindow;
var wx = ctw.x;
var wy = ctw.y + ctw.height;
var ww = ctw.width;
var wh = this._helpWindow.lineHeight() * 1 + this._helpWindow.standardPadding() * 2;
this._sscConfWindow = new Window_SepConf(wx, wy, ww, wh);
var window = this._sscConfWindow;
window.setHandler('ok', this.onConfirmationOk.bind(this));
window.setHandler('cancel', this.onConfirmationCancel.bind(this));
this._skillTypeWindow.setSepConfWindow(window);
this._itemWindow.setConfWindow(window);
this.addWindow(window);
};
FTKR.SSC.Scene_Skill_refreshActor = Scene_Skill.prototype.refreshActor;
Scene_Skill.prototype.refreshActor = function () {
FTKR.SSC.Scene_Skill_refreshActor.call(this);
var actor = this.actor();
if (this._ssCsubCommandWindow) this._ssCsubCommandWindow.setActor(actor);
var ctw = this._sscConfTitleWindow;
if (ctw) ctw.setActor(actor);
var cfw = this._sscConfWindow;
if (cfw) cfw.setActor(actor);
FTKR.SSC.itemOk = false;
FTKR.SSC.subComOk = false;
FTKR.SSC.confOk = false;
};
Scene_Skill.prototype.commandsssSep = function () {
this._sssSkillListWindow.actSelect(0);
};
FTKR.SSC.Scene_Skill_onitemOk = Scene_Skill.prototype.onItemOk;
Scene_Skill.prototype.onItemOk = function () {
FTKR.SSC.subComOk = true;
this._ssCsubCommandWindow.actSelect(0);
};
Scene_Skill.prototype.onSubComOk = function () {
var scw = this._ssCsubCommandWindow;
if (scw.item().symbol === 'use') {
FTKR.SSC.itemOk = true;
FTKR.SSC.subComOk = false;
FTKR.SSC.Scene_Skill_onitemOk.call(this);
} else if (scw.item().symbol === 'forget') {
FTKR.SSC.confOk = true;
var ctw = this._sscConfTitleWindow;
ctw._skillId = scw._skillId;
ctw.refresh();
this._sscConfWindow.actSelect(0);
} else if (scw.item().symbol === 'custom') {
$gameParty.setLastItem(this._actor.sscSkill(scw._skillId));
$gameTemp.reserveCommonEvent(FTKR.SSC.custom[0].eventId);
this.checkCommonEvent();
} else {
this.onSubComCancel();
}
};
Scene_Skill.prototype.onSubComCancel = function () {
FTKR.SSC.subComOk = false;
this._ssCsubCommandWindow.deselect();
this._itemWindow.actSelect(this._itemWindow.index());
};
Scene_Skill.prototype.onConfirmationOk = function () {
var cfw = this._sscConfWindow;
if (cfw.item().dicision) {
FTKR.SSC.confOk = false;
cfw.deselect();
this._actor.forgetSkill(this._sscConfTitleWindow._skillId);
this._itemWindow.refresh();
this.onSubComCancel();
} else {
this.onConfirmationCancel();
}
};
Scene_Skill.prototype.onConfirmationCancel = function () {
FTKR.SSC.confOk = false;
FTKR.SSC.subComOk = false;
this._sscConfWindow.deselect();
this._ssCsubCommandWindow.deselect();
this.onSubComCancel();
};
Scene_ItemBase.prototype.onActorCancel = function () {
FTKR.SSC.itemOk = false;
FTKR.SSC.subComOk = false;
this.hideSubWindow(this._actorWindow);
};