自分の考えた面白スキル

水犬かき

ユーザー
私も未完成作からですが、いくつかスキルで面白いものが思いついたので書き留めてみます。

・誤って味方を攻撃
クラゲ系統のエネミーが「ときどき、自分の仲間を誤って攻撃したり、何もしないでいることがある」変わった敵で、その挙動用に作ったスキルです。何気に通常攻撃より威力がやや高めという完全なボーナス攻撃。

・ダークレイズ
計算式:b.mhp / 4 + a.mat * 2  味方全体
ステート解除[戦闘不能]、(能力弱体[最大HP]3ターン)*2
アンデッド系の敵が使用してくることがある。
味方全体(基本的に敵専用なので、こちら側から見れば敵全体)をそこそこ多めのHPで蘇生する代わり、最大HPが減少する。
その代わり、アンデッド系の敵は最大HPが減少しないどころか殆ど全回復の状態で復活する。

・ホーリーガーディアン
計算式:(a.mat*6.875+200)*a.mat/b.mdf + ( b.atk + b.mat ) * 10.25  敵全体
・ダークドミネーター
計算式:(b.mdf*6.875+200)*b.mdf/a.mdf + ( b.def + b.mdf ) * 11    敵全体
前者は光属性、後者は闇属性の究極魔法。
前者は敵の攻撃力と魔法力、後者は敵の防御力と魔法防御が高ければ高いほど威力の上がる魔法攻撃です。
ややピーキー気味ではあるがその分高威力で、敵に出されると嫌らしい。

・恐怖の眼差し
ダメージ無し
ステート[通常攻撃]1000% ステート[通常攻撃]125%  敵単体
ゴーストなどアンデッド系の敵(マドハンドのように目が無い敵除く)のみが使用してくるスキル。
アンデッド系は通常攻撃に何らかの状態異常効果が付いているので、それをダメージ無しかつ敵単体に超高確率で付与してくる攻撃。
終盤になるほど状態異常効果が増えたりするのに容赦なくバンバン放ってくるため軽く殺意の湧く技。アンデッドだから死んでるけど。
 

ハルマキ

ユーザー
【冒険者学校の日常】でこんなスキルを作りました。

--------------------------------------------------------------
・ヒールヴェノム
毒を与える短剣技「ポイズンエッジ」とHP回復魔法「ヒール」の連携技。
敵単体のHPを回復させるが、同時に猛毒状態にする。

毒状態ではなく、猛毒状態です。
通常の毒が現在HPの10%ずつHPが減っていきますが、
こちらは20%ずつ減っていき強力です。
一見、役に立たないスキルかと思いますが、
とあるボスモンスターに驚異的な威力を発揮します。
--------------------------------------------------------------

計算式を駆使したものは、データベースサンプル・ネオ アドバンスエディションに
挙げているのと、他の方も紹介しておりますので割愛いたします。
気になった方は見ていただければと思います。
http://harumakikukan.web.fc2.com/database.html
 

YouChalice

ユーザー
こんにちは。
この度、作ってみたかったスキルがなんとか形に成ったので、記念に記させていただきます。

【天秤】
使用者と対象者のHPに均衡をもたらします。
使用者と対象者の現在のHPの差の半分の値が互いに増減します。
使用者のHPが対象者のHPより少ない場合、使用者のHPが増え、対象者のHPが減ります。
逆に、使用者のHPが対象者のHPより多い場合、対象者のHPが増え、使用者のHPが減ってしまいます。
増加量が最大HPを越えてしまう場合、最大HPが超過分増加します。
※戦闘中だけ最大HPが増加するように設定する場合は戦闘終了後に最大HPを初期化する処理が必要になります。
※エラーを吐く場合が有るので、使用効果の部分に「HP回復 0」を付けてください。
『応用』
・スキルを使ってパラメータを成長させる様なゲームシステムを作るならこのままご使用いただけます。
・範囲を味方にすれば、HPの高い仲間のHPをHPの低い仲間に分け与えるスキルになります。範囲を敵にすればやたらHPの高い敵に有効なスキルになります。お好みで設定してください。もちろんプラグインで敵味方両方を対象に出来るようにしても面白いと思います。
●計算式
if(a.hp<b.hp){if(a.mhp<a.hp+(Math.round((b.hp-a.hp)/2))){(a.addParam(0,((Math.round((b.hp-a.hp)/2))-(a.mhp-a.hp))),a.gainHp(Math.round((b.hp-a.hp)/2))),Math.round(b.hp-a.hp)}else{a.gainHp(Math.round(b.hp-a.hp)),Math.round((b.hp-a.hp)/2)}}else{if(b.mhp<b.hp+(Math.round((a.hp-b.hp)/2))){a.gainHp(Math.round(-(a.hp-b.hp)/2)),(b.addParam(0,((Math.round(a.hp-b.hp))-(b.mhp-b.hp))),b.gainHp(Math.round(a.hp-b.hp)))}else{a.gainHp(Math.round(-(a.hp-b.hp)/2)),b.gainHp(Math.round(a.hp-b.hp))}}

