残MP割合ダメージ [解決済]

ブルマ信
記事: 60
登録日時: 2016年2月03日(水) 11:12

残MP割合ダメージ [解決済]

投稿記事by ブルマ信 » 2016年7月07日(木) 08:52

 タイトルのような表現で合ってるかどうか不安ですが、MPが1以上であれば「MPが足りない」と表示されること無くスキルが使用できるものを考えています。
 ただし残MPの割合により、データベースで設定した威力よりも若干強度が落ちるというものを考えています。

 例えば、データベース上では消費MPコストが50で、ダメージが100与えられる魔法を実際のゲーム中では残MP40で使った場合、使用者のMPは0になりちゃんと魔法は発動するけど、ダメージが80程度(設定威力の80%)しか与えられない、といった感じです。

 漠然としたイメージで申し訳ありませんが、上記の表現を可能とするプラグインをリクエストさせていただきます。よろしくお願いします。
最後に編集したユーザー ブルマ信 on 2016年7月11日(月) 21:59 [ 編集 1 回目 ]

アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: 残MP割合ダメージ

投稿記事by terunon » 2016年7月11日(月) 00:38

ブルマ信さん

試作してみました。

sample5.JPG


【必要なもの】
・YEP_SkillCore.js  http://yanfly.moe/2015/10/13/yep-8-skill-core/
・これ用に作りましたTN_recordMpBeforePay.js の適用(下記からダウンロード)
・任意の変数1個(下例では変数1番を使用)

【方法】
SkillCoreと下記TN_recordMpBeforePayを導入し、スキルの計算式とメモ欄を以下のように設定します。
◆計算式: (好きな計算式) * (Math.min(item.mpCost, v[1]) / item.mpCost)
例…

コード: 全て選択

(a.mat * 2 - b.mdf) * 10 * (Math.min(item.mpCost, v[1]) / item.mpCost)


※item.mpCost は、MP消費率を加味したこのスキルの消費MPを表します。
※v[1]は変数ID1の値を表します。変数2を使う場合はv[2]になります。
◆メモ欄:

コード: 全て選択

<Custom MP Cost>
cost = Math.min(item.mpCost, a._mp);
</Custom MP Cost>
<Custom Requirement>
value = (a._mp > 0)
</Custom Requirement>


(仕様解説:読み飛ばしてOKです)
・Custom MP Cost …使用者の残MP(a._mp)または本来の消費MPのうち少ない方をコストに指定しています。
・Custom Requirement で、MPが0のとき使用できなくしています。

さらに、上級者向けですが以下の記述を加えると
MP消費量で付与率が変動する追加効果ステートを与えることができます。
(var chance = 1.0 はステートの基本命中率です。
var stateId = 5 の5はステートIDです。好きなIDに書き換えてください。
chance *= (Math.min(item.mpCost, v[1]) / item.mpCost) の v[1] の1は変数IDです。変数2を使う場合はv[2]になります。)

コード: 全て選択

<After Eval>
var chance = 1.0;
var stateId = 5;
chance *= b.stateRate(stateId);
chance *= (Math.min(item.mpCost, v[1]) / item.mpCost)
if (Math.random() < chance) {
   target.addState(stateId);
   this.makeSuccess(b);
}
</After Eval>


制作応援しています。


画像
画像
画像
画像
画像
添付ファイル
TN_recordMpBeforePay.js
(3.13 KiB) ダウンロード数: 44 回
最後に編集したユーザー terunon on 2016年7月11日(月) 00:44 [ 編集 2 回目 ]
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: 残MP割合ダメージ

投稿記事by terunon » 2016年7月11日(月) 00:41

以下、実行サンプルです。
sample1.JPG
sample2.JPG
sample3.JPG
sample4.JPG
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
ブルマ信
記事: 60
登録日時: 2016年2月03日(水) 11:12

Re: 残MP割合ダメージ

投稿記事by ブルマ信 » 2016年7月11日(月) 21:51

terunon 様、早速プラグインを作って頂きありがとうございました。しかも追加ステートについても機能を付けて頂いて重ねて感謝申し上げます。

大切に使わせていただきます。また機会がありましたらよろしくお願いします。
daright
記事: 5
登録日時: 2018年1月05日(金) 22:26

Re: 残MP割合ダメージ [解決済]

投稿記事by daright » 2018年12月28日(金) 20:14

こちらのプラグイン、お借りしました。SkillCoreの物足りない部分をうまく補って頂きました。ありがとうございました。
しかし、77行目について恐らく不具合と思われるものがありましたので、ご報告いたします。

$gameVariables.setValue(1, this._mp);
こちらについて、パラメータにて使用する変数が指定&定義されているのにも関わらず、変数番号が1で固定されいます。
そのため、
$gameVariables.setValue(variableForMp, this._mp);
に修正すると、本来の仕様になるのではないでしょうか。

2年前に解決済みのトピックに茶々を入れるようで申し訳ないのですが、もし今後お借りする方がいらっしゃればご参考までに。

“MV:プラグイン素材のリクエスト” へ戻る