├── .gitignore ├── retry_load ├── retry.png ├── custom-retry-message.jpg ├── README.md ├── Torigoya_CustomRetryMessage.js └── Torigoya_RetryLoadPlus.js ├── control_character ├── images │ ├── text_ruby.png │ └── text_last_get.png ├── README.md ├── Torigoya_TextLastGet.js └── Torigoya_TextRuby.js ├── utils ├── README.md ├── Torigoya_AutoOpenDebug.js ├── Torigoya_SameEquipType.js ├── Torigoya_Cordova.js ├── Torigoya_MaxSlipDamageSetting.js ├── Torigoya_AddPrefixToStorageKey.js ├── Torigoya_ScreenSize.js ├── Torigoya_ChangeInputRepeatWait.js ├── Torigoya_NotRemoveWeapon.js ├── Torigoya_AddStateSkill.js ├── Torigoya_InputNamePrompt.js ├── Torigoya_EnemyShadow.js ├── Torigoya_RetryLoad.js ├── Torigoya_UnarmedWeapon.js └── Torigoya_SaveCommand.js ├── nicoad_bar ├── README.md └── Torigoya_NiconikoBar.js ├── achievement ├── README.md └── Torigoya_Achievement_Tile.js ├── quick_skill ├── README.md ├── Torigoya_QuickSkill_Addon_OpenSkillWindow.js └── Torigoya_QuickSkill.js ├── balloon_in_battle ├── README.md └── Torigoya_BalloonInBattle_Addon_DisplayTime.js ├── replace_dead_member ├── README.md ├── Torigoya_ReplaceDeadMember.js └── Torigoya_ReplaceDeadMemberPlus.js ├── bs_module ├── README.md ├── Torigoya_BSModule_SelectHelp.js ├── Torigoya_BSModule_FrontView.js └── Torigoya_BSModule_Preset01.js ├── one_button_skill ├── README.md └── Torigoya_OneButtonSkill.js ├── auto_items └── README.md ├── README.md ├── skill_change_to ├── README.md └── Torigoya_SkillChangeTo.js ├── patch └── Torigoya_FixMuteAudio.js ├── lock_orientation └── Torigoya_LockOrientation.js ├── LICENSE.txt ├── tween └── Torigoya_Tween.js └── recorder └── Torigoya_GameRecorder.js /.gitignore: -------------------------------------------------------------------------------- 1 | sync.sh -------------------------------------------------------------------------------- /retry_load/retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rutan/torigoya_rpg_maker_mv_plugins/HEAD/retry_load/retry.png -------------------------------------------------------------------------------- /retry_load/custom-retry-message.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rutan/torigoya_rpg_maker_mv_plugins/HEAD/retry_load/custom-retry-message.jpg -------------------------------------------------------------------------------- /control_character/images/text_ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rutan/torigoya_rpg_maker_mv_plugins/HEAD/control_character/images/text_ruby.png -------------------------------------------------------------------------------- /control_character/images/text_last_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rutan/torigoya_rpg_maker_mv_plugins/HEAD/control_character/images/text_last_get.png -------------------------------------------------------------------------------- /utils/README.md: -------------------------------------------------------------------------------- 1 | # Utils 2 | 3 | 細かいもの 4 | 5 | ## 詳細 6 | - [RPGツクールMV小物プラグイン集 - 鳥小屋.txt](http://torigoya.hatenadiary.jp/entry/rpgmaker_mv_small_plugin) 7 | 8 | -------------------------------------------------------------------------------- /nicoad_bar/README.md: -------------------------------------------------------------------------------- 1 | # Torigoya_NiconikoBar.js - ニコニ広告通知バー風表示プラグイン 2 | 3 | ※このプラグインはRPGアツマール用の非公式プラグインです 4 | 5 | RPGアツマール上でゲームにニコニ広告された場合に、 6 | 昔のニコ生っぽい広告バーを画面に表示をします。 7 | 8 | -------------------------------------------------------------------------------- /achievement/README.md: -------------------------------------------------------------------------------- 1 | # Torigoya_Achievement.js - 実績プラグイン 2 | 3 | コモンイベントの注釈で実績システムさん 4 | 5 | ## How to use 6 | 7 | http://torigoya.hatenadiary.jp/entry/achievement_mv 8 | 9 | -------------------------------------------------------------------------------- /quick_skill/README.md: -------------------------------------------------------------------------------- 1 | # QuickSkill MV - ターン消費なしスキルさん for MV 2 | 3 | Add skill "not consume the turn". 4 | 5 | 選択したらターンを消費せずにその場で発動するスキル/アイテムを設定できるようにします。 6 | 7 | ## Movie 8 | https://www.youtube.com/watch?v=h0h7fo1w1AE 9 | 10 | -------------------------------------------------------------------------------- /balloon_in_battle/README.md: -------------------------------------------------------------------------------- 1 | # Balloon in Battle MV - 戦闘中セリフ表示さん for MV 2 | 3 | Add balloon message in a battle (side-view mode). 4 | 5 | サイドビュー戦闘内で、キャラクターの上に吹き出しセリフを表示できるようにします。 6 | 7 | ## Video 8 | https://youtu.be/EE7f3lW4Yi4 9 | 10 | -------------------------------------------------------------------------------- /replace_dead_member/README.md: -------------------------------------------------------------------------------- 1 | # ReplaceDeadMember MV - 戦闘不能メンバー自動入れ替えさん for MV 2 | 3 | Replace a back member from dead actors in BattleScene. 4 | 5 | 戦闘中、死亡したメンバーを自動的に控えメンバーに入れ替えます。 6 | 7 | ## Video 8 | https://youtu.be/cNgG6zAMxO8 9 | 10 | -------------------------------------------------------------------------------- /bs_module/README.md: -------------------------------------------------------------------------------- 1 | # BattleStatus Module MV - 戦闘表示モジュールさん for MV 2 | 3 | **This plugins is Works in progress** 4 | 5 | **このプラグインはまだ開発中のものです** 6 | 7 | Customizable battle status window. 8 | 9 | 戦闘時のステータスウィンドウをカスタマイズするモジュールセットです。 10 | 11 | ## Video 12 | TODO 13 | 14 | -------------------------------------------------------------------------------- /one_button_skill/README.md: -------------------------------------------------------------------------------- 1 | # Torigoya_OneButtonSkill - ワンボタンスキルさん for MV 2 | 3 | 行動選択画面でワンボタンで選択できるスキルを設定します。 4 | 5 | ## Example 6 | 7 | skill note 8 | 9 | ``` 10 | # set one button skill(primary: 0) 11 | # set one button skill(primary: 100) 12 | ``` 13 | 14 | ## Video 15 | https://www.youtube.com/watch?v=qdzvm4ima3w 16 | 17 | -------------------------------------------------------------------------------- /auto_items/README.md: -------------------------------------------------------------------------------- 1 | # Automatic use items or skills - ダメージ時自動アイテム/スキル使用さん for MV 2 | 3 | RPG Maker MV plugins. 4 | Automatic use items or skills when damaged by enemy. 5 | (like 'Auto Potion' and 'Auto Phoenix') 6 | 7 | RPGツクールMV用のプラグインです。 8 | ダメージ時に自動的に使うアイテム/スキルを設定できます。 9 | 要は「オートポーション」とか「オートフェニックス」のノリです。 10 | 11 | ## Video 12 | https://www.youtube.com/watch?v=Kf6Xli7qeBI 13 | 14 | ## Blog 15 | http://torigoya.hatenadiary.jp/entry/auto_items_mv 16 | 17 | -------------------------------------------------------------------------------- /control_character/README.md: -------------------------------------------------------------------------------- 1 | # ControlCharacter plugins 2 | 3 | 制御文字プラグイン集 4 | 5 | ## Torigoya_LastGet.js 6 | ![last_get](./images/text_last_get.png) 7 | 8 | ### format 9 | ``` 10 | \lastGet を手に入れた! 11 | ``` 12 | 13 | ## Torigoya_TextRuby.js 14 | ![text_ruby](./images/text_ruby.png) 15 | 16 | ### format 17 | ``` 18 | \ruby[静止せし海の食物](お寿司) 19 | \ruby[暗黒面] 20 | ``` 21 | 22 | ### event command 23 | 登録するとよみがなを省略できます。 24 | 25 | ``` 26 | RubyDictionary 暗黒面 ダークサイド 27 | ``` 28 | -------------------------------------------------------------------------------- /utils/Torigoya_AutoOpenDebug.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_AutoOpenDebug.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc auto open devtool 7 | * @author ru_shalm 8 | */ 9 | 10 | /*:ja 11 | * @plugindesc F8押す必要もなくDeveloperToolを開くよ 12 | * @author ru_shalm 13 | */ 14 | 15 | (function () { 16 | if (Utils.isNwjs() && Utils.isOptionValid('test')) { 17 | require('nw.gui').Window.get().showDevTools(); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /retry_load/README.md: -------------------------------------------------------------------------------- 1 | # Torigoya_CustomRetryMessage.js 2 | 3 | ![img](./custom-retry-message.jpg) 4 | 5 | RPGツクールMV用のプラグインです。 6 | 7 | [RPGアツマール版コアスクリプト](http://blog.nicovideo.jp/atsumaru/atsumaru-corescript.html)のcommunity-1.2から導入された 8 | ファイルのリトライ読み込み画面の表示を変更します。 9 | 10 | ## Blog 11 | http://torigoya.hatenadiary.jp/entry/retry_load 12 | 13 | ---------- 14 | 15 | # Torigoya_RetryLoadPlus.js 16 | 17 | **DEPRECATED** 18 | 19 | ![img](./retry.png) 20 | 21 | RPGツクールMV用のプラグインです。 22 | ファイルの読み込み失敗時にリトライ画面を表示します。 23 | 24 | ## Blog 25 | http://torigoya.hatenadiary.jp/entry/retry_load 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Torigoya Plugins for RPG Maker MV 2 | 3 | "Torigoya Plugins" is the plugin for RPG Maker MV. 4 | 5 | ## Documentation 6 | 7 | - [RPGツクールMVプラグイン カテゴリーの記事一覧 \- 鳥小屋\.txt](http://torigoya.hatenadiary.jp/archive/category/RPG%E3%83%84%E3%82%AF%E3%83%BC%E3%83%ABMV%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3) (Japanese) 8 | 9 | ## License 10 | 11 | "Torigoya Plugins" is published under public domain. 12 | 13 | The part quoted from the [RPG Maker MV CoreScript](https://github.com/rpgtkoolmv/corescript) is MIT License. 14 | (Please look at each file for detailed license) 15 | 16 | ## Author 17 | 18 | @rutan (Twitter: [@ru_shalm](https://twitter.com/ru_shalm)) 19 | 20 | -------------------------------------------------------------------------------- /skill_change_to/README.md: -------------------------------------------------------------------------------- 1 | # Skill change conditional - スキル変化条件設定さん for MV 2 | 3 | 指定の条件を満たした際にスキルを別のものに変化させる設定をできるようにします。 4 | 5 | ## Example 6 | 7 | スキルのメモ欄で設定をすることができます。 8 | 9 | ``` 10 | # change skill when subject hp is less than 100 11 | # HPが100未満のとき、スキルID: 10に変化 12 | 13 | 14 | # change skill with 10% chance 15 | # 10%の確率でスキルID: 10に変化 16 | 17 | ``` 18 | 19 | ## About conditional 20 | the subject assign to variable `a`. (likely damage formula. but cannot use `b`.) 21 | 22 | `a` という変数にスキルを使った本人のsubjectが入っています。 23 | (※ダメージ計算式と一緒。ただし`b` はありません。) 24 | 25 | ## Video 26 | https://youtu.be/cqBrq9uwXWU 27 | 28 | -------------------------------------------------------------------------------- /utils/Torigoya_SameEquipType.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_SameEquipType.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc If equip slot name is the same, it can have an item of the same type 7 | * @author ru_shalm 8 | */ 9 | 10 | /*:ja 11 | * @plugindesc 装備タイプ名が同じならば、同じ種別のアイテムを装備できるようにします 12 | * @author ru_shalm 13 | * 14 | * @help 15 | * 16 | * データベースの「タイプ」→「装備タイプ」設定で 17 | * 同じ名前を設定した場合は、同じ種別のアイテムを装備できるようにします。 18 | * 19 | * 例えば 20 | * 21 | * 01 武器 22 | * 02 盾 23 | * 03 装飾品 24 | * 04 装飾品 25 | * 05 装飾品 26 | * 27 | * のように設定した場合、装備の3段目〜5段目が全て 28 | * 「03 装飾品」が装備できるスロットになります。 29 | * 30 | * ※装備の設定をする際は必ず同じ名前でも 31 | *  一番上にあるものにしてください。 32 | *  上記の例の場合であれば装飾品はすべて「03 装飾品」になります。 33 | */ 34 | 35 | (function () { 36 | var upstream_Game_Actor_equipSlots = Game_Actor.prototype.equipSlots; 37 | Game_Actor.prototype.equipSlots = function() { 38 | var slots = upstream_Game_Actor_equipSlots.apply(this); 39 | var n; 40 | for (var i = 1; i < $dataSystem.equipTypes.length; i++) { 41 | n = $dataSystem.equipTypes.indexOf($dataSystem.equipTypes[i]); 42 | if (n !== i) { slots[i - 1] = n; } 43 | } 44 | return slots; 45 | }; 46 | })(); 47 | -------------------------------------------------------------------------------- /utils/Torigoya_Cordova.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_Cordova.js 3 | *---------------------------------------------------------------------------* 4 | * 2017/02/07 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*: 9 | * @plugindesc Cordova対応さん(仮) 10 | * @author ru_shalm 11 | * @help 12 | * **This plugin is W.I.P** 13 | * 14 | * Cordovaで便利に動くためのヘルパーを提供します。 15 | */ 16 | 17 | (function (global) { 18 | 'use strict'; 19 | 20 | var launchMode = (function () { 21 | if (Utils.isNwjs()) { 22 | return 'nwjs'; 23 | } else if (location.host === '') { 24 | return 'cordova'; 25 | } else { 26 | return 'web'; 27 | } 28 | })(); 29 | 30 | function isCordova() { 31 | return launchMode === 'cordova'; 32 | } 33 | 34 | function loadCordovaJS() { 35 | var script = document.createElement('script'); 36 | script.type = 'text/javascript'; 37 | script.src = 'cordova.js'; 38 | document.body.appendChild(script); 39 | } 40 | 41 | if (isCordova()) { 42 | loadCordovaJS(); 43 | } 44 | 45 | // ------------------------------------------------------------------------- 46 | global.Torigoya = (global.Torigoya || {}); 47 | global.Torigoya.Cordova = { 48 | isCordova: isCordova 49 | }; 50 | })(window); 51 | -------------------------------------------------------------------------------- /utils/Torigoya_MaxSlipDamageSetting.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_MaxSlipDamageSetting.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc Max slip damage setting for enemies. 7 | * @author ru_shalm 8 | * 9 | * @help 10 | * 11 | * Enemy Note: 12 | * # max slip damage value: 50 13 | */ 14 | 15 | /*:ja 16 | * @plugindesc 毒などのスリップダメージの最大値を敵ごとに設定できるようにします。 17 | * @author ru_shalm 18 | * 19 | * @help 20 | * 敵キャラについて、毒などで受ける最大ダメージを 21 | * 設定できるようになります。 22 | * 23 | * 「毒のダメージを最大HPの50%にしたらボスが2ターンで死んだ」 24 | * のような悲しい事件を防ぐことができます。 25 | * 26 | * ------------------------------------------------------------ 27 | * ■ 設定方法 28 | * ------------------------------------------------------------ 29 | * 敵キャラのメモ欄に以下のように設定してください。 30 | * 31 | * 32 | * 33 | * のように設定すると、 34 | * 毒で50ダメージまでしか受けなくなります。 35 | */ 36 | 37 | (function (_) { 38 | var upstream_Game_Enemy_maxSlipDamage = Game_Enemy.prototype.maxSlipDamage; 39 | Game_Enemy.prototype.maxSlipDamage = function () { 40 | var defaultValue = upstream_Game_Enemy_maxSlipDamage.apply(this); 41 | var maxSlipDamage = this.enemy().meta['MaxSlipDamage']; 42 | if (maxSlipDamage) { 43 | return Math.min(defaultValue, ~~maxSlipDamage); 44 | } else { 45 | return defaultValue; 46 | } 47 | }; 48 | })(this); 49 | -------------------------------------------------------------------------------- /patch/Torigoya_FixMuteAudio.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_FixMuteAudio.js 3 | *---------------------------------------------------------------------------* 4 | * 2019/11/08 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*: 9 | * @plugindesc スマホでブラウザを非アクティブにすると音が二度と鳴らなくなることがあるのを防止するやつ 10 | * @author ru_shalm 11 | * @help 12 | * 13 | * ■ なにこれ! 14 | * 以下の修正パッチのプラグインバージョンです 15 | * https://github.com/rpgtkoolmv/corescript/pull/209 16 | * 17 | * ■ どういうときにおかしくなるの? 18 | * 1. Androidを用意します 19 | * 2. Chromeでゲームを開きます 20 | * 3. ゲームから音声が鳴り始めます 21 | * 4. スマホのホームボタンを押して、Chromeを非表示にします 22 | * 5. 自動的に音声のフェードアウトが始まります 23 | * 6. 0.5秒以内にChromeをタップして再度表示します 24 | * 7. 音、死す 25 | * 26 | * ■ なんでやねん 27 | * Androidではブラウザ(Chrome)を非表示にしても音が鳴りっぱなしになってしまうため 28 | * RPGツクールMVのコアスクリプトの中に、 29 | * ブラウザが非表示になったら音が止まる仕組みが入っています。 30 | * 31 | * この時、音が急に止まるのではなく1秒かけてフェードアウトするようになっています。 32 | * そして、ブラウザを再度表示したときには0.5秒かけてフェードインします。 33 | * 34 | * フェードアウトよりフェードインのほうが短い時間のため 35 | * あまりに早くブラウザの表示・非表示を繰り返してしまうと 36 | * フェードアウトが完了する前にフェードインが終わってしまい 37 | * 最終的にフェードアウトの音量をゼロにする操作だけが残ってしまい 38 | * 音が鳴らなくなってしまいます>< 39 | * 40 | * このプラグインでは、フェードインの時間を0.5秒から1秒にすることで 41 | * どんなに超高速に操作をしたとしても、 42 | * フェードアウトしたままにならないようにしています。 43 | */ 44 | 45 | (function () { 46 | 'use strict'; 47 | 48 | WebAudio._onShow = function () { 49 | if (this._shouldMuteOnHide()) { 50 | this._fadeIn(1); // 0.5 -> 1 51 | } 52 | }; 53 | })(); 54 | -------------------------------------------------------------------------------- /utils/Torigoya_AddPrefixToStorageKey.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_AddPrefixToStorageKey.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc Add prefix to webstorage key 7 | * @author ru_shalm 8 | * 9 | * @param Prefix 10 | * @desc prefix string (default: none) 11 | * @default 12 | * 13 | * @help 14 | * 15 | */ 16 | 17 | /*:ja 18 | * @plugindesc Webプレイ時のデータ保存先名にプレフィックスを付与します。 19 | * @author ru_shalm 20 | * 21 | * @param Prefix 22 | * @desc prefix string (デフォルト: 無し) 23 | * @default 24 | * 25 | * @help 26 | * 27 | * ■ どういうわけか? 28 | * MVではWeb版プレイでのデータ保存先はブラウザのLocalStorageという機能を使っています。 29 | * そして、LocalStorageはドメインごとに保存領域が分けられています。 30 | * (例えば http://toripota.com/game1 と http://toripota.com/game2 では 31 | * 両方とも「http://toripota.com」というドメインで公開されているため、 32 | * ゲーム自体は別物でも保存領域は同じ場所になります。) 33 | * 34 | * セーブ一覧に他のゲームのセーブデータが表示されるのはどう考えてもジャマなので、 35 | * このプラグインでは保存時のキー名(ファイル名)に、 36 | * 作者の好きな文字列を追加して、混ざるのを防止できるようにします。 37 | * 38 | * 混ざるとどうなるのかを見たい方はWeb版のサンプルゲームをいっぱいプレイしましょう。 39 | * http://info.nicovideo.jp/gamemaga/mvsample/ 40 | */ 41 | 42 | (function () { 43 | var settings = PluginManager.parameters('Torigoya_AddPrefixToStorageKey'); 44 | var prefix = String(settings['Prefix'] || ''); 45 | 46 | var upstream_StorageManager_webStorageKey = StorageManager.webStorageKey; 47 | StorageManager.webStorageKey = function (_) { 48 | var defaultKey = upstream_StorageManager_webStorageKey.apply(this, arguments); 49 | if (prefix.length > 0) { 50 | return prefix + '_' + defaultKey; 51 | } else { 52 | return defaultKey; 53 | } 54 | }; 55 | })(); 56 | -------------------------------------------------------------------------------- /utils/Torigoya_ScreenSize.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_ScreenSize.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc ScreenSize Settings 7 | * @author ru_shalm 8 | * 9 | * @param Screen Width 10 | * @desc Game Screen Width (default: 816) 11 | * @default 816 12 | * 13 | * @param Screen Height 14 | * @desc Game Screen Height (default: 624) 15 | * @default 624 16 | * 17 | * @param Window Ratio 18 | * @desc Game Window Size Ratio (only PC App) (default: 1.0) 19 | * @default 1.0 20 | */ 21 | 22 | /*:ja 23 | * @plugindesc 画面サイズの設定 24 | * @author ru_shalm 25 | * 26 | * @param Screen Width 27 | * @desc ゲーム画面の横幅の解像度 (default: 816) 28 | * @default 816 29 | * 30 | * @param Screen Height 31 | * @desc ゲーム画面の縦幅の解像度 (default: 624) 32 | * @default 624 33 | * 34 | * @param Window Ratio 35 | * @desc 画面の表示倍率 (exe版のみ) (default: 1.0) 36 | * @default 1.0 37 | */ 38 | 39 | (function () { 40 | var settings = PluginManager.parameters('Torigoya_ScreenSize'); 41 | var w = Number(settings['Screen Width'] || 816); 42 | var h = Number(settings['Screen Height'] || 624); 43 | var r = Number(settings['Window Ratio'] || 1.0); 44 | 45 | SceneManager._screenWidth = SceneManager._boxWidth = w; 46 | SceneManager._screenHeight = SceneManager._boxHeight = h; 47 | if (Utils.isNwjs()) { 48 | var guiWindow = require('nw.gui').Window.get(); 49 | var borderWidth = window.outerWidth - window.innerWidth; 50 | var borderHeight = window.outerHeight - window.innerHeight; 51 | guiWindow.resizeTo(w * r + borderWidth, h * r + borderHeight); 52 | guiWindow.show(); 53 | } 54 | })(); 55 | -------------------------------------------------------------------------------- /utils/Torigoya_ChangeInputRepeatWait.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_ChangeInputRepeatWait.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc Settings for Input.repeat / TouchInput.repeat wait 7 | * @author ru_shalm 8 | * 9 | * @param [Key] wait 10 | * @type number 11 | * @min 1 12 | * @desc [Input.repeat] wait in first time (default: 24) 13 | * @default 24 14 | * 15 | * @param [Key] interval 16 | * @type number 17 | * @min 1 18 | * @desc [Input.repeat] wait of interval (default: 6) 19 | * @default 6 20 | * 21 | * @param [Touch] wait 22 | * @type number 23 | * @min 1 24 | * @desc [TouchInput.repeat] wait in first time (default: 24) 25 | * @default 24 26 | * 27 | * @param [Touch] interval 28 | * @type number 29 | * @min 1 30 | * @desc [TouchInput.repeat] wait of interval (default: 6) 31 | * @default 6 32 | */ 33 | 34 | /*:ja 35 | * @plugindesc Input.repeat / TouchInput.repeat のウェイトを設定 36 | * @author ru_shalm 37 | * 38 | * @param [Key] wait 39 | * @type number 40 | * @min 1 41 | * @desc Input.repeatの初回のウェイト (default: 24) 42 | * @default 24 43 | * 44 | * @param [Key] interval 45 | * @type number 46 | * @min 1 47 | * @desc Input.repeatの2回目以降のウェイト (default: 6) 48 | * @default 6 49 | * 50 | * @param [Touch] wait 51 | * @type number 52 | * @min 1 53 | * @desc TouchInput.repeatの初回のウェイト (default: 24) 54 | * @default 24 55 | * 56 | * @param [Touch] interval 57 | * @type number 58 | * @min 1 59 | * @desc TouchInput.repeatの2回目以降のウェイト (default: 6) 60 | * @default 6 61 | */ 62 | 63 | (function () { 64 | var settings = PluginManager.parameters('Torigoya_ChangeInputRepeatWait'); 65 | Input.keyRepeatWait = Number(settings['[Key] wait'] || 24); 66 | Input.keyRepeatInterval = Number(settings['[Key] interval'] || 6); 67 | TouchInput.keyRepeatWait = Number(settings['[Touch] wait'] || 24); 68 | TouchInput.keyRepeatInterval = Number(settings['[Touch] interval'] || 6); 69 | })(); 70 | -------------------------------------------------------------------------------- /balloon_in_battle/Torigoya_BalloonInBattle_Addon_DisplayTime.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_BalloonInBattle_Addon_DisplayTime.js 3 | *---------------------------------------------------------------------------* 4 | * 2020/06/20 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*:ja 9 | * @plugindesc 戦闘中セリフ表示さん for MVアドオン:時間で消去 10 | * @author ru_shalm 11 | * 12 | * @param --- 基本設定 --- 13 | * 14 | * @param DisplayTime 15 | * @desc 吹き出しを表示する時間(ms)を設定します。(※1000=1秒) 16 | * @type number 17 | * @default 2500 18 | * @min 1 19 | * 20 | * @help 21 | * ※このプラグインは「戦闘中セリフ表示さん for MV」のアドオンです 22 | *  「戦闘中セリフ表示さん for MV」より下に入れてください。 23 | * 24 | * スキル使用時に指定時間経過で自動的に吹き出しを閉じます。 25 | * 指定した時間より先に行動が終了した場合は、その時点で吹き出しが消えます。 26 | */ 27 | 28 | (function(global) { 29 | 'use strict'; 30 | 31 | if (!global.Torigoya || !global.Torigoya.BalloonInBattle) { 32 | var errorMessage = '「戦闘中セリフ表示さん for MVアドオン:時間で消去」より上に\n「戦闘中セリフ表示さん for MV」が導入されていません。'; 33 | alert(errorMessage); 34 | throw errorMessage; 35 | } 36 | 37 | var DisplayTime = { 38 | name: 'Torigoya_BalloonInBattle_Addon_DisplayTime' 39 | }; 40 | DisplayTime.settings = (function () { 41 | var parameters = PluginManager.parameters(DisplayTime.name); 42 | return { 43 | displayTime: Number(parameters['DisplayTime'] || 2500), 44 | }; 45 | })(); 46 | 47 | // ------------------------------------------------------------------------- 48 | // BattleManager 49 | 50 | var upstream_BattleManager_startAction = BattleManager.startAction; 51 | BattleManager.startAction = function () { 52 | upstream_BattleManager_startAction.apply(this); 53 | var subject = this._subject; 54 | if (subject) subject.torigoya_delayClearSpeech(DisplayTime.settings.displayTime); 55 | }; 56 | 57 | // ------------------------------------------------------------------------- 58 | global.Torigoya.BalloonInBattle.Addons = (global.Torigoya.BalloonInBattle.Addons || {}); 59 | global.Torigoya.BalloonInBattle.Addons.DisplayTime = DisplayTime; 60 | 61 | })(window); 62 | -------------------------------------------------------------------------------- /utils/Torigoya_NotRemoveWeapon.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_NotRemoveWeapon.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc change to cannot remove weapon in Equip_Scene 7 | * @author ru_shalm 8 | */ 9 | 10 | /*:ja 11 | * @plugindesc 装備画面で武器は外せないようにします 12 | * @author ru_shalm 13 | */ 14 | 15 | (function () { 16 | var isWeaponSlot = function (actor, slotId) { 17 | return (actor && actor.equipSlots()[slotId] === 1); 18 | }; 19 | 20 | // 武器のときは末尾空白を入れない 21 | var upstream_Window_EquipItem_includes = Window_EquipItem.prototype.includes; 22 | Window_EquipItem.prototype.includes = function (item) { 23 | if (!item && isWeaponSlot(this._actor, this._slotId)) { 24 | return false; 25 | } 26 | return upstream_Window_EquipItem_includes.apply(this, arguments); 27 | }; 28 | 29 | // 武器のときは空白を選択できない 30 | var upstream_Window_EquipItem_isEnabled = Window_EquipItem.prototype.isEnabled; 31 | Window_EquipItem.prototype.isEnabled = function (item) { 32 | if (!item && isWeaponSlot(this._actor, this._slotId)) { 33 | return false; 34 | } 35 | return upstream_Window_EquipItem_isEnabled.apply(this, arguments); 36 | }; 37 | 38 | // [再定義] 全部外すで外れないようにする 39 | Game_Actor.prototype.clearEquipments = function () { 40 | var maxSlots = this.equipSlots().length; 41 | for (var i = 0; i < maxSlots; i++) { 42 | if (!isWeaponSlot(this, i) && this.isEquipChangeOk(i)) { 43 | this.changeEquip(i, null); 44 | } 45 | } 46 | }; 47 | 48 | // 今の装備品とも比較するようにする 49 | // ※デフォだと事前に装備を解除することが前提になっていて、その作りは今は困る… 50 | var upstream_Game_Actor_bestEquipItem = Game_Actor.prototype.bestEquipItem; 51 | Game_Actor.prototype.bestEquipItem = function (slotId) { 52 | var bestItem = upstream_Game_Actor_bestEquipItem.apply(this, arguments), 53 | nowItem = this._equips[slotId].object(), 54 | bestPerformance = bestItem ? this.calcEquipItemPerformance(bestItem) : -1000, 55 | nowPerformance = nowItem ? this.calcEquipItemPerformance(nowItem) : -1000; 56 | if (nowPerformance > bestPerformance) { 57 | return nowItem; 58 | } else { 59 | return bestItem; 60 | } 61 | }; 62 | })(); 63 | -------------------------------------------------------------------------------- /lock_orientation/Torigoya_LockOrientation.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_LockOrientation.js 3 | *---------------------------------------------------------------------------* 4 | * 2018/07/20 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*: 9 | * @plugindesc フルスクリーン処理実行時に画面を縦 or 横に固定します 10 | * @author ru_shalm 11 | * 12 | * @param Orientation 13 | * @desc 画面の向き 14 | * @type select 15 | * @option landscape (横) 16 | * @option portrait (縦) 17 | * @default landscape (横) 18 | */ 19 | 20 | (function (global) { 21 | 'use strict'; 22 | 23 | var LockOrientation = { 24 | name: 'Torigoya_LockOrientation', 25 | isEnabled: (screen.orientation && screen.orientation.lock) 26 | }; 27 | LockOrientation.settings = (function () { 28 | var parameters = PluginManager.parameters(LockOrientation.name); 29 | return { 30 | orientation: String(parameters['Orientation']).split(/\s+/)[0] 31 | }; 32 | })(); 33 | 34 | // ------------------------------------------------------------------------- 35 | 36 | function registerEvents() { 37 | ['fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange'].forEach(function (name) { 38 | document.addEventListener(name, lock, false); 39 | }); 40 | window.addEventListener('resize', lock, false); 41 | } 42 | 43 | function removeEvents() { 44 | LockOrientation.isEnabled = false; 45 | 46 | ['fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange'].forEach(function (name) { 47 | document.removeEventListener(name, lock); 48 | }); 49 | window.removeEventListener('resize', lock); 50 | } 51 | 52 | function lock() { 53 | if (!LockOrientation.isEnabled) return; 54 | var name = LockOrientation.settings.orientation; 55 | screen.orientation.lock(name) 56 | .catch((e) => { 57 | if (e.name !== 'SecurityError') removeEvents(); 58 | }); 59 | } 60 | 61 | LockOrientation.lock = lock; 62 | 63 | if (LockOrientation.isEnabled) registerEvents(); 64 | 65 | // ------------------------------------------------------------------------- 66 | global.Torigoya = (global.Torigoya || {}); 67 | global.Torigoya.LockOrientation = LockOrientation; 68 | })(this); 69 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | ## Torigoya Plugins 2 | 3 | This is free and unencumbered software released into the public domain. 4 | 5 | Anyone is free to copy, modify, publish, use, compile, sell, or 6 | distribute this software, either in source code form or as a compiled 7 | binary, for any purpose, commercial or non-commercial, and by any 8 | means. 9 | 10 | In jurisdictions that recognize copyright laws, the author or authors 11 | of this software dedicate any and all copyright interest in the 12 | software to the public domain. We make this dedication for the benefit 13 | of the public at large and to the detriment of our heirs and 14 | successors. We intend this dedication to be an overt act of 15 | relinquishment in perpetuity of all present and future rights to this 16 | software under copyright law. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 22 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 23 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | 26 | For more information, please refer to 27 | 28 | -------------------------------------------------------------------------------- 29 | 30 | ## RPG Maker MV CoreScript 31 | 32 | https://github.com/rpgtkoolmv/corescript 33 | 34 | MIT License 35 | 36 | Copyright (c) 2015 KADOKAWA CORPORATION./YOJI OJIMA 37 | 38 | Permission is hereby granted, free of charge, to any person obtaining a copy 39 | of this software and associated documentation files (the "Software"), to deal 40 | in the Software without restriction, including without limitation the rights 41 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 42 | copies of the Software, and to permit persons to whom the Software is 43 | furnished to do so, subject to the following conditions: 44 | 45 | The above copyright notice and this permission notice shall be included in all 46 | copies or substantial portions of the Software. 47 | 48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 49 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 50 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 51 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 52 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 53 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 54 | SOFTWARE. 55 | 56 | -------------------------------------------------------------------------------- /quick_skill/Torigoya_QuickSkill_Addon_OpenSkillWindow.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_QuickSkill_Addon_OpenSkillWindow.js 3 | *---------------------------------------------------------------------------* 4 | * 2020/05/06 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*:ja 9 | * @plugindesc ターン消費なしスキル for MVアドオン:発動後、スキル選択画面を開く(β) 10 | * @author ru_shalm 11 | * @help 12 | * ※このプラグインは「ターン消費なしスキルさん for MV」のアドオンです 13 | *  「ターン消費なしスキルさん for MV」より下に入れてください。 14 | * 15 | * スキル使用後にスキルウィンドウが開いた状態にします。 16 | * このプラグインは競合率が高いため、併用するプラグイン次第では動作しません。 17 | */ 18 | 19 | (function (global) { 20 | 'use strict'; 21 | 22 | if (!global.Torigoya || !global.Torigoya.QuickSkill) { 23 | var errorMessage = '「ターン消費なしスキル for MVアドオン:発動後、スキル選択画面を開く」より上に\n「ターン消費なしスキルさん for MV」が導入されていません。'; 24 | alert(errorMessage); 25 | throw errorMessage; 26 | } 27 | 28 | var OpenSkillWindow = { 29 | name: 'Torigoya_QuickSkill_Addon_OpenSkillWindow', 30 | isQuickSkillTurn: false 31 | }; 32 | 33 | // ------------------------------------------------------------------------- 34 | // Scene_Battle 35 | 36 | var upstream_Scene_Battle_startActorCommandSelection = Scene_Battle.prototype.startActorCommandSelection; 37 | Scene_Battle.prototype.startActorCommandSelection = function () { 38 | if (OpenSkillWindow.isQuickSkillTurn) { 39 | this._statusWindow.select(BattleManager.actor().index()); 40 | this._actorCommandWindow.open(); 41 | this.commandSkill(); 42 | 43 | OpenSkillWindow.isQuickSkillTurn = false; 44 | } else { 45 | upstream_Scene_Battle_startActorCommandSelection.apply(this); 46 | } 47 | }; 48 | 49 | // ------------------------------------------------------------------------- 50 | // BattleManager 51 | 52 | var upstream_BattleManager_updateEvent = BattleManager.updateEvent; 53 | BattleManager.updateEvent = function () { 54 | var isQuickSkill = this._phase === 'torigoya_quickSkill'; 55 | var result = upstream_BattleManager_updateEvent.apply(this); 56 | 57 | if (isQuickSkill && this._phase === 'input') { 58 | OpenSkillWindow.isQuickSkillTurn = true; 59 | } 60 | 61 | return result; 62 | }; 63 | 64 | // ------------------------------------------------------------------------- 65 | global.Torigoya.QuickSkill.Addons = (global.Torigoya.QuickSkill.Addons || {}); 66 | global.Torigoya.QuickSkill.Addons.OpenSkillWindow = OpenSkillWindow; 67 | })(this); 68 | -------------------------------------------------------------------------------- /utils/Torigoya_AddStateSkill.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_AddStateSkill.js 3 | *---------------------------------------------------------------------------* 4 | * 2020/06/20 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*: 9 | * @plugindesc add/remove state to subject when using the skill 10 | * @author ru_shalm 11 | * 12 | * @help 13 | * 14 | * Skill Note: 15 | * # add state[1] when using the skill 16 | * # remove state[2] when using the skill 17 | */ 18 | 19 | /*:ja 20 | * @plugindesc スキル使用時に使用者にステートを追加/削除できるようにします 21 | * @author ru_shalm 22 | * 23 | * @help 24 | * 25 | * スキルのメモ: 26 | * # スキル使用時にステート1番(戦闘不能)を付与 27 | * # スキル使用時にステート2番と3番を付与 28 | * # スキル使用時にステート2番(防御)を解除 29 | */ 30 | 31 | (function (global) { 32 | 'use strict'; 33 | 34 | var AddStateSkill = { 35 | name: 'Torigoya_AddStateSkill' 36 | }; 37 | 38 | AddStateSkill.addState = function () { 39 | if (!this._action) return 0; 40 | 41 | var stateIds = this._action.item() ? this._action.item().meta['AddState'] : null; 42 | if (stateIds && this._subject.isAlive()) { 43 | stateIds.split(/\s*,\s*/).filter(Boolean).forEach(function (id) { 44 | this._subject.addState(~~id); 45 | }.bind(this)); 46 | return 1; 47 | } else { 48 | return 0; 49 | } 50 | }; 51 | 52 | AddStateSkill.removeState = function () { 53 | if (!this._action) return 0; 54 | 55 | var stateIds = this._action.item() ? this._action.item().meta['RemoveState'] : null; 56 | if (stateIds) { 57 | stateIds.split(/\s*,\s*/).filter(Boolean).forEach(function (id) { 58 | this._subject.removeState(~~id); 59 | }.bind(this)); 60 | return 1; 61 | } else { 62 | return 0; 63 | } 64 | }; 65 | 66 | var upstream_BattleManager_endAction = BattleManager.endAction; 67 | BattleManager.endAction = function () { 68 | var n = AddStateSkill.addState.apply(this) + AddStateSkill.removeState.apply(this); 69 | if (n > 0) { 70 | this._logWindow.displayAutoAffectedStatus(this._subject); 71 | if (this._subject.isDead()) { 72 | this._subject.performCollapse(); 73 | } 74 | } 75 | 76 | upstream_BattleManager_endAction.apply(this); 77 | }; 78 | 79 | // ------------------------------------------------------------------------- 80 | global.Torigoya = (global.Torigoya || {}); 81 | global.Torigoya.AddStateSkill = AddStateSkill; 82 | })(window); 83 | -------------------------------------------------------------------------------- /replace_dead_member/Torigoya_ReplaceDeadMember.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_ReplaceDeadMember.js 3 | *---------------------------------------------------------------------------* 4 | * 2017/01/24 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------* 7 | * このプラグインは旧バージョンです。 8 | * 今後は Torigoya_ReplaceDeadMemberPlus.js をお使いください。 9 | *---------------------------------------------------------------------------*/ 10 | 11 | /*: 12 | * @plugindesc Replace a back member from dead actors in BattleScene. 13 | * @author ru_shalm 14 | */ 15 | 16 | /*:ja 17 | * @plugindesc 戦闘中、死亡したメンバーを自動的に控えメンバーに入れ替えます。 18 | * @author ru_shalm 19 | * @help 20 | * 【注意】 21 | * このプラグインは旧バージョンです。 22 | * 以下のページで公開されている最新バージョンをご利用ください。 23 | * 24 | * 戦闘不能アクター自動入れ替えさんPlus for MV 25 | * http://torigoya.hatenadiary.jp/entry/replace_dead_member_plus_mv 26 | */ 27 | 28 | (function (global) { 29 | 'use strict'; 30 | 31 | // 生存メンバーが先頭に集まるように並び替え 32 | var sortDeadMember = function () { 33 | var allMembers = $gameParty.allMembers(); 34 | for (var i = getPartyStartIndex(); i < allMembers.length - 1; ++i) { 35 | if (!allMembers[i].isDead()) continue; 36 | 37 | for (var j = i + 1; j < allMembers.length; ++j) { 38 | if (allMembers[j].isDead()) continue; 39 | $gameParty.swapOrder(i, j); 40 | allMembers = $gameParty.allMembers(); // 取り直す 41 | break; 42 | } 43 | } 44 | }; 45 | 46 | // 死んだ戦闘参加中メンバーを控えと入れ替え 47 | var swapDeadMember = function () { 48 | var allMembers = $gameParty.allMembers(); 49 | for (var i = getPartyStartIndex(); i < $gameParty.maxBattleMembers(); ++i) { 50 | if (!allMembers[i]) break; 51 | if (!allMembers[i].isDead()) continue; 52 | 53 | for (var j = $gameParty.maxBattleMembers(); j < allMembers.length; ++j) { 54 | if (allMembers[j].isDead()) continue; 55 | $gameParty.swapOrder(i, j); 56 | allMembers = $gameParty.allMembers(); // 取り直す 57 | break; 58 | } 59 | } 60 | }; 61 | 62 | // 入れ替え対象範囲にするアクターの位置 63 | // ※先頭固定系のプラグインなどと仲良くする 64 | var getPartyStartIndex = function () { 65 | if (global.Imported && global.Imported.TMTopFix) { // TMTopFix.js利用時 66 | return $gameSystem.isTopFix() ? 1 : 0; 67 | } else { 68 | return 0; 69 | } 70 | }; 71 | 72 | var upstream_BattleManager_initMembers = BattleManager.initMembers; 73 | BattleManager.initMembers = function () { 74 | sortDeadMember(); 75 | upstream_BattleManager_initMembers.bind(this)(); 76 | }; 77 | 78 | var upstream_BattleManager_endAction = BattleManager.endAction; 79 | BattleManager.endAction = function () { 80 | swapDeadMember(); 81 | upstream_BattleManager_endAction.bind(this)(); 82 | }; 83 | 84 | global.Torigoya = (global.Torigoya || {}); 85 | global.Torigoya.ReplaceDeadMember = {}; 86 | })(this); 87 | -------------------------------------------------------------------------------- /control_character/Torigoya_TextLastGet.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_TextLastGet.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc add "last get item" to message. (\lastGet) 7 | * @author ru_shalm 8 | */ 9 | 10 | /*:ja 11 | * @plugindesc 制御文字に「最後に取得したアイテム名/金額」(\lastGet)を追加します 12 | * @author ru_shalm 13 | */ 14 | 15 | (function (global) { 16 | 'use strict'; 17 | 18 | var TextLastGet = { 19 | name: 'Torigoya_TextGetItem', 20 | item: null, 21 | stopResetColor: false 22 | }; 23 | 24 | var upstream_Window_Base_resetTextColor = Window_Base.prototype.resetTextColor; 25 | Window_Base.prototype.resetTextColor = function() { 26 | if (TextLastGet.stopResetColor) return; 27 | upstream_Window_Base_resetTextColor.apply(this); 28 | }; 29 | 30 | var upstream_Game_Party_gainItem = Game_Party.prototype.gainItem; 31 | Game_Party.prototype.gainItem = function (item, amount, includeEquip) { 32 | upstream_Game_Party_gainItem.apply(this, arguments); 33 | if (amount > 0) { 34 | TextLastGet.item = item; 35 | } 36 | }; 37 | 38 | var upstream_Game_Party_gainGold = Game_Party.prototype.gainGold; 39 | Game_Party.prototype.gainGold = function (amount) { 40 | upstream_Game_Party_gainGold.apply(this, arguments); 41 | if (amount > 0) { 42 | TextLastGet.item = amount; 43 | } 44 | }; 45 | 46 | var processDrawLastGetGold = function (amount, textState) { 47 | var originalColor = this.contents.textColor; 48 | var unit = TextManager.currencyUnit; 49 | var w = this.textWidth(String(TextLastGet.item)) + this.textWidth(unit) + 6; 50 | TextLastGet.stopResetColor = true; 51 | this.drawCurrencyValue(TextLastGet.item, unit, textState.x, textState.y, w); 52 | TextLastGet.stopResetColor = false; 53 | this.contents.textColor = originalColor; 54 | textState.x += w; 55 | }; 56 | 57 | var processDrawLastGetItem = function (item, textState) { 58 | var w = Window_Base._iconWidth + 4 + this.textWidth(TextLastGet.item.name); 59 | TextLastGet.stopResetColor = true; 60 | this.drawItemName(TextLastGet.item, textState.x, textState.y, w); 61 | TextLastGet.stopResetColor = false; 62 | textState.x += w; 63 | }; 64 | 65 | var upstream_Window_Base_processEscapeCharacter = Window_Base.prototype.processEscapeCharacter; 66 | Window_Base.prototype.processEscapeCharacter = function (code, textState) { 67 | if (code === 'LASTGET') { 68 | if (!TextLastGet.item) return; 69 | switch (typeof TextLastGet.item) { 70 | case 'number': 71 | processDrawLastGetGold.call(this, TextLastGet.item, textState); 72 | break; 73 | default: 74 | processDrawLastGetItem.call(this, TextLastGet.item, textState); 75 | } 76 | return; 77 | } 78 | upstream_Window_Base_processEscapeCharacter.apply(this, arguments); 79 | }; 80 | 81 | global.Torigoya = (global.Torigoya || {}); 82 | global.Torigoya.TextLastGet = TextLastGet; 83 | })(this); 84 | -------------------------------------------------------------------------------- /utils/Torigoya_InputNamePrompt.js: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Torigoya_InputNamePrompt.js 3 | //============================================================================= 4 | 5 | /*: 6 | * @plugindesc Input name with prompt 7 | * @author ru_shalm 8 | * 9 | * @param Max Length 10 | * @desc name of max length (default: 10) 11 | * @default 10 12 | * 13 | * @param Message 14 | * @desc input prompt message 15 | * @default Please, input name. 16 | * 17 | * @param Maximum Message 18 | * @desc maximum number of characters message (default: (%1 characters or less) ) 19 | * %1 - max length value 20 | * @default (%1 characters or less) 21 | * 22 | * @help 23 | * 24 | * Plugin Command: 25 | * InputNamePrompt 1 # display input name prompt of Actor ID: 1 26 | * InputNamePrompt 1 100 # display input name prompt of Actor ID: 1 (max length: 100) 27 | * InputNamePrompt 1 100 Please, input your name. # display input name prompt with custom message 28 | */ 29 | 30 | /*:ja 31 | * @plugindesc 名前入力ダイアログ機能を追加します 32 | * @author ru_shalm 33 | * 34 | * @param Max Length 35 | * @desc 名前の最大の長さ (default: 10) 36 | * @default 10 37 | * 38 | * @param Message 39 | * @desc 入力時に表示するメッセージ (default: 名前を入力してください) 40 | * @default 名前を入力してください 41 | * 42 | * @param Maximum Message 43 | * @desc 最大文字数の表示 (default: (%1 文字以内) ) 44 | * %1 - 上限文字数値 45 | * @default (%1 文字以内で入力) 46 | * 47 | * @help 48 | * 49 | * プラグインコマンド: 50 | * InputNamePrompt 1 # アクター1番の名前入力ダイアログを表示する 51 | * InputNamePrompt 1 100 # アクター1番の名前入力ダイアログを表示する (最大 100 文字) 52 | * InputNamePrompt 1 100 名前を入力するのじゃ # メッセージの変更 53 | */ 54 | 55 | (function (global) { 56 | 'use strict'; 57 | 58 | var PLUGIN_NAME = 'Torigoya_InputNamePrompt'; 59 | var settings = (function () { 60 | var parameters = PluginManager.parameters(PLUGIN_NAME); 61 | return { 62 | maxLength: Number(parameters['Max Length'] || 10), 63 | message: String(parameters['Message']), 64 | maximumMessage: String(parameters['Maximum Message']), 65 | getMessage: function () { 66 | return this.message || ($gameSystem && $gameSystem.isJapanese() ? '名前を入力してください' : 'Please, input name.'); 67 | }, 68 | getMaximumMessage: function () { 69 | return this.maximumMessage || ($gameSystem && $gameSystem.isJapanese() ? '(%1 文字以内で入力)' : '(%1 characters or less)'); 70 | } 71 | }; 72 | })(); 73 | 74 | var InputNamePrompt = { 75 | name: PLUGIN_NAME, 76 | settings: settings 77 | }; 78 | 79 | InputNamePrompt.runCommand = function (args) { 80 | var actor = $gameActors.actor(~~args.shift()); 81 | var max = Number(args.shift()); 82 | if (isNaN(max)) max = InputNamePrompt.settings.maxLength; 83 | var message = args.join(' ') || InputNamePrompt.settings.getMessage(); 84 | message += '\n' + InputNamePrompt.settings.getMaximumMessage().replace(/%1/g, '' + max); 85 | var name = window.prompt(message, actor.name()); 86 | if (name) { 87 | name = name.trim(); 88 | if (name.length > 0) { 89 | actor.setName(name.substr(0, max)); 90 | } 91 | } 92 | }; 93 | 94 | InputNamePrompt.afterCommand = function () { 95 | // キー入力状態が固定化されているので一旦初期化する 96 | Input.clear(); 97 | TouchInput.clear(); 98 | }; 99 | 100 | var upstream_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; 101 | Game_Interpreter.prototype.pluginCommand = function (command, args) { 102 | if (command === 'InputNamePrompt') { 103 | InputNamePrompt.runCommand(args); 104 | InputNamePrompt.afterCommand(); 105 | return true; 106 | } 107 | return upstream_Game_Interpreter_pluginCommand.apply(this, arguments); 108 | }; 109 | 110 | global.Torigoya = (global.Torigoya || {}); 111 | global.Torigoya.InputNamePrompt = InputNamePrompt; 112 | })(this); 113 | -------------------------------------------------------------------------------- /utils/Torigoya_EnemyShadow.js: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------* 2 | * Torigoya_EnemyShadow.js 3 | *---------------------------------------------------------------------------* 4 | * 2019/08/24 ru_shalm 5 | * http://torigoya.hatenadiary.jp/ 6 | *---------------------------------------------------------------------------*/ 7 | 8 | /*:ja 9 | * @plugindesc 敵の画像の下にも影を表示するようにします 10 | * @author ru_shalm 11 | * @help 12 | * アクターと同じように、エネミーにも影画像を設定できるようにします。 13 | * 14 | * ------------------------------------------------------------ 15 | * ■ オプション設定 16 | * ------------------------------------------------------------ 17 | * 敵ごとに設定を変える必要がある場合は、 18 | * エネミーのメモ欄に以下のような設定をしてください。 19 | * 20 | * 21 | *  影を指定した拡大率に変更します 22 | *  (全体の拡大率を無視してこの値を使うようになります) 23 | * 24 | * 25 | *  影を指定した分、下方向にずらします 26 | * 27 | * 28 | *  影を指定した分、下方向にずらします 29 | * 30 | *