仮RPGの進捗ノート20250120-20250126
仮RPGの進捗を記載するノートです。20250120-20250126分。
仮RPGの進捗を記載するノートです。20240909-20240915分。
<FTKR_ACTOR_COMMAND: attack 0 true 0 100>
<FTKR_ACTOR_COMMAND: custom 20 true 20>
<FTKR_ACTOR_COMMAND: custom 20 'return $gameParty.members().some(actor=>actor.isStateAffected(12));' 20>
* v2.2.3 - 2024/09/11 : たくろう改変 * 1. カスタムスキルの有効条件がうまく機能していなかった? シングルコーテーションで囲むように変更 * 2. カスタムスキルの有効条件が無効の場合、元々非活性なコマンドになる仕様だったのを、非表示になるように変更
<FTKR_ACTOR_COMMAND: custom 20 '$gameParty.members().some(actor => actor.isStateAffected(12))' 20> <FTKR_ACTOR_COMMAND: attack 0 true 1> <FTKR_ACTOR_COMMAND: guard 0 true 2> <FTKR_ACTOR_COMMAND: skill 1 true 1> <FTKR_ACTOR_COMMAND: item 0 true 21>
<FTKR_ACTOR_COMMAND: custom 20 '$gameParty.members().some(actor => actor.isStateAffected(12))' 20>
$gameParty.members().some(actor => actor.isStateAffected(12) || actor.isStateAffected(13))
$gameParty.members().forEach(actor => { console.log(`${actor.name()}のステート:`); actor.states().forEach(state => { console.log(`- ID: ${state.id}, 名前: ${state.name}`); }); });
ハロルドのステート: VM7815:4 - ID: 12, 名前: 逃走 VM7815:2 マーシャのステート: VM7815:4 - ID: 13, 名前: 退避 VM7815:2 テレーゼのステート: undefined
◆注釈:## 直近ターンの行動者やターゲットを取得する : :下記のような値が取れる : :"{"subject":{"type":"アクター","index":1},"action":"チェインアタック","targets":[{"type":"エネミー","index":5}]}" ◆プラグインコマンド:直近ターン情報取得 45 ◆注釈: : :## 行動者とターゲットIDを取得する ◆スクリプト:// 行動者インデックスを変数47に格納 : :$gameVariables.setValue(47, $gameVariables.value(45).subject.index); : :// 取得したターゲットインデックスを変数48に格納 : :$gameVariables.setValue(48, $gameVariables.value(45).targets[0].index); ◆注釈: : :## ターゲットインデッスID48の内容によって分岐する : :ID:1 ハロルド : :ID:2 マーシャ : :ID:3 テレーゼ ◆条件分岐:バトル対象者ID(BeforeCommon) = 1 ◆注釈: : :### ハロルドが逃走or退避中だったら ◆条件分岐:スクリプト:$gameParty.members()[0].states().some(state => state.id === 12 || state.id === 13) ◆注釈: : :### ハロルドを連れ戻すのは誰か : :ID:2 マーシャ : :ID:3 テレーゼ ◆条件分岐:バトル行動者ID(BeforeCommon) = 2 ◆文章:Actor3(7), ウィンドウ, 下 : :こぉらぁああー!! まちなさぁーーい!! ◆文章:Actor1(0), ウィンドウ, 下 : :う、うわぁああーーー!!! ◆変数の操作:#0045 使い捨て変数 = 乱数 1..100 ◆条件分岐:使い捨て変数 ≤ 75 ◆文章:なし, ウィンドウ, 下 : :ハロルドは連れ戻された ◆ステートの変更:ハロルド, - 逃走 ◆ステートの変更:ハロルド, - 退避 ◆ :それ以外のとき ◆文章:Actor1(0), ウィンドウ, 下 : :いやだーーー!!! ◆文章:Actor3(7), ウィンドウ, 下 : :はぁはぁ… もうっ! ◆文章:なし, ウィンドウ, 下 : :ハロルドは追跡を振り切った ◆ :分岐終了 ◆ :分岐終了 ◆条件分岐:バトル行動者ID(BeforeCommon) = 3 ◆文章:Actor1(7), ウィンドウ, 下 : :戻ってくるんだ!! ◆文章:Actor1(0), ウィンドウ, 下 : :う、うわぁああーーー!!! ◆変数の操作:#0045 使い捨て変数 = 乱数 1..100 ◆条件分岐:使い捨て変数 ≤ 75 ◆文章:なし, ウィンドウ, 下 : :ハロルドは連れ戻された ◆ステートの変更:ハロルド, - 逃走 ◆ステートの変更:ハロルド, - 退避 ◆ :それ以外のとき ◆文章:Actor1(0), ウィンドウ, 下 : :いやだーーー!!! ◆文章:Actor1(7), ウィンドウ, 下 : :はぁはぁ… なんという逃げ足! ◆文章:なし, ウィンドウ, 下 : :ハロルドは追跡を振り切った ◆ :分岐終了 ◆ :分岐終了 ◆ :それ以外のとき ◆文章:なし, ウィンドウ, 下 : :ハロルドはここにいる ◆ :分岐終了 ◆ :分岐終了 ◆注釈: : :## マーシャを連れ戻す ◆条件分岐:バトル対象者ID(BeforeCommon) = 2 ◆条件分岐:スクリプト:$gameParty.members()[1].states().some(state => state.id === 12 || state.id === 13) ◆文章:なし, ウィンドウ, 下 : :マーシャを連れ戻した ◆ステートの変更:マーシャ, - 逃走 ◆ステートの変更:マーシャ, - 退避 ◆ :それ以外のとき ◆文章:なし, ウィンドウ, 下 : :マーシャはここにいる ◆ :分岐終了 ◆ :分岐終了 ◆条件分岐:バトル対象者ID(BeforeCommon) = 3 ◆条件分岐:スクリプト:$gameParty.members()[2].states().some(state => state.id === 12 || state.id === 13) ◆文章:なし, ウィンドウ, 下 : :テレーゼを連れ戻した ◆ステートの変更:テレーゼ, - 逃走 ◆ステートの変更:テレーゼ, - 退避 ◆ :それ以外のとき ◆文章:なし, ウィンドウ, 下 : :テレーゼはここにいる ◆ :分岐終了 ◆ :分岐終了
<CustomRegenerateHP: -10>
<CustomRegenerateHP: Math.max((0.01 * a.mhp),1)> <CustomRegenerateMP: Math.max((0.01 * a.mmp),1)>
//============================================================================= // TT_CustomKnockoutSystem.js // ---------------------------------------------------------------------------- // Copyright (c) 2024 たくろう_りらっくすーぷ // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php // ---------------------------------------------------------------------------- // Last Updated: 2024/09/13 // // Version // 1.0.0 2024/09/13 初版 // ---------------------------------------------------------------------------- // [Blog] : https://re-lacksoup-recipenote.bullet.site/ // [X(Twitter)]: https://x.com/relacksoup //============================================================================= /*:ja * @plugindesc カスタム戦闘不能システム (Version 1.0.0) * @author たくろう_りらっくすーぷ * * @help カスタム戦闘不能システム (Version 1.0.0) * * このプラグインは、以下の機能を実装します: * - HP1で戦闘不能ステートになる * - バトルではHP0にならない(現在のHP以上のダメージを受けてもHP1で戦闘不能ステートになる) * - バトル外のマップなどではHP1から通常の回復が可能 * * 使用方法: * 1. このプラグインをプロジェクトに追加します。 * * ◆プラグインパラメーター * 今のところありません * * ◆プラグインコマンド * 今のところありません * * ◆注意 * - このプラグインは既存のゲームシステムを変更するため、他のプラグインとの互換性に注意が必要です。 * - ゲームバランスに大きな影響を与える可能性があるため、十分なテストを行ってください。 * - 必要に応じて、UIやメッセージなどを調整して、プレイヤーにシステムの変更を明確に伝えることをおすすめします。 * */ (function() { // HP減少時の処理をオーバーライド Game_BattlerBase.prototype.setHp = function(hp) { this._hp = hp; if (this._hp <= 0) { this._hp = 1; if (!this.isStateAffected(1)) { // 戦闘不能ステートでない場合 this.addState(1); // 戦闘不能ステートを付与 } } this._hp = this._hp.clamp(0, this.mhp); }; Game_Battler.prototype.refresh = function() { Game_BattlerBase.prototype.refresh.call(this); if (this.hp <= 1) { this.addState(this.deathStateId()); this._hp = 1; } else { this.removeState(this.deathStateId()); } }; Game_BattlerBase.prototype.revive = function() { if (this._hp === 1) { this._hp = 2; } }; // // 回復処理をオーバーライド // var _Game_Battler_gainHp = Game_Battler.prototype.gainHp; // Game_Battler.prototype.gainHp = function(value) { // if (this.isStateAffected(1) && $gameParty.inBattle()) { // // バトル中で戦闘不能の場合、回復を無効化 // return; // } // _Game_Battler_gainHp.call(this, value); // }; // // アイテム使用時の処理をオーバーライド // var _Game_Action_testApply = Game_Action.prototype.testApply; // Game_Action.prototype.testApply = function(target) { // if (this.isItem() && this.item().meta.SpecialRevive) { // return true; // 専用の復活アイテムは常に使用可能 // } // if (target.isStateAffected(1) && $gameParty.inBattle()) { // return false; // バトル中の戦闘不能には通常のアイテムを使用不可 // } // return _Game_Action_testApply.call(this, target); // }; // // スキル使用時の処理をオーバーライド // var _Game_Action_applyItemUserEffect = Game_Action.prototype.applyItemUserEffect; // Game_Action.prototype.applyItemUserEffect = function(target) { // if (this.item().meta.SpecialRevive && target.isStateAffected(1)) { // target.removeState(1); // 戦闘不能ステートを解除 // target.setHp(1); // HPを1に設定 // } // _Game_Action_applyItemUserEffect.call(this, target); // }; })();
//============================================================================= // TT_EscapeOnStates.js // ---------------------------------------------------------------------------- // Copyright (c) 2024 たくろう_りらっくすーぷ // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php // ---------------------------------------------------------------------------- // Last Updated: 2024/09/13 // // Version // 1.1.0 2024/09/13 全滅もカンマ区切りで複数指定できるようににした // 1.0.0 2024/09/13 初版 // ---------------------------------------------------------------------------- // [Blog] : https://re-lacksoup-recipenote.bullet.site/ // [X(Twitter)]: https://x.com/relacksoup //============================================================================= /*:ja * @plugindesc バトル中に特定のステート条件で逃走するプラグイン (Version 1.1.0) * @author たくろう_りらっくすーぷ * * @param EscapeStateIds * @desc 逃走条件となるステートIDのリスト(カンマ区切り) * @default 12,13 * * @param DefeatedStateIds * @desc 全滅条件となるステートIDのリスト(カンマ区切り) * @default 1 * * @target MV * @help バトル中に特定のステート条件で、自動的に逃走または全滅処理を行います。 * * * 使用方法: * 1. このプラグインをプロジェクトに追加し、有効にしてください。 * 2. プラグインパラメータで逃走条件と全滅条件のステートIDを設定してください。 * * ◆プラグインパラメーター * 逃走条件となるステートIDのリスト(カンマ区切り) * 生存しているパーティメンバー全員が設定したいずれかのステートになった場合、逃走します * デフォルト:12,13 * * 全滅条件となるステートIDのリスト(カンマ区切り) * 生存しているパーティメンバー全員が設定したいずれかのステートになった場合、全滅します * デフォルト:1 * * ◆プラグインコマンド * 今のところありません * * ◆注意 * 他プラグインとの競合などは検証できていません。 * */ /*:ja * @plugindesc バトル中に特定のステート条件で逃走またはゲームオーバーするプラグイン (Version 1.2.1) * @author たくろう_りらっくすーぷ * * @param EscapeStateIds * @desc 逃走条件となるステートIDのリスト(カンマ区切り) * @default 12,13 * * @param DefeatedStateIds * @desc 全滅条件となるステートIDのリスト(カンマ区切り) * @default 1 * * @target MV * @help バトル中に特定のステート条件で、自動的に逃走またはゲームオーバー処理を行います。 * * 使用方法: * 1. このプラグインをプロジェクトに追加し、有効にしてください。 * 2. プラグインパラメータで逃走条件と全滅条件のステートIDを設定してください。 * * ◆プラグインパラメーター * 逃走条件となるステートIDのリスト(カンマ区切り) * 生存しているパーティメンバー全員が設定したいずれかのステートになった場合、逃走します * デフォルト:12,13 * * 全滅条件となるステートIDのリスト(カンマ区切り) * 生存しているパーティメンバー全員が設定したいずれかのステートになった場合、全滅します * デフォルト:1 * * ◆プラグインコマンド * 今のところありません * * ◆注意 * 他プラグインとの競合などは検証できていません。 */ (function() { var parameters = PluginManager.parameters('TT_EscapeOnStates'); var escapeStateIds = (parameters['EscapeStateIds'] || '').split(',').map(Number); var defeatedStateIds = (parameters['DefeatedStateIds'] || '').split(',').map(Number); var _BattleManager_checkBattleEnd = BattleManager.checkBattleEnd; BattleManager.checkBattleEnd = function() { if (this._phase) { if (this.checkEscapeOnStates()) { return true; } } return _BattleManager_checkBattleEnd.call(this); }; BattleManager.checkEscapeOnStates = function() { var allMembersAffected = $gameParty.aliveMembers().every(function(member) { return escapeStateIds.some(function(stateId) { return member.isStateAffected(stateId); }) || defeatedStateIds.some(function(stateId) { return member.isStateAffected(stateId); }); }); if (allMembersAffected) { if ($gameParty.aliveMembers().every(function(member) { return defeatedStateIds.some(function(stateId) { return member.isStateAffected(stateId); }); })) { this.processCustomDefeat(); } else { this.processEscape(); } return true; } return false; }; // Game_Partyクラスに新しいメソッドを追加 Game_Party.prototype.setAllDead = function() { this.members().forEach(function(member) { member.setHp(0); }); }; BattleManager.processCustomDefeat = function() { $gameParty.setAllDead(); // 新しく追加したメソッドを使用 this.processDefeat(); SceneManager.goto(Scene_Gameover); }; BattleManager.processEscape = function() { $gameParty.removeBattleStates(); this.displayEscapeSuccessMessage(); this._escaped = true; this.processAbort(); }; BattleManager.displayEscapeSuccessMessage = function() { $gameMessage.add(TextManager.escapeStart.format($gameParty.name())); }; })();