[解決済み]アクターの最大HP/MPに変数を導入したい

andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

[解決済み]アクターの最大HP/MPに変数を導入したい

投稿記事by andead04/総督 » 2021年2月19日(金) 04:33

 ツク―ルMVを使ってゼルダの伝説のようなアクションRPGをつくっています。
質問に必要なので、このゲームの設定を大まかに説明させていただきますが、主人公の職業はHP/MPが低く抑えられており、成長することはありません。彼が戦うには、同伴している仲間のステータスをリンクさせる必要があります。そのため、仲間の最大HPを変数として保存し、主人公の最大HPに代入したいのです。
 レベルアップでは敵を倒した時に内部で変数が加算されていき、そのポイントをレベルアップのイベントで使ってHP/MP/攻撃力から選び HP/MPをこのようなスクリプトで‶仲間に〟直接加算しています。「$gameActors.actor(2).addParam(0, 10)」
こうすることでパートナーを変更したとき、主人公のステータスも一緒に変更されるようなゲームシステムにしたいのです。攻撃力は別の変数で扱っているため変数の代入で簡単にリンクさせることができますが、アクターのHP/MPに変数を代入させる方法がわかりません。
 初歩的なことかもしれませんが、どうぞよろしくお願いいたします。
最後に編集したユーザー andead04/総督 on 2021年2月19日(金) 15:31 [ 編集 1 回目 ]

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: アクターの最大HP/MPに変数を導入したい

投稿記事by ムノクラ » 2021年2月19日(金) 06:48

andead04/総督 さんが書きました: ツク―ルMVを使ってゼルダの伝説のようなアクションRPGをつくっています。
質問に必要なので、このゲームの設定を大まかに説明させていただきますが、主人公の職業はHP/MPが低く抑えられており、成長することはありません。彼が戦うには、同伴している仲間のステータスをリンクさせる必要があります。そのため、仲間の最大HPを変数として保存し、主人公の最大HPに代入したいのです。
 レベルアップでは敵を倒した時に内部で変数が加算されていき、そのポイントをレベルアップのイベントで使ってHP/MP/攻撃力から選び HP/MPをこのようなスクリプトで‶仲間に〟直接加算しています。「$gameActors.actor(2).addParam(0, 10)」
こうすることでパートナーを変更したとき、主人公のステータスも一緒に変更されるようなゲームシステムにしたいのです。攻撃力は別の変数で扱っているため変数の代入で簡単にリンクさせることができますが、アクターのHP/MPに変数を代入させる方法がわかりません。
 初歩的なことかもしれませんが、どうぞよろしくお願いいたします。


「アクターのHP/MPに変数を代入させる方法」を知りたいということで良いのでしょうか?

参考
http://rpgmaker-script-wiki.xyz/conditionData_mv.php

例:アクターの現在HPを変数に代入
変数の処理>代入:スクリプト
$gameActors.actor(アクターID).hp
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

Re: アクターの最大HP/MPに変数を導入したい

投稿記事by andead04/総督 » 2021年2月19日(金) 14:38

返信ありがとうございます。少し考えましたが不勉強にて意味を理解しかねます。
変数をアクターの最大HP/MPに代入する方法をご教授願えますでしょうか。代入の対象として変数を選ぶことは可能なのですが、変数を参照してキャラクターのステータスに代入することが叶いません。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: アクターの最大HP/MPに変数を導入したい

投稿記事by ムノクラ » 2021年2月19日(金) 14:58

大変申し訳無いのですが、質問の文章から何を求められているのか理解できません。
先の返信は理解できないまま、文章の一部で質問と思われた箇所に返信したにすぎません。

・やりたい事
・試したこと
・上手く行かないこと
の各内容を箇条書きで整理していただけないでしょうか?

説明文を読まずにトピック件名のみを実行するとしたら、RPGツクールMVの下記の仕様を理解するところから始まるかと思います。

アクターの基本能力値(データベースの職業で設定する能力値曲線)は、職業とレベルで決定される。

これをゲーム中で直接変更することはできません。

裏技的なスクリプトを使用してバグを発生させないためには、通常のイベントコマンドを使用するのが最も安全です。
次に安全なのは、そのイベントコマンドを再現するスクリプトを使用することです。

最大HPを加減算することはイベントコマンドでできます。
◆能力値の増減:ハロルド, 最大HP + {V1}

このスクリプトは、既にご使用のとおり下記です。
$gameActors.actor(アクターID).addParam(能力値ID, 変化量)
http://rpgmaker-script-wiki.xyz/ability_mv.php

ですので、
1.指定したい値を算出する=V1
2.変更前の値を取得する=V2
3.加算すべき値を算出する=V3=V1-V2
4.イベントコマンドで、V3の値を加算する
というのが妥当な実現方法かと思われます。

コード: 全て選択

◆変数の操作:#0001 V1 = 999
◆変数の操作:#0002 V2 = ハロルドの最大HP
◆変数の操作:#0001 V1 -= V2
◆能力値の増減:ハロルド, 最大HP + {V1}


つまり、代入ではなく加算・減算で代用する方法を使ってはどうでしょうか?という提案です。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

Re: アクターの最大HP/MPに変数を導入したい

投稿記事by andead04/総督 » 2021年2月19日(金) 15:29

 質問に不慣れなため、文章に齟齬があったことをお詫び申し上げます。
こちらとしては、アクションRPGという逸したものを制作しておりますので、回答者様にはできる限りシステムをご理解いただくことが賢明かと考えたのですが、試行錯誤の末、夜分遅かったこともあって散文となってしまいました。
 ゲームのステータスを変更できないこと、スクリプトから増減できるため間接的に実現する方法があること、承知しました。ご提案頂いた方法で試行してみます。回答ありがとうございました。
論理イヌ
記事: 186
登録日時: 2020年3月13日(金) 13:05

Re: [解決済み]アクターの最大HP/MPに変数を導入したい

投稿記事by 論理イヌ » 2021年2月20日(土) 22:37

こんにちは。
もう解決されているのにすみません。
ツクールの標準のコマンドで実現できるかもと思い回答させていただきます。

やりたいことは下記であると認識しました。
・主人公の最大HPは10固定(仮の数字)。
・パーティに加える仲間の最大HPが450の場合、主人公の最大HPを450にする。
最大HPの増減のイメージ-min.png



<コマンドの例>

◆文章:なし, ウィンドウ, 下
:  :一緒に行こう!
◆注釈:変数に仲間の最大HPを代入
◆変数の操作:#0001 仲間の最大HP = マーシャの最大HP
◆注釈:主人公の能力値の「最大HP」を変数の値ぶん増やす
◆能力値の増減:ハロルド, 最大HP + {仲間の最大HP}
◆注釈:主人公の元の最大HPの数値を減らす
◆能力値の増減:ハロルド, 最大HP - 10
◆注釈:全回復させる
:  :(そうしないと、主人公の現在HPが10のままになる……)

◆全回復:ハロルド
コマンドの例.png

“MV:質問” へ戻る