計算式の記述はまさに魔法の呪文を書いているようで楽しいですね。
 
最後に編集:

エルトン

ユーザー
最近使い始めたテクニックでも。

スキル名:よくきたな勇者よ、褒美に死をやろう!!
効果:バトルログメッセージを表示する、だけ。

ダメージ計算式:
BattleManager._logWindow.push('addText', "よくきたな勇者よ、");BattleManager._logWindow.push('waitForNewLine');BattleManager._logWindow.push('addText', "褒美に死をやろう!!");BattleManager._logWindow.push('waitForNewLine');BattleManager._logWindow.push('waitForNewLine');BattleManager._logWindow.push('waitForNewLine');b.result().used = false;

BattleManager._logWindow.push('waitForNewLine');で1行分ウェイトをかけてくれるのだが、
もっと賢いウェイトの取り方がありそう。
 
回復効果率によって変動する回復系スキルや吸収系スキル。

回復効果率は計算式ではrecですので、

物理型吸収系の場合は、
a.rec * a.atk * 4 - b.def * 2

魔法型吸収系の場合は、
a.rec * a.mat * 4 - b.mdf * 2
などは、通常時は「a.atk * 4 - b.def * 2」や「a.mat *4 - b.mdf * 2」だが、使用者の回復効果率によって変動。

物理型回復系の場合は、
500 * a.rec + a.atk * 2

魔法型回復系の場合は、
500 * a.rec + a.mat * 2
などは通常時は500程度回復し、使用者の回復効果率によって変動。
 
純魔タイプのキャラクターがすぐ死ぬので作ったスキルです。

・闇隠れ 消費MP0 消費TP30
 自分自身に5ラウンドの間「闇隠れ」付与
 <ステート:闇隠れ>
 狙われ率x20% 回避率+35
 属性有効度:聖x300%

TPは戦闘開始時に基本10蓄積、ラウンド経過ごとに+10蓄積。
発動までがやや遅いものの使うと恐らくは生存率がかなり上がります。
聖属性の全体魔法などをぶち込まれると死にます。
こまめにこれをかけてそもそも狙われないムーブをする用。
代償としてTP蓄積が遅くなるのでそこがネックになる。
 

おぎゃあ

ユーザー
このスレッドで属性有効度なんかを計算式に組み込めることを知りましたが
通常、属性有効度は防御側の被ダメージ倍率に関わるパラメータですが、
攻撃側の与ダメージ倍率に関わるパラメータとして使えるのではと思いつきました

炎攻撃が得意なキャラに、属性有効度(11):炎属性威力150%
炎属性スキルの計算式に、*a.elementRate(11)

ステータスに表示させにくいとか、装備などで威力アップを重複させると倍率が乗算になってめんどいとかありますが、
デフォで100%、プラグインに頼らずパラメータを増やせる、などなかなか便利そうな気がしました
 
MVTrinityにて「時々敵の防御を貫通する攻撃」を作る方法です。
計算式:
[自分の][攻撃力][×][倍率][ー][相手の][防御力][×][変数][+][定数]
スキルにコモンイベントを仕掛けておき、攻撃後に変数がランダムで0になるようにすれば
「時々敵の防御を貫通する攻撃」を作ることができます。
さらに、このコモンイベントをゲーム開始時に発動させておくのを忘れないようにしましょう。
そうしないと、スキルの初回使用時には防御力貫通が確定してしまうからです。
 
実験作から2点ほど。

・否認 消費MP6
 速度補正2000 敵単体に状態異常「否認」付与100%
 <状態異常「否認」>
 有効期間1ターン ターン終了時回復 「魔法」コマンド禁止

 敵単体の魔法を使ったターンだけ確実に封じます
 ただしごく一部の強敵には効かなかったりも

・払いのけ 消費MP6
 速度補正2000 敵単体に状態異常「払いのけ」付与100%
 <状態異常「払いのけ」>
 有効期間1ターン ターン終了時回復 「技」コマンド禁止

 敵単体の技を使ったターンだけ確実に封じます
 ただしごく一部の強敵には効かなかったりも

名前の元ネタはM:tG。
なんとなく相手をタップさせる能力っぽく仕上げた。つもり。
 

takachan

ユーザー
敵のレベルが素数の時にダメージを与えるスキルについて
通常のRPGツクールMVとRPGツクールMVでSRPGコンバーターMVでは記述の仕方が異なるので両方を書きます。
前提はレベルは1~99までとした場合ですが、2から√99以下(9<√99<10なので9まで)の整数で1つも割り切れなければ素数ですが、
4、6、8は2で割り切れて、9は3で割り切れるので、2、3、5、7の4つの数字でどれも割り切れない場合は素数になります。
この考え方で、スクリプトを書きます。
ただし、2、3、5、7は素数なので2、3、5、7に該当した場合はスキルを発動します。

