//============================================================================= // InitialState.js // ---------------------------------------------------------------------------- // (C)2017 Triacontane // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php // ---------------------------------------------------------------------------- // Version // 1.1.0 2018/07/08 複数の初期ステートを設定できる機能を追加 // 1.0.1 2017/02/07 端末依存の記述を削除 // 1.0.0 2017/01/12 初版 // ---------------------------------------------------------------------------- // [Blog] : https://triacontane.blogspot.jp/ // [Twitter]: https://twitter.com/triacontane/ // [GitHub] : https://github.com/triacontane/ //============================================================================= /*: @url https://triacontane.blogspot.com/ @plugindesc Initial State Plugin @author Triacontane @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/triacontane-MV-plugins ). Original plugin by Triacontane. Please check the latest official version at: https://triacontane.blogspot.com ----- Assigns an initial state to an enemy character. Enter the following in the enemy character's Note field. - State ID [3] will be automatically assigned at the start of battle. To set multiple states, specify the IDs separated by commas. Example: This plugin does not have a plugin command. Terms of Use: You may modify and redistribute this plugin without permission from the author, and there are no restrictions on its use (commercial, 18+, etc.). This plugin is now yours. */ /*:ja @plugindesc 初期ステートプラグイン @author トリアコンタン @help 敵キャラに初期状態でステートを付与します。 敵キャラのメモ欄に以下の通り記述してください。 # 戦闘開始時にステートID[3]が自動で付与されます。 # 同上 複数のステートを設定したい場合は、カンマ区切りでIDを指定してください。 例: このプラグインにはプラグインコマンドはありません。 利用規約: 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等) についても制限はありません。 このプラグインはもうあなたのものです。 */ (function () { 'use strict'; var metaTagPrefix = 'IS_'; var parseArgs = function (arg) { return JSON.parse('[' + convertEscapeCharacters(arg) + ']'); }; var getMetaValue = function (object, name) { var metaTagName = metaTagPrefix + (name ? name : ''); return object.meta.hasOwnProperty(metaTagName) ? object.meta[metaTagName] : undefined; }; var getMetaValues = function (object, names) { if (!Array.isArray(names)) return getMetaValue(object, names); for (var i = 0, n = names.length; i < n; i++) { var value = getMetaValue(object, names[i]); if (value !== undefined) return value; } return undefined; }; var convertEscapeCharacters = function (text) { if (text == null) text = ''; var windowLayer = SceneManager._scene._windowLayer; return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text) : text; }; var _Game_Enemy_setup = Game_Enemy.prototype.setup; Game_Enemy.prototype.setup = function (enemyId, x, y) { _Game_Enemy_setup.apply(this, arguments); this.setupInitialState(); }; Game_Enemy.prototype.setupInitialState = function () { var stateList = getMetaValues(this.enemy(), ['State', 'ステート']); if (!stateList) { return; } parseArgs(stateList).forEach(function (state) { if (state > 0) { this.addState(state); } }, this); }; })();