スクリプトで変数にアクターの実際の能力を代入する方法

TANAKATANAKA
記事: 9
登録日時: 2017年2月11日(土) 12:01

スクリプトで変数にアクターの実際の能力を代入する方法

投稿記事by TANAKATANAKA » 2017年4月05日(水) 23:53

いつもお世話になっております。

イベントのスクリプトにて、変数にアクターの能力を代入することは可能なのですが、
実際の能力(装備などの補正なしの能力)を代入する方法を模索しています。

以下では、装備の補正を含んだatkが代入されてしまい、実際の補正なしの能力ではありません。
$game_variables[1] = $game_actors[1].atk

どのようにすれば出来るか、ご教示いただけないでしょうか。

よろしくお願いします。

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: スクリプトで変数にアクターの実際の能力を代入する方法

投稿記事by faida » 2017年4月06日(木) 00:35

「補正無し」がどこまでを指すか分かりませんが、「成長効果」を含めないのであれば以下です。
$game_variables[1] = $game_actors[1].param_base(param_id)
param_idは0~7で、atkだと2となります。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
TANAKATANAKA
記事: 9
登録日時: 2017年2月11日(土) 12:01

Re: スクリプトで変数にアクターの実際の能力を代入する方法

投稿記事by TANAKATANAKA » 2017年4月07日(金) 00:29

FAIDA様


ご回答いただきありがとうございます。
ただ、申し訳ございません、こちらの説明が不足しておりました。

今回、補正なしといいましたが「装備」「ステート」の補正を含まない、であり、。
成長補正(イベントやアイテムなどで増加)は含めた値を代入したいと思っておりました。

お手数をおかけしますが、イベントやアイテムなど成長を含めた値の取得方法もご教授いただけないでしょうか。

よろしくお願い申し上げます。
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: スクリプトで変数にアクターの実際の能力を代入する方法

投稿記事by faida » 2017年4月07日(金) 12:02

本来、成長効果等の加算値は外から読み取る機能が備わってないので、
実は結構強引な方法で読み取るか素材スクリプトを追加するかどっちかしかないんですよね。

actor = $game_actors[1]
base = actor.param_base(param_id)
plus = actor.instance_variable_get(:@param_plus)[param_id]
$game_variables[1] = base + plus

余計な話なんでアレですけど、「instance_variable_get」「instance_variable_set」を使えば理論上どんなインスタンス変数も読み書き可能です。
まぁ弊害が起こる可能性があるのでここぞって時にしか使いませんけど。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
TANAKATANAKA
記事: 9
登録日時: 2017年2月11日(土) 12:01

【解決済み】Re: スクリプトで変数にアクターの実際の能力を代入する方法

投稿記事by TANAKATANAKA » 2017年4月08日(土) 17:58

FAIDA様
ありがとうございます。

これにて解決済みとさせていただきます。

“VX / Ace:質問” へ戻る