通常のRPGツクールMVでは・・・
if ( (b.level == 1) || ((b.level % 2 == 0) && !(b.level == 2)) || ((b.level % 3 == 0) && !(b.level == 3)) || ((b.level % 5 == 0) && !(b.level == 5)) || ((b.level % 7 == 0) && !(b.level ==7)) ) { 0 } else { a.mat * 4 - b.mdf * 2 }
素数でなければダメージは0、素数ならばダメージはa.mat * 4 - b.mdf * 2になります。

RPGツクールMVでSRPGコンバーターMVを使っている場合は敵ごとにレベルを設定できるので以下のように記述します。
if ( (b.enemy().meta.srpgLevel == 1) || ((b.enemy().meta.srpgLevel % 2 == 0) && !(b.enemy().meta.srpgLevel == 2)) || ((b.enemy().meta.srpgLevel % 3 == 0) && !(b.enemy().meta.srpgLevel == 3)) || ((b.enemy().meta.srpgLevel % 5 == 0) && !(b.enemy().meta.srpgLevel == 5)) || ((b.enemy().meta.srpgLevel % 7 == 0) && !(b.enemy().meta.srpgLevel == 7)) ) { 0 } else { a.mat * 4 - b.mdf * 2 }
素数でなければダメージは0、素数ならばダメージはa.mat * 4 - b.mdf * 2になります。

これで素数フレアの魔法も作れます。
繰り返しになりますが、このやり方の前提はレベルが1~99までなので注意が必要です。
記述ミスなどのスペルチェックはしていますが、使う時には必ず確認をお願いします。
追記:1は素数ではないので一部追加しています。
 
最後に編集:

WTR

ユーザー
このスレッドが上がるたびにいつも思っていたこと

オリジナルの長大な計算式をあの小さなボックスに書くの絶望的じゃないですか
書けないことはないけどミスが出やすいし解析も難しい

このスレッドはなるべくプラグインを使わない汎用計算式の話題を扱う…ということらしいですが
それにしたってあまりにも長すぎるモノはプラグイン化したほうがいいと思うわけです

記述の制約もなくなるし、データベースを直接編集しなくていいので圧倒的に楽だと思う…
 

温州みかん

ユーザー
このスレッドが上がるたびにいつも思っていたこと

オリジナルの長大な計算式をあの小さなボックスに書くの絶望的じゃないですか
書けないことはないけどミスが出やすいし解析も難しい

このスレッドはなるべくプラグインを使わない汎用計算式の話題を扱う…ということらしいですが
それにしたってあまりにも長すぎるモノはプラグイン化したほうがいいと思うわけです

記述の制約もなくなるし、データベースを直接編集しなくていいので圧倒的に楽だと思う…
プラグインの制作に目覚めていく理由になるでしょう。
しかし、いきなり自作プラグインは私のような初心者にはハードルが高いので、ダメージ計算式の1行を使った「面白スキル」はそういう制作者でも とっつきやすいです。

作曲も1フレーズの鼻歌から始まります。
WTRさんのご意見はもっともなのですが、思いついたメロディをドレミで紙に書いている人に、五線紙をとばして、「MIDI譜で書いたほうがいいんじゃない」と言うようなものです。

しかしながら、”コメントされている多くの方々、(5ch風に言うとスレ住人)”はプラグイン(JvaScript)書ける人なので、そうツッコミたくなる理由も わからなくもないです。
例えば、人気バンドの作曲担当がノートにドレミを書いて 新曲できたぜー、ってやってたら引くと思います。
 
こういうのは直接書いているのではなく、適当なテキストエディタに書き込んで
それをコピペしているのではないでしょうか。

それはともかく素数攻撃は、こうすればもう少し楽に作れると思います。
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97].indexOf(b.level) !== 1 ? 9999 : 1

プラグインを作るなら、アクターの側にisLevelPrimenumberというメソッドを定義し
a.isLevelPrimenumber() ? 9999 : 1
という式を書くことになるでしょう。

プラグインを作れば、確かに楽ができるでしょうが「縛りプレイ」という側面も
あるかもしれません。
 

WTR

ユーザー
いわゆるプラグイン開発をしましょう、というのとはちょっとニュアンスが違うつもりだったんですけどね

どうせ同じことを書くなら狭いボックスじゃなくて別ファイルに書いとけば
あとで編集が楽だろうっていうだけでプラグイン開発というほどのものでもないかな、と

「縛りプレイ」側面はちょっとわかります
思えばRPGツクール自体が縛りプレイみたいなもんだという気もする

なんでRPGツクールでコレ作ろうと思ったんだろう、みたいな作品に出会うと謎の感動ありますしね
 
トップ